diff --git a/Doxyfile b/Doxyfile
index 21a87bd..fb9b7ac 100644
--- a/Doxyfile
+++ b/Doxyfile
@@ -1,4 +1,4 @@
-# Doxyfile 1.9.1
+# Doxyfile 1.9.8
 
 # This file describes the settings to be used by the documentation system
 # doxygen (www.doxygen.org) for a project.
@@ -12,6 +12,16 @@
 # For lists, items can also be appended using:
 # TAG += value [value, ...]
 # Values that contain spaces should be placed between quotes (\" \").
+#
+# Note:
+#
+# Use doxygen to compare the used configuration file with the template
+# configuration file:
+# doxygen -x [configFile]
+# Use doxygen to compare the used configuration file with the template
+# configuration file without replacing the environment variables or CMake type
+# replacement variables:
+# doxygen -x_noenv [configFile]
 
 #---------------------------------------------------------------------------
 # Project related configuration options
@@ -60,16 +70,28 @@ PROJECT_LOGO           = doc/image/doxygen.png
 
 OUTPUT_DIRECTORY       = doc
 
-# If the CREATE_SUBDIRS tag is set to YES then doxygen will create 4096 sub-
-# directories (in 2 levels) under the output directory of each output format and
-# will distribute the generated files over these directories. Enabling this
+# If the CREATE_SUBDIRS tag is set to YES then doxygen will create up to 4096
+# sub-directories (in 2 levels) under the output directory of each output format
+# and will distribute the generated files over these directories. Enabling this
 # option can be useful when feeding doxygen a huge amount of source files, where
 # putting all generated files in the same directory would otherwise causes
-# performance problems for the file system.
+# performance problems for the file system. Adapt CREATE_SUBDIRS_LEVEL to
+# control the number of sub-directories.
 # The default value is: NO.
 
 CREATE_SUBDIRS         = NO
 
+# Controls the number of sub-directories that will be created when
+# CREATE_SUBDIRS tag is set to YES. Level 0 represents 16 directories, and every
+# level increment doubles the number of directories, resulting in 4096
+# directories at level 8 which is the default and also the maximum value. The
+# sub-directories are organized in 2 levels, the first level always has a fixed
+# number of 16 directories.
+# Minimum value: 0, maximum value: 8, default value: 8.
+# This tag requires that the tag CREATE_SUBDIRS is set to YES.
+
+CREATE_SUBDIRS_LEVEL   = 8
+
 # If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII
 # characters to appear in the names of generated files. If set to NO, non-ASCII
 # characters will be escaped, for example _xE3_x81_x84 will be used for Unicode
@@ -81,26 +103,18 @@ ALLOW_UNICODE_NAMES    = NO
 # The OUTPUT_LANGUAGE tag is used to specify the language in which all
 # documentation generated by doxygen is written. Doxygen will use this
 # information to generate all constant output in the proper language.
-# Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Catalan, Chinese,
-# Chinese-Traditional, Croatian, Czech, Danish, Dutch, English (United States),
-# Esperanto, Farsi (Persian), Finnish, French, German, Greek, Hungarian,
-# Indonesian, Italian, Japanese, Japanese-en (Japanese with English messages),
-# Korean, Korean-en (Korean with English messages), Latvian, Lithuanian,
-# Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, Romanian, Russian,
-# Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, Swedish, Turkish,
-# Ukrainian and Vietnamese.
+# Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Bulgarian,
+# Catalan, Chinese, Chinese-Traditional, Croatian, Czech, Danish, Dutch, English
+# (United States), Esperanto, Farsi (Persian), Finnish, French, German, Greek,
+# Hindi, Hungarian, Indonesian, Italian, Japanese, Japanese-en (Japanese with
+# English messages), Korean, Korean-en (Korean with English messages), Latvian,
+# Lithuanian, Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese,
+# Romanian, Russian, Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish,
+# Swedish, Turkish, Ukrainian and Vietnamese.
 # The default value is: English.
 
 OUTPUT_LANGUAGE        = English
 
-# The OUTPUT_TEXT_DIRECTION tag is used to specify the direction in which all
-# documentation generated by doxygen is written. Doxygen will use this
-# information to generate all generated output in the proper direction.
-# Possible values are: None, LTR, RTL and Context.
-# The default value is: None.
-
-OUTPUT_TEXT_DIRECTION  = None
-
 # If the BRIEF_MEMBER_DESC tag is set to YES, doxygen will include brief member
 # descriptions after the members that are listed in the file and class
 # documentation (similar to Javadoc). Set to NO to disable this.
@@ -258,16 +272,16 @@ TAB_SIZE               = 4
 # the documentation. An alias has the form:
 # name=value
 # For example adding
-# "sideeffect=@par Side Effects:\n"
+# "sideeffect=@par Side Effects:^^"
 # will allow you to put the command \sideeffect (or @sideeffect) in the
 # documentation, which will result in a user-defined paragraph with heading
-# "Side Effects:". You can put \n's in the value part of an alias to insert
-# newlines (in the resulting output). You can put ^^ in the value part of an
-# alias to insert a newline as if a physical newline was in the original file.
-# When you need a literal { or } or , in the value part of an alias you have to
-# escape them by means of a backslash (\), this can lead to conflicts with the
-# commands \{ and \} for these it is advised to use the version @{ and @} or use
-# a double escape (\\{ and \\})
+# "Side Effects:". Note that you cannot put \n's in the value part of an alias
+# to insert newlines (in the resulting output). You can put ^^ in the value part
+# of an alias to insert a newline as if a physical newline was in the original
+# file. When you need a literal { or } or , in the value part of an alias you
+# have to escape them by means of a backslash (\), this can lead to conflicts
+# with the commands \{ and \} for these it is advised to use the version @{ and
+# @} or use a double escape (\\{ and \\})
 
 ALIASES                =
 
@@ -312,8 +326,8 @@ OPTIMIZE_OUTPUT_SLICE  = NO
 # extension. Doxygen has a built-in mapping, but you can override or extend it
 # using this tag. The format is ext=language, where ext is a file extension, and
 # language is one of the parsers supported by doxygen: IDL, Java, JavaScript,
-# Csharp (C#), C, C++, D, PHP, md (Markdown), Objective-C, Python, Slice, VHDL,
-# Fortran (fixed format Fortran: FortranFixed, free formatted Fortran:
+# Csharp (C#), C, C++, Lex, D, PHP, md (Markdown), Objective-C, Python, Slice,
+# VHDL, Fortran (fixed format Fortran: FortranFixed, free formatted Fortran:
 # FortranFree, unknown formatted Fortran: Fortran. In the later case the parser
 # tries to guess whether the code is fixed or free formatted code, this is the
 # default for Fortran type files). For instance to make doxygen treat .inc files
@@ -349,6 +363,17 @@ MARKDOWN_SUPPORT       = YES
 
 TOC_INCLUDE_HEADINGS   = 5
 
+# The MARKDOWN_ID_STYLE tag can be used to specify the algorithm used to
+# generate identifiers for the Markdown headings. Note: Every identifier is
+# unique.
+# Possible values are: DOXYGEN use a fixed 'autotoc_md' string followed by a
+# sequence number starting at 0 and GITHUB use the lower case version of title
+# with any whitespace replaced by '-' and punctuation characters removed.
+# The default value is: DOXYGEN.
+# This tag requires that the tag MARKDOWN_SUPPORT is set to YES.
+
+MARKDOWN_ID_STYLE      = DOXYGEN
+
 # When enabled doxygen tries to link words that correspond to documented
 # classes, or namespaces to their corresponding documentation. Such a link can
 # be prevented in individual cases by putting a % sign in front of the word or
@@ -460,19 +485,27 @@ TYPEDEF_HIDES_STRUCT   = NO
 
 LOOKUP_CACHE_SIZE      = 0
 
-# The NUM_PROC_THREADS specifies the number threads doxygen is allowed to use
+# The NUM_PROC_THREADS specifies the number of threads doxygen is allowed to use
 # during processing. When set to 0 doxygen will based this on the number of
 # cores available in the system. You can set it explicitly to a value larger
 # than 0 to get more control over the balance between CPU load and processing
 # speed. At this moment only the input processing can be done using multiple
 # threads. Since this is still an experimental feature the default is set to 1,
-# which efficively disables parallel processing. Please report any issues you
+# which effectively disables parallel processing. Please report any issues you
 # encounter. Generating dot graphs in parallel is controlled by the
 # DOT_NUM_THREADS setting.
 # Minimum value: 0, maximum value: 32, default value: 1.
 
 NUM_PROC_THREADS       = 1
 
+# If the TIMESTAMP tag is set different from NO then each generated page will
+# contain the date or date and time when the page was generated. Setting this to
+# NO can help when comparing the output of multiple runs.
+# Possible values are: YES, NO, DATETIME and DATE.
+# The default value is: NO.
+
+TIMESTAMP              = NO
+
 #---------------------------------------------------------------------------
 # Build related configuration options
 #---------------------------------------------------------------------------
@@ -554,7 +587,8 @@ HIDE_UNDOC_MEMBERS     = NO
 # If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all
 # undocumented classes that are normally visible in the class hierarchy. If set
 # to NO, these classes will be included in the various overviews. This option
-# has no effect if EXTRACT_ALL is enabled.
+# will also hide undocumented C++ concepts if enabled. This option has no effect
+# if EXTRACT_ALL is enabled.
 # The default value is: NO.
 
 HIDE_UNDOC_CLASSES     = NO
@@ -585,14 +619,15 @@ INTERNAL_DOCS          = NO
 # filesystem is case sensitive (i.e. it supports files in the same directory
 # whose names only differ in casing), the option must be set to YES to properly
 # deal with such files in case they appear in the input. For filesystems that
-# are not case sensitive the option should be be set to NO to properly deal with
+# are not case sensitive the option should be set to NO to properly deal with
 # output files written for symbols that only differ in casing, such as for two
 # classes, one named CLASS and the other named Class, and to also support
 # references to files without having to specify the exact matching casing. On
 # Windows (including Cygwin) and MacOS, users should typically set this option
 # to NO, whereas on Linux or other Unix flavors it should typically be set to
 # YES.
-# The default value is: system dependent.
+# Possible values are: SYSTEM, NO and YES.
+# The default value is: SYSTEM.
 
 CASE_SENSE_NAMES       = NO
 
@@ -610,6 +645,12 @@ HIDE_SCOPE_NAMES       = YES
 
 HIDE_COMPOUND_REFERENCE= NO
 
+# If the SHOW_HEADERFILE tag is set to YES then the documentation for a class
+# will show which file needs to be included to use the class.
+# The default value is: YES.
+
+SHOW_HEADERFILE        = YES
+
 # If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of
 # the files that are included by a file in the documentation of that file.
 # The default value is: YES.
@@ -767,7 +808,8 @@ FILE_VERSION_FILTER    =
 # output files in an output format independent way. To create the layout file
 # that represents doxygen's defaults, run doxygen with the -l option. You can
 # optionally specify a file name after the option, if omitted DoxygenLayout.xml
-# will be used as the name of the layout file.
+# will be used as the name of the layout file. See also section "Changing the
+# layout of pages" for information.
 #
 # Note that if you run doxygen from a directory containing a file called
 # DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE
@@ -813,27 +855,50 @@ WARNINGS               = YES
 WARN_IF_UNDOCUMENTED   = YES
 
 # If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for
-# potential errors in the documentation, such as not documenting some parameters
-# in a documented function, or documenting parameters that don't exist or using
-# markup commands wrongly.
+# potential errors in the documentation, such as documenting some parameters in
+# a documented function twice, or documenting parameters that don't exist or
+# using markup commands wrongly.
 # The default value is: YES.
 
 WARN_IF_DOC_ERROR      = YES
 
+# If WARN_IF_INCOMPLETE_DOC is set to YES, doxygen will warn about incomplete
+# function parameter documentation. If set to NO, doxygen will accept that some
+# parameters have no documentation without warning.
+# The default value is: YES.
+
+WARN_IF_INCOMPLETE_DOC = YES
+
 # This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that
 # are documented, but have no documentation for their parameters or return
-# value. If set to NO, doxygen will only warn about wrong or incomplete
-# parameter documentation, but not about the absence of documentation. If
-# EXTRACT_ALL is set to YES then this flag will automatically be disabled.
+# value. If set to NO, doxygen will only warn about wrong parameter
+# documentation, but not about the absence of documentation. If EXTRACT_ALL is
+# set to YES then this flag will automatically be disabled. See also
+# WARN_IF_INCOMPLETE_DOC
 # The default value is: NO.
 
 WARN_NO_PARAMDOC       = NO
 
+# If WARN_IF_UNDOC_ENUM_VAL option is set to YES, doxygen will warn about
+# undocumented enumeration values. If set to NO, doxygen will accept
+# undocumented enumeration values. If EXTRACT_ALL is set to YES then this flag
+# will automatically be disabled.
+# The default value is: NO.
+
+WARN_IF_UNDOC_ENUM_VAL = NO
+
 # If the WARN_AS_ERROR tag is set to YES then doxygen will immediately stop when
 # a warning is encountered. If the WARN_AS_ERROR tag is set to FAIL_ON_WARNINGS
 # then doxygen will continue running as if WARN_AS_ERROR tag is set to NO, but
 # at the end of the doxygen process doxygen will return with a non-zero status.
-# Possible values are: NO, YES and FAIL_ON_WARNINGS.
+# If the WARN_AS_ERROR tag is set to FAIL_ON_WARNINGS_PRINT then doxygen behaves
+# like FAIL_ON_WARNINGS but in case no WARN_LOGFILE is defined doxygen will not
+# write the warning messages in between other messages but write them at the end
+# of a run, in case a WARN_LOGFILE is defined the warning messages will be
+# besides being in the defined file also be shown at the end of a run, unless
+# the WARN_LOGFILE is defined as - i.e. standard output (stdout) in that case
+# the behavior will remain as with the setting FAIL_ON_WARNINGS.
+# Possible values are: NO, YES, FAIL_ON_WARNINGS and FAIL_ON_WARNINGS_PRINT.
 # The default value is: NO.
 
 WARN_AS_ERROR          = NO
@@ -844,13 +909,27 @@ WARN_AS_ERROR          = NO
 # and the warning text. Optionally the format may contain $version, which will
 # be replaced by the version of the file (if it could be obtained via
 # FILE_VERSION_FILTER)
+# See also: WARN_LINE_FORMAT
 # The default value is: $file:$line: $text.
 
 WARN_FORMAT            = "$file:$line: $text"
 
+# In the $text part of the WARN_FORMAT command it is possible that a reference
+# to a more specific place is given. To make it easier to jump to this place
+# (outside of doxygen) the user can define a custom "cut" / "paste" string.
+# Example:
+# WARN_LINE_FORMAT = "'vi $file +$line'"
+# See also: WARN_FORMAT
+# The default value is: at line $line of file $file.
+
+WARN_LINE_FORMAT       = "at line $line of file $file"
+
 # The WARN_LOGFILE tag can be used to specify a file to which warning and error
 # messages should be written. If left blank the output is written to standard
-# error (stderr).
+# error (stderr). In case the file specified cannot be opened for writing the
+# warning and error messages are written to standard error. When as file - is
+# specified the warning and error messages are written to standard output
+# (stdout).
 
 WARN_LOGFILE           =
 
@@ -875,10 +954,21 @@ INPUT                  = src \
 # libiconv (or the iconv built into libc) for the transcoding. See the libiconv
 # documentation (see:
 # https://www.gnu.org/software/libiconv/) for the list of possible encodings.
+# See also: INPUT_FILE_ENCODING
 # The default value is: UTF-8.
 
 INPUT_ENCODING         = UTF-8
 
+# This tag can be used to specify the character encoding of the source files
+# that doxygen parses The INPUT_FILE_ENCODING tag can be used to specify
+# character encoding on a per file pattern basis. Doxygen will compare the file
+# name with each pattern and apply the encoding instead of the default
+# INPUT_ENCODING) if there is a match. The character encodings are a list of the
+# form: pattern=encoding (like *.php=ISO-8859-1). See cfg_input_encoding
+# "INPUT_ENCODING" for further information on supported encodings.
+
+INPUT_FILE_ENCODING    =
+
 # If the value of the INPUT tag contains directories, you can use the
 # FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and
 # *.h) to filter out the source-files in the directories.
@@ -890,12 +980,12 @@ INPUT_ENCODING         = UTF-8
 # Note the list of default checked file patterns might differ from the list of
 # default file extension mappings.
 #
-# If left blank the following patterns are tested:*.c, *.cc, *.cxx, *.cpp,
-# *.c++, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h,
-# *.hh, *.hxx, *.hpp, *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc,
-# *.m, *.markdown, *.md, *.mm, *.dox (to be provided as doxygen C comment),
-# *.py, *.pyw, *.f90, *.f95, *.f03, *.f08, *.f18, *.f, *.for, *.vhd, *.vhdl,
-# *.ucf, *.qsf and *.ice.
+# If left blank the following patterns are tested:*.c, *.cc, *.cxx, *.cxxm,
+# *.cpp, *.cppm, *.c++, *.c++m, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, *.idl,
+# *.ddl, *.odl, *.h, *.hh, *.hxx, *.hpp, *.h++, *.ixx, *.l, *.cs, *.d, *.php,
+# *.php4, *.php5, *.phtml, *.inc, *.m, *.markdown, *.md, *.mm, *.dox (to be
+# provided as doxygen C comment), *.py, *.pyw, *.f90, *.f95, *.f03, *.f08,
+# *.f18, *.f, *.for, *.vhd, *.vhdl, *.ucf, *.qsf and *.ice.
 
 FILE_PATTERNS          = *.c \
                          *.cc \
@@ -978,10 +1068,7 @@ EXCLUDE_PATTERNS       =
 # (namespaces, classes, functions, etc.) that should be excluded from the
 # output. The symbol name can be a fully qualified name, a word, or if the
 # wildcard * is used, a substring. Examples: ANamespace, AClass,
-# AClass::ANamespace, ANamespace::*Test
-#
-# Note that the wildcards are matched against the file with absolute path, so to
-# exclude all test directories use the pattern */test/*
+# ANamespace::AClass, ANamespace::*Test
 
 EXCLUDE_SYMBOLS        =
 
@@ -1026,6 +1113,11 @@ IMAGE_PATH             =
 # code is scanned, but not when the output code is generated. If lines are added
 # or removed, the anchors will not be placed correctly.
 #
+# Note that doxygen will use the data processed and written to standard output
+# for further processing, therefore nothing else, like debug statements or used
+# commands (so in case of a Windows batch file always use @echo OFF), should be
+# written to standard output.
+#
 # Note that for custom extensions or not directly supported extensions you also
 # need to set EXTENSION_MAPPING for the extension otherwise the files are not
 # properly processed by doxygen.
@@ -1067,6 +1159,15 @@ FILTER_SOURCE_PATTERNS =
 
 USE_MDFILE_AS_MAINPAGE =
 
+# The Fortran standard specifies that for fixed formatted Fortran code all
+# characters from position 72 are to be considered as comment. A common
+# extension is to allow longer lines before the automatic comment starts. The
+# setting FORTRAN_COMMENT_AFTER will also make it possible that longer lines can
+# be processed before the automatic comment starts.
+# Minimum value: 7, maximum value: 10000, default value: 72.
+
+FORTRAN_COMMENT_AFTER  = 72
+
 #---------------------------------------------------------------------------
 # Configuration options related to source browsing
 #---------------------------------------------------------------------------
@@ -1164,9 +1265,11 @@ VERBATIM_HEADERS       = YES
 
 CLANG_ASSISTED_PARSING = NO
 
-# If clang assisted parsing is enabled and the CLANG_ADD_INC_PATHS tag is set to
-# YES then doxygen will add the directory of each input to the include path.
+# If the CLANG_ASSISTED_PARSING tag is set to YES and the CLANG_ADD_INC_PATHS
+# tag is set to YES then doxygen will add the directory of each input to the
+# include path.
 # The default value is: YES.
+# This tag requires that the tag CLANG_ASSISTED_PARSING is set to YES.
 
 CLANG_ADD_INC_PATHS    = YES
 
@@ -1202,10 +1305,11 @@ CLANG_DATABASE_PATH    =
 
 ALPHABETICAL_INDEX     = YES
 
-# In case all classes in a project start with a common prefix, all classes will
-# be put under the same header in the alphabetical index. The IGNORE_PREFIX tag
-# can be used to specify a prefix (or a list of prefixes) that should be ignored
-# while generating the index headers.
+# The IGNORE_PREFIX tag can be used to specify a prefix (or a list of prefixes)
+# that should be ignored while generating the index headers. The IGNORE_PREFIX
+# tag works for classes, function and member names. The entity will be placed in
+# the alphabetical list under the first letter of the entity name that remains
+# after removing the prefix.
 # This tag requires that the tag ALPHABETICAL_INDEX is set to YES.
 
 IGNORE_PREFIX          =
@@ -1284,7 +1388,12 @@ HTML_STYLESHEET        =
 # Doxygen will copy the style sheet files to the output directory.
 # Note: The order of the extra style sheet files is of importance (e.g. the last
 # style sheet in the list overrules the setting of the previous ones in the
-# list). For an example see the documentation.
+# list).
+# Note: Since the styling of scrollbars can currently not be overruled in
+# Webkit/Chromium, the styling will be left out of the default doxygen.css if
+# one or more extra stylesheets have been specified. So if scrollbar
+# customization is desired it has to be added explicitly. For an example see the
+# documentation.
 # This tag requires that the tag GENERATE_HTML is set to YES.
 
 HTML_EXTRA_STYLESHEET  =
@@ -1299,9 +1408,22 @@ HTML_EXTRA_STYLESHEET  =
 
 HTML_EXTRA_FILES       =
 
+# The HTML_COLORSTYLE tag can be used to specify if the generated HTML output
+# should be rendered with a dark or light theme.
+# Possible values are: LIGHT always generate light mode output, DARK always
+# generate dark mode output, AUTO_LIGHT automatically set the mode according to
+# the user preference, use light mode if no preference is set (the default),
+# AUTO_DARK automatically set the mode according to the user preference, use
+# dark mode if no preference is set and TOGGLE allow to user to switch between
+# light and dark mode via a button.
+# The default value is: AUTO_LIGHT.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_COLORSTYLE        = AUTO_LIGHT
+
 # The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen
 # will adjust the colors in the style sheet and background images according to
-# this color. Hue is specified as an angle on a colorwheel, see
+# this color. Hue is specified as an angle on a color-wheel, see
 # https://en.wikipedia.org/wiki/Hue for more information. For instance the value
 # 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300
 # purple, and 360 is red again.
@@ -1311,7 +1433,7 @@ HTML_EXTRA_FILES       =
 HTML_COLORSTYLE_HUE    = 220
 
 # The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors
-# in the HTML output. For a value of 0 the output will use grayscales only. A
+# in the HTML output. For a value of 0 the output will use gray-scales only. A
 # value of 255 will produce the most vivid colors.
 # Minimum value: 0, maximum value: 255, default value: 100.
 # This tag requires that the tag GENERATE_HTML is set to YES.
@@ -1329,15 +1451,6 @@ HTML_COLORSTYLE_SAT    = 100
 
 HTML_COLORSTYLE_GAMMA  = 80
 
-# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML
-# page will contain the date and time when the page was generated. Setting this
-# to YES can help to show when doxygen was last run and thus if the
-# documentation is up to date.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-HTML_TIMESTAMP         = NO
-
 # If the HTML_DYNAMIC_MENUS tag is set to YES then the generated HTML
 # documentation will contain a main index with vertical navigation menus that
 # are dynamically created via JavaScript. If disabled, the navigation index will
@@ -1357,6 +1470,13 @@ HTML_DYNAMIC_MENUS     = YES
 
 HTML_DYNAMIC_SECTIONS  = NO
 
+# If the HTML_CODE_FOLDING tag is set to YES then classes and functions can be
+# dynamically folded and expanded in the generated HTML source code.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_CODE_FOLDING      = YES
+
 # With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries
 # shown in the various tree structured indices initially; the user can expand
 # and collapse entries dynamically later on. Doxygen will expand the tree to
@@ -1393,6 +1513,13 @@ GENERATE_DOCSET        = NO
 
 DOCSET_FEEDNAME        = "Doxygen generated docs"
 
+# This tag determines the URL of the docset feed. A documentation feed provides
+# an umbrella under which multiple documentation sets from a single provider
+# (such as a company or product suite) can be grouped.
+# This tag requires that the tag GENERATE_DOCSET is set to YES.
+
+DOCSET_FEEDURL         =
+
 # This tag specifies a string that should uniquely identify the documentation
 # set bundle. This should be a reverse domain-name style string, e.g.
 # com.mycompany.MyDocSet. Doxygen will append .docset to the name.
@@ -1418,8 +1545,12 @@ DOCSET_PUBLISHER_NAME  = Publisher
 # If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three
 # additional HTML index files: index.hhp, index.hhc, and index.hhk. The
 # index.hhp is a project file that can be read by Microsoft's HTML Help Workshop
-# (see:
-# https://www.microsoft.com/en-us/download/details.aspx?id=21138) on Windows.
+# on Windows. In the beginning of 2021 Microsoft took the original page, with
+# a.o. the download links, offline the HTML help workshop was already many years
+# in maintenance mode). You can download the HTML help workshop from the web
+# archives at Installation executable (see:
+# http://web.archive.org/web/20160201063255/http://download.microsoft.com/downlo
+# ad/0/A/9/0A939EF6-E31C-430F-A3DF-DFAE7960D564/htmlhelp.exe).
 #
 # The HTML Help Workshop contains a compiler that can convert all HTML output
 # generated by doxygen into a single compiled HTML file (.chm). Compiled HTML
@@ -1476,6 +1607,16 @@ BINARY_TOC             = NO
 
 TOC_EXPAND             = NO
 
+# The SITEMAP_URL tag is used to specify the full URL of the place where the
+# generated documentation will be placed on the server by the user during the
+# deployment of the documentation. The generated sitemap is called sitemap.xml
+# and placed on the directory specified by HTML_OUTPUT. In case no SITEMAP_URL
+# is specified no sitemap is generated. For information about the sitemap
+# protocol see https://www.sitemaps.org
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+SITEMAP_URL            =
+
 # If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and
 # QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that
 # can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help
@@ -1578,16 +1719,28 @@ DISABLE_INDEX          = NO
 # to work a browser that supports JavaScript, DHTML, CSS and frames is required
 # (i.e. any modern browser). Windows users are probably better off using the
 # HTML help feature. Via custom style sheets (see HTML_EXTRA_STYLESHEET) one can
-# further fine-tune the look of the index. As an example, the default style
-# sheet generated by doxygen has an example that shows how to put an image at
-# the root of the tree instead of the PROJECT_NAME. Since the tree basically has
-# the same information as the tab index, you could consider setting
-# DISABLE_INDEX to YES when enabling this option.
+# further fine tune the look of the index (see "Fine-tuning the output"). As an
+# example, the default style sheet generated by doxygen has an example that
+# shows how to put an image at the root of the tree instead of the PROJECT_NAME.
+# Since the tree basically has the same information as the tab index, you could
+# consider setting DISABLE_INDEX to YES when enabling this option.
 # The default value is: NO.
 # This tag requires that the tag GENERATE_HTML is set to YES.
 
 GENERATE_TREEVIEW      = YES
 
+# When both GENERATE_TREEVIEW and DISABLE_INDEX are set to YES, then the
+# FULL_SIDEBAR option determines if the side bar is limited to only the treeview
+# area (value NO) or if it should extend to the full height of the window (value
+# YES). Setting this to YES gives a layout similar to
+# https://docs.readthedocs.io with more room for contents, but less room for the
+# project logo, title, and description. If either GENERATE_TREEVIEW or
+# DISABLE_INDEX is set to NO, this option has no effect.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+FULL_SIDEBAR           = NO
+
 # The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that
 # doxygen will group on one line in the generated HTML documentation.
 #
@@ -1612,6 +1765,13 @@ TREEVIEW_WIDTH         = 250
 
 EXT_LINKS_IN_WINDOW    = NO
 
+# If the OBFUSCATE_EMAILS tag is set to YES, doxygen will obfuscate email
+# addresses.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+OBFUSCATE_EMAILS       = YES
+
 # If the HTML_FORMULA_FORMAT option is set to svg, doxygen will use the pdf2svg
 # tool (see https://github.com/dawbarton/pdf2svg) or inkscape (see
 # https://inkscape.org) to generate formulas as SVG images instead of PNGs for
@@ -1632,17 +1792,6 @@ HTML_FORMULA_FORMAT    = png
 
 FORMULA_FONTSIZE       = 10
 
-# Use the FORMULA_TRANSPARENT tag to determine whether or not the images
-# generated for formulas are transparent PNGs. Transparent PNGs are not
-# supported properly for IE 6.0, but are supported on all modern browsers.
-#
-# Note that when changing this option you need to delete any form_*.png files in
-# the HTML output directory before the changes have effect.
-# The default value is: YES.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-FORMULA_TRANSPARENT    = YES
-
 # The FORMULA_MACROFILE can contain LaTeX \newcommand and \renewcommand commands
 # to create new LaTeX commands to be used in formulas as building blocks. See
 # the section "Including formulas" for details.
@@ -1660,11 +1809,29 @@ FORMULA_MACROFILE      =
 
 USE_MATHJAX            = NO
 
+# With MATHJAX_VERSION it is possible to specify the MathJax version to be used.
+# Note that the different versions of MathJax have different requirements with
+# regards to the different settings, so it is possible that also other MathJax
+# settings have to be changed when switching between the different MathJax
+# versions.
+# Possible values are: MathJax_2 and MathJax_3.
+# The default value is: MathJax_2.
+# This tag requires that the tag USE_MATHJAX is set to YES.
+
+MATHJAX_VERSION        = MathJax_2
+
 # When MathJax is enabled you can set the default output format to be used for
-# the MathJax output. See the MathJax site (see:
-# http://docs.mathjax.org/en/v2.7-latest/output.html) for more details.
+# the MathJax output. For more details about the output format see MathJax
+# version 2 (see:
+# http://docs.mathjax.org/en/v2.7-latest/output.html) and MathJax version 3
+# (see:
+# http://docs.mathjax.org/en/latest/web/components/output.html).
 # Possible values are: HTML-CSS (which is slower, but has the best
-# compatibility), NativeMML (i.e. MathML) and SVG.
+# compatibility. This is the name for Mathjax version 2, for MathJax version 3
+# this will be translated into chtml), NativeMML (i.e. MathML. Only supported
+# for NathJax 2. For MathJax version 3 chtml will be used instead.), chtml (This
+# is the name for Mathjax version 3, for MathJax version 2 this will be
+# translated into HTML-CSS) and SVG.
 # The default value is: HTML-CSS.
 # This tag requires that the tag USE_MATHJAX is set to YES.
 
@@ -1677,15 +1844,21 @@ MATHJAX_FORMAT         = HTML-CSS
 # MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax
 # Content Delivery Network so you can quickly see the result without installing
 # MathJax. However, it is strongly recommended to install a local copy of
-# MathJax from https://www.mathjax.org before deployment.
-# The default value is: https://cdn.jsdelivr.net/npm/mathjax@2.
+# MathJax from https://www.mathjax.org before deployment. The default value is:
+# - in case of MathJax version 2: https://cdn.jsdelivr.net/npm/mathjax@2
+# - in case of MathJax version 3: https://cdn.jsdelivr.net/npm/mathjax@3
 # This tag requires that the tag USE_MATHJAX is set to YES.
 
 MATHJAX_RELPATH        = https://cdn.jsdelivr.net/npm/mathjax@2
 
 # The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax
 # extension names that should be enabled during MathJax rendering. For example
+# for MathJax version 2 (see
+# https://docs.mathjax.org/en/v2.7-latest/tex.html#tex-and-latex-extensions):
 # MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols
+# For example for MathJax version 3 (see
+# http://docs.mathjax.org/en/latest/input/tex/extensions/index.html):
+# MATHJAX_EXTENSIONS = ams
 # This tag requires that the tag USE_MATHJAX is set to YES.
 
 MATHJAX_EXTENSIONS     =
@@ -1865,29 +2038,31 @@ PAPER_TYPE             = a4
 
 EXTRA_PACKAGES         =
 
-# The LATEX_HEADER tag can be used to specify a personal LaTeX header for the
-# generated LaTeX document. The header should contain everything until the first
-# chapter. If it is left blank doxygen will generate a standard header. See
-# section "Doxygen usage" for information on how to let doxygen write the
-# default header to a separate file.
+# The LATEX_HEADER tag can be used to specify a user-defined LaTeX header for
+# the generated LaTeX document. The header should contain everything until the
+# first chapter. If it is left blank doxygen will generate a standard header. It
+# is highly recommended to start with a default header using
+# doxygen -w latex new_header.tex new_footer.tex new_stylesheet.sty
+# and then modify the file new_header.tex. See also section "Doxygen usage" for
+# information on how to generate the default header that doxygen normally uses.
 #
-# Note: Only use a user-defined header if you know what you are doing! The
-# following commands have a special meaning inside the header: $title,
-# $datetime, $date, $doxygenversion, $projectname, $projectnumber,
-# $projectbrief, $projectlogo. Doxygen will replace $title with the empty
-# string, for the replacement values of the other commands the user is referred
-# to HTML_HEADER.
+# Note: Only use a user-defined header if you know what you are doing!
+# Note: The header is subject to change so you typically have to regenerate the
+# default header when upgrading to a newer version of doxygen. The following
+# commands have a special meaning inside the header (and footer): For a
+# description of the possible markers and block names see the documentation.
 # This tag requires that the tag GENERATE_LATEX is set to YES.
 
 LATEX_HEADER           =
 
-# The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for the
-# generated LaTeX document. The footer should contain everything after the last
-# chapter. If it is left blank doxygen will generate a standard footer. See
+# The LATEX_FOOTER tag can be used to specify a user-defined LaTeX footer for
+# the generated LaTeX document. The footer should contain everything after the
+# last chapter. If it is left blank doxygen will generate a standard footer. See
 # LATEX_HEADER for more information on how to generate a default footer and what
-# special commands can be used inside the footer.
-#
-# Note: Only use a user-defined footer if you know what you are doing!
+# special commands can be used inside the footer. See also section "Doxygen
+# usage" for information on how to generate the default footer that doxygen
+# normally uses. Note: Only use a user-defined footer if you know what you are
+# doing!
 # This tag requires that the tag GENERATE_LATEX is set to YES.
 
 LATEX_FOOTER           =
@@ -1930,10 +2105,16 @@ PDF_HYPERLINKS         = YES
 
 USE_PDFLATEX           = YES
 
-# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \batchmode
-# command to the generated LaTeX files. This will instruct LaTeX to keep running
-# if errors occur, instead of asking the user for help. This option is also used
-# when generating formulas in HTML.
+# The LATEX_BATCHMODE tag signals the behavior of LaTeX in case of an error.
+# Possible values are: NO same as ERROR_STOP, YES same as BATCH, BATCH In batch
+# mode nothing is printed on the terminal, errors are scrolled as if <return> is
+# hit at every error; missing files that TeX tries to input or request from
+# keyboard input (\read on a not open input stream) cause the job to abort,
+# NON_STOP In nonstop mode the diagnostic message will appear on the terminal,
+# but there is no possibility of user interaction just like in batch mode,
+# SCROLL In scroll mode, TeX will stop only for missing files to input or if
+# keyboard input is necessary and ERROR_STOP In errorstop mode, TeX will stop at
+# each error, asking for user intervention.
 # The default value is: NO.
 # This tag requires that the tag GENERATE_LATEX is set to YES.
 
@@ -1946,16 +2127,6 @@ LATEX_BATCHMODE        = NO
 
 LATEX_HIDE_INDICES     = NO
 
-# If the LATEX_SOURCE_CODE tag is set to YES then doxygen will include source
-# code with syntax highlighting in the LaTeX output.
-#
-# Note that which sources are shown also depends on other settings such as
-# SOURCE_BROWSER.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_LATEX is set to YES.
-
-LATEX_SOURCE_CODE      = NO
-
 # The LATEX_BIB_STYLE tag can be used to specify the style to use for the
 # bibliography, e.g. plainnat, or ieeetr. See
 # https://en.wikipedia.org/wiki/BibTeX and \cite for more info.
@@ -1964,14 +2135,6 @@ LATEX_SOURCE_CODE      = NO
 
 LATEX_BIB_STYLE        = plain
 
-# If the LATEX_TIMESTAMP tag is set to YES then the footer of each generated
-# page will contain the date and time when the page was generated. Setting this
-# to NO can help when comparing the output of multiple runs.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_LATEX is set to YES.
-
-LATEX_TIMESTAMP        = NO
-
 # The LATEX_EMOJI_DIRECTORY tag is used to specify the (relative or absolute)
 # path from which the emoji images will be read. If a relative path is entered,
 # it will be relative to the LATEX_OUTPUT directory. If left blank the
@@ -2036,16 +2199,6 @@ RTF_STYLESHEET_FILE    =
 
 RTF_EXTENSIONS_FILE    =
 
-# If the RTF_SOURCE_CODE tag is set to YES then doxygen will include source code
-# with syntax highlighting in the RTF output.
-#
-# Note that which sources are shown also depends on other settings such as
-# SOURCE_BROWSER.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_RTF is set to YES.
-
-RTF_SOURCE_CODE        = NO
-
 #---------------------------------------------------------------------------
 # Configuration options related to the man page output
 #---------------------------------------------------------------------------
@@ -2142,21 +2295,12 @@ GENERATE_DOCBOOK       = NO
 
 DOCBOOK_OUTPUT         = docbook
 
-# If the DOCBOOK_PROGRAMLISTING tag is set to YES, doxygen will include the
-# program listings (including syntax highlighting and cross-referencing
-# information) to the DOCBOOK output. Note that enabling this will significantly
-# increase the size of the DOCBOOK output.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_DOCBOOK is set to YES.
-
-DOCBOOK_PROGRAMLISTING = NO
-
 #---------------------------------------------------------------------------
 # Configuration options for the AutoGen Definitions output
 #---------------------------------------------------------------------------
 
 # If the GENERATE_AUTOGEN_DEF tag is set to YES, doxygen will generate an
-# AutoGen Definitions (see http://autogen.sourceforge.net/) file that captures
+# AutoGen Definitions (see https://autogen.sourceforge.net/) file that captures
 # the structure of the code including all documentation. Note that this feature
 # is still experimental and incomplete at the moment.
 # The default value is: NO.
@@ -2167,6 +2311,28 @@ GENERATE_AUTOGEN_DEF   = NO
 # Configuration options related to Sqlite3 output
 #---------------------------------------------------------------------------
 
+# If the GENERATE_SQLITE3 tag is set to YES doxygen will generate a Sqlite3
+# database with symbols found by doxygen stored in tables.
+# The default value is: NO.
+
+GENERATE_SQLITE3       = NO
+
+# The SQLITE3_OUTPUT tag is used to specify where the Sqlite3 database will be
+# put. If a relative path is entered the value of OUTPUT_DIRECTORY will be put
+# in front of it.
+# The default directory is: sqlite3.
+# This tag requires that the tag GENERATE_SQLITE3 is set to YES.
+
+SQLITE3_OUTPUT         = sqlite3
+
+# The SQLITE3_OVERWRITE_DB tag is set to YES, the existing doxygen_sqlite3.db
+# database file will be recreated with each doxygen run. If set to NO, doxygen
+# will warn if an a database file is already found and not modify it.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_SQLITE3 is set to YES.
+
+SQLITE3_RECREATE_DB    = YES
+
 #---------------------------------------------------------------------------
 # Configuration options related to the Perl module output
 #---------------------------------------------------------------------------
@@ -2241,7 +2407,8 @@ SEARCH_INCLUDES        = YES
 
 # The INCLUDE_PATH tag can be used to specify one or more directories that
 # contain include files that are not input files but should be processed by the
-# preprocessor.
+# preprocessor. Note that the INCLUDE_PATH is not recursive, so the setting of
+# RECURSIVE has no effect here.
 # This tag requires that the tag SEARCH_INCLUDES is set to YES.
 
 INCLUDE_PATH           =
@@ -2306,17 +2473,17 @@ TAGFILES               =
 # tag file that is based on the input files it reads. See section "Linking to
 # external documentation" for more information about the usage of tag files.
 
-GENERATE_TAGFILE       =
+GENERATE_TAGFILE       = doc/tagfile
 
-# If the ALLEXTERNALS tag is set to YES, all external class will be listed in
-# the class index. If set to NO, only the inherited external classes will be
-# listed.
+# If the ALLEXTERNALS tag is set to YES, all external classes and namespaces
+# will be listed in the class and namespace index. If set to NO, only the
+# inherited external classes will be listed.
 # The default value is: NO.
 
 ALLEXTERNALS           = NO
 
 # If the EXTERNAL_GROUPS tag is set to YES, all external groups will be listed
-# in the modules index. If set to NO, only the current project's groups will be
+# in the topic index. If set to NO, only the current project's groups will be
 # listed.
 # The default value is: YES.
 
@@ -2330,25 +2497,9 @@ EXTERNAL_GROUPS        = YES
 EXTERNAL_PAGES         = YES
 
 #---------------------------------------------------------------------------
-# Configuration options related to the dot tool
+# Configuration options related to diagram generator tools
 #---------------------------------------------------------------------------
 
-# If the CLASS_DIAGRAMS tag is set to YES, doxygen will generate a class diagram
-# (in HTML and LaTeX) for classes with base or super classes. Setting the tag to
-# NO turns the diagrams off. Note that this option also works with HAVE_DOT
-# disabled, but it is recommended to install and use dot, since it yields more
-# powerful graphs.
-# The default value is: YES.
-
-CLASS_DIAGRAMS         = YES
-
-# You can include diagrams made with dia in doxygen documentation. Doxygen will
-# then run dia to produce the diagram and insert it in the documentation. The
-# DIA_PATH tag allows you to specify the directory where the dia binary resides.
-# If left empty dia is assumed to be found in the default search path.
-
-DIA_PATH               =
-
 # If set to YES the inheritance and collaboration graphs will hide inheritance
 # and usage relations if the target is undocumented or is not a class.
 # The default value is: YES.
@@ -2357,7 +2508,7 @@ HIDE_UNDOC_RELATIONS   = YES
 
 # If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
 # available from the path. This tool is part of Graphviz (see:
-# http://www.graphviz.org/), a graph visualization toolkit from AT&T and Lucent
+# https://www.graphviz.org/), a graph visualization toolkit from AT&T and Lucent
 # Bell Labs. The other options in this section have no effect if this option is
 # set to NO
 # The default value is: NO.
@@ -2374,49 +2525,73 @@ HAVE_DOT               = NO
 
 DOT_NUM_THREADS        = 0
 
-# When you want a differently looking font in the dot files that doxygen
-# generates you can specify the font name using DOT_FONTNAME. You need to make
-# sure dot is able to find the font, which can be done by putting it in a
-# standard location or by setting the DOTFONTPATH environment variable or by
-# setting DOT_FONTPATH to the directory containing the font.
-# The default value is: Helvetica.
+# DOT_COMMON_ATTR is common attributes for nodes, edges and labels of
+# subgraphs. When you want a differently looking font in the dot files that
+# doxygen generates you can specify fontname, fontcolor and fontsize attributes.
+# For details please see <a href=https://graphviz.org/doc/info/attrs.html>Node,
+# Edge and Graph Attributes specification</a> You need to make sure dot is able
+# to find the font, which can be done by putting it in a standard location or by
+# setting the DOTFONTPATH environment variable or by setting DOT_FONTPATH to the
+# directory containing the font. Default graphviz fontsize is 14.
+# The default value is: fontname=Helvetica,fontsize=10.
 # This tag requires that the tag HAVE_DOT is set to YES.
 
-DOT_FONTNAME           = Helvetica
+DOT_COMMON_ATTR        = "fontname=Helvetica,fontsize=10"
 
-# The DOT_FONTSIZE tag can be used to set the size (in points) of the font of
-# dot graphs.
-# Minimum value: 4, maximum value: 24, default value: 10.
+# DOT_EDGE_ATTR is concatenated with DOT_COMMON_ATTR. For elegant style you can
+# add 'arrowhead=open, arrowtail=open, arrowsize=0.5'. <a
+# href=https://graphviz.org/doc/info/arrows.html>Complete documentation about
+# arrows shapes.</a>
+# The default value is: labelfontname=Helvetica,labelfontsize=10.
 # This tag requires that the tag HAVE_DOT is set to YES.
 
-DOT_FONTSIZE           = 10
+DOT_EDGE_ATTR          = "labelfontname=Helvetica,labelfontsize=10"
 
-# By default doxygen will tell dot to use the default font as specified with
-# DOT_FONTNAME. If you specify a different font using DOT_FONTNAME you can set
-# the path where dot can find it using this tag.
+# DOT_NODE_ATTR is concatenated with DOT_COMMON_ATTR. For view without boxes
+# around nodes set 'shape=plain' or 'shape=plaintext' <a
+# href=https://www.graphviz.org/doc/info/shapes.html>Shapes specification</a>
+# The default value is: shape=box,height=0.2,width=0.4.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_NODE_ATTR          = "shape=box,height=0.2,width=0.4"
+
+# You can set the path where dot can find font specified with fontname in
+# DOT_COMMON_ATTR and others dot attributes.
 # This tag requires that the tag HAVE_DOT is set to YES.
 
 DOT_FONTPATH           =
 
-# If the CLASS_GRAPH tag is set to YES then doxygen will generate a graph for
-# each documented class showing the direct and indirect inheritance relations.
-# Setting this tag to YES will force the CLASS_DIAGRAMS tag to NO.
+# If the CLASS_GRAPH tag is set to YES or GRAPH or BUILTIN then doxygen will
+# generate a graph for each documented class showing the direct and indirect
+# inheritance relations. In case the CLASS_GRAPH tag is set to YES or GRAPH and
+# HAVE_DOT is enabled as well, then dot will be used to draw the graph. In case
+# the CLASS_GRAPH tag is set to YES and HAVE_DOT is disabled or if the
+# CLASS_GRAPH tag is set to BUILTIN, then the built-in generator will be used.
+# If the CLASS_GRAPH tag is set to TEXT the direct and indirect inheritance
+# relations will be shown as texts / links.
+# Possible values are: NO, YES, TEXT, GRAPH and BUILTIN.
 # The default value is: YES.
-# This tag requires that the tag HAVE_DOT is set to YES.
 
 CLASS_GRAPH            = YES
 
 # If the COLLABORATION_GRAPH tag is set to YES then doxygen will generate a
 # graph for each documented class showing the direct and indirect implementation
 # dependencies (inheritance, containment, and class references variables) of the
-# class with other documented classes.
+# class with other documented classes. Explicit enabling a collaboration graph,
+# when COLLABORATION_GRAPH is set to NO, can be accomplished by means of the
+# command \collaborationgraph. Disabling a collaboration graph can be
+# accomplished by means of the command \hidecollaborationgraph.
 # The default value is: YES.
 # This tag requires that the tag HAVE_DOT is set to YES.
 
 COLLABORATION_GRAPH    = YES
 
 # If the GROUP_GRAPHS tag is set to YES then doxygen will generate a graph for
-# groups, showing the direct groups dependencies.
+# groups, showing the direct groups dependencies. Explicit enabling a group
+# dependency graph, when GROUP_GRAPHS is set to NO, can be accomplished by means
+# of the command \groupgraph. Disabling a directory graph can be accomplished by
+# means of the command \hidegroupgraph. See also the chapter Grouping in the
+# manual.
 # The default value is: YES.
 # This tag requires that the tag HAVE_DOT is set to YES.
 
@@ -2476,7 +2651,9 @@ TEMPLATE_RELATIONS     = NO
 # If the INCLUDE_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are set to
 # YES then doxygen will generate a graph for each documented file showing the
 # direct and indirect include dependencies of the file with other documented
-# files.
+# files. Explicit enabling an include graph, when INCLUDE_GRAPH is is set to NO,
+# can be accomplished by means of the command \includegraph. Disabling an
+# include graph can be accomplished by means of the command \hideincludegraph.
 # The default value is: YES.
 # This tag requires that the tag HAVE_DOT is set to YES.
 
@@ -2485,7 +2662,10 @@ INCLUDE_GRAPH          = YES
 # If the INCLUDED_BY_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are
 # set to YES then doxygen will generate a graph for each documented file showing
 # the direct and indirect include dependencies of the file with other documented
-# files.
+# files. Explicit enabling an included by graph, when INCLUDED_BY_GRAPH is set
+# to NO, can be accomplished by means of the command \includedbygraph. Disabling
+# an included by graph can be accomplished by means of the command
+# \hideincludedbygraph.
 # The default value is: YES.
 # This tag requires that the tag HAVE_DOT is set to YES.
 
@@ -2525,16 +2705,26 @@ GRAPHICAL_HIERARCHY    = YES
 # If the DIRECTORY_GRAPH tag is set to YES then doxygen will show the
 # dependencies a directory has on other directories in a graphical way. The
 # dependency relations are determined by the #include relations between the
-# files in the directories.
+# files in the directories. Explicit enabling a directory graph, when
+# DIRECTORY_GRAPH is set to NO, can be accomplished by means of the command
+# \directorygraph. Disabling a directory graph can be accomplished by means of
+# the command \hidedirectorygraph.
 # The default value is: YES.
 # This tag requires that the tag HAVE_DOT is set to YES.
 
 DIRECTORY_GRAPH        = YES
 
+# The DIR_GRAPH_MAX_DEPTH tag can be used to limit the maximum number of levels
+# of child directories generated in directory dependency graphs by dot.
+# Minimum value: 1, maximum value: 25, default value: 1.
+# This tag requires that the tag DIRECTORY_GRAPH is set to YES.
+
+DIR_GRAPH_MAX_DEPTH    = 1
+
 # The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
 # generated by dot. For an explanation of the image formats see the section
 # output formats in the documentation of the dot tool (Graphviz (see:
-# http://www.graphviz.org/)).
+# https://www.graphviz.org/)).
 # Note: If you choose svg you need to set HTML_FILE_EXTENSION to xhtml in order
 # to make the SVG files visible in IE 9+ (other browsers do not have this
 # requirement).
@@ -2571,11 +2761,12 @@ DOT_PATH               =
 
 DOTFILE_DIRS           =
 
-# The MSCFILE_DIRS tag can be used to specify one or more directories that
-# contain msc files that are included in the documentation (see the \mscfile
-# command).
+# You can include diagrams made with dia in doxygen documentation. Doxygen will
+# then run dia to produce the diagram and insert it in the documentation. The
+# DIA_PATH tag allows you to specify the directory where the dia binary resides.
+# If left empty dia is assumed to be found in the default search path.
 
-MSCFILE_DIRS           =
+DIA_PATH               =
 
 # The DIAFILE_DIRS tag can be used to specify one or more directories that
 # contain dia files that are included in the documentation (see the \diafile
@@ -2584,10 +2775,10 @@ MSCFILE_DIRS           =
 DIAFILE_DIRS           =
 
 # When using plantuml, the PLANTUML_JAR_PATH tag should be used to specify the
-# path where java can find the plantuml.jar file. If left blank, it is assumed
-# PlantUML is not used or called during a preprocessing step. Doxygen will
-# generate a warning when it encounters a \startuml command in this case and
-# will not generate output for the diagram.
+# path where java can find the plantuml.jar file or to the filename of jar file
+# to be used. If left blank, it is assumed PlantUML is not used or called during
+# a preprocessing step. Doxygen will generate a warning when it encounters a
+# \startuml command in this case and will not generate output for the diagram.
 
 PLANTUML_JAR_PATH      =
 
@@ -2625,18 +2816,6 @@ DOT_GRAPH_MAX_NODES    = 50
 
 MAX_DOT_GRAPH_DEPTH    = 0
 
-# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent
-# background. This is disabled by default, because dot on Windows does not seem
-# to support this out of the box.
-#
-# Warning: Depending on the platform used, enabling this option may lead to
-# badly anti-aliased labels on the edges of a graph (i.e. they become hard to
-# read).
-# The default value is: NO.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-DOT_TRANSPARENT        = NO
-
 # Set the DOT_MULTI_TARGETS tag to YES to allow dot to generate multiple output
 # files in one run (i.e. multiple -o and -T options on the command line). This
 # makes dot run faster, but since only newer versions of dot (>1.8.10) support
@@ -2649,6 +2828,8 @@ DOT_MULTI_TARGETS      = NO
 # If the GENERATE_LEGEND tag is set to YES doxygen will generate a legend page
 # explaining the meaning of the various boxes and arrows in the dot generated
 # graphs.
+# Note: This tag requires that UML_LOOK isn't set, i.e. the doxygen internal
+# graphical representation for inheritance and collaboration diagrams is used.
 # The default value is: YES.
 # This tag requires that the tag HAVE_DOT is set to YES.
 
@@ -2657,8 +2838,24 @@ GENERATE_LEGEND        = YES
 # If the DOT_CLEANUP tag is set to YES, doxygen will remove the intermediate
 # files that are used to generate the various graphs.
 #
-# Note: This setting is not only used for dot files but also for msc and
-# plantuml temporary files.
+# Note: This setting is not only used for dot files but also for msc temporary
+# files.
 # The default value is: YES.
 
 DOT_CLEANUP            = YES
+
+# You can define message sequence charts within doxygen comments using the \msc
+# command. If the MSCGEN_TOOL tag is left empty (the default), then doxygen will
+# use a built-in version of mscgen tool to produce the charts. Alternatively,
+# the MSCGEN_TOOL tag can also specify the name an external tool. For instance,
+# specifying prog as the value, doxygen will call the tool as prog -T
+# <outfile_format> -o <outputfile> <inputfile>. The external tool should support
+# output file formats "png", "eps", "svg", and "ismap".
+
+MSCGEN_TOOL            =
+
+# The MSCFILE_DIRS tag can be used to specify one or more directories that
+# contain msc files that are included in the documentation (see the \mscfile
+# command).
+
+MSCFILE_DIRS           =
diff --git a/doc/html/annotated.html b/doc/html/annotated.html
index 1875790..d05b399 100644
--- a/doc/html/annotated.html
+++ b/doc/html/annotated.html
@@ -1,9 +1,9 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.8"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>LibDriver W25QXX: Data Structures</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -23,11 +23,10 @@
 <div id="titlearea">
 <table cellspacing="0" cellpadding="0">
  <tbody>
- <tr style="height: 56px;">
+ <tr id="projectrow">
   <td id="projectlogo"><img alt="Logo" src="doxygen.png"/></td>
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">LibDriver W25QXX
-   &#160;<span id="projectnumber">1.0.0</span>
+  <td id="projectalign">
+   <div id="projectname">LibDriver W25QXX<span id="projectnumber">&#160;1.0.0</span>
    </div>
    <div id="projectbrief">W25QXX full function driver</div>
   </td>
@@ -36,21 +35,22 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.8 -->
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search/",'.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
 <script type="text/javascript" src="menu.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(function() {
   initMenu('',true,false,'search.php','Search');
   $(document).ready(function() { init_search(); });
 });
-/* @license-end */</script>
+/* @license-end */
+</script>
 <div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
@@ -64,7 +64,7 @@
   </div>
 </div>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(document).ready(function(){initNavTree('annotated.html',''); initResizable(); });
 /* @license-end */
 </script>
@@ -78,20 +78,26 @@
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
 </div>
 
 <div class="header">
-  <div class="headertitle">
-<div class="title">Data Structures</div>  </div>
+  <div class="headertitle"><div class="title">Data Structures</div></div>
 </div><!--header-->
 <div class="contents">
 <div class="textblock">Here are the data structures with brief descriptions:</div><div class="directory">
 <table class="directory">
 <tr id="row_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structw25qxx__handle__s.html" target="_self">w25qxx_handle_s</a></td><td class="desc">W25qxx handle structure definition </td></tr>
-<tr id="row_1_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structw25qxx__info__s.html" target="_self">w25qxx_info_s</a></td><td class="desc">W25qxx information structure definition </td></tr>
+<tr id="row_1_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structw25qxx__info__s.html" target="_self">w25qxx_info_s</a></td><td class="desc">W25qxx information structure definition </td></tr>
 </table>
 </div><!-- directory -->
 </div><!-- contents -->
@@ -99,7 +105,7 @@
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
-    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
+    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/bc_sd.png b/doc/html/bc_sd.png
new file mode 100644
index 0000000..31ca888
Binary files /dev/null and b/doc/html/bc_sd.png differ
diff --git a/doc/html/classes.html b/doc/html/classes.html
index e143019..21766dd 100644
--- a/doc/html/classes.html
+++ b/doc/html/classes.html
@@ -1,9 +1,9 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.8"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>LibDriver W25QXX: Data Structure Index</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -23,11 +23,10 @@
 <div id="titlearea">
 <table cellspacing="0" cellpadding="0">
  <tbody>
- <tr style="height: 56px;">
+ <tr id="projectrow">
   <td id="projectlogo"><img alt="Logo" src="doxygen.png"/></td>
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">LibDriver W25QXX
-   &#160;<span id="projectnumber">1.0.0</span>
+  <td id="projectalign">
+   <div id="projectname">LibDriver W25QXX<span id="projectnumber">&#160;1.0.0</span>
    </div>
    <div id="projectbrief">W25QXX full function driver</div>
   </td>
@@ -36,21 +35,22 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.8 -->
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search/",'.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
 <script type="text/javascript" src="menu.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(function() {
   initMenu('',true,false,'search.php','Search');
   $(document).ready(function() { init_search(); });
 });
-/* @license-end */</script>
+/* @license-end */
+</script>
 <div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
@@ -64,7 +64,7 @@
   </div>
 </div>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(document).ready(function(){initNavTree('classes.html',''); initResizable(); });
 /* @license-end */
 </script>
@@ -78,20 +78,26 @@
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
 </div>
 
 <div class="header">
-  <div class="headertitle">
-<div class="title">Data Structure Index</div>  </div>
+  <div class="headertitle"><div class="title">Data Structure Index</div></div>
 </div><!--header-->
 <div class="contents">
 <div class="qindex"><a class="qindex" href="#letter_W">W</a></div>
 <div class="classindex">
 <dl class="classindex even">
-<dt class="alphachar"><a name="letter_W">W</a></dt>
+<dt class="alphachar"><a id="letter_W" name="letter_W">W</a></dt>
 <dd><a class="el" href="structw25qxx__handle__s.html">w25qxx_handle_s</a></dd><dd><a class="el" href="structw25qxx__info__s.html">w25qxx_info_s</a></dd></dl>
 </div>
 </div><!-- contents -->
@@ -99,7 +105,7 @@
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
-    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
+    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/dir_11ec664f88f5f079ad4de1adb8458c37.html b/doc/html/dir_11ec664f88f5f079ad4de1adb8458c37.html
index db9458f..18a6609 100644
--- a/doc/html/dir_11ec664f88f5f079ad4de1adb8458c37.html
+++ b/doc/html/dir_11ec664f88f5f079ad4de1adb8458c37.html
@@ -1,9 +1,9 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.8"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>LibDriver W25QXX: doc/mainpage Directory Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -23,11 +23,10 @@
 <div id="titlearea">
 <table cellspacing="0" cellpadding="0">
  <tbody>
- <tr style="height: 56px;">
+ <tr id="projectrow">
   <td id="projectlogo"><img alt="Logo" src="doxygen.png"/></td>
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">LibDriver W25QXX
-   &#160;<span id="projectnumber">1.0.0</span>
+  <td id="projectalign">
+   <div id="projectname">LibDriver W25QXX<span id="projectnumber">&#160;1.0.0</span>
    </div>
    <div id="projectbrief">W25QXX full function driver</div>
   </td>
@@ -36,21 +35,22 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.8 -->
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search/",'.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
 <script type="text/javascript" src="menu.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(function() {
   initMenu('',true,false,'search.php','Search');
   $(document).ready(function() { init_search(); });
 });
-/* @license-end */</script>
+/* @license-end */
+</script>
 <div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
@@ -64,7 +64,7 @@
   </div>
 </div>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(document).ready(function(){initNavTree('dir_11ec664f88f5f079ad4de1adb8458c37.html',''); initResizable(); });
 /* @license-end */
 </script>
@@ -78,20 +78,26 @@
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
 </div>
 
 <div class="header">
-  <div class="headertitle">
-<div class="title">mainpage Directory Reference</div>  </div>
+  <div class="headertitle"><div class="title">mainpage Directory Reference</div></div>
 </div><!--header-->
 <div class="contents">
 <table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="files" name="files"></a>
 Files</h2></td></tr>
-<tr class="memitem:mainpage_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mainpage_8h.html">mainpage.h</a> <a href="mainpage_8h_source.html">[code]</a></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top"><a href="mainpage_8h_source.html"><span class="icondoc"></span></a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mainpage_8h.html">mainpage.h</a></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 </div><!-- contents -->
@@ -100,7 +106,7 @@
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
     <li class="navelem"><a class="el" href="dir_e68e8157741866f444e17edd764ebbae.html">doc</a></li><li class="navelem"><a class="el" href="dir_11ec664f88f5f079ad4de1adb8458c37.html">mainpage</a></li>
-    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
+    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/dir_13e138d54eb8818da29c3992edef070a.html b/doc/html/dir_13e138d54eb8818da29c3992edef070a.html
index 011a399..1f5868e 100644
--- a/doc/html/dir_13e138d54eb8818da29c3992edef070a.html
+++ b/doc/html/dir_13e138d54eb8818da29c3992edef070a.html
@@ -1,9 +1,9 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.8"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>LibDriver W25QXX: test Directory Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -23,11 +23,10 @@
 <div id="titlearea">
 <table cellspacing="0" cellpadding="0">
  <tbody>
- <tr style="height: 56px;">
+ <tr id="projectrow">
   <td id="projectlogo"><img alt="Logo" src="doxygen.png"/></td>
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">LibDriver W25QXX
-   &#160;<span id="projectnumber">1.0.0</span>
+  <td id="projectalign">
+   <div id="projectname">LibDriver W25QXX<span id="projectnumber">&#160;1.0.0</span>
    </div>
    <div id="projectbrief">W25QXX full function driver</div>
   </td>
@@ -36,21 +35,22 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.8 -->
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search/",'.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
 <script type="text/javascript" src="menu.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(function() {
   initMenu('',true,false,'search.php','Search');
   $(document).ready(function() { init_search(); });
 });
-/* @license-end */</script>
+/* @license-end */
+</script>
 <div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
@@ -64,7 +64,7 @@
   </div>
 </div>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(document).ready(function(){initNavTree('dir_13e138d54eb8818da29c3992edef070a.html',''); initResizable(); });
 /* @license-end */
 </script>
@@ -78,29 +78,35 @@
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
 </div>
 
 <div class="header">
-  <div class="headertitle">
-<div class="title">test Directory Reference</div>  </div>
+  <div class="headertitle"><div class="title">test Directory Reference</div></div>
 </div><!--header-->
 <div class="contents">
 <table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="files" name="files"></a>
 Files</h2></td></tr>
-<tr class="memitem:driver__w25qxx__read__test_8c"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx__read__test_8c.html">driver_w25qxx_read_test.c</a> <a href="driver__w25qxx__read__test_8c_source.html">[code]</a></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top"><a href="driver__w25qxx__read__test_8c_source.html"><span class="icondoc"></span></a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx__read__test_8c.html">driver_w25qxx_read_test.c</a></td></tr>
 <tr class="memdesc:driver__w25qxx__read__test_8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">driver w25qxx read test source file <br /></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:driver__w25qxx__read__test_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx__read__test_8h.html">driver_w25qxx_read_test.h</a> <a href="driver__w25qxx__read__test_8h_source.html">[code]</a></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top"><a href="driver__w25qxx__read__test_8h_source.html"><span class="icondoc"></span></a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx__read__test_8h.html">driver_w25qxx_read_test.h</a></td></tr>
 <tr class="memdesc:driver__w25qxx__read__test_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">driver w25qxx read test header file <br /></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:driver__w25qxx__register__test_8c"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx__register__test_8c.html">driver_w25qxx_register_test.c</a> <a href="driver__w25qxx__register__test_8c_source.html">[code]</a></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top"><a href="driver__w25qxx__register__test_8c_source.html"><span class="icondoc"></span></a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx__register__test_8c.html">driver_w25qxx_register_test.c</a></td></tr>
 <tr class="memdesc:driver__w25qxx__register__test_8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">driver w25qxx register test source file <br /></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:driver__w25qxx__register__test_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx__register__test_8h.html">driver_w25qxx_register_test.h</a> <a href="driver__w25qxx__register__test_8h_source.html">[code]</a></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top"><a href="driver__w25qxx__register__test_8h_source.html"><span class="icondoc"></span></a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx__register__test_8h.html">driver_w25qxx_register_test.h</a></td></tr>
 <tr class="memdesc:driver__w25qxx__register__test_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">driver w25qxx register test header file <br /></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
@@ -110,7 +116,7 @@
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
     <li class="navelem"><a class="el" href="dir_13e138d54eb8818da29c3992edef070a.html">test</a></li>
-    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
+    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/dir_68267d1309a1af8e8297ef4c3efbcdba.html b/doc/html/dir_68267d1309a1af8e8297ef4c3efbcdba.html
index b4f7360..e70f99d 100644
--- a/doc/html/dir_68267d1309a1af8e8297ef4c3efbcdba.html
+++ b/doc/html/dir_68267d1309a1af8e8297ef4c3efbcdba.html
@@ -1,9 +1,9 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.8"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>LibDriver W25QXX: src Directory Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -23,11 +23,10 @@
 <div id="titlearea">
 <table cellspacing="0" cellpadding="0">
  <tbody>
- <tr style="height: 56px;">
+ <tr id="projectrow">
   <td id="projectlogo"><img alt="Logo" src="doxygen.png"/></td>
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">LibDriver W25QXX
-   &#160;<span id="projectnumber">1.0.0</span>
+  <td id="projectalign">
+   <div id="projectname">LibDriver W25QXX<span id="projectnumber">&#160;1.0.0</span>
    </div>
    <div id="projectbrief">W25QXX full function driver</div>
   </td>
@@ -36,21 +35,22 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.8 -->
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search/",'.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
 <script type="text/javascript" src="menu.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(function() {
   initMenu('',true,false,'search.php','Search');
   $(document).ready(function() { init_search(); });
 });
-/* @license-end */</script>
+/* @license-end */
+</script>
 <div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
@@ -64,7 +64,7 @@
   </div>
 </div>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(document).ready(function(){initNavTree('dir_68267d1309a1af8e8297ef4c3efbcdba.html',''); initResizable(); });
 /* @license-end */
 </script>
@@ -78,23 +78,29 @@
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
 </div>
 
 <div class="header">
-  <div class="headertitle">
-<div class="title">src Directory Reference</div>  </div>
+  <div class="headertitle"><div class="title">src Directory Reference</div></div>
 </div><!--header-->
 <div class="contents">
 <table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="files" name="files"></a>
 Files</h2></td></tr>
-<tr class="memitem:driver__w25qxx_8c"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx_8c.html">driver_w25qxx.c</a> <a href="driver__w25qxx_8c_source.html">[code]</a></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top"><a href="driver__w25qxx_8c_source.html"><span class="icondoc"></span></a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx_8c.html">driver_w25qxx.c</a></td></tr>
 <tr class="memdesc:driver__w25qxx_8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">driver w25qxx source file <br /></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:driver__w25qxx_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx_8h.html">driver_w25qxx.h</a> <a href="driver__w25qxx_8h_source.html">[code]</a></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top"><a href="driver__w25qxx_8h_source.html"><span class="icondoc"></span></a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx_8h.html">driver_w25qxx.h</a></td></tr>
 <tr class="memdesc:driver__w25qxx_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">driver w25qxx header file <br /></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
@@ -104,7 +110,7 @@
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
     <li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li>
-    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
+    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/dir_b31d54d5631803016a26f28213a41162.html b/doc/html/dir_b31d54d5631803016a26f28213a41162.html
index 3d8b222..bfb6f07 100644
--- a/doc/html/dir_b31d54d5631803016a26f28213a41162.html
+++ b/doc/html/dir_b31d54d5631803016a26f28213a41162.html
@@ -1,9 +1,9 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.8"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>LibDriver W25QXX: interface Directory Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -23,11 +23,10 @@
 <div id="titlearea">
 <table cellspacing="0" cellpadding="0">
  <tbody>
- <tr style="height: 56px;">
+ <tr id="projectrow">
   <td id="projectlogo"><img alt="Logo" src="doxygen.png"/></td>
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">LibDriver W25QXX
-   &#160;<span id="projectnumber">1.0.0</span>
+  <td id="projectalign">
+   <div id="projectname">LibDriver W25QXX<span id="projectnumber">&#160;1.0.0</span>
    </div>
    <div id="projectbrief">W25QXX full function driver</div>
   </td>
@@ -36,21 +35,22 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.8 -->
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search/",'.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
 <script type="text/javascript" src="menu.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(function() {
   initMenu('',true,false,'search.php','Search');
   $(document).ready(function() { init_search(); });
 });
-/* @license-end */</script>
+/* @license-end */
+</script>
 <div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
@@ -64,7 +64,7 @@
   </div>
 </div>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(document).ready(function(){initNavTree('dir_b31d54d5631803016a26f28213a41162.html',''); initResizable(); });
 /* @license-end */
 </script>
@@ -78,23 +78,29 @@
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
 </div>
 
 <div class="header">
-  <div class="headertitle">
-<div class="title">interface Directory Reference</div>  </div>
+  <div class="headertitle"><div class="title">interface Directory Reference</div></div>
 </div><!--header-->
 <div class="contents">
 <table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="files" name="files"></a>
 Files</h2></td></tr>
-<tr class="memitem:driver__w25qxx__interface_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx__interface_8h.html">driver_w25qxx_interface.h</a> <a href="driver__w25qxx__interface_8h_source.html">[code]</a></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top"><a href="driver__w25qxx__interface_8h_source.html"><span class="icondoc"></span></a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx__interface_8h.html">driver_w25qxx_interface.h</a></td></tr>
 <tr class="memdesc:driver__w25qxx__interface_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">driver w25qxx interface header file <br /></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:driver__w25qxx__interface__template_8c"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx__interface__template_8c.html">driver_w25qxx_interface_template.c</a> <a href="driver__w25qxx__interface__template_8c_source.html">[code]</a></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top"><a href="driver__w25qxx__interface__template_8c_source.html"><span class="icondoc"></span></a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx__interface__template_8c.html">driver_w25qxx_interface_template.c</a></td></tr>
 <tr class="memdesc:driver__w25qxx__interface__template_8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">driver w25qxx interface template source file <br /></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
@@ -104,7 +110,7 @@
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
     <li class="navelem"><a class="el" href="dir_b31d54d5631803016a26f28213a41162.html">interface</a></li>
-    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
+    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/dir_cfafba98a580ce4b62f8a6fa96d7cbb0.html b/doc/html/dir_cfafba98a580ce4b62f8a6fa96d7cbb0.html
index 9569eb1..3b8354f 100644
--- a/doc/html/dir_cfafba98a580ce4b62f8a6fa96d7cbb0.html
+++ b/doc/html/dir_cfafba98a580ce4b62f8a6fa96d7cbb0.html
@@ -1,9 +1,9 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.8"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>LibDriver W25QXX: example Directory Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -23,11 +23,10 @@
 <div id="titlearea">
 <table cellspacing="0" cellpadding="0">
  <tbody>
- <tr style="height: 56px;">
+ <tr id="projectrow">
   <td id="projectlogo"><img alt="Logo" src="doxygen.png"/></td>
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">LibDriver W25QXX
-   &#160;<span id="projectnumber">1.0.0</span>
+  <td id="projectalign">
+   <div id="projectname">LibDriver W25QXX<span id="projectnumber">&#160;1.0.0</span>
    </div>
    <div id="projectbrief">W25QXX full function driver</div>
   </td>
@@ -36,21 +35,22 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.8 -->
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search/",'.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
 <script type="text/javascript" src="menu.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(function() {
   initMenu('',true,false,'search.php','Search');
   $(document).ready(function() { init_search(); });
 });
-/* @license-end */</script>
+/* @license-end */
+</script>
 <div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
@@ -64,7 +64,7 @@
   </div>
 </div>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(document).ready(function(){initNavTree('dir_cfafba98a580ce4b62f8a6fa96d7cbb0.html',''); initResizable(); });
 /* @license-end */
 </script>
@@ -78,29 +78,35 @@
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
 </div>
 
 <div class="header">
-  <div class="headertitle">
-<div class="title">example Directory Reference</div>  </div>
+  <div class="headertitle"><div class="title">example Directory Reference</div></div>
 </div><!--header-->
 <div class="contents">
 <table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="files" name="files"></a>
 Files</h2></td></tr>
-<tr class="memitem:driver__w25qxx__advance_8c"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx__advance_8c.html">driver_w25qxx_advance.c</a> <a href="driver__w25qxx__advance_8c_source.html">[code]</a></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top"><a href="driver__w25qxx__advance_8c_source.html"><span class="icondoc"></span></a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx__advance_8c.html">driver_w25qxx_advance.c</a></td></tr>
 <tr class="memdesc:driver__w25qxx__advance_8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">driver w25qxx advance source file <br /></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:driver__w25qxx__advance_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx__advance_8h.html">driver_w25qxx_advance.h</a> <a href="driver__w25qxx__advance_8h_source.html">[code]</a></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top"><a href="driver__w25qxx__advance_8h_source.html"><span class="icondoc"></span></a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx__advance_8h.html">driver_w25qxx_advance.h</a></td></tr>
 <tr class="memdesc:driver__w25qxx__advance_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">driver w25qxx advance header file <br /></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:driver__w25qxx__basic_8c"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx__basic_8c.html">driver_w25qxx_basic.c</a> <a href="driver__w25qxx__basic_8c_source.html">[code]</a></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top"><a href="driver__w25qxx__basic_8c_source.html"><span class="icondoc"></span></a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx__basic_8c.html">driver_w25qxx_basic.c</a></td></tr>
 <tr class="memdesc:driver__w25qxx__basic_8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">driver w25qxx basic source file <br /></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:driver__w25qxx__basic_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx__basic_8h.html">driver_w25qxx_basic.h</a> <a href="driver__w25qxx__basic_8h_source.html">[code]</a></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top"><a href="driver__w25qxx__basic_8h_source.html"><span class="icondoc"></span></a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx__basic_8h.html">driver_w25qxx_basic.h</a></td></tr>
 <tr class="memdesc:driver__w25qxx__basic_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">driver w25qxx basic header file <br /></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
@@ -110,7 +116,7 @@
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
     <li class="navelem"><a class="el" href="dir_cfafba98a580ce4b62f8a6fa96d7cbb0.html">example</a></li>
-    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
+    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/dir_e68e8157741866f444e17edd764ebbae.html b/doc/html/dir_e68e8157741866f444e17edd764ebbae.html
index f00b4f2..23cb193 100644
--- a/doc/html/dir_e68e8157741866f444e17edd764ebbae.html
+++ b/doc/html/dir_e68e8157741866f444e17edd764ebbae.html
@@ -1,9 +1,9 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.8"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>LibDriver W25QXX: doc Directory Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -23,11 +23,10 @@
 <div id="titlearea">
 <table cellspacing="0" cellpadding="0">
  <tbody>
- <tr style="height: 56px;">
+ <tr id="projectrow">
   <td id="projectlogo"><img alt="Logo" src="doxygen.png"/></td>
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">LibDriver W25QXX
-   &#160;<span id="projectnumber">1.0.0</span>
+  <td id="projectalign">
+   <div id="projectname">LibDriver W25QXX<span id="projectnumber">&#160;1.0.0</span>
    </div>
    <div id="projectbrief">W25QXX full function driver</div>
   </td>
@@ -36,21 +35,22 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.8 -->
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search/",'.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
 <script type="text/javascript" src="menu.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(function() {
   initMenu('',true,false,'search.php','Search');
   $(document).ready(function() { init_search(); });
 });
-/* @license-end */</script>
+/* @license-end */
+</script>
 <div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
@@ -64,7 +64,7 @@
   </div>
 </div>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(document).ready(function(){initNavTree('dir_e68e8157741866f444e17edd764ebbae.html',''); initResizable(); });
 /* @license-end */
 </script>
@@ -78,20 +78,26 @@
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
 </div>
 
 <div class="header">
-  <div class="headertitle">
-<div class="title">doc Directory Reference</div>  </div>
+  <div class="headertitle"><div class="title">doc Directory Reference</div></div>
 </div><!--header-->
 <div class="contents">
 <table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="subdirs"></a>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="subdirs" name="subdirs"></a>
 Directories</h2></td></tr>
-<tr class="memitem:dir_11ec664f88f5f079ad4de1adb8458c37"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_11ec664f88f5f079ad4de1adb8458c37.html">mainpage</a></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top"><span class="iconfclosed"></span>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_11ec664f88f5f079ad4de1adb8458c37.html">mainpage</a></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 </div><!-- contents -->
@@ -100,7 +106,7 @@
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
     <li class="navelem"><a class="el" href="dir_e68e8157741866f444e17edd764ebbae.html">doc</a></li>
-    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
+    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/doc.svg b/doc/html/doc.svg
new file mode 100644
index 0000000..0b928a5
--- /dev/null
+++ b/doc/html/doc.svg
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "https://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" width="16" height="24" viewBox="0 0 80 60" id="doc" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve">
+<g style="fill:#4665A2">
+<path d="m 14,-1.1445312 c -2.824372,0 -5.1445313,2.320159 -5.1445312,5.1445312 v 72 c 0,2.824372 2.3201592,5.144531 5.1445312,5.144531 h 52 c 2.824372,0 5.144531,-2.320159 5.144531,-5.144531 V 23.699219 a 1.1447968,1.1447968 0 0 0 -0.01563,-0.1875 C 70.977847,22.605363 70.406495,21.99048 70.007812,21.591797 L 48.208984,-0.20898438 C 47.606104,-0.81186474 46.804652,-1.1445313 46,-1.1445312 Z m 1.144531,6.2890624 H 42.855469 V 24 c 0,1.724372 1.420159,3.144531 3.144531,3.144531 H 64.855469 V 74.855469 H 15.144531 Z m 34,4.4179688 L 60.4375,20.855469 H 49.144531 Z"/>
+</g>
+<g style="fill:#D8DFEE;stroke-width:0">
+<path d="M 3.0307167,13.993174 V 7.0307167 h 2.7576792 2.7576792 v 1.8826151 c 0,1.2578262 0.0099,1.9287572 0.029818,2.0216512 0.03884,0.181105 0.168631,0.348218 0.33827,0.43554 l 0.1355017,0.06975 1.9598092,0.0079 1.959809,0.0078 v 4.749829 4.749829 H 8 3.0307167 Z" transform="matrix(5,0,0,5,0,-30)" />
+<path d="M 9.8293515,9.0581469 V 7.9456453 l 1.1058025,1.1055492 c 0.608191,0.6080521 1.105802,1.1086775 1.105802,1.1125015 0,0.0038 -0.497611,0.007 -1.105802,0.007 H 9.8293515 Z" transform="matrix(5,0,0,5,0,-30)" />
+</g>
+</svg>
diff --git a/doc/html/docd.svg b/doc/html/docd.svg
new file mode 100644
index 0000000..ac18b27
--- /dev/null
+++ b/doc/html/docd.svg
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "https://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" width="16" height="24" viewBox="0 0 80 60" id="doc" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve">
+<g style="fill:#C4CFE5">
+<path d="m 14,-1.1445312 c -2.824372,0 -5.1445313,2.320159 -5.1445312,5.1445312 v 72 c 0,2.824372 2.3201592,5.144531 5.1445312,5.144531 h 52 c 2.824372,0 5.144531,-2.320159 5.144531,-5.144531 V 23.699219 a 1.1447968,1.1447968 0 0 0 -0.01563,-0.1875 C 70.977847,22.605363 70.406495,21.99048 70.007812,21.591797 L 48.208984,-0.20898438 C 47.606104,-0.81186474 46.804652,-1.1445313 46,-1.1445312 Z m 1.144531,6.2890624 H 42.855469 V 24 c 0,1.724372 1.420159,3.144531 3.144531,3.144531 H 64.855469 V 74.855469 H 15.144531 Z m 34,4.4179688 L 60.4375,20.855469 H 49.144531 Z"/>
+</g>
+<g style="fill:#4665A2;stroke-width:0">
+<path d="M 3.0307167,13.993174 V 7.0307167 h 2.7576792 2.7576792 v 1.8826151 c 0,1.2578262 0.0099,1.9287572 0.029818,2.0216512 0.03884,0.181105 0.168631,0.348218 0.33827,0.43554 l 0.1355017,0.06975 1.9598092,0.0079 1.959809,0.0078 v 4.749829 4.749829 H 8 3.0307167 Z" transform="matrix(5,0,0,5,0,-30)" />
+<path d="M 9.8293515,9.0581469 V 7.9456453 l 1.1058025,1.1055492 c 0.608191,0.6080521 1.105802,1.1086775 1.105802,1.1125015 0,0.0038 -0.497611,0.007 -1.105802,0.007 H 9.8293515 Z" transform="matrix(5,0,0,5,0,-30)" />
+</g>
+</svg>
diff --git a/doc/html/doxygen.css b/doc/html/doxygen.css
index ffbff02..009a9b5 100644
--- a/doc/html/doxygen.css
+++ b/doc/html/doxygen.css
@@ -1,29 +1,378 @@
-/* The standard CSS for doxygen 1.9.1 */
-
-body, table, div, p, dl {
-	font: 400 14px/22px Roboto,sans-serif;
+/* The standard CSS for doxygen 1.9.8*/
+
+html {
+/* page base colors */
+--page-background-color: white;
+--page-foreground-color: black;
+--page-link-color: #3D578C;
+--page-visited-link-color: #4665A2;
+
+/* index */
+--index-odd-item-bg-color: #F8F9FC;
+--index-even-item-bg-color: white;
+--index-header-color: black;
+--index-separator-color: #A0A0A0;
+
+/* header */
+--header-background-color: #F9FAFC;
+--header-separator-color: #C4CFE5;
+--header-gradient-image: url('nav_h.png');
+--group-header-separator-color: #879ECB;
+--group-header-color: #354C7B;
+--inherit-header-color: gray;
+
+--footer-foreground-color: #2A3D61;
+--footer-logo-width: 104px;
+--citation-label-color: #334975;
+--glow-color: cyan;
+
+--title-background-color: white;
+--title-separator-color: #5373B4;
+--directory-separator-color: #9CAFD4;
+--separator-color: #4A6AAA;
+
+--blockquote-background-color: #F7F8FB;
+--blockquote-border-color: #9CAFD4;
+
+--scrollbar-thumb-color: #9CAFD4;
+--scrollbar-background-color: #F9FAFC;
+
+--icon-background-color: #728DC1;
+--icon-foreground-color: white;
+--icon-doc-image: url('doc.svg');
+--icon-folder-open-image: url('folderopen.svg');
+--icon-folder-closed-image: url('folderclosed.svg');
+
+/* brief member declaration list */
+--memdecl-background-color: #F9FAFC;
+--memdecl-separator-color: #DEE4F0;
+--memdecl-foreground-color: #555;
+--memdecl-template-color: #4665A2;
+
+/* detailed member list */
+--memdef-border-color: #A8B8D9;
+--memdef-title-background-color: #E2E8F2;
+--memdef-title-gradient-image: url('nav_f.png');
+--memdef-proto-background-color: #DFE5F1;
+--memdef-proto-text-color: #253555;
+--memdef-proto-text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
+--memdef-doc-background-color: white;
+--memdef-param-name-color: #602020;
+--memdef-template-color: #4665A2;
+
+/* tables */
+--table-cell-border-color: #2D4068;
+--table-header-background-color: #374F7F;
+--table-header-foreground-color: #FFFFFF;
+
+/* labels */
+--label-background-color: #728DC1;
+--label-left-top-border-color: #5373B4;
+--label-right-bottom-border-color: #C4CFE5;
+--label-foreground-color: white;
+
+/** navigation bar/tree/menu */
+--nav-background-color: #F9FAFC;
+--nav-foreground-color: #364D7C;
+--nav-gradient-image: url('tab_b.png');
+--nav-gradient-hover-image: url('tab_h.png');
+--nav-gradient-active-image: url('tab_a.png');
+--nav-gradient-active-image-parent: url("../tab_a.png");
+--nav-separator-image: url('tab_s.png');
+--nav-breadcrumb-image: url('bc_s.png');
+--nav-breadcrumb-border-color: #C2CDE4;
+--nav-splitbar-image: url('splitbar.png');
+--nav-font-size-level1: 13px;
+--nav-font-size-level2: 10px;
+--nav-font-size-level3: 9px;
+--nav-text-normal-color: #283A5D;
+--nav-text-hover-color: white;
+--nav-text-active-color: white;
+--nav-text-normal-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
+--nav-text-hover-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);
+--nav-text-active-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);
+--nav-menu-button-color: #364D7C;
+--nav-menu-background-color: white;
+--nav-menu-foreground-color: #555555;
+--nav-menu-toggle-color: rgba(255, 255, 255, 0.5);
+--nav-arrow-color: #9CAFD4;
+--nav-arrow-selected-color: #9CAFD4;
+
+/* table of contents */
+--toc-background-color: #F4F6FA;
+--toc-border-color: #D8DFEE;
+--toc-header-color: #4665A2;
+--toc-down-arrow-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' version='1.1' height='10px' width='5px' fill='grey'><text x='0' y='5' font-size='10'>&%238595;</text></svg>");
+
+/** search field */
+--search-background-color: white;
+--search-foreground-color: #909090;
+--search-magnification-image: url('mag.svg');
+--search-magnification-select-image: url('mag_sel.svg');
+--search-active-color: black;
+--search-filter-background-color: #F9FAFC;
+--search-filter-foreground-color: black;
+--search-filter-border-color: #90A5CE;
+--search-filter-highlight-text-color: white;
+--search-filter-highlight-bg-color: #3D578C;
+--search-results-foreground-color: #425E97;
+--search-results-background-color: #EEF1F7;
+--search-results-border-color: black;
+--search-box-shadow: inset 0.5px 0.5px 3px 0px #555;
+
+/** code fragments */
+--code-keyword-color: #008000;
+--code-type-keyword-color: #604020;
+--code-flow-keyword-color: #E08000;
+--code-comment-color: #800000;
+--code-preprocessor-color: #806020;
+--code-string-literal-color: #002080;
+--code-char-literal-color: #008080;
+--code-xml-cdata-color: black;
+--code-vhdl-digit-color: #FF00FF;
+--code-vhdl-char-color: #000000;
+--code-vhdl-keyword-color: #700070;
+--code-vhdl-logic-color: #FF0000;
+--code-link-color: #4665A2;
+--code-external-link-color: #4665A2;
+--fragment-foreground-color: black;
+--fragment-background-color: #FBFCFD;
+--fragment-border-color: #C4CFE5;
+--fragment-lineno-border-color: #00FF00;
+--fragment-lineno-background-color: #E8E8E8;
+--fragment-lineno-foreground-color: black;
+--fragment-lineno-link-fg-color: #4665A2;
+--fragment-lineno-link-bg-color: #D8D8D8;
+--fragment-lineno-link-hover-fg-color: #4665A2;
+--fragment-lineno-link-hover-bg-color: #C8C8C8;
+--tooltip-foreground-color: black;
+--tooltip-background-color: white;
+--tooltip-border-color: gray;
+--tooltip-doc-color: grey;
+--tooltip-declaration-color: #006318;
+--tooltip-link-color: #4665A2;
+--tooltip-shadow: 1px 1px 7px gray;
+--fold-line-color: #808080;
+--fold-minus-image: url('minus.svg');
+--fold-plus-image: url('plus.svg');
+--fold-minus-image-relpath: url('../../minus.svg');
+--fold-plus-image-relpath: url('../../plus.svg');
+
+/** font-family */
+--font-family-normal: Roboto,sans-serif;
+--font-family-monospace: 'JetBrains Mono',Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace,fixed;
+--font-family-nav: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif;
+--font-family-title: Tahoma,Arial,sans-serif;
+--font-family-toc: Verdana,'DejaVu Sans',Geneva,sans-serif;
+--font-family-search: Arial,Verdana,sans-serif;
+--font-family-icon: Arial,Helvetica;
+--font-family-tooltip: Roboto,sans-serif;
+
+}
+
+@media (prefers-color-scheme: dark) {
+  html:not(.dark-mode) {
+    color-scheme: dark;
+
+/* page base colors */
+--page-background-color: black;
+--page-foreground-color: #C9D1D9;
+--page-link-color: #90A5CE;
+--page-visited-link-color: #A3B4D7;
+
+/* index */
+--index-odd-item-bg-color: #0B101A;
+--index-even-item-bg-color: black;
+--index-header-color: #C4CFE5;
+--index-separator-color: #334975;
+
+/* header */
+--header-background-color: #070B11;
+--header-separator-color: #141C2E;
+--header-gradient-image: url('nav_hd.png');
+--group-header-separator-color: #283A5D;
+--group-header-color: #90A5CE;
+--inherit-header-color: #A0A0A0;
+
+--footer-foreground-color: #5B7AB7;
+--footer-logo-width: 60px;
+--citation-label-color: #90A5CE;
+--glow-color: cyan;
+
+--title-background-color: #090D16;
+--title-separator-color: #354C79;
+--directory-separator-color: #283A5D;
+--separator-color: #283A5D;
+
+--blockquote-background-color: #101826;
+--blockquote-border-color: #283A5D;
+
+--scrollbar-thumb-color: #283A5D;
+--scrollbar-background-color: #070B11;
+
+--icon-background-color: #334975;
+--icon-foreground-color: #C4CFE5;
+--icon-doc-image: url('docd.svg');
+--icon-folder-open-image: url('folderopend.svg');
+--icon-folder-closed-image: url('folderclosedd.svg');
+
+/* brief member declaration list */
+--memdecl-background-color: #0B101A;
+--memdecl-separator-color: #2C3F65;
+--memdecl-foreground-color: #BBB;
+--memdecl-template-color: #7C95C6;
+
+/* detailed member list */
+--memdef-border-color: #233250;
+--memdef-title-background-color: #1B2840;
+--memdef-title-gradient-image: url('nav_fd.png');
+--memdef-proto-background-color: #19243A;
+--memdef-proto-text-color: #9DB0D4;
+--memdef-proto-text-shadow: 0px 1px 1px rgba(0, 0, 0, 0.9);
+--memdef-doc-background-color: black;
+--memdef-param-name-color: #D28757;
+--memdef-template-color: #7C95C6;
+
+/* tables */
+--table-cell-border-color: #283A5D;
+--table-header-background-color: #283A5D;
+--table-header-foreground-color: #C4CFE5;
+
+/* labels */
+--label-background-color: #354C7B;
+--label-left-top-border-color: #4665A2;
+--label-right-bottom-border-color: #283A5D;
+--label-foreground-color: #CCCCCC;
+
+/** navigation bar/tree/menu */
+--nav-background-color: #101826;
+--nav-foreground-color: #364D7C;
+--nav-gradient-image: url('tab_bd.png');
+--nav-gradient-hover-image: url('tab_hd.png');
+--nav-gradient-active-image: url('tab_ad.png');
+--nav-gradient-active-image-parent: url("../tab_ad.png");
+--nav-separator-image: url('tab_sd.png');
+--nav-breadcrumb-image: url('bc_sd.png');
+--nav-breadcrumb-border-color: #2A3D61;
+--nav-splitbar-image: url('splitbard.png');
+--nav-font-size-level1: 13px;
+--nav-font-size-level2: 10px;
+--nav-font-size-level3: 9px;
+--nav-text-normal-color: #B6C4DF;
+--nav-text-hover-color: #DCE2EF;
+--nav-text-active-color: #DCE2EF;
+--nav-text-normal-shadow: 0px 1px 1px black;
+--nav-text-hover-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);
+--nav-text-active-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);
+--nav-menu-button-color: #B6C4DF;
+--nav-menu-background-color: #05070C;
+--nav-menu-foreground-color: #BBBBBB;
+--nav-menu-toggle-color: rgba(255, 255, 255, 0.2);
+--nav-arrow-color: #334975;
+--nav-arrow-selected-color: #90A5CE;
+
+/* table of contents */
+--toc-background-color: #151E30;
+--toc-border-color: #202E4A;
+--toc-header-color: #A3B4D7;
+--toc-down-arrow-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' version='1.1' height='10px' width='5px'><text x='0' y='5' font-size='10' fill='grey'>&%238595;</text></svg>");
+
+/** search field */
+--search-background-color: black;
+--search-foreground-color: #C5C5C5;
+--search-magnification-image: url('mag_d.svg');
+--search-magnification-select-image: url('mag_seld.svg');
+--search-active-color: #C5C5C5;
+--search-filter-background-color: #101826;
+--search-filter-foreground-color: #90A5CE;
+--search-filter-border-color: #7C95C6;
+--search-filter-highlight-text-color: #BCC9E2;
+--search-filter-highlight-bg-color: #283A5D;
+--search-results-background-color: #101826;
+--search-results-foreground-color: #90A5CE;
+--search-results-border-color: #7C95C6;
+--search-box-shadow: inset 0.5px 0.5px 3px 0px #2F436C;
+
+/** code fragments */
+--code-keyword-color: #CC99CD;
+--code-type-keyword-color: #AB99CD;
+--code-flow-keyword-color: #E08000;
+--code-comment-color: #717790;
+--code-preprocessor-color: #65CABE;
+--code-string-literal-color: #7EC699;
+--code-char-literal-color: #00E0F0;
+--code-xml-cdata-color: #C9D1D9;
+--code-vhdl-digit-color: #FF00FF;
+--code-vhdl-char-color: #C0C0C0;
+--code-vhdl-keyword-color: #CF53C9;
+--code-vhdl-logic-color: #FF0000;
+--code-link-color: #79C0FF;
+--code-external-link-color: #79C0FF;
+--fragment-foreground-color: #C9D1D9;
+--fragment-background-color: black;
+--fragment-border-color: #30363D;
+--fragment-lineno-border-color: #30363D;
+--fragment-lineno-background-color: black;
+--fragment-lineno-foreground-color: #6E7681;
+--fragment-lineno-link-fg-color: #6E7681;
+--fragment-lineno-link-bg-color: #303030;
+--fragment-lineno-link-hover-fg-color: #8E96A1;
+--fragment-lineno-link-hover-bg-color: #505050;
+--tooltip-foreground-color: #C9D1D9;
+--tooltip-background-color: #202020;
+--tooltip-border-color: #C9D1D9;
+--tooltip-doc-color: #D9E1E9;
+--tooltip-declaration-color: #20C348;
+--tooltip-link-color: #79C0FF;
+--tooltip-shadow: none;
+--fold-line-color: #808080;
+--fold-minus-image: url('minusd.svg');
+--fold-plus-image: url('plusd.svg');
+--fold-minus-image-relpath: url('../../minusd.svg');
+--fold-plus-image-relpath: url('../../plusd.svg');
+
+/** font-family */
+--font-family-normal: Roboto,sans-serif;
+--font-family-monospace: 'JetBrains Mono',Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace,fixed;
+--font-family-nav: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif;
+--font-family-title: Tahoma,Arial,sans-serif;
+--font-family-toc: Verdana,'DejaVu Sans',Geneva,sans-serif;
+--font-family-search: Arial,Verdana,sans-serif;
+--font-family-icon: Arial,Helvetica;
+--font-family-tooltip: Roboto,sans-serif;
+
+}}
+body {
+    background-color: var(--page-background-color);
+    color: var(--page-foreground-color);
 }
 
-p.reference, p.definition {
-	font: 400 14px/22px Roboto,sans-serif;
+body, table, div, p, dl {
+	font-weight: 400;
+	font-size: 14px;
+	font-family: var(--font-family-normal);
+	line-height: 22px;
 }
 
 /* @group Heading Levels */
 
-h1.groupheader {
-	font-size: 150%;
-}
-
 .title {
-	font: 400 14px/28px Roboto,sans-serif;
+	font-weight: 400;
+	font-size: 14px;
+	font-family: var(--font-family-normal);
+	line-height: 28px;
 	font-size: 150%;
 	font-weight: bold;
 	margin: 10px 2px;
 }
 
+h1.groupheader {
+	font-size: 150%;
+}
+
 h2.groupheader {
-	border-bottom: 1px solid #879ECB;
-	color: #354C7B;
+	border-bottom: 1px solid var(--group-header-separator-color);
+	color: var(--group-header-color);
 	font-size: 150%;
 	font-weight: normal;
 	margin-top: 1.75em;
@@ -46,22 +395,13 @@ h1, h2, h3, h4, h5, h6 {
 }
 
 h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow {
-	text-shadow: 0 0 15px cyan;
+	text-shadow: 0 0 15px var(--glow-color);
 }
 
 dt {
 	font-weight: bold;
 }
 
-ul.multicol {
-	-moz-column-gap: 1em;
-	-webkit-column-gap: 1em;
-	column-gap: 1em;
-	-moz-column-count: 3;
-	-webkit-column-count: 3;
-	column-count: 3;
-}
-
 p.startli, p.startdd {
 	margin-top: 2px;
 }
@@ -113,7 +453,6 @@ h3.version {
 }
 
 div.navtab {
-	border-right: 1px solid #A3B4D7;
 	padding-right: 15px;
 	text-align: right;
 	line-height: 110%;
@@ -127,16 +466,17 @@ td.navtab {
 	padding-right: 6px;
 	padding-left: 6px;
 }
+
 td.navtabHL {
-	background-image: url('tab_a.png');
+	background-image: var(--nav-gradient-active-image);
 	background-repeat:repeat-x;
 	padding-right: 6px;
 	padding-left: 6px;
 }
 
 td.navtabHL a, td.navtabHL a:visited {
-	color: #fff;
-	text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);
+	color: var(--nav-text-hover-color);
+	text-shadow: var(--nav-text-hover-shadow);
 }
 
 a.navtab {
@@ -148,7 +488,13 @@ div.qindex{
 	width: 100%;
 	line-height: 140%;
 	font-size: 130%;
-	color: #A0A0A0;
+	color: var(--index-separator-color);
+}
+
+#main-menu a:focus {
+	outline: auto;
+	z-index: 10;
+	position: relative;
 }
 
 dt.alphachar{
@@ -157,7 +503,7 @@ dt.alphachar{
 }
 
 .alphachar a{
-	color: black;
+	color: var(--index-header-color);
 }
 
 .alphachar a:hover, .alphachar a:visited{
@@ -176,8 +522,12 @@ dt.alphachar{
 	line-height: 1.15em;
 }
 
+.classindex dl.even {
+	background-color: var(--index-even-item-bg-color);
+}
+
 .classindex dl.odd {
-	background-color: #F8F9FC;
+	background-color: var(--index-odd-item-bg-color);
 }
 
 @media(min-width: 1120px) {
@@ -196,23 +546,19 @@ dt.alphachar{
 /* @group Link Styling */
 
 a {
-	color: #3D578C;
+	color: var(--page-link-color);
 	font-weight: normal;
 	text-decoration: none;
 }
 
 .contents a:visited {
-	color: #4665A2;
+	color: var(--page-visited-link-color);
 }
 
 a:hover {
 	text-decoration: underline;
 }
 
-.contents a.qindexHL:visited {
-        color: #FFFFFF;
-}
-
 a.el {
 	font-weight: bold;
 }
@@ -221,12 +567,39 @@ a.elRef {
 }
 
 a.code, a.code:visited, a.line, a.line:visited {
-	color: #4665A2; 
+	color: var(--code-link-color);
 }
 
 a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited {
-	color: #4665A2; 
-}
+	color: var(--code-external-link-color);
+}
+
+a.code.hl_class { /* style for links to class names in code snippets */ }
+a.code.hl_struct { /* style for links to struct names in code snippets */ }
+a.code.hl_union { /* style for links to union names in code snippets */ }
+a.code.hl_interface { /* style for links to interface names in code snippets */ }
+a.code.hl_protocol { /* style for links to protocol names in code snippets */ }
+a.code.hl_category { /* style for links to category names in code snippets */ }
+a.code.hl_exception { /* style for links to exception names in code snippets */ }
+a.code.hl_service { /* style for links to service names in code snippets */ }
+a.code.hl_singleton { /* style for links to singleton names in code snippets */ }
+a.code.hl_concept { /* style for links to concept names in code snippets */ }
+a.code.hl_namespace { /* style for links to namespace names in code snippets */ }
+a.code.hl_package { /* style for links to package names in code snippets */ }
+a.code.hl_define { /* style for links to macro names in code snippets */ }
+a.code.hl_function { /* style for links to function names in code snippets */ }
+a.code.hl_variable { /* style for links to variable names in code snippets */ }
+a.code.hl_typedef { /* style for links to typedef names in code snippets */ }
+a.code.hl_enumvalue { /* style for links to enum value names in code snippets */ }
+a.code.hl_enumeration { /* style for links to enumeration names in code snippets */ }
+a.code.hl_signal { /* style for links to Qt signal names in code snippets */ }
+a.code.hl_slot { /* style for links to Qt slot names in code snippets */ }
+a.code.hl_friend { /* style for links to friend names in code snippets */ }
+a.code.hl_dcop { /* style for links to KDE3 DCOP names in code snippets */ }
+a.code.hl_property { /* style for links to property names in code snippets */ }
+a.code.hl_event { /* style for links to event names in code snippets */ }
+a.code.hl_sequence { /* style for links to sequence names in code snippets */ }
+a.code.hl_dictionary { /* style for links to dictionary names in code snippets */ }
 
 /* @end */
 
@@ -235,7 +608,17 @@ dl.el {
 }
 
 ul {
-  overflow: hidden; /*Fixed: list item bullets overlap floating elements*/
+  overflow: visible;
+}
+
+ul.multicol {
+        -moz-column-gap: 1em;
+        -webkit-column-gap: 1em;
+        column-gap: 1em;
+        -moz-column-count: 3;
+        -webkit-column-count: 3;
+        column-count: 3;
+        list-style-type: none;
 }
 
 #side-nav ul {
@@ -254,30 +637,32 @@ ul {
 }
 
 pre.fragment {
-        border: 1px solid #C4CFE5;
-        background-color: #FBFCFD;
+        border: 1px solid var(--fragment-border-color);
+        background-color: var(--fragment-background-color);
+	color: var(--fragment-foreground-color);
         padding: 4px 6px;
         margin: 4px 8px 4px 2px;
         overflow: auto;
         word-wrap: break-word;
         font-size:  9pt;
         line-height: 125%;
-        font-family: monospace, fixed;
+        font-family: var(--font-family-monospace);
         font-size: 105%;
 }
 
 div.fragment {
-  padding: 0 0 1px 0; /*Fixed: last line underline overlap border*/
-  margin: 4px 8px 4px 2px;
-	background-color: #FBFCFD;
-	border: 1px solid #C4CFE5;
+	padding: 0 0 1px 0; /*Fixed: last line underline overlap border*/
+	margin: 4px 8px 4px 2px;
+	color: var(--fragment-foreground-color);
+	background-color: var(--fragment-background-color);
+	border: 1px solid var(--fragment-border-color);
 }
 
 div.line {
-	font-family: monospace, fixed;
+	font-family: var(--font-family-monospace);
         font-size: 13px;
 	min-height: 13px;
-	line-height: 1.0;
+	line-height: 1.2;
 	text-wrap: unrestricted;
 	white-space: -moz-pre-wrap; /* Moz */
 	white-space: -pre-wrap;     /* Opera 4-6 */
@@ -306,24 +691,40 @@ div.line:after {
 }
 
 div.line.glow {
-	background-color: cyan;
-	box-shadow: 0 0 10px cyan;
+	background-color: var(--glow-color);
+	box-shadow: 0 0 10px var(--glow-color);
 }
 
+span.fold {
+        margin-left: 5px;
+        margin-right: 1px;
+        margin-top: 0px;
+        margin-bottom: 0px;
+        padding: 0px;
+	display: inline-block;
+	width: 12px;
+	height: 12px;
+	background-repeat:no-repeat;
+        background-position:center;
+}
 
 span.lineno {
 	padding-right: 4px;
+        margin-right: 9px;
 	text-align: right;
-	border-right: 2px solid #0F0;
-	background-color: #E8E8E8;
+	border-right: 2px solid var(--fragment-lineno-border-color);
+	color: var(--fragment-lineno-foreground-color);
+	background-color: var(--fragment-lineno-background-color);
         white-space: pre;
 }
-span.lineno a {
-	background-color: #D8D8D8;
+span.lineno a, span.lineno a:visited {
+	color: var(--fragment-lineno-link-fg-color);
+	background-color: var(--fragment-lineno-link-bg-color);
 }
 
 span.lineno a:hover {
-	background-color: #C8C8C8;
+	color: var(--fragment-lineno-link-hover-fg-color);
+	background-color: var(--fragment-lineno-link-hover-bg-color);
 }
 
 .lineno {
@@ -335,24 +736,6 @@ span.lineno a:hover {
 	user-select: none;
 }
 
-div.ah, span.ah {
-	background-color: black;
-	font-weight: bold;
-	color: #FFFFFF;
-	margin-bottom: 3px;
-	margin-top: 3px;
-	padding: 0.2em;
-	border: solid thin #333;
-	border-radius: 0.5em;
-	-webkit-border-radius: .5em;
-	-moz-border-radius: .5em;
-	box-shadow: 2px 2px 3px #999;
-	-webkit-box-shadow: 2px 2px 3px #999;
-	-moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px;
-	background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444));
-	background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000 110%);
-}
-
 div.classindex ul {
         list-style: none;
         padding-left: 0;
@@ -374,8 +757,7 @@ div.groupText {
 }
 
 body {
-	background-color: white;
-	color: black;
+	color: var(--page-foreground-color);
         margin: 0;
 }
 
@@ -385,29 +767,15 @@ div.contents {
 	margin-right: 8px;
 }
 
-td.indexkey {
-	background-color: #EBEFF6;
-	font-weight: bold;
-	border: 1px solid #C4CFE5;
-	margin: 2px 0px 2px 0;
-	padding: 2px 10px;
-        white-space: nowrap;
-        vertical-align: top;
-}
-
-td.indexvalue {
-	background-color: #EBEFF6;
-	border: 1px solid #C4CFE5;
-	padding: 2px 10px;
-	margin: 2px 0px;
+p.formulaDsp {
+	text-align: center;
 }
 
-tr.memlist {
-	background-color: #EEF1F7;
+img.dark-mode-visible {
+	display: none;
 }
-
-p.formulaDsp {
-	text-align: center;
+img.light-mode-visible {
+	display: none;
 }
 
 img.formulaDsp {
@@ -437,89 +805,74 @@ address.footer {
 img.footer {
 	border: 0px;
 	vertical-align: middle;
+	width: var(--footer-logo-width);
+}
+
+.compoundTemplParams {
+	color: var(--memdecl-template-color);
+	font-size: 80%;
+	line-height: 120%;
 }
 
 /* @group Code Colorization */
 
 span.keyword {
-	color: #008000
+	color: var(--code-keyword-color);
 }
 
 span.keywordtype {
-	color: #604020
+	color: var(--code-type-keyword-color);
 }
 
 span.keywordflow {
-	color: #e08000
+	color: var(--code-flow-keyword-color);
 }
 
 span.comment {
-	color: #800000
+	color: var(--code-comment-color);
 }
 
 span.preprocessor {
-	color: #806020
+	color: var(--code-preprocessor-color);
 }
 
 span.stringliteral {
-	color: #002080
+	color: var(--code-string-literal-color);
 }
 
 span.charliteral {
-	color: #008080
+	color: var(--code-char-literal-color);
+}
+
+span.xmlcdata {
+	color: var(--code-xml-cdata-color);
 }
 
 span.vhdldigit { 
-	color: #ff00ff 
+	color: var(--code-vhdl-digit-color);
 }
 
 span.vhdlchar { 
-	color: #000000 
+	color: var(--code-vhdl-char-color);
 }
 
 span.vhdlkeyword { 
-	color: #700070 
+	color: var(--code-vhdl-keyword-color);
 }
 
 span.vhdllogic { 
-	color: #ff0000 
+	color: var(--code-vhdl-logic-color);
 }
 
 blockquote {
-        background-color: #F7F8FB;
-        border-left: 2px solid #9CAFD4;
+        background-color: var(--blockquote-background-color);
+        border-left: 2px solid var(--blockquote-border-color);
         margin: 0 24px 0 4px;
         padding: 0 12px 0 16px;
 }
 
-blockquote.DocNodeRTL {
-   border-left: 0;
-   border-right: 2px solid #9CAFD4;
-   margin: 0 4px 0 24px;
-   padding: 0 16px 0 12px;
-}
-
 /* @end */
 
-/*
-.search {
-	color: #003399;
-	font-weight: bold;
-}
-
-form.search {
-	margin-bottom: 0px;
-	margin-top: 0px;
-}
-
-input.search {
-	font-size: 75%;
-	color: #000080;
-	font-weight: normal;
-	background-color: #e8eef2;
-}
-*/
-
 td.tiny {
 	font-size: 75%;
 }
@@ -527,18 +880,19 @@ td.tiny {
 .dirtab {
 	padding: 4px;
 	border-collapse: collapse;
-	border: 1px solid #A3B4D7;
+	border: 1px solid var(--table-cell-border-color);
 }
 
 th.dirtab {
-	background: #EBEFF6;
+	background-color: var(--table-header-background-color);
+	color: var(--table-header-foreground-color);
 	font-weight: bold;
 }
 
 hr {
 	height: 0px;
 	border: none;
-	border-top: 1px solid #4A6AAA;
+	border-top: 1px solid var(--separator-color);
 }
 
 hr.footer {
@@ -566,14 +920,14 @@ table.memberdecls {
 }
 
 .memberdecls td.glow, .fieldtable tr.glow {
-	background-color: cyan;
-	box-shadow: 0 0 15px cyan;
+	background-color: var(--glow-color);
+	box-shadow: 0 0 15px var(--glow-color);
 }
 
 .mdescLeft, .mdescRight,
 .memItemLeft, .memItemRight,
 .memTemplItemLeft, .memTemplItemRight, .memTemplParams {
-	background-color: #F9FAFC;
+	background-color: var(--memdecl-background-color);
 	border: none;
 	margin: 4px;
 	padding: 1px 0 0 8px;
@@ -581,11 +935,11 @@ table.memberdecls {
 
 .mdescLeft, .mdescRight {
 	padding: 0px 8px 4px 8px;
-	color: #555;
+	color: var(--memdecl-foreground-color);
 }
 
 .memSeparator {
-        border-bottom: 1px solid #DEE4F0;
+        border-bottom: 1px solid var(--memdecl-separator-color);
         line-height: 1px;
         margin: 0px;
         padding: 0px;
@@ -600,7 +954,7 @@ table.memberdecls {
 }
 
 .memTemplParams {
-	color: #4665A2;
+	color: var(--memdecl-template-color);
         white-space: nowrap;
 	font-size: 80%;
 }
@@ -613,15 +967,15 @@ table.memberdecls {
 
 .memtitle {
 	padding: 8px;
-	border-top: 1px solid #A8B8D9;
-	border-left: 1px solid #A8B8D9;
-	border-right: 1px solid #A8B8D9;
+	border-top: 1px solid var(--memdef-border-color);
+	border-left: 1px solid var(--memdef-border-color);
+	border-right: 1px solid var(--memdef-border-color);
 	border-top-right-radius: 4px;
 	border-top-left-radius: 4px;
 	margin-bottom: -1px;
-	background-image: url('nav_f.png');
+	background-image: var(--memdef-title-gradient-image);
 	background-repeat: repeat-x;
-	background-color: #E2E8F2;
+	background-color: var(--memdef-title-background-color);
 	line-height: 1.25;
 	font-weight: 300;
 	float:left;
@@ -636,20 +990,11 @@ table.memberdecls {
 
 .memtemplate {
 	font-size: 80%;
-	color: #4665A2;
+	color: var(--memdef-template-color);
 	font-weight: normal;
 	margin-left: 9px;
 }
 
-.memnav {
-	background-color: #EBEFF6;
-	border: 1px solid #A3B4D7;
-	text-align: center;
-	margin: 2px;
-	margin-right: 15px;
-	padding: 2px;
-}
-
 .mempage {
 	width: 100%;
 }
@@ -668,7 +1013,7 @@ table.memberdecls {
 }
 
 .memitem.glow {
-         box-shadow: 0 0 15px cyan;
+         box-shadow: 0 0 15px var(--glow-color);
 }
 
 .memname {
@@ -681,41 +1026,32 @@ table.memberdecls {
 }
 
 .memproto, dl.reflist dt {
-        border-top: 1px solid #A8B8D9;
-        border-left: 1px solid #A8B8D9;
-        border-right: 1px solid #A8B8D9;
+        border-top: 1px solid var(--memdef-border-color);
+        border-left: 1px solid var(--memdef-border-color);
+        border-right: 1px solid var(--memdef-border-color);
         padding: 6px 0px 6px 0px;
-        color: #253555;
+        color: var(--memdef-proto-text-color);
         font-weight: bold;
-        text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
-        background-color: #DFE5F1;
-        /* opera specific markup */
+        text-shadow: var(--memdef-proto-text-shadow);
+        background-color: var(--memdef-proto-background-color);
         box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
         border-top-right-radius: 4px;
-        /* firefox specific markup */
-        -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
-        -moz-border-radius-topright: 4px;
-        /* webkit specific markup */
-        -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
-        -webkit-border-top-right-radius: 4px;
-
 }
 
 .overload {
-        font-family: "courier new",courier,monospace;
+        font-family: var(--font-family-monospace);
 	font-size: 65%;
 }
 
 .memdoc, dl.reflist dd {
-        border-bottom: 1px solid #A8B8D9;      
-        border-left: 1px solid #A8B8D9;      
-        border-right: 1px solid #A8B8D9; 
+        border-bottom: 1px solid var(--memdef-border-color);
+        border-left: 1px solid var(--memdef-border-color);
+        border-right: 1px solid var(--memdef-border-color);
         padding: 6px 10px 2px 10px;
-        background-color: #FBFCFD;
         border-top-width: 0;
         background-image:url('nav_g.png');
         background-repeat:repeat-x;
-        background-color: #FFFFFF;
+        background-color: var(--memdef-doc-background-color);
         /* opera specific markup */
         border-bottom-left-radius: 4px;
         border-bottom-right-radius: 4px;
@@ -748,7 +1084,7 @@ dl.reflist dd {
 }
 
 .paramname {
-	color: #602020;
+	color: var(--memdef-param-name-color);
 	white-space: nowrap;
 }
 .paramname em {
@@ -761,20 +1097,20 @@ dl.reflist dd {
 .params, .retval, .exception, .tparams {
         margin-left: 0px;
         padding-left: 0px;
-}       
+}
 
 .params .paramname, .retval .paramname, .tparams .paramname, .exception .paramname {
         font-weight: bold;
         vertical-align: top;
 }
-        
+
 .params .paramtype, .tparams .paramtype {
         font-style: italic;
         vertical-align: top;
-}       
-        
+}
+
 .params .paramdir, .tparams .paramdir {
-        font-family: "courier new",courier,monospace;
+        font-family: var(--font-family-monospace);
         vertical-align: top;
 }
 
@@ -798,13 +1134,13 @@ span.mlabels {
 }
 
 span.mlabel {
-        background-color: #728DC1;
-        border-top:1px solid #5373B4;
-        border-left:1px solid #5373B4;
-        border-right:1px solid #C4CFE5;
-        border-bottom:1px solid #C4CFE5;
+        background-color: var(--label-background-color);
+        border-top:1px solid var(--label-left-top-border-color);
+        border-left:1px solid var(--label-left-top-border-color);
+        border-right:1px solid var(--label-right-bottom-border-color);
+        border-bottom:1px solid var(--label-right-bottom-border-color);
 	text-shadow: none;
-	color: white;
+	color: var(--label-foreground-color);
 	margin-right: 4px;
 	padding: 2px 3px;
 	border-radius: 3px;
@@ -821,8 +1157,8 @@ span.mlabel {
 
 div.directory {
         margin: 10px 0px;
-        border-top: 1px solid #9CAFD4;
-        border-bottom: 1px solid #9CAFD4;
+        border-top: 1px solid var(--directory-separator-color);
+        border-bottom: 1px solid var(--directory-separator-color);
         width: 100%;
 }
 
@@ -858,9 +1194,14 @@ div.directory {
 	border-left: 1px solid rgba(0,0,0,0.05);
 }
 
+.directory tr.odd {
+	padding-left: 6px;
+	background-color: var(--index-odd-item-bg-color);
+}
+
 .directory tr.even {
 	padding-left: 6px;
-	background-color: #F7F8FB;
+	background-color: var(--index-even-item-bg-color);
 }
 
 .directory img {
@@ -878,11 +1219,11 @@ div.directory {
         cursor: pointer;
         padding-left: 2px;
         padding-right: 2px;
-	color: #3D578C;
+	color: var(--page-link-color);
 }
 
 .arrow {
-    color: #9CAFD4;
+    color: var(--nav-arrow-color);
     -webkit-user-select: none;
     -khtml-user-select: none;
     -moz-user-select: none;
@@ -896,14 +1237,15 @@ div.directory {
 }
 
 .icon {
-    font-family: Arial, Helvetica;
+    font-family: var(--font-family-icon);
+    line-height: normal;
     font-weight: bold;
     font-size: 12px;
     height: 14px;
     width: 16px;
     display: inline-block;
-    background-color: #728DC1;
-    color: white;
+    background-color: var(--icon-background-color);
+    color: var(--icon-foreground-color);
     text-align: center;
     border-radius: 4px;
     margin-left: 2px;
@@ -920,8 +1262,7 @@ div.directory {
     width: 24px;
     height: 18px;
     margin-bottom: 4px;
-    background-image:url('folderopen.png');
-    background-position: 0px -4px;
+    background-image:var(--icon-folder-open-image);
     background-repeat: repeat-y;
     vertical-align:top;
     display: inline-block;
@@ -931,8 +1272,7 @@ div.directory {
     width: 24px;
     height: 18px;
     margin-bottom: 4px;
-    background-image:url('folderclosed.png');
-    background-position: 0px -4px;
+    background-image:var(--icon-folder-closed-image);
     background-repeat: repeat-y;
     vertical-align:top;
     display: inline-block;
@@ -942,17 +1282,13 @@ div.directory {
     width: 24px;
     height: 18px;
     margin-bottom: 4px;
-    background-image:url('doc.png');
+    background-image:var(--icon-doc-image);
     background-position: 0px -4px;
     background-repeat: repeat-y;
     vertical-align:top;
     display: inline-block;
 }
 
-table.directory {
-    font: 400 14px Roboto,sans-serif;
-}
-
 /* @end */
 
 div.dynheader {
@@ -967,7 +1303,7 @@ div.dynheader {
 
 address {
 	font-style: normal;
-	color: #2A3D61;
+	color: var(--footer-foreground-color);
 }
 
 table.doxtable caption {
@@ -981,28 +1317,23 @@ table.doxtable {
 }
 
 table.doxtable td, table.doxtable th {
-	border: 1px solid #2D4068;
+	border: 1px solid var(--table-cell-border-color);
 	padding: 3px 7px 2px;
 }
 
 table.doxtable th {
-	background-color: #374F7F;
-	color: #FFFFFF;
+	background-color: var(--table-header-background-color);
+	color: var(--table-header-foreground-color);
 	font-size: 110%;
 	padding-bottom: 4px;
 	padding-top: 5px;
 }
 
 table.fieldtable {
-        /*width: 100%;*/
         margin-bottom: 10px;
-        border: 1px solid #A8B8D9;
+        border: 1px solid var(--memdef-border-color);
         border-spacing: 0px;
-        -moz-border-radius: 4px;
-        -webkit-border-radius: 4px;
         border-radius: 4px;
-        -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px;
-        -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15);
         box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15);
 }
 
@@ -1012,8 +1343,8 @@ table.fieldtable {
 
 .fieldtable td.fieldtype, .fieldtable td.fieldname {
         white-space: nowrap;
-        border-right: 1px solid #A8B8D9;
-        border-bottom: 1px solid #A8B8D9;
+        border-right: 1px solid var(--memdef-border-color);
+        border-bottom: 1px solid var(--memdef-border-color);
         vertical-align: top;
 }
 
@@ -1022,14 +1353,13 @@ table.fieldtable {
 }
 
 .fieldtable td.fielddoc {
-        border-bottom: 1px solid #A8B8D9;
-        /*width: 100%;*/
+        border-bottom: 1px solid var(--memdef-border-color);
 }
 
 .fieldtable td.fielddoc p:first-child {
         margin-top: 0px;
-}       
-        
+}
+
 .fieldtable td.fielddoc p:last-child {
         margin-bottom: 2px;
 }
@@ -1039,22 +1369,18 @@ table.fieldtable {
 }
 
 .fieldtable th {
-        background-image:url('nav_f.png');
+        background-image: var(--memdef-title-gradient-image);
         background-repeat:repeat-x;
-        background-color: #E2E8F2;
+        background-color: var(--memdef-title-background-color);
         font-size: 90%;
-        color: #253555;
+        color: var(--memdef-proto-text-color);
         padding-bottom: 4px;
         padding-top: 5px;
         text-align:left;
         font-weight: 400;
-        -moz-border-radius-topleft: 4px;
-        -moz-border-radius-topright: 4px;
-        -webkit-border-top-left-radius: 4px;
-        -webkit-border-top-right-radius: 4px;
         border-top-left-radius: 4px;
         border-top-right-radius: 4px;
-        border-bottom: 1px solid #A8B8D9;
+        border-bottom: 1px solid var(--memdef-border-color);
 }
 
 
@@ -1062,7 +1388,7 @@ table.fieldtable {
 	top: 0px;
 	left: 10px;
 	height: 36px;
-	background-image: url('tab_b.png');
+	background-image: var(--nav-gradient-image);
 	z-index: 101;
 	overflow: hidden;
 	font-size: 13px;
@@ -1071,13 +1397,13 @@ table.fieldtable {
 .navpath ul
 {
 	font-size: 11px;
-	background-image:url('tab_b.png');
+	background-image: var(--nav-gradient-image);
 	background-repeat:repeat-x;
 	background-position: 0 -5px;
 	height:30px;
 	line-height:30px;
-	color:#8AA0CC;
-	border:solid 1px #C2CDE4;
+	color:var(--nav-text-normal-color);
+	border:solid 1px var(--nav-breadcrumb-border-color);
 	overflow:hidden;
 	margin:0px;
 	padding:0px;
@@ -1089,10 +1415,10 @@ table.fieldtable {
 	float:left;
 	padding-left:10px;
 	padding-right:15px;
-	background-image:url('bc_s.png');
+	background-image:var(--nav-breadcrumb-image);
 	background-repeat:no-repeat;
 	background-position:right;
-	color:#364D7C;
+	color: var(--nav-foreground-color);
 }
 
 .navpath li.navelem a
@@ -1101,15 +1427,16 @@ table.fieldtable {
 	display:block;
 	text-decoration: none;
 	outline: none;
-	color: #283A5D;
-	font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif;
-	text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
-	text-decoration: none;        
+	color: var(--nav-text-normal-color);
+	font-family: var(--font-family-nav);
+	text-shadow: var(--nav-text-normal-shadow);
+	text-decoration: none;
 }
 
 .navpath li.navelem a:hover
 {
-	color:#6884BD;
+	color: var(--nav-text-hover-color);
+	text-shadow: var(--nav-text-hover-shadow);
 }
 
 .navpath li.footer
@@ -1121,7 +1448,7 @@ table.fieldtable {
         background-image:none;
         background-repeat:no-repeat;
         background-position:right;
-        color:#364D7C;
+        color: var(--footer-foreground-color);
         font-size: 8pt;
 }
 
@@ -1133,7 +1460,7 @@ div.summary
 	padding-right: 5px;
 	width: 50%;
 	text-align: right;
-}       
+}
 
 div.summary a
 {
@@ -1148,7 +1475,7 @@ table.classindex
         margin-right: 3%;
         width: 94%;
         border: 0;
-        border-spacing: 0; 
+        border-spacing: 0;
         padding: 0;
 }
 
@@ -1166,11 +1493,11 @@ div.ingroups a
 
 div.header
 {
-        background-image:url('nav_h.png');
+        background-image: var(--header-gradient-image);
         background-repeat:repeat-x;
-	background-color: #F9FAFC;
+	background-color: var(--header-background-color);
 	margin:  0px;
-	border-bottom: 1px solid #C4CFE5;
+	border-bottom: 1px solid var(--header-separator-color);
 }
 
 div.headertitle
@@ -1193,11 +1520,6 @@ dl.section {
 	padding-left: 0px;
 }
 
-dl.section.DocNodeRTL {
-  margin-right: 0px;
-  padding-right: 0px;
-}
-
 dl.note {
   margin-left: -7px;
   padding-left: 3px;
@@ -1205,16 +1527,6 @@ dl.note {
   border-color: #D0C000;
 }
 
-dl.note.DocNodeRTL {
-  margin-left: 0;
-  padding-left: 0;
-  border-left: 0;
-  margin-right: -7px;
-  padding-right: 3px;
-  border-right: 4px solid;
-  border-color: #D0C000;
-}
-
 dl.warning, dl.attention {
   margin-left: -7px;
   padding-left: 3px;
@@ -1222,16 +1534,6 @@ dl.warning, dl.attention {
   border-color: #FF0000;
 }
 
-dl.warning.DocNodeRTL, dl.attention.DocNodeRTL {
-  margin-left: 0;
-  padding-left: 0;
-  border-left: 0;
-  margin-right: -7px;
-  padding-right: 3px;
-  border-right: 4px solid;
-  border-color: #FF0000;
-}
-
 dl.pre, dl.post, dl.invariant {
   margin-left: -7px;
   padding-left: 3px;
@@ -1239,16 +1541,6 @@ dl.pre, dl.post, dl.invariant {
   border-color: #00D000;
 }
 
-dl.pre.DocNodeRTL, dl.post.DocNodeRTL, dl.invariant.DocNodeRTL {
-  margin-left: 0;
-  padding-left: 0;
-  border-left: 0;
-  margin-right: -7px;
-  padding-right: 3px;
-  border-right: 4px solid;
-  border-color: #00D000;
-}
-
 dl.deprecated {
   margin-left: -7px;
   padding-left: 3px;
@@ -1256,16 +1548,6 @@ dl.deprecated {
   border-color: #505050;
 }
 
-dl.deprecated.DocNodeRTL {
-  margin-left: 0;
-  padding-left: 0;
-  border-left: 0;
-  margin-right: -7px;
-  padding-right: 3px;
-  border-right: 4px solid;
-  border-color: #505050;
-}
-
 dl.todo {
   margin-left: -7px;
   padding-left: 3px;
@@ -1273,16 +1555,6 @@ dl.todo {
   border-color: #00C0E0;
 }
 
-dl.todo.DocNodeRTL {
-  margin-left: 0;
-  padding-left: 0;
-  border-left: 0;
-  margin-right: -7px;
-  padding-right: 3px;
-  border-right: 4px solid;
-  border-color: #00C0E0;
-}
-
 dl.test {
   margin-left: -7px;
   padding-left: 3px;
@@ -1290,16 +1562,6 @@ dl.test {
   border-color: #3030E0;
 }
 
-dl.test.DocNodeRTL {
-  margin-left: 0;
-  padding-left: 0;
-  border-left: 0;
-  margin-right: -7px;
-  padding-right: 3px;
-  border-right: 4px solid;
-  border-color: #3030E0;
-}
-
 dl.bug {
   margin-left: -7px;
   padding-left: 3px;
@@ -1307,21 +1569,16 @@ dl.bug {
   border-color: #C08050;
 }
 
-dl.bug.DocNodeRTL {
-  margin-left: 0;
-  padding-left: 0;
-  border-left: 0;
-  margin-right: -7px;
-  padding-right: 3px;
-  border-right: 4px solid;
-  border-color: #C08050;
-}
-
 dl.section dd {
 	margin-bottom: 6px;
 }
 
 
+#projectrow
+{
+	height: 56px;
+}
+
 #projectlogo
 {
 	text-align: center;
@@ -1337,25 +1594,29 @@ dl.section dd {
 #projectalign
 {
         vertical-align: middle;
+        padding-left: 0.5em;
 }
 
 #projectname
 {
-	font: 300% Tahoma, Arial,sans-serif;
+	font-size: 200%;
+	font-family: var(--font-family-title);
 	margin: 0px;
 	padding: 2px 0px;
 }
-    
+
 #projectbrief
 {
-	font: 120% Tahoma, Arial,sans-serif;
+	font-size: 90%;
+        font-family: var(--font-family-title);
 	margin: 0px;
 	padding: 0px;
 }
 
 #projectnumber
 {
-	font: 50% Tahoma, Arial,sans-serif;
+	font-size: 50%;
+	font-family: 50% var(--font-family-title);
 	margin: 0px;
 	padding: 0px;
 }
@@ -1365,7 +1626,8 @@ dl.section dd {
 	padding: 0px;
 	margin: 0px;
 	width: 100%;
-	border-bottom: 1px solid #5373B4;
+	border-bottom: 1px solid var(--title-separator-color);
+	background-color: var(--title-background-color);
 }
 
 .image
@@ -1398,17 +1660,12 @@ dl.section dd {
 	font-weight: bold;
 }
 
-div.zoom
-{
-	border: 1px solid #90A5CE;
-}
-
 dl.citelist {
         margin-bottom:50px;
 }
 
 dl.citelist dt {
-        color:#334975;
+        color:var(--citation-label-color);
         float:left;
         font-weight:bold;
         margin-right:10px;
@@ -1424,8 +1681,8 @@ dl.citelist dd {
 
 div.toc {
         padding: 14px 25px;
-        background-color: #F4F6FA;
-        border: 1px solid #D8DFEE;
+        background-color: var(--toc-background-color);
+        border: 1px solid var(--toc-border-color);
         border-radius: 7px 7px 7px 7px;
         float: right;
         height: auto;
@@ -1433,28 +1690,17 @@ div.toc {
         width: 200px;
 }
 
-.PageDocRTL-title div.toc {
-  float: left !important;
-  text-align: right;
-}
-
 div.toc li {
-        background: url("bdwn.png") no-repeat scroll 0 5px transparent;
-        font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif;
+        background: var(--toc-down-arrow-image) no-repeat scroll 0 5px transparent;
+        font: 10px/1.2 var(--font-family-toc);
         margin-top: 5px;
         padding-left: 10px;
         padding-top: 2px;
 }
 
-.PageDocRTL-title div.toc li {
-  background-position-x: right !important;
-  padding-left: 0 !important;
-  padding-right: 10px;
-}
-
 div.toc h3 {
-        font: bold 12px/1.2 Arial,FreeSans,sans-serif;
-	color: #4665A2;
+        font: bold 12px/1.2 var(--font-family-toc);
+	color: var(--toc-header-color);
         border-bottom: 0 none;
         margin: 0;
 }
@@ -1463,7 +1709,7 @@ div.toc ul {
         list-style: none outside none;
         border: medium none;
         padding: 0px;
-}       
+}
 
 div.toc li.level1 {
         margin-left: 0px;
@@ -1474,11 +1720,11 @@ div.toc li.level2 {
 }
 
 div.toc li.level3 {
-        margin-left: 30px;
+        margin-left: 15px;
 }
 
 div.toc li.level4 {
-        margin-left: 45px;
+        margin-left: 15px;
 }
 
 span.emoji {
@@ -1487,29 +1733,13 @@ span.emoji {
          */
 }
 
-.PageDocRTL-title div.toc li.level1 {
-  margin-left: 0 !important;
-  margin-right: 0;
-}
-
-.PageDocRTL-title div.toc li.level2 {
-  margin-left: 0 !important;
-  margin-right: 15px;
-}
-
-.PageDocRTL-title div.toc li.level3 {
-  margin-left: 0 !important;
-  margin-right: 30px;
-}
-
-.PageDocRTL-title div.toc li.level4 {
-  margin-left: 0 !important;
-  margin-right: 45px;
+span.obfuscator {
+  display: none;
 }
 
 .inherit_header {
         font-weight: bold;
-        color: gray;
+        color: var(--inherit-header-color);
         cursor: pointer;
 	-webkit-touch-callout: none;
 	-webkit-user-select: none;
@@ -1541,11 +1771,12 @@ tr.heading h2 {
 
 #powerTip {
 	cursor: default;
-	white-space: nowrap;
-	background-color: white;
-	border: 1px solid gray;
+	/*white-space: nowrap;*/
+        color: var(--tooltip-foreground-color);
+	background-color: var(--tooltip-background-color);
+	border: 1px solid var(--tooltip-border-color);
 	border-radius: 4px 4px 4px 4px;
-	box-shadow: 1px 1px 7px gray;
+	box-shadow: var(--tooltip-shadow);
 	display: none;
 	font-size: smaller;
 	max-width: 80%;
@@ -1556,7 +1787,7 @@ tr.heading h2 {
 }
 
 #powerTip div.ttdoc {
-        color: grey;
+        color: var(--tooltip-doc-color);
 	font-style: italic;
 }
 
@@ -1564,18 +1795,24 @@ tr.heading h2 {
         font-weight: bold;
 }
 
+#powerTip a {
+	color: var(--tooltip-link-color);
+}
+
 #powerTip div.ttname {
         font-weight: bold;
 }
 
 #powerTip div.ttdeci {
-        color: #006318;
+        color: var(--tooltip-declaration-color);
 }
 
 #powerTip div {
         margin: 0px;
         padding: 0px;
-        font: 12px/16px Roboto,sans-serif;
+        font-size: 12px;
+       	font-family: var(--font-family-tooltip);
+	line-height: 16px;
 }
 
 #powerTip:before, #powerTip:after {
@@ -1620,12 +1857,12 @@ tr.heading h2 {
 }
 
 #powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after {
-	border-top-color: #FFFFFF;
+	border-top-color: var(--tooltip-background-color);
 	border-width: 10px;
 	margin: 0px -10px;
 }
-#powerTip.n:before {
-	border-top-color: #808080;
+#powerTip.n:before, #powerTip.ne:before, #powerTip.nw:before {
+	border-top-color: var(--tooltip-border-color);
 	border-width: 11px;
 	margin: 0px -11px;
 }
@@ -1648,13 +1885,13 @@ tr.heading h2 {
 }
 
 #powerTip.s:after, #powerTip.se:after, #powerTip.sw:after {
-	border-bottom-color: #FFFFFF;
+	border-bottom-color: var(--tooltip-background-color);
 	border-width: 10px;
 	margin: 0px -10px;
 }
 
 #powerTip.s:before, #powerTip.se:before, #powerTip.sw:before {
-	border-bottom-color: #808080;
+	border-bottom-color: var(--tooltip-border-color);
 	border-width: 11px;
 	margin: 0px -11px;
 }
@@ -1675,13 +1912,13 @@ tr.heading h2 {
 	left: 100%;
 }
 #powerTip.e:after {
-	border-left-color: #FFFFFF;
+	border-left-color: var(--tooltip-border-color);
 	border-width: 10px;
 	top: 50%;
 	margin-top: -10px;
 }
 #powerTip.e:before {
-	border-left-color: #808080;
+	border-left-color: var(--tooltip-border-color);
 	border-width: 11px;
 	top: 50%;
 	margin-top: -11px;
@@ -1691,13 +1928,13 @@ tr.heading h2 {
 	right: 100%;
 }
 #powerTip.w:after {
-	border-right-color: #FFFFFF;
+	border-right-color: var(--tooltip-border-color);
 	border-width: 10px;
 	top: 50%;
 	margin-top: -10px;
 }
 #powerTip.w:before {
-	border-right-color: #808080;
+	border-right-color: var(--tooltip-border-color);
 	border-width: 11px;
 	top: 50%;
 	margin-top: -11px;
@@ -1731,7 +1968,7 @@ table.markdownTable {
 }
 
 table.markdownTable td, table.markdownTable th {
-	border: 1px solid #2D4068;
+	border: 1px solid var(--table-cell-border-color);
 	padding: 3px 7px 2px;
 }
 
@@ -1739,8 +1976,8 @@ table.markdownTable tr {
 }
 
 th.markdownTableHeadLeft, th.markdownTableHeadRight, th.markdownTableHeadCenter, th.markdownTableHeadNone {
-	background-color: #374F7F;
-	color: #FFFFFF;
+	background-color: var(--table-header-background-color);
+	color: var(--table-header-foreground-color);
 	font-size: 110%;
 	padding-bottom: 4px;
 	padding-top: 5px;
@@ -1758,36 +1995,51 @@ th.markdownTableHeadCenter, td.markdownTableBodyCenter {
 	text-align: center
 }
 
-.DocNodeRTL {
-  text-align: right;
-  direction: rtl;
+tt, code, kbd, samp
+{
+  display: inline-block;
 }
+/* @end */
 
-.DocNodeLTR {
-  text-align: left;
-  direction: ltr;
+u {
+	text-decoration: underline;
 }
 
-table.DocNodeRTL {
-   width: auto;
-   margin-right: 0;
-   margin-left: auto;
+details>summary {
+  list-style-type: none;
 }
 
-table.DocNodeLTR {
-   width: auto;
-   margin-right: auto;
-   margin-left: 0;
+details > summary::-webkit-details-marker {
+    display: none;
 }
 
-tt, code, kbd, samp
-{
-  display: inline-block;
-  direction:ltr; 
+details>summary::before {
+    content: "\25ba";
+    padding-right:4px;
+    font-size: 80%;
 }
-/* @end */
 
-u {
-	text-decoration: underline;
+details[open]>summary::before {
+    content: "\25bc";
+    padding-right:4px;
+    font-size: 80%;
+}
+
+body {
+    scrollbar-color: var(--scrollbar-thumb-color) var(--scrollbar-background-color);
+}
+
+::-webkit-scrollbar {
+        background-color: var(--scrollbar-background-color);
+        height: 12px;
+        width: 12px;
+}
+::-webkit-scrollbar-thumb {
+        border-radius: 6px;
+        box-shadow: inset 0 0 12px 12px var(--scrollbar-thumb-color);
+        border: solid 2px transparent;
+}
+::-webkit-scrollbar-corner {
+        background-color: var(--scrollbar-background-color);
 }
 
diff --git a/doc/html/doxygen.svg b/doc/html/doxygen.svg
index d42dad5..79a7635 100644
--- a/doc/html/doxygen.svg
+++ b/doc/html/doxygen.svg
@@ -1,4 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "https://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
 <svg version="1.1" viewBox="0 0 104 31" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
  <defs>
   <linearGradient id="a">
@@ -17,7 +19,7 @@
   </filter>
  </defs>
  <g>
-  <path transform="translate(-2.5759 -27.848)" d="m13.609 32.203v6.8633h-0.05078c-0.40533-0.66867-0.96254-1.1715-1.6719-1.5059-0.69244-0.35193-1.4282-0.52734-2.2051-0.52734-0.96267 0-1.807 0.2027-2.5332 0.60742-0.72622 0.38713-1.3344 0.90556-1.8242 1.5566-0.47289 0.65108-0.83456 1.4092-1.0879 2.2715-0.23644 0.84464-0.35547 1.7236-0.35547 2.6387 0 0.95022 0.11902 1.8643 0.35547 2.7441 0.25333 0.87983 0.615 1.6633 1.0879 2.3496 0.48978 0.66867 1.1065 1.2066 1.8496 1.6113 0.74311 0.38713 1.6044 0.58008 2.584 0.58008 0.86133 0 1.6311-0.15787 2.3066-0.47461 0.69244-0.33434 1.2497-0.87227 1.6719-1.6113h0.05078v1.7422h3.4199v-18.846zm12.875 4.8301c-1.0302 0-1.9596 0.17541-2.7871 0.52734-0.82756 0.33434-1.5358 0.81965-2.127 1.4531-0.59111 0.61588-1.0483 1.3721-1.3691 2.2695-0.32089 0.87983-0.48047 1.866-0.48047 2.957s0.15958 2.0752 0.48047 2.9551c0.32089 0.87983 0.77803 1.6361 1.3691 2.2695 0.59111 0.61588 1.2994 1.0914 2.127 1.4258 0.82756 0.33434 1.7569 0.50195 2.7871 0.50195 1.0302 0 1.9596-0.16762 2.7871-0.50195 0.84444-0.33434 1.5612-0.8099 2.1523-1.4258 0.59111-0.63348 1.0483-1.3897 1.3691-2.2695 0.32089-0.87983 0.48047-1.8641 0.48047-2.9551s-0.15958-2.0772-0.48047-2.957c-0.32089-0.89743-0.77803-1.6536-1.3691-2.2695-0.59111-0.63348-1.3079-1.1188-2.1523-1.4531-0.82756-0.35193-1.7569-0.52734-2.7871-0.52734zm41.715 0c-0.912 0-1.7223 0.18516-2.4316 0.55469-0.69244 0.36953-1.2752 0.87043-1.748 1.5039-0.47289 0.61588-0.83651 1.337-1.0898 2.1641-0.23645 0.80944-0.35352 1.6553-0.35352 2.5352 0 0.93262 0.10007 1.8214 0.30273 2.666 0.21956 0.82704 0.55767 1.556 1.0137 2.1895 0.456 0.61588 1.0387 1.109 1.748 1.4785 0.70933 0.35193 1.5536 0.5293 2.5332 0.5293 0.79378 0 1.5446-0.16762 2.2539-0.50195 0.72622-0.35193 1.2834-0.88986 1.6719-1.6113h0.05078v1.7949c0.01689 0.96782-0.21071 1.7689-0.68359 2.4023-0.456 0.63348-1.1898 0.95117-2.2031 0.95117-0.64178 0-1.2075-0.14228-1.6973-0.42383-0.48978-0.26395-0.81939-0.74731-0.98828-1.4512h-3.5723c0.05067 0.77425 0.25276 1.435 0.60742 1.9805 0.37156 0.56309 0.8287 1.0192 1.3691 1.3711 0.55733 0.35193 1.1656 0.60726 1.8242 0.76562 0.67556 0.17597 1.3328 0.26562 1.9746 0.26562 1.5031 0 2.7025-0.21245 3.5977-0.63477 0.89511-0.42232 1.5798-0.94076 2.0527-1.5566 0.47289-0.59829 0.777-1.2493 0.91211-1.9531 0.152-0.70386 0.22656-1.3295 0.22656-1.875v-12.775h-3.4199v1.8223h-0.05078c-0.43911-0.79185-0.98782-1.3551-1.6465-1.6895-0.64178-0.33434-1.3926-0.50195-2.2539-0.50195zm16.523 0c-0.99644 0-1.9088 0.18516-2.7363 0.55469-0.81067 0.36953-1.5124 0.88018-2.1035 1.5312-0.59111 0.63348-1.0463 1.3897-1.3672 2.2695s-0.48047 1.831-0.48047 2.8516c0 1.0558 0.15108 2.0225 0.45508 2.9023 0.32089 0.87983 0.76758 1.6361 1.3418 2.2695 0.57422 0.63348 1.276 1.1266 2.1035 1.4785 0.82756 0.33434 1.7569 0.50195 2.7871 0.50195 1.4862 0 2.7517-0.35277 3.7988-1.0566 1.0471-0.70387 1.8254-1.8733 2.332-3.5098h-3.168c-0.11822 0.42232-0.43934 0.82772-0.96289 1.2148-0.52355 0.36953-1.1468 0.55274-1.873 0.55273-1.0133 0-1.7916-0.27286-2.332-0.81836-0.54044-0.5455-0.83605-1.4245-0.88672-2.6387h9.4492c0.06756-1.0558-0.01551-2.0673-0.25195-3.0352-0.23644-0.96782-0.62557-1.8293-1.166-2.5859-0.52356-0.75666-1.1998-1.355-2.0273-1.7949-0.82756-0.45751-1.7974-0.6875-2.9121-0.6875zm16.189 0c-0.76 0-1.5023 0.18516-2.2285 0.55469-0.72622 0.35193-1.3174 0.92299-1.7734 1.7148h-0.07617v-1.9004h-3.4199v13.646h3.5977v-7.1523c0-1.3901 0.21909-2.3841 0.6582-2.9824 0.43911-0.61588 1.1494-0.92383 2.1289-0.92383 0.86133 0 1.4611 0.28066 1.7988 0.84375 0.33777 0.5455 0.50586 1.3816 0.50586 2.5078v7.707h3.5976v-8.3926c0-0.84464-0.0765-1.6106-0.22851-2.2969-0.13511-0.70387-0.37971-1.2925-0.73438-1.7676-0.35466-0.49271-0.84386-0.87277-1.4688-1.1367-0.608-0.28155-1.3948-0.42188-2.3574-0.42188zm-66.063 0.36914 4.3066 6.4668-4.7129 7.1797h4.0293l2.7363-4.3027 2.7344 4.3027h4.1055l-4.8398-7.2578 4.3066-6.3887h-3.9766l-2.2793 3.5645-2.3066-3.5645zm13.275 0 4.584 12.803c0.10133 0.26395 0.15234 0.54461 0.15234 0.84375 0 0.40472-0.11707 0.77504-0.35352 1.1094-0.21956 0.33434-0.56617 0.52729-1.0391 0.58008-0.35467 0.0176-0.70979 0.0098-1.0645-0.02539-0.35467-0.03519-0.70128-0.07028-1.0391-0.10547v3.0879c0.37156 0.03519 0.73518 0.06051 1.0898 0.07813 0.37156 0.03519 0.74368 0.05273 1.1152 0.05273 1.2329 0 2.1943-0.23778 2.8867-0.71289 0.69244-0.47511 1.2326-1.2664 1.6211-2.375l5.4727-15.336h-3.7246l-2.8613 9.3438h-0.05078l-2.9648-9.3438zm-37.48 2.4551c0.59111 0 1.0823 0.12279 1.4707 0.36914 0.38844 0.24635 0.6991 0.57184 0.93555 0.97656 0.25333 0.38713 0.43187 0.84515 0.5332 1.373 0.10133 0.5103 0.15234 1.0482 0.15234 1.6113 0 0.56309-0.05101 1.1069-0.15234 1.6348-0.10133 0.5279-0.27137 1.0035-0.50781 1.4258-0.23644 0.40472-0.5556 0.73021-0.96094 0.97656-0.38844 0.24635-0.87959 0.36914-1.4707 0.36914-0.55733 0-1.038-0.12279-1.4434-0.36914-0.38844-0.26395-0.71806-0.59723-0.98828-1.002-0.25333-0.42232-0.43842-0.89788-0.55664-1.4258s-0.17773-1.0561-0.17773-1.584c-1e-7 -0.56309 0.05101-1.0991 0.15234-1.6094 0.11822-0.5279 0.29481-0.99567 0.53125-1.4004 0.25333-0.40472 0.58295-0.73021 0.98828-0.97656 0.40533-0.24635 0.90303-0.36914 1.4941-0.36914zm15.84 0c0.608 0 1.1142 0.13253 1.5195 0.39648 0.42222 0.24635 0.75184 0.57184 0.98828 0.97656 0.25333 0.40472 0.42992 0.87054 0.53125 1.3984 0.10133 0.5279 0.15234 1.0658 0.15234 1.6113 0 0.5455-0.05101 1.0815-0.15234 1.6094-0.10134 0.5103-0.27792 0.97612-0.53125 1.3984-0.23644 0.40472-0.56606 0.73021-0.98828 0.97656-0.40533 0.24635-0.91153 0.36914-1.5195 0.36914-0.608 0-1.1142-0.12279-1.5195-0.36914s-0.73495-0.57184-0.98828-0.97656c-0.23644-0.42232-0.40648-0.88814-0.50781-1.3984-0.10133-0.5279-0.15234-1.0639-0.15234-1.6094 0-0.5455 0.05101-1.0834 0.15234-1.6113 0.10133-0.5279 0.27137-0.99371 0.50781-1.3984 0.25333-0.40472 0.58295-0.73021 0.98828-0.97656 0.40533-0.26395 0.91153-0.39648 1.5195-0.39648zm42.602 0c0.59111 0 1.0803 0.11499 1.4688 0.34375 0.38844 0.22876 0.70105 0.5367 0.9375 0.92383 0.23644 0.38713 0.40648 0.8354 0.50781 1.3457 0.10133 0.49271 0.15039 1.0209 0.15039 1.584 0 0.4927-0.06606 0.96827-0.20117 1.4258-0.11822 0.43992-0.30526 0.83557-0.55859 1.1875-0.25333 0.35193-0.57445 0.63259-0.96289 0.84375-0.38844 0.21116-0.83513 0.31836-1.3418 0.31836-0.55733 0-1.021-0.12474-1.3926-0.37109-0.37156-0.24635-0.67566-0.56209-0.91211-0.94922-0.21956-0.38713-0.38109-0.81786-0.48242-1.293-0.08444-0.49271-0.12695-0.98581-0.12695-1.4785 0-0.5103 0.05101-0.99366 0.15234-1.4512 0.11822-0.47511 0.29676-0.89025 0.5332-1.2422 0.25333-0.36953 0.55744-0.65993 0.91211-0.87109 0.37156-0.21116 0.80974-0.31641 1.3164-0.31641zm15.535 0c0.87822 0 1.529 0.24753 1.9512 0.74023 0.43911 0.49271 0.74322 1.2138 0.91211 2.1641h-5.8535c0.01689-0.26395 0.0679-0.5641 0.15234-0.89844 0.10133-0.33434 0.26287-0.65008 0.48242-0.94922 0.23644-0.29914 0.54055-0.54667 0.91211-0.74023 0.38845-0.21116 0.86914-0.31641 1.4434-0.31641z" filter="url(#f)" opacity=".3" stroke="#969696" xlink:href="#path141"/>
+  <path transform="translate(-2.5759 -27.848)" d="m13.609 32.203v6.8633h-0.05078c-0.40533-0.66867-0.96254-1.1715-1.6719-1.5059-0.69244-0.35193-1.4282-0.52734-2.2051-0.52734-0.96267 0-1.807 0.2027-2.5332 0.60742-0.72622 0.38713-1.3344 0.90556-1.8242 1.5566-0.47289 0.65108-0.83456 1.4092-1.0879 2.2715-0.23644 0.84464-0.35547 1.7236-0.35547 2.6387 0 0.95022 0.11902 1.8643 0.35547 2.7441 0.25333 0.87983 0.615 1.6633 1.0879 2.3496 0.48978 0.66867 1.1065 1.2066 1.8496 1.6113 0.74311 0.38713 1.6044 0.58008 2.584 0.58008 0.86133 0 1.6311-0.15787 2.3066-0.47461 0.69244-0.33434 1.2497-0.87227 1.6719-1.6113h0.05078v1.7422h3.4199v-18.846zm12.875 4.8301c-1.0302 0-1.9596 0.17541-2.7871 0.52734-0.82756 0.33434-1.5358 0.81965-2.127 1.4531-0.59111 0.61588-1.0483 1.3721-1.3691 2.2695-0.32089 0.87983-0.48047 1.866-0.48047 2.957s0.15958 2.0752 0.48047 2.9551c0.32089 0.87983 0.77803 1.6361 1.3691 2.2695 0.59111 0.61588 1.2994 1.0914 2.127 1.4258 0.82756 0.33434 1.7569 0.50195 2.7871 0.50195 1.0302 0 1.9596-0.16762 2.7871-0.50195 0.84444-0.33434 1.5612-0.8099 2.1523-1.4258 0.59111-0.63348 1.0483-1.3897 1.3691-2.2695 0.32089-0.87983 0.48047-1.8641 0.48047-2.9551s-0.15958-2.0772-0.48047-2.957c-0.32089-0.89743-0.77803-1.6536-1.3691-2.2695-0.59111-0.63348-1.3079-1.1188-2.1523-1.4531-0.82756-0.35193-1.7569-0.52734-2.7871-0.52734zm41.715 0c-0.912 0-1.7223 0.18516-2.4316 0.55469-0.69244 0.36953-1.2752 0.87043-1.748 1.5039-0.47289 0.61588-0.83651 1.337-1.0898 2.1641-0.23645 0.80944-0.35352 1.6553-0.35352 2.5352 0 0.93262 0.10007 1.8214 0.30273 2.666 0.21956 0.82704 0.55767 1.556 1.0137 2.1895 0.456 0.61588 1.0387 1.109 1.748 1.4785 0.70933 0.35193 1.5536 0.5293 2.5332 0.5293 0.79378 0 1.5446-0.16762 2.2539-0.50195 0.72622-0.35193 1.2834-0.88986 1.6719-1.6113h0.05078v1.7949c0.01689 0.96782-0.21071 1.7689-0.68359 2.4023-0.456 0.63348-1.1898 0.95117-2.2031 0.95117-0.64178 0-1.2075-0.14228-1.6973-0.42383-0.48978-0.26395-0.81939-0.74731-0.98828-1.4512h-3.5723c0.05067 0.77425 0.25276 1.435 0.60742 1.9805 0.37156 0.56309 0.8287 1.0192 1.3691 1.3711 0.55733 0.35193 1.1656 0.60726 1.8242 0.76562 0.67556 0.17597 1.3328 0.26562 1.9746 0.26562 1.5031 0 2.7025-0.21245 3.5977-0.63477 0.89511-0.42232 1.5798-0.94076 2.0527-1.5566 0.47289-0.59829 0.777-1.2493 0.91211-1.9531 0.152-0.70386 0.22656-1.3295 0.22656-1.875v-12.775h-3.4199v1.8223h-0.05078c-0.43911-0.79185-0.98782-1.3551-1.6465-1.6895-0.64178-0.33434-1.3926-0.50195-2.2539-0.50195zm16.523 0c-0.99644 0-1.9088 0.18516-2.7363 0.55469-0.81067 0.36953-1.5124 0.88018-2.1035 1.5312-0.59111 0.63348-1.0463 1.3897-1.3672 2.2695s-0.48047 1.831-0.48047 2.8516c0 1.0558 0.15108 2.0225 0.45508 2.9023 0.32089 0.87983 0.76758 1.6361 1.3418 2.2695 0.57422 0.63348 1.276 1.1266 2.1035 1.4785 0.82756 0.33434 1.7569 0.50195 2.7871 0.50195 1.4862 0 2.7517-0.35277 3.7988-1.0566 1.0471-0.70387 1.8254-1.8733 2.332-3.5098h-3.168c-0.11822 0.42232-0.43934 0.82772-0.96289 1.2148-0.52355 0.36953-1.1468 0.55274-1.873 0.55273-1.0133 0-1.7916-0.27286-2.332-0.81836-0.54044-0.5455-0.83605-1.4245-0.88672-2.6387h9.4492c0.06756-1.0558-0.01551-2.0673-0.25195-3.0352-0.23644-0.96782-0.62557-1.8293-1.166-2.5859-0.52356-0.75666-1.1998-1.355-2.0273-1.7949-0.82756-0.45751-1.7974-0.6875-2.9121-0.6875zm16.189 0c-0.76 0-1.5023 0.18516-2.2285 0.55469-0.72622 0.35193-1.3174 0.92299-1.7734 1.7148h-0.07617v-1.9004h-3.4199v13.646h3.5977v-7.1523c0-1.3901 0.21909-2.3841 0.6582-2.9824 0.43911-0.61588 1.1494-0.92383 2.1289-0.92383 0.86133 0 1.4611 0.28066 1.7988 0.84375 0.33777 0.5455 0.50586 1.3816 0.50586 2.5078v7.707h3.5976v-8.3926c0-0.84464-0.0765-1.6106-0.22851-2.2969-0.13511-0.70387-0.37971-1.2925-0.73438-1.7676-0.35466-0.49271-0.84386-0.87277-1.4688-1.1367-0.608-0.28155-1.3948-0.42188-2.3574-0.42188zm-66.063 0.36914 4.3066 6.4668-4.7129 7.1797h4.0293l2.7363-4.3027 2.7344 4.3027h4.1055l-4.8398-7.2578 4.3066-6.3887h-3.9766l-2.2793 3.5645-2.3066-3.5645zm13.275 0 4.584 12.803c0.10133 0.26395 0.15234 0.54461 0.15234 0.84375 0 0.40472-0.11707 0.77504-0.35352 1.1094-0.21956 0.33434-0.56617 0.52729-1.0391 0.58008-0.35467 0.0176-0.70979 0.0098-1.0645-0.02539-0.35467-0.03519-0.70128-0.07028-1.0391-0.10547v3.0879c0.37156 0.03519 0.73518 0.06051 1.0898 0.07813 0.37156 0.03519 0.74368 0.05273 1.1152 0.05273 1.2329 0 2.1943-0.23778 2.8867-0.71289 0.69244-0.47511 1.2326-1.2664 1.6211-2.375l5.4727-15.336h-3.7246l-2.8613 9.3438h-0.05078l-2.9648-9.3438zm-37.48 2.4551c0.59111 0 1.0823 0.12279 1.4707 0.36914 0.38844 0.24635 0.6991 0.57184 0.93555 0.97656 0.25333 0.38713 0.43187 0.84515 0.5332 1.373 0.10133 0.5103 0.15234 1.0482 0.15234 1.6113 0 0.56309-0.05101 1.1069-0.15234 1.6348-0.10133 0.5279-0.27137 1.0035-0.50781 1.4258-0.23644 0.40472-0.5556 0.73021-0.96094 0.97656-0.38844 0.24635-0.87959 0.36914-1.4707 0.36914-0.55733 0-1.038-0.12279-1.4434-0.36914-0.38844-0.26395-0.71806-0.59723-0.98828-1.002-0.25333-0.42232-0.43842-0.89788-0.55664-1.4258s-0.17773-1.0561-0.17773-1.584c-1e-7 -0.56309 0.05101-1.0991 0.15234-1.6094 0.11822-0.5279 0.29481-0.99567 0.53125-1.4004 0.25333-0.40472 0.58295-0.73021 0.98828-0.97656 0.40533-0.24635 0.90303-0.36914 1.4941-0.36914zm15.84 0c0.608 0 1.1142 0.13253 1.5195 0.39648 0.42222 0.24635 0.75184 0.57184 0.98828 0.97656 0.25333 0.40472 0.42992 0.87054 0.53125 1.3984 0.10133 0.5279 0.15234 1.0658 0.15234 1.6113 0 0.5455-0.05101 1.0815-0.15234 1.6094-0.10134 0.5103-0.27792 0.97612-0.53125 1.3984-0.23644 0.40472-0.56606 0.73021-0.98828 0.97656-0.40533 0.24635-0.91153 0.36914-1.5195 0.36914-0.608 0-1.1142-0.12279-1.5195-0.36914s-0.73495-0.57184-0.98828-0.97656c-0.23644-0.42232-0.40648-0.88814-0.50781-1.3984-0.10133-0.5279-0.15234-1.0639-0.15234-1.6094 0-0.5455 0.05101-1.0834 0.15234-1.6113 0.10133-0.5279 0.27137-0.99371 0.50781-1.3984 0.25333-0.40472 0.58295-0.73021 0.98828-0.97656 0.40533-0.26395 0.91153-0.39648 1.5195-0.39648zm42.602 0c0.59111 0 1.0803 0.11499 1.4688 0.34375 0.38844 0.22876 0.70105 0.5367 0.9375 0.92383 0.23644 0.38713 0.40648 0.8354 0.50781 1.3457 0.10133 0.49271 0.15039 1.0209 0.15039 1.584 0 0.4927-0.06606 0.96827-0.20117 1.4258-0.11822 0.43992-0.30526 0.83557-0.55859 1.1875-0.25333 0.35193-0.57445 0.63259-0.96289 0.84375-0.38844 0.21116-0.83513 0.31836-1.3418 0.31836-0.55733 0-1.021-0.12474-1.3926-0.37109-0.37156-0.24635-0.67566-0.56209-0.91211-0.94922-0.21956-0.38713-0.38109-0.81786-0.48242-1.293-0.08444-0.49271-0.12695-0.98581-0.12695-1.4785 0-0.5103 0.05101-0.99366 0.15234-1.4512 0.11822-0.47511 0.29676-0.89025 0.5332-1.2422 0.25333-0.36953 0.55744-0.65993 0.91211-0.87109 0.37156-0.21116 0.80974-0.31641 1.3164-0.31641zm15.535 0c0.87822 0 1.529 0.24753 1.9512 0.74023 0.43911 0.49271 0.74322 1.2138 0.91211 2.1641h-5.8535c0.01689-0.26395 0.0679-0.5641 0.15234-0.89844 0.10133-0.33434 0.26287-0.65008 0.48242-0.94922 0.23644-0.29914 0.54055-0.54667 0.91211-0.74023 0.38845-0.21116 0.86914-0.31641 1.4434-0.31641z" filter="url(#f)" opacity=".3" stroke="#969696"/>
   <path d="m0.97202 24.161 43.605-0.0019 0.0508 3.3061-43.6 0.04174z" fill="url(#d)" stroke="#000" stroke-width=".5"/>
   <path d="m10.283 3.5547v6.8633h-0.05078c-0.40533-0.66867-0.96254-1.1715-1.6719-1.5059-0.69244-0.35193-1.4282-0.52734-2.2051-0.52734-0.96267 0-1.807 0.2027-2.5332 0.60742-0.72622 0.38713-1.3344 0.90556-1.8242 1.5566-0.47289 0.65108-0.83456 1.4092-1.0879 2.2715-0.23644 0.84464-0.35547 1.7236-0.35547 2.6387 0 0.95022 0.11902 1.8643 0.35547 2.7441 0.25333 0.87983 0.615 1.6633 1.0879 2.3496 0.48978 0.66867 1.1065 1.2066 1.8496 1.6113 0.74311 0.38713 1.6044 0.58008 2.584 0.58008 0.86133 0 1.6311-0.15787 2.3066-0.47461 0.69244-0.33434 1.2497-0.87227 1.6719-1.6113h0.05078v1.7422h3.4199v-18.846zm12.875 4.8301c-1.0302 0-1.9596 0.17541-2.7871 0.52734-0.82756 0.33434-1.5358 0.81965-2.127 1.4531-0.59111 0.61588-1.0483 1.3721-1.3691 2.2695-0.32089 0.87983-0.48047 1.866-0.48047 2.957s0.15958 2.0752 0.48047 2.9551c0.32089 0.87983 0.77803 1.6361 1.3691 2.2695 0.59111 0.61588 1.2994 1.0914 2.127 1.4258 0.82756 0.33434 1.7569 0.50195 2.7871 0.50195 1.0302 0 1.9596-0.16762 2.7871-0.50195 0.84444-0.33434 1.5612-0.8099 2.1523-1.4258 0.59111-0.63348 1.0483-1.3897 1.3691-2.2695 0.32089-0.87983 0.48047-1.8641 0.48047-2.9551s-0.15958-2.0772-0.48047-2.957c-0.32089-0.89743-0.77803-1.6536-1.3691-2.2695-0.59111-0.63348-1.3079-1.1188-2.1523-1.4531-0.82756-0.35193-1.7569-0.52734-2.7871-0.52734zm41.715 0c-0.912 0-1.7223 0.18516-2.4316 0.55469-0.69244 0.36953-1.2752 0.87043-1.748 1.5039-0.47289 0.61588-0.83651 1.337-1.0898 2.1641-0.23644 0.80944-0.35352 1.6553-0.35352 2.5352 0 0.93262 0.10007 1.8214 0.30273 2.666 0.21956 0.82704 0.55767 1.556 1.0137 2.1895 0.456 0.61588 1.0387 1.109 1.748 1.4785 0.70933 0.35193 1.5536 0.5293 2.5332 0.5293 0.79378 0 1.5446-0.16762 2.2539-0.50195 0.72622-0.35193 1.2834-0.88986 1.6719-1.6113h0.05078v1.7949c0.01689 0.96782-0.21071 1.7689-0.68359 2.4023-0.456 0.63348-1.1898 0.95117-2.2031 0.95117-0.64178 0-1.2075-0.14228-1.6973-0.42383-0.48978-0.26395-0.81939-0.74731-0.98828-1.4512h-3.5723c0.05067 0.77425 0.25276 1.435 0.60742 1.9805 0.37156 0.56309 0.8287 1.0192 1.3691 1.3711 0.55733 0.35193 1.1656 0.60726 1.8242 0.76562 0.67556 0.17597 1.3328 0.26562 1.9746 0.26562 1.5031 0 2.7025-0.21245 3.5977-0.63477 0.89511-0.42232 1.5798-0.94076 2.0527-1.5566 0.47289-0.59829 0.777-1.2493 0.91211-1.9531 0.152-0.70386 0.22656-1.3295 0.22656-1.875v-12.775h-3.4199v1.8223h-0.05078c-0.43911-0.79185-0.98782-1.3551-1.6465-1.6895-0.64178-0.33434-1.3926-0.50195-2.2539-0.50195zm16.523 0c-0.99644 0-1.9088 0.18516-2.7363 0.55469-0.81067 0.36953-1.5124 0.88017-2.1035 1.5312-0.59111 0.63348-1.0463 1.3897-1.3672 2.2695s-0.48047 1.831-0.48047 2.8516c0 1.0558 0.15108 2.0225 0.45508 2.9023 0.32089 0.87983 0.76758 1.6361 1.3418 2.2695 0.57422 0.63348 1.276 1.1266 2.1035 1.4785 0.82756 0.33434 1.7569 0.50195 2.7871 0.50195 1.4862 0 2.7517-0.35278 3.7988-1.0566 1.0471-0.70386 1.8254-1.8733 2.332-3.5098h-3.168c-0.11822 0.42232-0.43934 0.82772-0.96289 1.2148-0.52355 0.36953-1.1468 0.55274-1.873 0.55273-1.0133 0-1.7916-0.27286-2.332-0.81836-0.54044-0.5455-0.83605-1.4245-0.88672-2.6387h9.4492c0.06756-1.0558-0.01551-2.0673-0.25195-3.0352-0.23644-0.96782-0.62557-1.8293-1.166-2.5859-0.52356-0.75666-1.1998-1.355-2.0273-1.7949-0.82756-0.45751-1.7974-0.6875-2.9121-0.6875zm16.189 0c-0.76 0-1.5023 0.18516-2.2285 0.55469-0.72622 0.35193-1.3174 0.923-1.7734 1.7148h-0.07617v-1.9004h-3.4199v13.646h3.5977v-7.1523c0-1.3901 0.21909-2.3841 0.6582-2.9824 0.43911-0.61588 1.1494-0.92383 2.1289-0.92383 0.86133 0 1.461 0.28066 1.7988 0.84375 0.33778 0.5455 0.50586 1.3816 0.50586 2.5078v7.707h3.5977v-8.3926c0-0.84464-0.0765-1.6106-0.22852-2.2969-0.13511-0.70387-0.3797-1.2925-0.73437-1.7676-0.35466-0.49271-0.84386-0.87277-1.4688-1.1367-0.608-0.28155-1.3948-0.42188-2.3574-0.42188zm-66.062 0.36914 4.3066 6.4668-4.7129 7.1797h4.0293l2.7363-4.3027 2.7344 4.3027h4.1055l-4.8398-7.2578 4.3066-6.3887h-3.9766l-2.2793 3.5645-2.3066-3.5645zm13.275 0 4.584 12.803c0.10133 0.26395 0.15234 0.54461 0.15234 0.84375 0 0.40472-0.11707 0.77504-0.35352 1.1094-0.21956 0.33434-0.56617 0.52729-1.0391 0.58008-0.35467 0.0176-0.70979 0.0098-1.0645-0.02539-0.35467-0.03519-0.70128-0.07027-1.0391-0.10547v3.0879c0.37156 0.03519 0.73518 0.06052 1.0898 0.07813 0.37156 0.03519 0.74368 0.05273 1.1152 0.05273 1.2329 0 2.1943-0.23778 2.8867-0.71289 0.69244-0.47511 1.2326-1.2664 1.6211-2.375l5.4727-15.336h-3.7246l-2.8613 9.3437h-0.05078l-2.9648-9.3437zm-37.48 2.4551c0.59111 0 1.0823 0.12279 1.4707 0.36914s0.6991 0.57184 0.93555 0.97656c0.25333 0.38713 0.43187 0.84515 0.5332 1.373 0.10133 0.5103 0.15234 1.0482 0.15234 1.6113 0 0.56309-0.05101 1.1069-0.15234 1.6348-0.10133 0.5279-0.27137 1.0035-0.50781 1.4258-0.23644 0.40472-0.5556 0.73021-0.96094 0.97656-0.38844 0.24635-0.87959 0.36914-1.4707 0.36914-0.55733 0-1.038-0.12279-1.4434-0.36914-0.38844-0.26395-0.71806-0.59723-0.98828-1.002-0.25333-0.42232-0.43842-0.89788-0.55664-1.4258s-0.17773-1.0561-0.17773-1.584c-1e-7 -0.56309 0.05101-1.0991 0.15234-1.6094 0.11822-0.5279 0.29481-0.99567 0.53125-1.4004 0.25333-0.40472 0.58295-0.73021 0.98828-0.97656 0.40533-0.24635 0.90303-0.36914 1.4941-0.36914zm15.84 0c0.608 0 1.1142 0.13254 1.5195 0.39648 0.42222 0.24635 0.75184 0.57184 0.98828 0.97656 0.25333 0.40472 0.42992 0.87054 0.53125 1.3984 0.10133 0.5279 0.15234 1.0658 0.15234 1.6113 0 0.5455-0.05101 1.0815-0.15234 1.6094-0.10133 0.5103-0.27792 0.97612-0.53125 1.3984-0.23644 0.40472-0.56606 0.73021-0.98828 0.97656-0.40533 0.24635-0.91153 0.36914-1.5195 0.36914-0.608 0-1.1142-0.12279-1.5195-0.36914s-0.73495-0.57184-0.98828-0.97656c-0.23644-0.42232-0.40648-0.88813-0.50781-1.3984-0.10133-0.5279-0.15234-1.0639-0.15234-1.6094 0-0.5455 0.05101-1.0834 0.15234-1.6113 0.10133-0.5279 0.27137-0.99371 0.50781-1.3984 0.25333-0.40472 0.58295-0.73021 0.98828-0.97656 0.40533-0.26395 0.91153-0.39648 1.5195-0.39648zm42.602 0c0.59111 0 1.0803 0.11499 1.4688 0.34375 0.38844 0.22876 0.70106 0.5367 0.9375 0.92383 0.23644 0.38713 0.40648 0.8354 0.50781 1.3457 0.10133 0.49271 0.15039 1.0209 0.15039 1.584 0 0.49271-0.06606 0.96827-0.20117 1.4258-0.11822 0.43992-0.30526 0.83557-0.55859 1.1875-0.25333 0.35193-0.57445 0.63259-0.96289 0.84375-0.38844 0.21116-0.83513 0.31836-1.3418 0.31836-0.55733 0-1.021-0.12474-1.3926-0.37109-0.37156-0.24635-0.67566-0.56209-0.91211-0.94922-0.21956-0.38713-0.38109-0.81786-0.48242-1.293-0.08444-0.49271-0.12695-0.98581-0.12695-1.4785 0-0.5103 0.05101-0.99366 0.15234-1.4512 0.11822-0.47511 0.29676-0.89026 0.5332-1.2422 0.25333-0.36953 0.55744-0.65993 0.91211-0.87109 0.37156-0.21116 0.80974-0.31641 1.3164-0.31641zm15.535 0c0.87822 0 1.529 0.24753 1.9512 0.74024 0.43911 0.49271 0.74322 1.2138 0.91211 2.1641h-5.8535c0.01689-0.26395 0.0679-0.5641 0.15234-0.89844 0.10133-0.33434 0.26287-0.65008 0.48242-0.94922 0.23644-0.29914 0.54055-0.54667 0.91211-0.74023 0.38845-0.21116 0.86914-0.31641 1.4434-0.31641z" fill="url(#e)" stroke="#4665A2" stroke-width=".7"/>
   <path d="m52.988 27.291c0.99602-1.0359 1.3944-1.8725 1.7928-3.1076l3.8247-0.03984c0.3113 1.6096 0.82413 2.5137 1.6335 3.1474z" fill="url(#b)" stroke="#000" stroke-width=".5"/>
diff --git a/doc/html/driver__w25qxx_8c.html b/doc/html/driver__w25qxx_8c.html
index c8e1abb..1efaba9 100644
--- a/doc/html/driver__w25qxx_8c.html
+++ b/doc/html/driver__w25qxx_8c.html
@@ -1,9 +1,9 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.8"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>LibDriver W25QXX: src/driver_w25qxx.c File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -23,11 +23,10 @@
 <div id="titlearea">
 <table cellspacing="0" cellpadding="0">
  <tbody>
- <tr style="height: 56px;">
+ <tr id="projectrow">
   <td id="projectlogo"><img alt="Logo" src="doxygen.png"/></td>
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">LibDriver W25QXX
-   &#160;<span id="projectnumber">1.0.0</span>
+  <td id="projectalign">
+   <div id="projectname">LibDriver W25QXX<span id="projectnumber">&#160;1.0.0</span>
    </div>
    <div id="projectbrief">W25QXX full function driver</div>
   </td>
@@ -36,21 +35,22 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.8 -->
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search/",'.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
 <script type="text/javascript" src="menu.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(function() {
   initMenu('',true,false,'search.php','Search');
   $(document).ready(function() { init_search(); });
 });
-/* @license-end */</script>
+/* @license-end */
+</script>
 <div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
@@ -64,7 +64,7 @@
   </div>
 </div>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(document).ready(function(){initNavTree('driver__w25qxx_8c.html',''); initResizable(); });
 /* @license-end */
 </script>
@@ -78,17 +78,23 @@
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
 </div>
 
 <div class="header">
   <div class="summary">
 <a href="#define-members">Macros</a> &#124;
 <a href="#func-members">Functions</a>  </div>
-  <div class="headertitle">
-<div class="title">driver_w25qxx.c File Reference</div>  </div>
+  <div class="headertitle"><div class="title">driver_w25qxx.c File Reference</div></div>
 </div><!--header-->
 <div class="contents">
 
@@ -98,301 +104,301 @@
 </div>
 <p><a href="driver__w25qxx_8c_source.html">Go to the source code of this file.</a></p>
 <table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="define-members" name="define-members"></a>
 Macros</h2></td></tr>
-<tr class="memitem:adc9da0a24824ca1239b593f6459b3954"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx_8c.html#adc9da0a24824ca1239b593f6459b3954">CHIP_NAME</a>&#160;&#160;&#160;&quot;Winbond W25QXX&quot;</td></tr>
-<tr class="memdesc:adc9da0a24824ca1239b593f6459b3954"><td class="mdescLeft">&#160;</td><td class="mdescRight">chip information definition  <a href="driver__w25qxx_8c.html#adc9da0a24824ca1239b593f6459b3954">More...</a><br /></td></tr>
+<tr class="memitem:adc9da0a24824ca1239b593f6459b3954" id="r_adc9da0a24824ca1239b593f6459b3954"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx_8c.html#adc9da0a24824ca1239b593f6459b3954">CHIP_NAME</a>&#160;&#160;&#160;&quot;Winbond W25QXX&quot;</td></tr>
+<tr class="memdesc:adc9da0a24824ca1239b593f6459b3954"><td class="mdescLeft">&#160;</td><td class="mdescRight">chip information definition  <br /></td></tr>
 <tr class="separator:adc9da0a24824ca1239b593f6459b3954"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aaa2b8f5b105c3019df0cb346f472e803"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx_8c.html#aaa2b8f5b105c3019df0cb346f472e803">MANUFACTURER_NAME</a>&#160;&#160;&#160;&quot;Winbond&quot;</td></tr>
+<tr class="memitem:aaa2b8f5b105c3019df0cb346f472e803" id="r_aaa2b8f5b105c3019df0cb346f472e803"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx_8c.html#aaa2b8f5b105c3019df0cb346f472e803">MANUFACTURER_NAME</a>&#160;&#160;&#160;&quot;Winbond&quot;</td></tr>
 <tr class="separator:aaa2b8f5b105c3019df0cb346f472e803"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aac8d8cbd899667d609787ef4cf37054d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx_8c.html#aac8d8cbd899667d609787ef4cf37054d">SUPPLY_VOLTAGE_MIN</a>&#160;&#160;&#160;2.7f</td></tr>
+<tr class="memitem:aac8d8cbd899667d609787ef4cf37054d" id="r_aac8d8cbd899667d609787ef4cf37054d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx_8c.html#aac8d8cbd899667d609787ef4cf37054d">SUPPLY_VOLTAGE_MIN</a>&#160;&#160;&#160;2.7f</td></tr>
 <tr class="separator:aac8d8cbd899667d609787ef4cf37054d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a68eba8b601afe11f1b871d944976c035"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx_8c.html#a68eba8b601afe11f1b871d944976c035">SUPPLY_VOLTAGE_MAX</a>&#160;&#160;&#160;3.6f</td></tr>
+<tr class="memitem:a68eba8b601afe11f1b871d944976c035" id="r_a68eba8b601afe11f1b871d944976c035"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx_8c.html#a68eba8b601afe11f1b871d944976c035">SUPPLY_VOLTAGE_MAX</a>&#160;&#160;&#160;3.6f</td></tr>
 <tr class="separator:a68eba8b601afe11f1b871d944976c035"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a2989837a37d6d63b59c6dd541b785435"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx_8c.html#a2989837a37d6d63b59c6dd541b785435">MAX_CURRENT</a>&#160;&#160;&#160;25.0f</td></tr>
+<tr class="memitem:a2989837a37d6d63b59c6dd541b785435" id="r_a2989837a37d6d63b59c6dd541b785435"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx_8c.html#a2989837a37d6d63b59c6dd541b785435">MAX_CURRENT</a>&#160;&#160;&#160;25.0f</td></tr>
 <tr class="separator:a2989837a37d6d63b59c6dd541b785435"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aab353db5bf4eb787f86a2080f609a551"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx_8c.html#aab353db5bf4eb787f86a2080f609a551">TEMPERATURE_MIN</a>&#160;&#160;&#160;-40.0f</td></tr>
+<tr class="memitem:aab353db5bf4eb787f86a2080f609a551" id="r_aab353db5bf4eb787f86a2080f609a551"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx_8c.html#aab353db5bf4eb787f86a2080f609a551">TEMPERATURE_MIN</a>&#160;&#160;&#160;-40.0f</td></tr>
 <tr class="separator:aab353db5bf4eb787f86a2080f609a551"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a90c0b20d54005712fcc8cb01281360e9"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx_8c.html#a90c0b20d54005712fcc8cb01281360e9">TEMPERATURE_MAX</a>&#160;&#160;&#160;85.0f</td></tr>
+<tr class="memitem:a90c0b20d54005712fcc8cb01281360e9" id="r_a90c0b20d54005712fcc8cb01281360e9"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx_8c.html#a90c0b20d54005712fcc8cb01281360e9">TEMPERATURE_MAX</a>&#160;&#160;&#160;85.0f</td></tr>
 <tr class="separator:a90c0b20d54005712fcc8cb01281360e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ae578001fe043b4cca7a0edd801cfe9c4"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx_8c.html#ae578001fe043b4cca7a0edd801cfe9c4">DRIVER_VERSION</a>&#160;&#160;&#160;1000</td></tr>
+<tr class="memitem:ae578001fe043b4cca7a0edd801cfe9c4" id="r_ae578001fe043b4cca7a0edd801cfe9c4"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx_8c.html#ae578001fe043b4cca7a0edd801cfe9c4">DRIVER_VERSION</a>&#160;&#160;&#160;1000</td></tr>
 <tr class="separator:ae578001fe043b4cca7a0edd801cfe9c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:af0708c46377cfee2dff1ff429d8675d5"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>&#160;&#160;&#160;0x06</td></tr>
-<tr class="memdesc:af0708c46377cfee2dff1ff429d8675d5"><td class="mdescLeft">&#160;</td><td class="mdescRight">chip command definition  <a href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">More...</a><br /></td></tr>
+<tr class="memitem:af0708c46377cfee2dff1ff429d8675d5" id="r_af0708c46377cfee2dff1ff429d8675d5"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>&#160;&#160;&#160;0x06</td></tr>
+<tr class="memdesc:af0708c46377cfee2dff1ff429d8675d5"><td class="mdescLeft">&#160;</td><td class="mdescRight">chip command definition  <br /></td></tr>
 <tr class="separator:af0708c46377cfee2dff1ff429d8675d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a7c9e980e30f499dd97b02935c91f2c02"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx_8c.html#a7c9e980e30f499dd97b02935c91f2c02">W25QXX_COMMAND_VOLATILE_SR_WRITE_ENABLE</a>&#160;&#160;&#160;0x50</td></tr>
+<tr class="memitem:a7c9e980e30f499dd97b02935c91f2c02" id="r_a7c9e980e30f499dd97b02935c91f2c02"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx_8c.html#a7c9e980e30f499dd97b02935c91f2c02">W25QXX_COMMAND_VOLATILE_SR_WRITE_ENABLE</a>&#160;&#160;&#160;0x50</td></tr>
 <tr class="separator:a7c9e980e30f499dd97b02935c91f2c02"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a36dfb1951fe152d63e3715a161646713"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx_8c.html#a36dfb1951fe152d63e3715a161646713">W25QXX_COMMAND_WRITE_DISABLE</a>&#160;&#160;&#160;0x04</td></tr>
+<tr class="memitem:a36dfb1951fe152d63e3715a161646713" id="r_a36dfb1951fe152d63e3715a161646713"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx_8c.html#a36dfb1951fe152d63e3715a161646713">W25QXX_COMMAND_WRITE_DISABLE</a>&#160;&#160;&#160;0x04</td></tr>
 <tr class="separator:a36dfb1951fe152d63e3715a161646713"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:adf682969c34f4b31a87dd92dd18ccea3"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx_8c.html#adf682969c34f4b31a87dd92dd18ccea3">W25QXX_COMMAND_READ_STATUS_REG1</a>&#160;&#160;&#160;0x05</td></tr>
+<tr class="memitem:adf682969c34f4b31a87dd92dd18ccea3" id="r_adf682969c34f4b31a87dd92dd18ccea3"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx_8c.html#adf682969c34f4b31a87dd92dd18ccea3">W25QXX_COMMAND_READ_STATUS_REG1</a>&#160;&#160;&#160;0x05</td></tr>
 <tr class="separator:adf682969c34f4b31a87dd92dd18ccea3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a4a8cdc5b6ce75029df877263bdf35f2a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx_8c.html#a4a8cdc5b6ce75029df877263bdf35f2a">W25QXX_COMMAND_READ_STATUS_REG2</a>&#160;&#160;&#160;0x35</td></tr>
+<tr class="memitem:a4a8cdc5b6ce75029df877263bdf35f2a" id="r_a4a8cdc5b6ce75029df877263bdf35f2a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx_8c.html#a4a8cdc5b6ce75029df877263bdf35f2a">W25QXX_COMMAND_READ_STATUS_REG2</a>&#160;&#160;&#160;0x35</td></tr>
 <tr class="separator:a4a8cdc5b6ce75029df877263bdf35f2a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a09798bdb3fabdf7bb4cfd8bce18100ce"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx_8c.html#a09798bdb3fabdf7bb4cfd8bce18100ce">W25QXX_COMMAND_READ_STATUS_REG3</a>&#160;&#160;&#160;0x15</td></tr>
+<tr class="memitem:a09798bdb3fabdf7bb4cfd8bce18100ce" id="r_a09798bdb3fabdf7bb4cfd8bce18100ce"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx_8c.html#a09798bdb3fabdf7bb4cfd8bce18100ce">W25QXX_COMMAND_READ_STATUS_REG3</a>&#160;&#160;&#160;0x15</td></tr>
 <tr class="separator:a09798bdb3fabdf7bb4cfd8bce18100ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a932f54ff92de8bbab4602ab85ac6c155"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx_8c.html#a932f54ff92de8bbab4602ab85ac6c155">W25QXX_COMMAND_WRITE_STATUS_REG1</a>&#160;&#160;&#160;0x01</td></tr>
+<tr class="memitem:a932f54ff92de8bbab4602ab85ac6c155" id="r_a932f54ff92de8bbab4602ab85ac6c155"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx_8c.html#a932f54ff92de8bbab4602ab85ac6c155">W25QXX_COMMAND_WRITE_STATUS_REG1</a>&#160;&#160;&#160;0x01</td></tr>
 <tr class="separator:a932f54ff92de8bbab4602ab85ac6c155"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a4be10ed873d56bb183d9b1bde9105135"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx_8c.html#a4be10ed873d56bb183d9b1bde9105135">W25QXX_COMMAND_WRITE_STATUS_REG2</a>&#160;&#160;&#160;0x31</td></tr>
+<tr class="memitem:a4be10ed873d56bb183d9b1bde9105135" id="r_a4be10ed873d56bb183d9b1bde9105135"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx_8c.html#a4be10ed873d56bb183d9b1bde9105135">W25QXX_COMMAND_WRITE_STATUS_REG2</a>&#160;&#160;&#160;0x31</td></tr>
 <tr class="separator:a4be10ed873d56bb183d9b1bde9105135"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a6d099dc6afb59cc950d3abe96b840158"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx_8c.html#a6d099dc6afb59cc950d3abe96b840158">W25QXX_COMMAND_WRITE_STATUS_REG3</a>&#160;&#160;&#160;0x11</td></tr>
+<tr class="memitem:a6d099dc6afb59cc950d3abe96b840158" id="r_a6d099dc6afb59cc950d3abe96b840158"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx_8c.html#a6d099dc6afb59cc950d3abe96b840158">W25QXX_COMMAND_WRITE_STATUS_REG3</a>&#160;&#160;&#160;0x11</td></tr>
 <tr class="separator:a6d099dc6afb59cc950d3abe96b840158"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a63ec9ecd709fcb69107756f253616a6e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx_8c.html#a63ec9ecd709fcb69107756f253616a6e">W25QXX_COMMAND_CHIP_ERASE</a>&#160;&#160;&#160;0xC7</td></tr>
+<tr class="memitem:a63ec9ecd709fcb69107756f253616a6e" id="r_a63ec9ecd709fcb69107756f253616a6e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx_8c.html#a63ec9ecd709fcb69107756f253616a6e">W25QXX_COMMAND_CHIP_ERASE</a>&#160;&#160;&#160;0xC7</td></tr>
 <tr class="separator:a63ec9ecd709fcb69107756f253616a6e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a43f9a1e3c03d4a7d2a991e81f0e89f51"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx_8c.html#a43f9a1e3c03d4a7d2a991e81f0e89f51">W25QXX_COMMAND_ERASE_PROGRAM_SUSPEND</a>&#160;&#160;&#160;0x75</td></tr>
+<tr class="memitem:a43f9a1e3c03d4a7d2a991e81f0e89f51" id="r_a43f9a1e3c03d4a7d2a991e81f0e89f51"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx_8c.html#a43f9a1e3c03d4a7d2a991e81f0e89f51">W25QXX_COMMAND_ERASE_PROGRAM_SUSPEND</a>&#160;&#160;&#160;0x75</td></tr>
 <tr class="separator:a43f9a1e3c03d4a7d2a991e81f0e89f51"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a0daeb46fb8b219a3d6b37d426c5c0e95"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx_8c.html#a0daeb46fb8b219a3d6b37d426c5c0e95">W25QXX_COMMAND_ERASE_PROGRAM_RESUME</a>&#160;&#160;&#160;0x7A</td></tr>
+<tr class="memitem:a0daeb46fb8b219a3d6b37d426c5c0e95" id="r_a0daeb46fb8b219a3d6b37d426c5c0e95"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx_8c.html#a0daeb46fb8b219a3d6b37d426c5c0e95">W25QXX_COMMAND_ERASE_PROGRAM_RESUME</a>&#160;&#160;&#160;0x7A</td></tr>
 <tr class="separator:a0daeb46fb8b219a3d6b37d426c5c0e95"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a6fe4d603e33b7c8b8310a884e02a130b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx_8c.html#a6fe4d603e33b7c8b8310a884e02a130b">W25QXX_COMMAND_POWER_DOWN</a>&#160;&#160;&#160;0xB9</td></tr>
+<tr class="memitem:a6fe4d603e33b7c8b8310a884e02a130b" id="r_a6fe4d603e33b7c8b8310a884e02a130b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx_8c.html#a6fe4d603e33b7c8b8310a884e02a130b">W25QXX_COMMAND_POWER_DOWN</a>&#160;&#160;&#160;0xB9</td></tr>
 <tr class="separator:a6fe4d603e33b7c8b8310a884e02a130b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ad344065461b2c71521017984f040b425"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx_8c.html#ad344065461b2c71521017984f040b425">W25QXX_COMMAND_RELEASE_POWER_DOWN</a>&#160;&#160;&#160;0xAB</td></tr>
+<tr class="memitem:ad344065461b2c71521017984f040b425" id="r_ad344065461b2c71521017984f040b425"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx_8c.html#ad344065461b2c71521017984f040b425">W25QXX_COMMAND_RELEASE_POWER_DOWN</a>&#160;&#160;&#160;0xAB</td></tr>
 <tr class="separator:ad344065461b2c71521017984f040b425"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:af6d9a5bc0b57b041e22af80b85e53f56"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx_8c.html#af6d9a5bc0b57b041e22af80b85e53f56">W25QXX_COMMAND_READ_MANUFACTURER</a>&#160;&#160;&#160;0x90</td></tr>
+<tr class="memitem:af6d9a5bc0b57b041e22af80b85e53f56" id="r_af6d9a5bc0b57b041e22af80b85e53f56"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx_8c.html#af6d9a5bc0b57b041e22af80b85e53f56">W25QXX_COMMAND_READ_MANUFACTURER</a>&#160;&#160;&#160;0x90</td></tr>
 <tr class="separator:af6d9a5bc0b57b041e22af80b85e53f56"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a54f3ece548cd5eadc94642235442315a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx_8c.html#a54f3ece548cd5eadc94642235442315a">W25QXX_COMMAND_JEDEC_ID</a>&#160;&#160;&#160;0x9F</td></tr>
+<tr class="memitem:a54f3ece548cd5eadc94642235442315a" id="r_a54f3ece548cd5eadc94642235442315a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx_8c.html#a54f3ece548cd5eadc94642235442315a">W25QXX_COMMAND_JEDEC_ID</a>&#160;&#160;&#160;0x9F</td></tr>
 <tr class="separator:a54f3ece548cd5eadc94642235442315a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:af81bc9ddfc8da8eb911435e835536ffb"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx_8c.html#af81bc9ddfc8da8eb911435e835536ffb">W25QXX_COMMAND_GLOBAL_BLOCK_SECTOR_LOCK</a>&#160;&#160;&#160;0x7E</td></tr>
+<tr class="memitem:af81bc9ddfc8da8eb911435e835536ffb" id="r_af81bc9ddfc8da8eb911435e835536ffb"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx_8c.html#af81bc9ddfc8da8eb911435e835536ffb">W25QXX_COMMAND_GLOBAL_BLOCK_SECTOR_LOCK</a>&#160;&#160;&#160;0x7E</td></tr>
 <tr class="separator:af81bc9ddfc8da8eb911435e835536ffb"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ab96d2ad8602a5a50c988b8c09d4bbbc5"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx_8c.html#ab96d2ad8602a5a50c988b8c09d4bbbc5">W25QXX_COMMAND_GLOBAL_BLOCK_SECTOR_UNLOCK</a>&#160;&#160;&#160;0x98</td></tr>
+<tr class="memitem:ab96d2ad8602a5a50c988b8c09d4bbbc5" id="r_ab96d2ad8602a5a50c988b8c09d4bbbc5"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx_8c.html#ab96d2ad8602a5a50c988b8c09d4bbbc5">W25QXX_COMMAND_GLOBAL_BLOCK_SECTOR_UNLOCK</a>&#160;&#160;&#160;0x98</td></tr>
 <tr class="separator:ab96d2ad8602a5a50c988b8c09d4bbbc5"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a052d5373086b473bf0d450ea1bd73828"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx_8c.html#a052d5373086b473bf0d450ea1bd73828">W25QXX_COMMAND_ENTER_QSPI_MODE</a>&#160;&#160;&#160;0x38</td></tr>
+<tr class="memitem:a052d5373086b473bf0d450ea1bd73828" id="r_a052d5373086b473bf0d450ea1bd73828"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx_8c.html#a052d5373086b473bf0d450ea1bd73828">W25QXX_COMMAND_ENTER_QSPI_MODE</a>&#160;&#160;&#160;0x38</td></tr>
 <tr class="separator:a052d5373086b473bf0d450ea1bd73828"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a6dae3a832abc19d1861fafb32f231d94"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx_8c.html#a6dae3a832abc19d1861fafb32f231d94">W25QXX_COMMAND_ENABLE_RESET</a>&#160;&#160;&#160;0x66</td></tr>
+<tr class="memitem:a6dae3a832abc19d1861fafb32f231d94" id="r_a6dae3a832abc19d1861fafb32f231d94"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx_8c.html#a6dae3a832abc19d1861fafb32f231d94">W25QXX_COMMAND_ENABLE_RESET</a>&#160;&#160;&#160;0x66</td></tr>
 <tr class="separator:a6dae3a832abc19d1861fafb32f231d94"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ab25182298c921c8f7f42216e0d5aa56b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx_8c.html#ab25182298c921c8f7f42216e0d5aa56b">W25QXX_COMMAND_RESET_DEVICE</a>&#160;&#160;&#160;0x99</td></tr>
+<tr class="memitem:ab25182298c921c8f7f42216e0d5aa56b" id="r_ab25182298c921c8f7f42216e0d5aa56b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx_8c.html#ab25182298c921c8f7f42216e0d5aa56b">W25QXX_COMMAND_RESET_DEVICE</a>&#160;&#160;&#160;0x99</td></tr>
 <tr class="separator:ab25182298c921c8f7f42216e0d5aa56b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a6aeed0a651b31064f25ab2f57fdacf2f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx_8c.html#a6aeed0a651b31064f25ab2f57fdacf2f">W25QXX_COMMAND_READ_UNIQUE_ID</a>&#160;&#160;&#160;0x4B</td></tr>
+<tr class="memitem:a6aeed0a651b31064f25ab2f57fdacf2f" id="r_a6aeed0a651b31064f25ab2f57fdacf2f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx_8c.html#a6aeed0a651b31064f25ab2f57fdacf2f">W25QXX_COMMAND_READ_UNIQUE_ID</a>&#160;&#160;&#160;0x4B</td></tr>
 <tr class="separator:a6aeed0a651b31064f25ab2f57fdacf2f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aebca01f1f7fd279523d29e579998574a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx_8c.html#aebca01f1f7fd279523d29e579998574a">W25QXX_COMMAND_PAGE_PROGRAM</a>&#160;&#160;&#160;0x02</td></tr>
+<tr class="memitem:aebca01f1f7fd279523d29e579998574a" id="r_aebca01f1f7fd279523d29e579998574a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx_8c.html#aebca01f1f7fd279523d29e579998574a">W25QXX_COMMAND_PAGE_PROGRAM</a>&#160;&#160;&#160;0x02</td></tr>
 <tr class="separator:aebca01f1f7fd279523d29e579998574a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a8212fac3d1e43024621b6b560a8dddfe"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx_8c.html#a8212fac3d1e43024621b6b560a8dddfe">W25QXX_COMMAND_QUAD_PAGE_PROGRAM</a>&#160;&#160;&#160;0x32</td></tr>
+<tr class="memitem:a8212fac3d1e43024621b6b560a8dddfe" id="r_a8212fac3d1e43024621b6b560a8dddfe"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx_8c.html#a8212fac3d1e43024621b6b560a8dddfe">W25QXX_COMMAND_QUAD_PAGE_PROGRAM</a>&#160;&#160;&#160;0x32</td></tr>
 <tr class="separator:a8212fac3d1e43024621b6b560a8dddfe"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a6e7cd159f91e23930450725fd6910f9c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx_8c.html#a6e7cd159f91e23930450725fd6910f9c">W25QXX_COMMAND_SECTOR_ERASE_4K</a>&#160;&#160;&#160;0x20</td></tr>
+<tr class="memitem:a6e7cd159f91e23930450725fd6910f9c" id="r_a6e7cd159f91e23930450725fd6910f9c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx_8c.html#a6e7cd159f91e23930450725fd6910f9c">W25QXX_COMMAND_SECTOR_ERASE_4K</a>&#160;&#160;&#160;0x20</td></tr>
 <tr class="separator:a6e7cd159f91e23930450725fd6910f9c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a8bfb4e869985f5fa21ea7d1d262f90ad"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx_8c.html#a8bfb4e869985f5fa21ea7d1d262f90ad">W25QXX_COMMAND_BLOCK_ERASE_32K</a>&#160;&#160;&#160;0x52</td></tr>
+<tr class="memitem:a8bfb4e869985f5fa21ea7d1d262f90ad" id="r_a8bfb4e869985f5fa21ea7d1d262f90ad"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx_8c.html#a8bfb4e869985f5fa21ea7d1d262f90ad">W25QXX_COMMAND_BLOCK_ERASE_32K</a>&#160;&#160;&#160;0x52</td></tr>
 <tr class="separator:a8bfb4e869985f5fa21ea7d1d262f90ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a4c5a1ed46f4d662a61bc06573ab548a0"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx_8c.html#a4c5a1ed46f4d662a61bc06573ab548a0">W25QXX_COMMAND_BLOCK_ERASE_64K</a>&#160;&#160;&#160;0xD8</td></tr>
+<tr class="memitem:a4c5a1ed46f4d662a61bc06573ab548a0" id="r_a4c5a1ed46f4d662a61bc06573ab548a0"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx_8c.html#a4c5a1ed46f4d662a61bc06573ab548a0">W25QXX_COMMAND_BLOCK_ERASE_64K</a>&#160;&#160;&#160;0xD8</td></tr>
 <tr class="separator:a4c5a1ed46f4d662a61bc06573ab548a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a23fcd6d9b067580d534d626c43b7cff3"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx_8c.html#a23fcd6d9b067580d534d626c43b7cff3">W25QXX_COMMAND_READ_DATA</a>&#160;&#160;&#160;0x03</td></tr>
+<tr class="memitem:a23fcd6d9b067580d534d626c43b7cff3" id="r_a23fcd6d9b067580d534d626c43b7cff3"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx_8c.html#a23fcd6d9b067580d534d626c43b7cff3">W25QXX_COMMAND_READ_DATA</a>&#160;&#160;&#160;0x03</td></tr>
 <tr class="separator:a23fcd6d9b067580d534d626c43b7cff3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ac957b31a68db8c14f88a196a98b0aa18"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx_8c.html#ac957b31a68db8c14f88a196a98b0aa18">W25QXX_COMMAND_FAST_READ</a>&#160;&#160;&#160;0x0B</td></tr>
+<tr class="memitem:ac957b31a68db8c14f88a196a98b0aa18" id="r_ac957b31a68db8c14f88a196a98b0aa18"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx_8c.html#ac957b31a68db8c14f88a196a98b0aa18">W25QXX_COMMAND_FAST_READ</a>&#160;&#160;&#160;0x0B</td></tr>
 <tr class="separator:ac957b31a68db8c14f88a196a98b0aa18"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a8d49efa8b978ae8fd3eb18d0e5ae73e8"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx_8c.html#a8d49efa8b978ae8fd3eb18d0e5ae73e8">W25QXX_COMMAND_FAST_READ_DUAL_OUTPUT</a>&#160;&#160;&#160;0x3B</td></tr>
+<tr class="memitem:a8d49efa8b978ae8fd3eb18d0e5ae73e8" id="r_a8d49efa8b978ae8fd3eb18d0e5ae73e8"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx_8c.html#a8d49efa8b978ae8fd3eb18d0e5ae73e8">W25QXX_COMMAND_FAST_READ_DUAL_OUTPUT</a>&#160;&#160;&#160;0x3B</td></tr>
 <tr class="separator:a8d49efa8b978ae8fd3eb18d0e5ae73e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a54ddb3d948c4bb95cc62199676c817b2"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx_8c.html#a54ddb3d948c4bb95cc62199676c817b2">W25QXX_COMMAND_FAST_READ_QUAD_OUTPUT</a>&#160;&#160;&#160;0x6B</td></tr>
+<tr class="memitem:a54ddb3d948c4bb95cc62199676c817b2" id="r_a54ddb3d948c4bb95cc62199676c817b2"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx_8c.html#a54ddb3d948c4bb95cc62199676c817b2">W25QXX_COMMAND_FAST_READ_QUAD_OUTPUT</a>&#160;&#160;&#160;0x6B</td></tr>
 <tr class="separator:a54ddb3d948c4bb95cc62199676c817b2"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a63774c5ebbdf5445466d840fad567bf6"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx_8c.html#a63774c5ebbdf5445466d840fad567bf6">W25QXX_COMMAND_READ_SFDP_REGISTER</a>&#160;&#160;&#160;0x5A</td></tr>
+<tr class="memitem:a63774c5ebbdf5445466d840fad567bf6" id="r_a63774c5ebbdf5445466d840fad567bf6"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx_8c.html#a63774c5ebbdf5445466d840fad567bf6">W25QXX_COMMAND_READ_SFDP_REGISTER</a>&#160;&#160;&#160;0x5A</td></tr>
 <tr class="separator:a63774c5ebbdf5445466d840fad567bf6"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a842f8d646fc8f8ed72422fc1d789498c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx_8c.html#a842f8d646fc8f8ed72422fc1d789498c">W25QXX_COMMAND_ERASE_SECURITY_REGISTER</a>&#160;&#160;&#160;0x44</td></tr>
+<tr class="memitem:a842f8d646fc8f8ed72422fc1d789498c" id="r_a842f8d646fc8f8ed72422fc1d789498c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx_8c.html#a842f8d646fc8f8ed72422fc1d789498c">W25QXX_COMMAND_ERASE_SECURITY_REGISTER</a>&#160;&#160;&#160;0x44</td></tr>
 <tr class="separator:a842f8d646fc8f8ed72422fc1d789498c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a915ab53f5f2d1cad6b954205e76cb4d5"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx_8c.html#a915ab53f5f2d1cad6b954205e76cb4d5">W25QXX_COMMAND_PROGRAM_SECURITY_REGISTER</a>&#160;&#160;&#160;0x42</td></tr>
+<tr class="memitem:a915ab53f5f2d1cad6b954205e76cb4d5" id="r_a915ab53f5f2d1cad6b954205e76cb4d5"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx_8c.html#a915ab53f5f2d1cad6b954205e76cb4d5">W25QXX_COMMAND_PROGRAM_SECURITY_REGISTER</a>&#160;&#160;&#160;0x42</td></tr>
 <tr class="separator:a915ab53f5f2d1cad6b954205e76cb4d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a4dc5fb2c3c15ef86df56b534b874a919"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx_8c.html#a4dc5fb2c3c15ef86df56b534b874a919">W25QXX_COMMAND_READ_SECURITY_REGISTER</a>&#160;&#160;&#160;0x48</td></tr>
+<tr class="memitem:a4dc5fb2c3c15ef86df56b534b874a919" id="r_a4dc5fb2c3c15ef86df56b534b874a919"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx_8c.html#a4dc5fb2c3c15ef86df56b534b874a919">W25QXX_COMMAND_READ_SECURITY_REGISTER</a>&#160;&#160;&#160;0x48</td></tr>
 <tr class="separator:a4dc5fb2c3c15ef86df56b534b874a919"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a328f6a9635b1ec6868410375de90b0df"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx_8c.html#a328f6a9635b1ec6868410375de90b0df">W25QXX_COMMAND_INDIVIDUAL_BLOCK_LOCK</a>&#160;&#160;&#160;0x36</td></tr>
+<tr class="memitem:a328f6a9635b1ec6868410375de90b0df" id="r_a328f6a9635b1ec6868410375de90b0df"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx_8c.html#a328f6a9635b1ec6868410375de90b0df">W25QXX_COMMAND_INDIVIDUAL_BLOCK_LOCK</a>&#160;&#160;&#160;0x36</td></tr>
 <tr class="separator:a328f6a9635b1ec6868410375de90b0df"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a3cc8b61583b5eb9d7c1ecd6831689718"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx_8c.html#a3cc8b61583b5eb9d7c1ecd6831689718">W25QXX_COMMAND_INDIVIDUAL_BLOCK_UNLOCK</a>&#160;&#160;&#160;0x39</td></tr>
+<tr class="memitem:a3cc8b61583b5eb9d7c1ecd6831689718" id="r_a3cc8b61583b5eb9d7c1ecd6831689718"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx_8c.html#a3cc8b61583b5eb9d7c1ecd6831689718">W25QXX_COMMAND_INDIVIDUAL_BLOCK_UNLOCK</a>&#160;&#160;&#160;0x39</td></tr>
 <tr class="separator:a3cc8b61583b5eb9d7c1ecd6831689718"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a19e055bec30de0ad30e7f8ab5feea6a8"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx_8c.html#a19e055bec30de0ad30e7f8ab5feea6a8">W25QXX_COMMAND_READ_BLOCK_LOCK</a>&#160;&#160;&#160;0x3D</td></tr>
+<tr class="memitem:a19e055bec30de0ad30e7f8ab5feea6a8" id="r_a19e055bec30de0ad30e7f8ab5feea6a8"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx_8c.html#a19e055bec30de0ad30e7f8ab5feea6a8">W25QXX_COMMAND_READ_BLOCK_LOCK</a>&#160;&#160;&#160;0x3D</td></tr>
 <tr class="separator:a19e055bec30de0ad30e7f8ab5feea6a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a2232ada3558228c2902d654989ca65f1"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx_8c.html#a2232ada3558228c2902d654989ca65f1">W25QXX_COMMAND_FAST_READ_DUAL_IO</a>&#160;&#160;&#160;0xBB</td></tr>
+<tr class="memitem:a2232ada3558228c2902d654989ca65f1" id="r_a2232ada3558228c2902d654989ca65f1"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx_8c.html#a2232ada3558228c2902d654989ca65f1">W25QXX_COMMAND_FAST_READ_DUAL_IO</a>&#160;&#160;&#160;0xBB</td></tr>
 <tr class="separator:a2232ada3558228c2902d654989ca65f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a374c09f79cc61a3e7ac374bca5122e25"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx_8c.html#a374c09f79cc61a3e7ac374bca5122e25">W25QXX_COMMAND_DEVICE_ID_DUAL_IO</a>&#160;&#160;&#160;0x92</td></tr>
+<tr class="memitem:a374c09f79cc61a3e7ac374bca5122e25" id="r_a374c09f79cc61a3e7ac374bca5122e25"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx_8c.html#a374c09f79cc61a3e7ac374bca5122e25">W25QXX_COMMAND_DEVICE_ID_DUAL_IO</a>&#160;&#160;&#160;0x92</td></tr>
 <tr class="separator:a374c09f79cc61a3e7ac374bca5122e25"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:acfb19490258b26729fa83fdd60c4d822"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx_8c.html#acfb19490258b26729fa83fdd60c4d822">W25QXX_COMMAND_SET_BURST_WITH_WRAP</a>&#160;&#160;&#160;0x77</td></tr>
+<tr class="memitem:acfb19490258b26729fa83fdd60c4d822" id="r_acfb19490258b26729fa83fdd60c4d822"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx_8c.html#acfb19490258b26729fa83fdd60c4d822">W25QXX_COMMAND_SET_BURST_WITH_WRAP</a>&#160;&#160;&#160;0x77</td></tr>
 <tr class="separator:acfb19490258b26729fa83fdd60c4d822"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a80d19998d9d1218d0fa69e7d4d6b0ecb"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx_8c.html#a80d19998d9d1218d0fa69e7d4d6b0ecb">W25QXX_COMMAND_FAST_READ_QUAD_IO</a>&#160;&#160;&#160;0xEB</td></tr>
+<tr class="memitem:a80d19998d9d1218d0fa69e7d4d6b0ecb" id="r_a80d19998d9d1218d0fa69e7d4d6b0ecb"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx_8c.html#a80d19998d9d1218d0fa69e7d4d6b0ecb">W25QXX_COMMAND_FAST_READ_QUAD_IO</a>&#160;&#160;&#160;0xEB</td></tr>
 <tr class="separator:a80d19998d9d1218d0fa69e7d4d6b0ecb"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a947382a74ac06eb8a2ff8f5bcb1b744d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx_8c.html#a947382a74ac06eb8a2ff8f5bcb1b744d">W25QXX_COMMAND_WORD_READ_QUAD_IO</a>&#160;&#160;&#160;0xE7</td></tr>
+<tr class="memitem:a947382a74ac06eb8a2ff8f5bcb1b744d" id="r_a947382a74ac06eb8a2ff8f5bcb1b744d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx_8c.html#a947382a74ac06eb8a2ff8f5bcb1b744d">W25QXX_COMMAND_WORD_READ_QUAD_IO</a>&#160;&#160;&#160;0xE7</td></tr>
 <tr class="separator:a947382a74ac06eb8a2ff8f5bcb1b744d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:acb7f8599b26c29356651690ec9b25e66"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx_8c.html#acb7f8599b26c29356651690ec9b25e66">W25QXX_COMMAND_OCTAL_WORD_READ_QUAD_IO</a>&#160;&#160;&#160;0xE3</td></tr>
+<tr class="memitem:acb7f8599b26c29356651690ec9b25e66" id="r_acb7f8599b26c29356651690ec9b25e66"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx_8c.html#acb7f8599b26c29356651690ec9b25e66">W25QXX_COMMAND_OCTAL_WORD_READ_QUAD_IO</a>&#160;&#160;&#160;0xE3</td></tr>
 <tr class="separator:acb7f8599b26c29356651690ec9b25e66"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a7573bc250d850078be3221c29521bc5c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx_8c.html#a7573bc250d850078be3221c29521bc5c">W25QXX_COMMAND_DEVICE_ID_QUAD_IO</a>&#160;&#160;&#160;0x94</td></tr>
+<tr class="memitem:a7573bc250d850078be3221c29521bc5c" id="r_a7573bc250d850078be3221c29521bc5c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="driver__w25qxx_8c.html#a7573bc250d850078be3221c29521bc5c">W25QXX_COMMAND_DEVICE_ID_QUAD_IO</a>&#160;&#160;&#160;0x94</td></tr>
 <tr class="separator:a7573bc250d850078be3221c29521bc5c"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
 Functions</h2></td></tr>
-<tr class="memitem:ga665139209b0abc386474a78d89cce6f2"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#ga665139209b0abc386474a78d89cce6f2">w25qxx_set_dual_quad_spi</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, <a class="el" href="group__w25qxx__basic__driver.html#gafb2690946f5baf4be6f3a63dde5491fb">w25qxx_bool_t</a> enable)</td></tr>
-<tr class="memdesc:ga665139209b0abc386474a78d89cce6f2"><td class="mdescLeft">&#160;</td><td class="mdescRight">enable or disable the dual quad spi  <a href="group__w25qxx__basic__driver.html#ga665139209b0abc386474a78d89cce6f2">More...</a><br /></td></tr>
+<tr class="memitem:ga665139209b0abc386474a78d89cce6f2" id="r_ga665139209b0abc386474a78d89cce6f2"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#ga665139209b0abc386474a78d89cce6f2">w25qxx_set_dual_quad_spi</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, <a class="el" href="group__w25qxx__basic__driver.html#gafb2690946f5baf4be6f3a63dde5491fb">w25qxx_bool_t</a> enable)</td></tr>
+<tr class="memdesc:ga665139209b0abc386474a78d89cce6f2"><td class="mdescLeft">&#160;</td><td class="mdescRight">enable or disable the dual quad spi  <br /></td></tr>
 <tr class="separator:ga665139209b0abc386474a78d89cce6f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad4c9b8b0a2d0916c13567f9d7e494cf8"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#gad4c9b8b0a2d0916c13567f9d7e494cf8">w25qxx_get_dual_quad_spi</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, <a class="el" href="group__w25qxx__basic__driver.html#gafb2690946f5baf4be6f3a63dde5491fb">w25qxx_bool_t</a> *enable)</td></tr>
-<tr class="memdesc:gad4c9b8b0a2d0916c13567f9d7e494cf8"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the dual quad spi status  <a href="group__w25qxx__basic__driver.html#gad4c9b8b0a2d0916c13567f9d7e494cf8">More...</a><br /></td></tr>
+<tr class="memitem:gad4c9b8b0a2d0916c13567f9d7e494cf8" id="r_gad4c9b8b0a2d0916c13567f9d7e494cf8"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#gad4c9b8b0a2d0916c13567f9d7e494cf8">w25qxx_get_dual_quad_spi</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, <a class="el" href="group__w25qxx__basic__driver.html#gafb2690946f5baf4be6f3a63dde5491fb">w25qxx_bool_t</a> *enable)</td></tr>
+<tr class="memdesc:gad4c9b8b0a2d0916c13567f9d7e494cf8"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the dual quad spi status  <br /></td></tr>
 <tr class="separator:gad4c9b8b0a2d0916c13567f9d7e494cf8"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa57189cd4170b73f8b1300ca15e27de6"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#gaa57189cd4170b73f8b1300ca15e27de6">w25qxx_set_type</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, <a class="el" href="group__w25qxx__basic__driver.html#ga6cb4e5164464df549201dd96cb7a58b1">w25qxx_type_t</a> type)</td></tr>
-<tr class="memdesc:gaa57189cd4170b73f8b1300ca15e27de6"><td class="mdescLeft">&#160;</td><td class="mdescRight">set the chip type  <a href="group__w25qxx__basic__driver.html#gaa57189cd4170b73f8b1300ca15e27de6">More...</a><br /></td></tr>
+<tr class="memitem:gaa57189cd4170b73f8b1300ca15e27de6" id="r_gaa57189cd4170b73f8b1300ca15e27de6"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#gaa57189cd4170b73f8b1300ca15e27de6">w25qxx_set_type</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, <a class="el" href="group__w25qxx__basic__driver.html#ga6cb4e5164464df549201dd96cb7a58b1">w25qxx_type_t</a> type)</td></tr>
+<tr class="memdesc:gaa57189cd4170b73f8b1300ca15e27de6"><td class="mdescLeft">&#160;</td><td class="mdescRight">set the chip type  <br /></td></tr>
 <tr class="separator:gaa57189cd4170b73f8b1300ca15e27de6"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga685379998dad173b6d9c0b0da270685c"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#ga685379998dad173b6d9c0b0da270685c">w25qxx_get_type</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, <a class="el" href="group__w25qxx__basic__driver.html#ga6cb4e5164464df549201dd96cb7a58b1">w25qxx_type_t</a> *type)</td></tr>
-<tr class="memdesc:ga685379998dad173b6d9c0b0da270685c"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the chip type  <a href="group__w25qxx__basic__driver.html#ga685379998dad173b6d9c0b0da270685c">More...</a><br /></td></tr>
+<tr class="memitem:ga685379998dad173b6d9c0b0da270685c" id="r_ga685379998dad173b6d9c0b0da270685c"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#ga685379998dad173b6d9c0b0da270685c">w25qxx_get_type</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, <a class="el" href="group__w25qxx__basic__driver.html#ga6cb4e5164464df549201dd96cb7a58b1">w25qxx_type_t</a> *type)</td></tr>
+<tr class="memdesc:ga685379998dad173b6d9c0b0da270685c"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the chip type  <br /></td></tr>
 <tr class="separator:ga685379998dad173b6d9c0b0da270685c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga50a62003d566402d46ada2f272c41eb5"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#ga50a62003d566402d46ada2f272c41eb5">w25qxx_set_interface</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, <a class="el" href="group__w25qxx__basic__driver.html#gacbf327a42336baf10713a1796ff4f2fe">w25qxx_interface_t</a> interface)</td></tr>
-<tr class="memdesc:ga50a62003d566402d46ada2f272c41eb5"><td class="mdescLeft">&#160;</td><td class="mdescRight">set the chip interface  <a href="group__w25qxx__basic__driver.html#ga50a62003d566402d46ada2f272c41eb5">More...</a><br /></td></tr>
+<tr class="memitem:ga50a62003d566402d46ada2f272c41eb5" id="r_ga50a62003d566402d46ada2f272c41eb5"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#ga50a62003d566402d46ada2f272c41eb5">w25qxx_set_interface</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, <a class="el" href="group__w25qxx__basic__driver.html#gacbf327a42336baf10713a1796ff4f2fe">w25qxx_interface_t</a> interface)</td></tr>
+<tr class="memdesc:ga50a62003d566402d46ada2f272c41eb5"><td class="mdescLeft">&#160;</td><td class="mdescRight">set the chip interface  <br /></td></tr>
 <tr class="separator:ga50a62003d566402d46ada2f272c41eb5"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga86ef839d475f3926a0be46bbc18d4b45"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#ga86ef839d475f3926a0be46bbc18d4b45">w25qxx_get_interface</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, <a class="el" href="group__w25qxx__basic__driver.html#gacbf327a42336baf10713a1796ff4f2fe">w25qxx_interface_t</a> *interface)</td></tr>
-<tr class="memdesc:ga86ef839d475f3926a0be46bbc18d4b45"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the chip interface  <a href="group__w25qxx__basic__driver.html#ga86ef839d475f3926a0be46bbc18d4b45">More...</a><br /></td></tr>
+<tr class="memitem:ga86ef839d475f3926a0be46bbc18d4b45" id="r_ga86ef839d475f3926a0be46bbc18d4b45"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#ga86ef839d475f3926a0be46bbc18d4b45">w25qxx_get_interface</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, <a class="el" href="group__w25qxx__basic__driver.html#gacbf327a42336baf10713a1796ff4f2fe">w25qxx_interface_t</a> *interface)</td></tr>
+<tr class="memdesc:ga86ef839d475f3926a0be46bbc18d4b45"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the chip interface  <br /></td></tr>
 <tr class="separator:ga86ef839d475f3926a0be46bbc18d4b45"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad0e125eff304ce66fb3956d2c8c80656"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#gad0e125eff304ce66fb3956d2c8c80656">w25qxx_set_address_mode</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, <a class="el" href="group__w25qxx__basic__driver.html#gaa4c45f146d1ade8a2da8e751818fa4a2">w25qxx_address_mode_t</a> mode)</td></tr>
-<tr class="memdesc:gad0e125eff304ce66fb3956d2c8c80656"><td class="mdescLeft">&#160;</td><td class="mdescRight">set the chip address mode  <a href="group__w25qxx__basic__driver.html#gad0e125eff304ce66fb3956d2c8c80656">More...</a><br /></td></tr>
+<tr class="memitem:gad0e125eff304ce66fb3956d2c8c80656" id="r_gad0e125eff304ce66fb3956d2c8c80656"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#gad0e125eff304ce66fb3956d2c8c80656">w25qxx_set_address_mode</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, <a class="el" href="group__w25qxx__basic__driver.html#gaa4c45f146d1ade8a2da8e751818fa4a2">w25qxx_address_mode_t</a> mode)</td></tr>
+<tr class="memdesc:gad0e125eff304ce66fb3956d2c8c80656"><td class="mdescLeft">&#160;</td><td class="mdescRight">set the chip address mode  <br /></td></tr>
 <tr class="separator:gad0e125eff304ce66fb3956d2c8c80656"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga3a52036a97b12fcbe2280b0901a80b90"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#ga3a52036a97b12fcbe2280b0901a80b90">w25qxx_get_address_mode</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, <a class="el" href="group__w25qxx__basic__driver.html#gaa4c45f146d1ade8a2da8e751818fa4a2">w25qxx_address_mode_t</a> *mode)</td></tr>
-<tr class="memdesc:ga3a52036a97b12fcbe2280b0901a80b90"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the chip address mode  <a href="group__w25qxx__basic__driver.html#ga3a52036a97b12fcbe2280b0901a80b90">More...</a><br /></td></tr>
+<tr class="memitem:ga3a52036a97b12fcbe2280b0901a80b90" id="r_ga3a52036a97b12fcbe2280b0901a80b90"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#ga3a52036a97b12fcbe2280b0901a80b90">w25qxx_get_address_mode</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, <a class="el" href="group__w25qxx__basic__driver.html#gaa4c45f146d1ade8a2da8e751818fa4a2">w25qxx_address_mode_t</a> *mode)</td></tr>
+<tr class="memdesc:ga3a52036a97b12fcbe2280b0901a80b90"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the chip address mode  <br /></td></tr>
 <tr class="separator:ga3a52036a97b12fcbe2280b0901a80b90"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaeb269123feec054eaaf70f2ffb5797a3"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#gaeb269123feec054eaaf70f2ffb5797a3">w25qxx_enable_write</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle)</td></tr>
-<tr class="memdesc:gaeb269123feec054eaaf70f2ffb5797a3"><td class="mdescLeft">&#160;</td><td class="mdescRight">enable writing  <a href="group__w25qxx__advance__driver.html#gaeb269123feec054eaaf70f2ffb5797a3">More...</a><br /></td></tr>
+<tr class="memitem:gaeb269123feec054eaaf70f2ffb5797a3" id="r_gaeb269123feec054eaaf70f2ffb5797a3"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#gaeb269123feec054eaaf70f2ffb5797a3">w25qxx_enable_write</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle)</td></tr>
+<tr class="memdesc:gaeb269123feec054eaaf70f2ffb5797a3"><td class="mdescLeft">&#160;</td><td class="mdescRight">enable writing  <br /></td></tr>
 <tr class="separator:gaeb269123feec054eaaf70f2ffb5797a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga0f8889d6a25c32e150a2ab30753d461d"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga0f8889d6a25c32e150a2ab30753d461d">w25qxx_enable_volatile_sr_write</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle)</td></tr>
-<tr class="memdesc:ga0f8889d6a25c32e150a2ab30753d461d"><td class="mdescLeft">&#160;</td><td class="mdescRight">enable volatile sr writing  <a href="group__w25qxx__advance__driver.html#ga0f8889d6a25c32e150a2ab30753d461d">More...</a><br /></td></tr>
+<tr class="memitem:ga0f8889d6a25c32e150a2ab30753d461d" id="r_ga0f8889d6a25c32e150a2ab30753d461d"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga0f8889d6a25c32e150a2ab30753d461d">w25qxx_enable_volatile_sr_write</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle)</td></tr>
+<tr class="memdesc:ga0f8889d6a25c32e150a2ab30753d461d"><td class="mdescLeft">&#160;</td><td class="mdescRight">enable volatile sr writing  <br /></td></tr>
 <tr class="separator:ga0f8889d6a25c32e150a2ab30753d461d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac16a31269277051baad6c28fe4254b4a"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#gac16a31269277051baad6c28fe4254b4a">w25qxx_disable_write</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle)</td></tr>
-<tr class="memdesc:gac16a31269277051baad6c28fe4254b4a"><td class="mdescLeft">&#160;</td><td class="mdescRight">disable writing  <a href="group__w25qxx__advance__driver.html#gac16a31269277051baad6c28fe4254b4a">More...</a><br /></td></tr>
+<tr class="memitem:gac16a31269277051baad6c28fe4254b4a" id="r_gac16a31269277051baad6c28fe4254b4a"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#gac16a31269277051baad6c28fe4254b4a">w25qxx_disable_write</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle)</td></tr>
+<tr class="memdesc:gac16a31269277051baad6c28fe4254b4a"><td class="mdescLeft">&#160;</td><td class="mdescRight">disable writing  <br /></td></tr>
 <tr class="separator:gac16a31269277051baad6c28fe4254b4a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa77d2b00b4fb9cf586f77ace827ea7c6"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#gaa77d2b00b4fb9cf586f77ace827ea7c6">w25qxx_get_status1</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint8_t *status)</td></tr>
-<tr class="memdesc:gaa77d2b00b4fb9cf586f77ace827ea7c6"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the status 1  <a href="group__w25qxx__advance__driver.html#gaa77d2b00b4fb9cf586f77ace827ea7c6">More...</a><br /></td></tr>
+<tr class="memitem:gaa77d2b00b4fb9cf586f77ace827ea7c6" id="r_gaa77d2b00b4fb9cf586f77ace827ea7c6"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#gaa77d2b00b4fb9cf586f77ace827ea7c6">w25qxx_get_status1</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint8_t *status)</td></tr>
+<tr class="memdesc:gaa77d2b00b4fb9cf586f77ace827ea7c6"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the status 1  <br /></td></tr>
 <tr class="separator:gaa77d2b00b4fb9cf586f77ace827ea7c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa21237ecbd5951b8017799066e7db5d9"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#gaa21237ecbd5951b8017799066e7db5d9">w25qxx_get_status2</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint8_t *status)</td></tr>
-<tr class="memdesc:gaa21237ecbd5951b8017799066e7db5d9"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the status 2  <a href="group__w25qxx__advance__driver.html#gaa21237ecbd5951b8017799066e7db5d9">More...</a><br /></td></tr>
+<tr class="memitem:gaa21237ecbd5951b8017799066e7db5d9" id="r_gaa21237ecbd5951b8017799066e7db5d9"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#gaa21237ecbd5951b8017799066e7db5d9">w25qxx_get_status2</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint8_t *status)</td></tr>
+<tr class="memdesc:gaa21237ecbd5951b8017799066e7db5d9"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the status 2  <br /></td></tr>
 <tr class="separator:gaa21237ecbd5951b8017799066e7db5d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga99cf6a325a00921d4531004f0c1d75b1"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga99cf6a325a00921d4531004f0c1d75b1">w25qxx_get_status3</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint8_t *status)</td></tr>
-<tr class="memdesc:ga99cf6a325a00921d4531004f0c1d75b1"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the status 3  <a href="group__w25qxx__advance__driver.html#ga99cf6a325a00921d4531004f0c1d75b1">More...</a><br /></td></tr>
+<tr class="memitem:ga99cf6a325a00921d4531004f0c1d75b1" id="r_ga99cf6a325a00921d4531004f0c1d75b1"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga99cf6a325a00921d4531004f0c1d75b1">w25qxx_get_status3</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint8_t *status)</td></tr>
+<tr class="memdesc:ga99cf6a325a00921d4531004f0c1d75b1"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the status 3  <br /></td></tr>
 <tr class="separator:ga99cf6a325a00921d4531004f0c1d75b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga246e0bb07c8bbb39731f17906779c012"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga246e0bb07c8bbb39731f17906779c012">w25qxx_set_status1</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint8_t status)</td></tr>
-<tr class="memdesc:ga246e0bb07c8bbb39731f17906779c012"><td class="mdescLeft">&#160;</td><td class="mdescRight">set the status 1  <a href="group__w25qxx__advance__driver.html#ga246e0bb07c8bbb39731f17906779c012">More...</a><br /></td></tr>
+<tr class="memitem:ga246e0bb07c8bbb39731f17906779c012" id="r_ga246e0bb07c8bbb39731f17906779c012"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga246e0bb07c8bbb39731f17906779c012">w25qxx_set_status1</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint8_t status)</td></tr>
+<tr class="memdesc:ga246e0bb07c8bbb39731f17906779c012"><td class="mdescLeft">&#160;</td><td class="mdescRight">set the status 1  <br /></td></tr>
 <tr class="separator:ga246e0bb07c8bbb39731f17906779c012"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaab5f28e8930d50dbc2178e39bc9fa456"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#gaab5f28e8930d50dbc2178e39bc9fa456">w25qxx_set_status2</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint8_t status)</td></tr>
-<tr class="memdesc:gaab5f28e8930d50dbc2178e39bc9fa456"><td class="mdescLeft">&#160;</td><td class="mdescRight">set the status 2  <a href="group__w25qxx__advance__driver.html#gaab5f28e8930d50dbc2178e39bc9fa456">More...</a><br /></td></tr>
+<tr class="memitem:gaab5f28e8930d50dbc2178e39bc9fa456" id="r_gaab5f28e8930d50dbc2178e39bc9fa456"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#gaab5f28e8930d50dbc2178e39bc9fa456">w25qxx_set_status2</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint8_t status)</td></tr>
+<tr class="memdesc:gaab5f28e8930d50dbc2178e39bc9fa456"><td class="mdescLeft">&#160;</td><td class="mdescRight">set the status 2  <br /></td></tr>
 <tr class="separator:gaab5f28e8930d50dbc2178e39bc9fa456"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gada897a6c6d6acb99f4dd4ff9b65ad8ee"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#gada897a6c6d6acb99f4dd4ff9b65ad8ee">w25qxx_set_status3</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint8_t status)</td></tr>
-<tr class="memdesc:gada897a6c6d6acb99f4dd4ff9b65ad8ee"><td class="mdescLeft">&#160;</td><td class="mdescRight">set the status 3  <a href="group__w25qxx__advance__driver.html#gada897a6c6d6acb99f4dd4ff9b65ad8ee">More...</a><br /></td></tr>
+<tr class="memitem:gada897a6c6d6acb99f4dd4ff9b65ad8ee" id="r_gada897a6c6d6acb99f4dd4ff9b65ad8ee"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#gada897a6c6d6acb99f4dd4ff9b65ad8ee">w25qxx_set_status3</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint8_t status)</td></tr>
+<tr class="memdesc:gada897a6c6d6acb99f4dd4ff9b65ad8ee"><td class="mdescLeft">&#160;</td><td class="mdescRight">set the status 3  <br /></td></tr>
 <tr class="separator:gada897a6c6d6acb99f4dd4ff9b65ad8ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga0862833b36831f92684980b2e21f2e39"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#ga0862833b36831f92684980b2e21f2e39">w25qxx_chip_erase</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle)</td></tr>
-<tr class="memdesc:ga0862833b36831f92684980b2e21f2e39"><td class="mdescLeft">&#160;</td><td class="mdescRight">erase the chip  <a href="group__w25qxx__basic__driver.html#ga0862833b36831f92684980b2e21f2e39">More...</a><br /></td></tr>
+<tr class="memitem:ga0862833b36831f92684980b2e21f2e39" id="r_ga0862833b36831f92684980b2e21f2e39"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#ga0862833b36831f92684980b2e21f2e39">w25qxx_chip_erase</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle)</td></tr>
+<tr class="memdesc:ga0862833b36831f92684980b2e21f2e39"><td class="mdescLeft">&#160;</td><td class="mdescRight">erase the chip  <br /></td></tr>
 <tr class="separator:ga0862833b36831f92684980b2e21f2e39"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac7fbabc574c250eec100be861f5918ff"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#gac7fbabc574c250eec100be861f5918ff">w25qxx_erase_program_suspend</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle)</td></tr>
-<tr class="memdesc:gac7fbabc574c250eec100be861f5918ff"><td class="mdescLeft">&#160;</td><td class="mdescRight">suspend erase or program  <a href="group__w25qxx__advance__driver.html#gac7fbabc574c250eec100be861f5918ff">More...</a><br /></td></tr>
+<tr class="memitem:gac7fbabc574c250eec100be861f5918ff" id="r_gac7fbabc574c250eec100be861f5918ff"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#gac7fbabc574c250eec100be861f5918ff">w25qxx_erase_program_suspend</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle)</td></tr>
+<tr class="memdesc:gac7fbabc574c250eec100be861f5918ff"><td class="mdescLeft">&#160;</td><td class="mdescRight">suspend erase or program  <br /></td></tr>
 <tr class="separator:gac7fbabc574c250eec100be861f5918ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga05c69ac66309544eba4ff38a69f24c00"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga05c69ac66309544eba4ff38a69f24c00">w25qxx_erase_program_resume</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle)</td></tr>
-<tr class="memdesc:ga05c69ac66309544eba4ff38a69f24c00"><td class="mdescLeft">&#160;</td><td class="mdescRight">resume erase or program  <a href="group__w25qxx__advance__driver.html#ga05c69ac66309544eba4ff38a69f24c00">More...</a><br /></td></tr>
+<tr class="memitem:ga05c69ac66309544eba4ff38a69f24c00" id="r_ga05c69ac66309544eba4ff38a69f24c00"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga05c69ac66309544eba4ff38a69f24c00">w25qxx_erase_program_resume</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle)</td></tr>
+<tr class="memdesc:ga05c69ac66309544eba4ff38a69f24c00"><td class="mdescLeft">&#160;</td><td class="mdescRight">resume erase or program  <br /></td></tr>
 <tr class="separator:ga05c69ac66309544eba4ff38a69f24c00"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae4effce67e36120325e3c7b245b90142"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#gae4effce67e36120325e3c7b245b90142">w25qxx_power_down</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle)</td></tr>
-<tr class="memdesc:gae4effce67e36120325e3c7b245b90142"><td class="mdescLeft">&#160;</td><td class="mdescRight">power down  <a href="group__w25qxx__basic__driver.html#gae4effce67e36120325e3c7b245b90142">More...</a><br /></td></tr>
+<tr class="memitem:gae4effce67e36120325e3c7b245b90142" id="r_gae4effce67e36120325e3c7b245b90142"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#gae4effce67e36120325e3c7b245b90142">w25qxx_power_down</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle)</td></tr>
+<tr class="memdesc:gae4effce67e36120325e3c7b245b90142"><td class="mdescLeft">&#160;</td><td class="mdescRight">power down  <br /></td></tr>
 <tr class="separator:gae4effce67e36120325e3c7b245b90142"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga09c9b52877516a2ee4c080dc249e7331"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#ga09c9b52877516a2ee4c080dc249e7331">w25qxx_release_power_down</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle)</td></tr>
-<tr class="memdesc:ga09c9b52877516a2ee4c080dc249e7331"><td class="mdescLeft">&#160;</td><td class="mdescRight">release power down  <a href="group__w25qxx__basic__driver.html#ga09c9b52877516a2ee4c080dc249e7331">More...</a><br /></td></tr>
+<tr class="memitem:ga09c9b52877516a2ee4c080dc249e7331" id="r_ga09c9b52877516a2ee4c080dc249e7331"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#ga09c9b52877516a2ee4c080dc249e7331">w25qxx_release_power_down</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle)</td></tr>
+<tr class="memdesc:ga09c9b52877516a2ee4c080dc249e7331"><td class="mdescLeft">&#160;</td><td class="mdescRight">release power down  <br /></td></tr>
 <tr class="separator:ga09c9b52877516a2ee4c080dc249e7331"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga921836a777b082ff4d0f322ccfda6b22"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#ga921836a777b082ff4d0f322ccfda6b22">w25qxx_get_manufacturer_device_id</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint8_t *manufacturer, uint8_t *device_id)</td></tr>
-<tr class="memdesc:ga921836a777b082ff4d0f322ccfda6b22"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the manufacturer &amp;&amp; device id information  <a href="group__w25qxx__basic__driver.html#ga921836a777b082ff4d0f322ccfda6b22">More...</a><br /></td></tr>
+<tr class="memitem:ga921836a777b082ff4d0f322ccfda6b22" id="r_ga921836a777b082ff4d0f322ccfda6b22"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#ga921836a777b082ff4d0f322ccfda6b22">w25qxx_get_manufacturer_device_id</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint8_t *manufacturer, uint8_t *device_id)</td></tr>
+<tr class="memdesc:ga921836a777b082ff4d0f322ccfda6b22"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the manufacturer &amp;&amp; device id information  <br /></td></tr>
 <tr class="separator:ga921836a777b082ff4d0f322ccfda6b22"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga1cd3aec1bdeabbaed5f049fbf83ceeb4"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga1cd3aec1bdeabbaed5f049fbf83ceeb4">w25qxx_get_manufacturer_device_id_dual_io</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint8_t *manufacturer, uint8_t *device_id)</td></tr>
-<tr class="memdesc:ga1cd3aec1bdeabbaed5f049fbf83ceeb4"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the manufacturer &amp;&amp; device id information with dual io  <a href="group__w25qxx__advance__driver.html#ga1cd3aec1bdeabbaed5f049fbf83ceeb4">More...</a><br /></td></tr>
+<tr class="memitem:ga1cd3aec1bdeabbaed5f049fbf83ceeb4" id="r_ga1cd3aec1bdeabbaed5f049fbf83ceeb4"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga1cd3aec1bdeabbaed5f049fbf83ceeb4">w25qxx_get_manufacturer_device_id_dual_io</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint8_t *manufacturer, uint8_t *device_id)</td></tr>
+<tr class="memdesc:ga1cd3aec1bdeabbaed5f049fbf83ceeb4"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the manufacturer &amp;&amp; device id information with dual io  <br /></td></tr>
 <tr class="separator:ga1cd3aec1bdeabbaed5f049fbf83ceeb4"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga61bd3ce40b76b6862c6a53e0e37a3455"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga61bd3ce40b76b6862c6a53e0e37a3455">w25qxx_get_manufacturer_device_id_quad_io</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint8_t *manufacturer, uint8_t *device_id)</td></tr>
-<tr class="memdesc:ga61bd3ce40b76b6862c6a53e0e37a3455"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the manufacturer &amp;&amp; device id information with quad io  <a href="group__w25qxx__advance__driver.html#ga61bd3ce40b76b6862c6a53e0e37a3455">More...</a><br /></td></tr>
+<tr class="memitem:ga61bd3ce40b76b6862c6a53e0e37a3455" id="r_ga61bd3ce40b76b6862c6a53e0e37a3455"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga61bd3ce40b76b6862c6a53e0e37a3455">w25qxx_get_manufacturer_device_id_quad_io</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint8_t *manufacturer, uint8_t *device_id)</td></tr>
+<tr class="memdesc:ga61bd3ce40b76b6862c6a53e0e37a3455"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the manufacturer &amp;&amp; device id information with quad io  <br /></td></tr>
 <tr class="separator:ga61bd3ce40b76b6862c6a53e0e37a3455"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga8a93ba14a032e10a27f1495fdcf56058"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga8a93ba14a032e10a27f1495fdcf56058">w25qxx_get_jedec_id</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint8_t *manufacturer, uint8_t device_id[2])</td></tr>
-<tr class="memdesc:ga8a93ba14a032e10a27f1495fdcf56058"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the jedec id information  <a href="group__w25qxx__advance__driver.html#ga8a93ba14a032e10a27f1495fdcf56058">More...</a><br /></td></tr>
+<tr class="memitem:ga8a93ba14a032e10a27f1495fdcf56058" id="r_ga8a93ba14a032e10a27f1495fdcf56058"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga8a93ba14a032e10a27f1495fdcf56058">w25qxx_get_jedec_id</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint8_t *manufacturer, uint8_t device_id[2])</td></tr>
+<tr class="memdesc:ga8a93ba14a032e10a27f1495fdcf56058"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the jedec id information  <br /></td></tr>
 <tr class="separator:ga8a93ba14a032e10a27f1495fdcf56058"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab5579bc42bc07a7657848140888a817c"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#gab5579bc42bc07a7657848140888a817c">w25qxx_global_block_lock</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle)</td></tr>
-<tr class="memdesc:gab5579bc42bc07a7657848140888a817c"><td class="mdescLeft">&#160;</td><td class="mdescRight">lock the whole block  <a href="group__w25qxx__advance__driver.html#gab5579bc42bc07a7657848140888a817c">More...</a><br /></td></tr>
+<tr class="memitem:gab5579bc42bc07a7657848140888a817c" id="r_gab5579bc42bc07a7657848140888a817c"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#gab5579bc42bc07a7657848140888a817c">w25qxx_global_block_lock</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle)</td></tr>
+<tr class="memdesc:gab5579bc42bc07a7657848140888a817c"><td class="mdescLeft">&#160;</td><td class="mdescRight">lock the whole block  <br /></td></tr>
 <tr class="separator:gab5579bc42bc07a7657848140888a817c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6d62f7d14945cfde7cde7a0e9a4e3afb"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga6d62f7d14945cfde7cde7a0e9a4e3afb">w25qxx_global_block_unlock</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle)</td></tr>
-<tr class="memdesc:ga6d62f7d14945cfde7cde7a0e9a4e3afb"><td class="mdescLeft">&#160;</td><td class="mdescRight">unlock the whole block  <a href="group__w25qxx__advance__driver.html#ga6d62f7d14945cfde7cde7a0e9a4e3afb">More...</a><br /></td></tr>
+<tr class="memitem:ga6d62f7d14945cfde7cde7a0e9a4e3afb" id="r_ga6d62f7d14945cfde7cde7a0e9a4e3afb"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga6d62f7d14945cfde7cde7a0e9a4e3afb">w25qxx_global_block_unlock</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle)</td></tr>
+<tr class="memdesc:ga6d62f7d14945cfde7cde7a0e9a4e3afb"><td class="mdescLeft">&#160;</td><td class="mdescRight">unlock the whole block  <br /></td></tr>
 <tr class="separator:ga6d62f7d14945cfde7cde7a0e9a4e3afb"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga9ad10781d888b32b43b9eba45d049624"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga9ad10781d888b32b43b9eba45d049624">w25qxx_set_read_parameters</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, <a class="el" href="group__w25qxx__advance__driver.html#ga6ff284154302248f00db269146545443">w25qxx_qspi_read_dummy_t</a> dummy, <a class="el" href="group__w25qxx__advance__driver.html#ga2fd3023819e1aebe089a4a72eb136da3">w25qxx_qspi_read_wrap_length_t</a> length)</td></tr>
-<tr class="memdesc:ga9ad10781d888b32b43b9eba45d049624"><td class="mdescLeft">&#160;</td><td class="mdescRight">set the read parameters  <a href="group__w25qxx__advance__driver.html#ga9ad10781d888b32b43b9eba45d049624">More...</a><br /></td></tr>
+<tr class="memitem:ga9ad10781d888b32b43b9eba45d049624" id="r_ga9ad10781d888b32b43b9eba45d049624"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga9ad10781d888b32b43b9eba45d049624">w25qxx_set_read_parameters</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, <a class="el" href="group__w25qxx__advance__driver.html#ga6ff284154302248f00db269146545443">w25qxx_qspi_read_dummy_t</a> dummy, <a class="el" href="group__w25qxx__advance__driver.html#ga2fd3023819e1aebe089a4a72eb136da3">w25qxx_qspi_read_wrap_length_t</a> length)</td></tr>
+<tr class="memdesc:ga9ad10781d888b32b43b9eba45d049624"><td class="mdescLeft">&#160;</td><td class="mdescRight">set the read parameters  <br /></td></tr>
 <tr class="separator:ga9ad10781d888b32b43b9eba45d049624"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa5ab3548707a95ded115255432224c5a"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#gaa5ab3548707a95ded115255432224c5a">w25qxx_enter_qspi_mode</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle)</td></tr>
-<tr class="memdesc:gaa5ab3548707a95ded115255432224c5a"><td class="mdescLeft">&#160;</td><td class="mdescRight">enter the qspi mode  <a href="group__w25qxx__advance__driver.html#gaa5ab3548707a95ded115255432224c5a">More...</a><br /></td></tr>
+<tr class="memitem:gaa5ab3548707a95ded115255432224c5a" id="r_gaa5ab3548707a95ded115255432224c5a"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#gaa5ab3548707a95ded115255432224c5a">w25qxx_enter_qspi_mode</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle)</td></tr>
+<tr class="memdesc:gaa5ab3548707a95ded115255432224c5a"><td class="mdescLeft">&#160;</td><td class="mdescRight">enter the qspi mode  <br /></td></tr>
 <tr class="separator:gaa5ab3548707a95ded115255432224c5a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6b9f75f7426a54ffdb1f5a057f8188f4"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga6b9f75f7426a54ffdb1f5a057f8188f4">w25qxx_exit_qspi_mode</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle)</td></tr>
-<tr class="memdesc:ga6b9f75f7426a54ffdb1f5a057f8188f4"><td class="mdescLeft">&#160;</td><td class="mdescRight">exit the qspi mode  <a href="group__w25qxx__advance__driver.html#ga6b9f75f7426a54ffdb1f5a057f8188f4">More...</a><br /></td></tr>
+<tr class="memitem:ga6b9f75f7426a54ffdb1f5a057f8188f4" id="r_ga6b9f75f7426a54ffdb1f5a057f8188f4"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga6b9f75f7426a54ffdb1f5a057f8188f4">w25qxx_exit_qspi_mode</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle)</td></tr>
+<tr class="memdesc:ga6b9f75f7426a54ffdb1f5a057f8188f4"><td class="mdescLeft">&#160;</td><td class="mdescRight">exit the qspi mode  <br /></td></tr>
 <tr class="separator:ga6b9f75f7426a54ffdb1f5a057f8188f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab55b4e071e20feb58584025287949438"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#gab55b4e071e20feb58584025287949438">w25qxx_enable_reset</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle)</td></tr>
-<tr class="memdesc:gab55b4e071e20feb58584025287949438"><td class="mdescLeft">&#160;</td><td class="mdescRight">enable the reset  <a href="group__w25qxx__advance__driver.html#gab55b4e071e20feb58584025287949438">More...</a><br /></td></tr>
+<tr class="memitem:gab55b4e071e20feb58584025287949438" id="r_gab55b4e071e20feb58584025287949438"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#gab55b4e071e20feb58584025287949438">w25qxx_enable_reset</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle)</td></tr>
+<tr class="memdesc:gab55b4e071e20feb58584025287949438"><td class="mdescLeft">&#160;</td><td class="mdescRight">enable the reset  <br /></td></tr>
 <tr class="separator:gab55b4e071e20feb58584025287949438"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga2abebfe2a8d9377eb88448ffca73f222"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga2abebfe2a8d9377eb88448ffca73f222">w25qxx_reset_device</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle)</td></tr>
-<tr class="memdesc:ga2abebfe2a8d9377eb88448ffca73f222"><td class="mdescLeft">&#160;</td><td class="mdescRight">reset the device  <a href="group__w25qxx__advance__driver.html#ga2abebfe2a8d9377eb88448ffca73f222">More...</a><br /></td></tr>
+<tr class="memitem:ga2abebfe2a8d9377eb88448ffca73f222" id="r_ga2abebfe2a8d9377eb88448ffca73f222"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga2abebfe2a8d9377eb88448ffca73f222">w25qxx_reset_device</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle)</td></tr>
+<tr class="memdesc:ga2abebfe2a8d9377eb88448ffca73f222"><td class="mdescLeft">&#160;</td><td class="mdescRight">reset the device  <br /></td></tr>
 <tr class="separator:ga2abebfe2a8d9377eb88448ffca73f222"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga11af244389478de68a6777076ee82d69"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga11af244389478de68a6777076ee82d69">w25qxx_get_unique_id</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint8_t id[8])</td></tr>
-<tr class="memdesc:ga11af244389478de68a6777076ee82d69"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the unique id  <a href="group__w25qxx__advance__driver.html#ga11af244389478de68a6777076ee82d69">More...</a><br /></td></tr>
+<tr class="memitem:ga11af244389478de68a6777076ee82d69" id="r_ga11af244389478de68a6777076ee82d69"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga11af244389478de68a6777076ee82d69">w25qxx_get_unique_id</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint8_t id[8])</td></tr>
+<tr class="memdesc:ga11af244389478de68a6777076ee82d69"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the unique id  <br /></td></tr>
 <tr class="separator:ga11af244389478de68a6777076ee82d69"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga244a91b9c0c32e899ca89e1943045624"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga244a91b9c0c32e899ca89e1943045624">w25qxx_get_sfdp</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint8_t sfdp[256])</td></tr>
-<tr class="memdesc:ga244a91b9c0c32e899ca89e1943045624"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the sfdp  <a href="group__w25qxx__advance__driver.html#ga244a91b9c0c32e899ca89e1943045624">More...</a><br /></td></tr>
+<tr class="memitem:ga244a91b9c0c32e899ca89e1943045624" id="r_ga244a91b9c0c32e899ca89e1943045624"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga244a91b9c0c32e899ca89e1943045624">w25qxx_get_sfdp</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint8_t sfdp[256])</td></tr>
+<tr class="memdesc:ga244a91b9c0c32e899ca89e1943045624"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the sfdp  <br /></td></tr>
 <tr class="separator:ga244a91b9c0c32e899ca89e1943045624"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf297e2c6877c64f8fd10a555f783ddaf"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#gaf297e2c6877c64f8fd10a555f783ddaf">w25qxx_erase_security_register</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, <a class="el" href="group__w25qxx__advance__driver.html#ga81ddc7d4b9f4f124163beea19cc33c7e">w25qxx_security_register_t</a> num)</td></tr>
-<tr class="memdesc:gaf297e2c6877c64f8fd10a555f783ddaf"><td class="mdescLeft">&#160;</td><td class="mdescRight">erase the security register  <a href="group__w25qxx__advance__driver.html#gaf297e2c6877c64f8fd10a555f783ddaf">More...</a><br /></td></tr>
+<tr class="memitem:gaf297e2c6877c64f8fd10a555f783ddaf" id="r_gaf297e2c6877c64f8fd10a555f783ddaf"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#gaf297e2c6877c64f8fd10a555f783ddaf">w25qxx_erase_security_register</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, <a class="el" href="group__w25qxx__advance__driver.html#ga81ddc7d4b9f4f124163beea19cc33c7e">w25qxx_security_register_t</a> num)</td></tr>
+<tr class="memdesc:gaf297e2c6877c64f8fd10a555f783ddaf"><td class="mdescLeft">&#160;</td><td class="mdescRight">erase the security register  <br /></td></tr>
 <tr class="separator:gaf297e2c6877c64f8fd10a555f783ddaf"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga4e9c059ff78866e478e835cb27a92899"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga4e9c059ff78866e478e835cb27a92899">w25qxx_program_security_register</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, <a class="el" href="group__w25qxx__advance__driver.html#ga81ddc7d4b9f4f124163beea19cc33c7e">w25qxx_security_register_t</a> num, uint8_t data[256])</td></tr>
-<tr class="memdesc:ga4e9c059ff78866e478e835cb27a92899"><td class="mdescLeft">&#160;</td><td class="mdescRight">program the security register  <a href="group__w25qxx__advance__driver.html#ga4e9c059ff78866e478e835cb27a92899">More...</a><br /></td></tr>
+<tr class="memitem:ga4e9c059ff78866e478e835cb27a92899" id="r_ga4e9c059ff78866e478e835cb27a92899"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga4e9c059ff78866e478e835cb27a92899">w25qxx_program_security_register</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, <a class="el" href="group__w25qxx__advance__driver.html#ga81ddc7d4b9f4f124163beea19cc33c7e">w25qxx_security_register_t</a> num, uint8_t data[256])</td></tr>
+<tr class="memdesc:ga4e9c059ff78866e478e835cb27a92899"><td class="mdescLeft">&#160;</td><td class="mdescRight">program the security register  <br /></td></tr>
 <tr class="separator:ga4e9c059ff78866e478e835cb27a92899"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga4c65debc4947bd9a61e0073105164b9c"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga4c65debc4947bd9a61e0073105164b9c">w25qxx_read_security_register</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, <a class="el" href="group__w25qxx__advance__driver.html#ga81ddc7d4b9f4f124163beea19cc33c7e">w25qxx_security_register_t</a> num, uint8_t data[256])</td></tr>
-<tr class="memdesc:ga4c65debc4947bd9a61e0073105164b9c"><td class="mdescLeft">&#160;</td><td class="mdescRight">read the security register  <a href="group__w25qxx__advance__driver.html#ga4c65debc4947bd9a61e0073105164b9c">More...</a><br /></td></tr>
+<tr class="memitem:ga4c65debc4947bd9a61e0073105164b9c" id="r_ga4c65debc4947bd9a61e0073105164b9c"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga4c65debc4947bd9a61e0073105164b9c">w25qxx_read_security_register</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, <a class="el" href="group__w25qxx__advance__driver.html#ga81ddc7d4b9f4f124163beea19cc33c7e">w25qxx_security_register_t</a> num, uint8_t data[256])</td></tr>
+<tr class="memdesc:ga4c65debc4947bd9a61e0073105164b9c"><td class="mdescLeft">&#160;</td><td class="mdescRight">read the security register  <br /></td></tr>
 <tr class="separator:ga4c65debc4947bd9a61e0073105164b9c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga1e9ebf198137d23558dbf6470213c472"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#ga1e9ebf198137d23558dbf6470213c472">w25qxx_only_spi_read</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
-<tr class="memdesc:ga1e9ebf198137d23558dbf6470213c472"><td class="mdescLeft">&#160;</td><td class="mdescRight">read only in the spi interface  <a href="group__w25qxx__basic__driver.html#ga1e9ebf198137d23558dbf6470213c472">More...</a><br /></td></tr>
+<tr class="memitem:ga1e9ebf198137d23558dbf6470213c472" id="r_ga1e9ebf198137d23558dbf6470213c472"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#ga1e9ebf198137d23558dbf6470213c472">w25qxx_only_spi_read</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
+<tr class="memdesc:ga1e9ebf198137d23558dbf6470213c472"><td class="mdescLeft">&#160;</td><td class="mdescRight">read only in the spi interface  <br /></td></tr>
 <tr class="separator:ga1e9ebf198137d23558dbf6470213c472"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac345ba10af5ad355578fa97697487123"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#gac345ba10af5ad355578fa97697487123">w25qxx_fast_read</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
-<tr class="memdesc:gac345ba10af5ad355578fa97697487123"><td class="mdescLeft">&#160;</td><td class="mdescRight">read in the fast mode  <a href="group__w25qxx__basic__driver.html#gac345ba10af5ad355578fa97697487123">More...</a><br /></td></tr>
+<tr class="memitem:gac345ba10af5ad355578fa97697487123" id="r_gac345ba10af5ad355578fa97697487123"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#gac345ba10af5ad355578fa97697487123">w25qxx_fast_read</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
+<tr class="memdesc:gac345ba10af5ad355578fa97697487123"><td class="mdescLeft">&#160;</td><td class="mdescRight">read in the fast mode  <br /></td></tr>
 <tr class="separator:gac345ba10af5ad355578fa97697487123"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga7a19230ca3916816ea8fb7421483d293"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga7a19230ca3916816ea8fb7421483d293">w25qxx_fast_read_dual_output</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
-<tr class="memdesc:ga7a19230ca3916816ea8fb7421483d293"><td class="mdescLeft">&#160;</td><td class="mdescRight">read with dual output in the fast mode  <a href="group__w25qxx__advance__driver.html#ga7a19230ca3916816ea8fb7421483d293">More...</a><br /></td></tr>
+<tr class="memitem:ga7a19230ca3916816ea8fb7421483d293" id="r_ga7a19230ca3916816ea8fb7421483d293"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga7a19230ca3916816ea8fb7421483d293">w25qxx_fast_read_dual_output</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
+<tr class="memdesc:ga7a19230ca3916816ea8fb7421483d293"><td class="mdescLeft">&#160;</td><td class="mdescRight">read with dual output in the fast mode  <br /></td></tr>
 <tr class="separator:ga7a19230ca3916816ea8fb7421483d293"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf4bfafd1f80aa0316a4b1a15183dcd50"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#gaf4bfafd1f80aa0316a4b1a15183dcd50">w25qxx_fast_read_quad_output</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
-<tr class="memdesc:gaf4bfafd1f80aa0316a4b1a15183dcd50"><td class="mdescLeft">&#160;</td><td class="mdescRight">read with quad output in the fast mode  <a href="group__w25qxx__advance__driver.html#gaf4bfafd1f80aa0316a4b1a15183dcd50">More...</a><br /></td></tr>
+<tr class="memitem:gaf4bfafd1f80aa0316a4b1a15183dcd50" id="r_gaf4bfafd1f80aa0316a4b1a15183dcd50"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#gaf4bfafd1f80aa0316a4b1a15183dcd50">w25qxx_fast_read_quad_output</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
+<tr class="memdesc:gaf4bfafd1f80aa0316a4b1a15183dcd50"><td class="mdescLeft">&#160;</td><td class="mdescRight">read with quad output in the fast mode  <br /></td></tr>
 <tr class="separator:gaf4bfafd1f80aa0316a4b1a15183dcd50"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac894f4650905cba10dd3a31284de6d5e"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#gac894f4650905cba10dd3a31284de6d5e">w25qxx_fast_read_dual_io</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
-<tr class="memdesc:gac894f4650905cba10dd3a31284de6d5e"><td class="mdescLeft">&#160;</td><td class="mdescRight">read with dual io in the fast mode  <a href="group__w25qxx__advance__driver.html#gac894f4650905cba10dd3a31284de6d5e">More...</a><br /></td></tr>
+<tr class="memitem:gac894f4650905cba10dd3a31284de6d5e" id="r_gac894f4650905cba10dd3a31284de6d5e"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#gac894f4650905cba10dd3a31284de6d5e">w25qxx_fast_read_dual_io</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
+<tr class="memdesc:gac894f4650905cba10dd3a31284de6d5e"><td class="mdescLeft">&#160;</td><td class="mdescRight">read with dual io in the fast mode  <br /></td></tr>
 <tr class="separator:gac894f4650905cba10dd3a31284de6d5e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab97a64bd3776874518f60381d921ae41"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#gab97a64bd3776874518f60381d921ae41">w25qxx_fast_read_quad_io</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
-<tr class="memdesc:gab97a64bd3776874518f60381d921ae41"><td class="mdescLeft">&#160;</td><td class="mdescRight">read with quad io in the fast mode  <a href="group__w25qxx__advance__driver.html#gab97a64bd3776874518f60381d921ae41">More...</a><br /></td></tr>
+<tr class="memitem:gab97a64bd3776874518f60381d921ae41" id="r_gab97a64bd3776874518f60381d921ae41"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#gab97a64bd3776874518f60381d921ae41">w25qxx_fast_read_quad_io</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
+<tr class="memdesc:gab97a64bd3776874518f60381d921ae41"><td class="mdescLeft">&#160;</td><td class="mdescRight">read with quad io in the fast mode  <br /></td></tr>
 <tr class="separator:gab97a64bd3776874518f60381d921ae41"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad97d7e410dd77c49334097a0fd332660"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#gad97d7e410dd77c49334097a0fd332660">w25qxx_word_read_quad_io</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
-<tr class="memdesc:gad97d7e410dd77c49334097a0fd332660"><td class="mdescLeft">&#160;</td><td class="mdescRight">word read with quad io  <a href="group__w25qxx__advance__driver.html#gad97d7e410dd77c49334097a0fd332660">More...</a><br /></td></tr>
+<tr class="memitem:gad97d7e410dd77c49334097a0fd332660" id="r_gad97d7e410dd77c49334097a0fd332660"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#gad97d7e410dd77c49334097a0fd332660">w25qxx_word_read_quad_io</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
+<tr class="memdesc:gad97d7e410dd77c49334097a0fd332660"><td class="mdescLeft">&#160;</td><td class="mdescRight">word read with quad io  <br /></td></tr>
 <tr class="separator:gad97d7e410dd77c49334097a0fd332660"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga88a62ec42e86db821ff3f0d3ab541dbb"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga88a62ec42e86db821ff3f0d3ab541dbb">w25qxx_octal_word_read_quad_io</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
-<tr class="memdesc:ga88a62ec42e86db821ff3f0d3ab541dbb"><td class="mdescLeft">&#160;</td><td class="mdescRight">octal word read with quad io  <a href="group__w25qxx__advance__driver.html#ga88a62ec42e86db821ff3f0d3ab541dbb">More...</a><br /></td></tr>
+<tr class="memitem:ga88a62ec42e86db821ff3f0d3ab541dbb" id="r_ga88a62ec42e86db821ff3f0d3ab541dbb"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga88a62ec42e86db821ff3f0d3ab541dbb">w25qxx_octal_word_read_quad_io</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
+<tr class="memdesc:ga88a62ec42e86db821ff3f0d3ab541dbb"><td class="mdescLeft">&#160;</td><td class="mdescRight">octal word read with quad io  <br /></td></tr>
 <tr class="separator:ga88a62ec42e86db821ff3f0d3ab541dbb"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6280e7e4ab26306436e2c210617a28b3"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#ga6280e7e4ab26306436e2c210617a28b3">w25qxx_page_program</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint16_t len)</td></tr>
-<tr class="memdesc:ga6280e7e4ab26306436e2c210617a28b3"><td class="mdescLeft">&#160;</td><td class="mdescRight">page program  <a href="group__w25qxx__basic__driver.html#ga6280e7e4ab26306436e2c210617a28b3">More...</a><br /></td></tr>
+<tr class="memitem:ga6280e7e4ab26306436e2c210617a28b3" id="r_ga6280e7e4ab26306436e2c210617a28b3"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#ga6280e7e4ab26306436e2c210617a28b3">w25qxx_page_program</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint16_t len)</td></tr>
+<tr class="memdesc:ga6280e7e4ab26306436e2c210617a28b3"><td class="mdescLeft">&#160;</td><td class="mdescRight">page program  <br /></td></tr>
 <tr class="separator:ga6280e7e4ab26306436e2c210617a28b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga1f80bbbaaa852eecfffb87737889363d"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga1f80bbbaaa852eecfffb87737889363d">w25qxx_page_program_quad_input</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint16_t len)</td></tr>
-<tr class="memdesc:ga1f80bbbaaa852eecfffb87737889363d"><td class="mdescLeft">&#160;</td><td class="mdescRight">quad page program with quad input  <a href="group__w25qxx__advance__driver.html#ga1f80bbbaaa852eecfffb87737889363d">More...</a><br /></td></tr>
+<tr class="memitem:ga1f80bbbaaa852eecfffb87737889363d" id="r_ga1f80bbbaaa852eecfffb87737889363d"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga1f80bbbaaa852eecfffb87737889363d">w25qxx_page_program_quad_input</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint16_t len)</td></tr>
+<tr class="memdesc:ga1f80bbbaaa852eecfffb87737889363d"><td class="mdescLeft">&#160;</td><td class="mdescRight">quad page program with quad input  <br /></td></tr>
 <tr class="separator:ga1f80bbbaaa852eecfffb87737889363d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga9a03c51b4c84655350c15fbfce0a6b40"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#ga9a03c51b4c84655350c15fbfce0a6b40">w25qxx_sector_erase_4k</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint32_t addr)</td></tr>
-<tr class="memdesc:ga9a03c51b4c84655350c15fbfce0a6b40"><td class="mdescLeft">&#160;</td><td class="mdescRight">erase the 4k sector  <a href="group__w25qxx__basic__driver.html#ga9a03c51b4c84655350c15fbfce0a6b40">More...</a><br /></td></tr>
+<tr class="memitem:ga9a03c51b4c84655350c15fbfce0a6b40" id="r_ga9a03c51b4c84655350c15fbfce0a6b40"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#ga9a03c51b4c84655350c15fbfce0a6b40">w25qxx_sector_erase_4k</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint32_t addr)</td></tr>
+<tr class="memdesc:ga9a03c51b4c84655350c15fbfce0a6b40"><td class="mdescLeft">&#160;</td><td class="mdescRight">erase the 4k sector  <br /></td></tr>
 <tr class="separator:ga9a03c51b4c84655350c15fbfce0a6b40"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga39c8fb382e8c3e4d57232dfa79af781c"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#ga39c8fb382e8c3e4d57232dfa79af781c">w25qxx_block_erase_32k</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint32_t addr)</td></tr>
-<tr class="memdesc:ga39c8fb382e8c3e4d57232dfa79af781c"><td class="mdescLeft">&#160;</td><td class="mdescRight">erase the 32k block  <a href="group__w25qxx__basic__driver.html#ga39c8fb382e8c3e4d57232dfa79af781c">More...</a><br /></td></tr>
+<tr class="memitem:ga39c8fb382e8c3e4d57232dfa79af781c" id="r_ga39c8fb382e8c3e4d57232dfa79af781c"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#ga39c8fb382e8c3e4d57232dfa79af781c">w25qxx_block_erase_32k</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint32_t addr)</td></tr>
+<tr class="memdesc:ga39c8fb382e8c3e4d57232dfa79af781c"><td class="mdescLeft">&#160;</td><td class="mdescRight">erase the 32k block  <br /></td></tr>
 <tr class="separator:ga39c8fb382e8c3e4d57232dfa79af781c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf53bc5f6073482b9b74efd417ec7ac83"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#gaf53bc5f6073482b9b74efd417ec7ac83">w25qxx_block_erase_64k</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint32_t addr)</td></tr>
-<tr class="memdesc:gaf53bc5f6073482b9b74efd417ec7ac83"><td class="mdescLeft">&#160;</td><td class="mdescRight">erase the 64k block  <a href="group__w25qxx__basic__driver.html#gaf53bc5f6073482b9b74efd417ec7ac83">More...</a><br /></td></tr>
+<tr class="memitem:gaf53bc5f6073482b9b74efd417ec7ac83" id="r_gaf53bc5f6073482b9b74efd417ec7ac83"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#gaf53bc5f6073482b9b74efd417ec7ac83">w25qxx_block_erase_64k</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint32_t addr)</td></tr>
+<tr class="memdesc:gaf53bc5f6073482b9b74efd417ec7ac83"><td class="mdescLeft">&#160;</td><td class="mdescRight">erase the 64k block  <br /></td></tr>
 <tr class="separator:gaf53bc5f6073482b9b74efd417ec7ac83"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga4f00c2c169cb7c3084841c6cd795e76b"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga4f00c2c169cb7c3084841c6cd795e76b">w25qxx_individual_block_lock</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint32_t addr)</td></tr>
-<tr class="memdesc:ga4f00c2c169cb7c3084841c6cd795e76b"><td class="mdescLeft">&#160;</td><td class="mdescRight">lock the individual block  <a href="group__w25qxx__advance__driver.html#ga4f00c2c169cb7c3084841c6cd795e76b">More...</a><br /></td></tr>
+<tr class="memitem:ga4f00c2c169cb7c3084841c6cd795e76b" id="r_ga4f00c2c169cb7c3084841c6cd795e76b"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga4f00c2c169cb7c3084841c6cd795e76b">w25qxx_individual_block_lock</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint32_t addr)</td></tr>
+<tr class="memdesc:ga4f00c2c169cb7c3084841c6cd795e76b"><td class="mdescLeft">&#160;</td><td class="mdescRight">lock the individual block  <br /></td></tr>
 <tr class="separator:ga4f00c2c169cb7c3084841c6cd795e76b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga7f88cedf7619071b3235ba094915b2a7"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga7f88cedf7619071b3235ba094915b2a7">w25qxx_individual_block_unlock</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint32_t addr)</td></tr>
-<tr class="memdesc:ga7f88cedf7619071b3235ba094915b2a7"><td class="mdescLeft">&#160;</td><td class="mdescRight">unlock the individual block  <a href="group__w25qxx__advance__driver.html#ga7f88cedf7619071b3235ba094915b2a7">More...</a><br /></td></tr>
+<tr class="memitem:ga7f88cedf7619071b3235ba094915b2a7" id="r_ga7f88cedf7619071b3235ba094915b2a7"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga7f88cedf7619071b3235ba094915b2a7">w25qxx_individual_block_unlock</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint32_t addr)</td></tr>
+<tr class="memdesc:ga7f88cedf7619071b3235ba094915b2a7"><td class="mdescLeft">&#160;</td><td class="mdescRight">unlock the individual block  <br /></td></tr>
 <tr class="separator:ga7f88cedf7619071b3235ba094915b2a7"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga59e655ca78a175037ca810bbc8539a96"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga59e655ca78a175037ca810bbc8539a96">w25qxx_read_block_lock</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *value)</td></tr>
-<tr class="memdesc:ga59e655ca78a175037ca810bbc8539a96"><td class="mdescLeft">&#160;</td><td class="mdescRight">read the block lock  <a href="group__w25qxx__advance__driver.html#ga59e655ca78a175037ca810bbc8539a96">More...</a><br /></td></tr>
+<tr class="memitem:ga59e655ca78a175037ca810bbc8539a96" id="r_ga59e655ca78a175037ca810bbc8539a96"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga59e655ca78a175037ca810bbc8539a96">w25qxx_read_block_lock</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *value)</td></tr>
+<tr class="memdesc:ga59e655ca78a175037ca810bbc8539a96"><td class="mdescLeft">&#160;</td><td class="mdescRight">read the block lock  <br /></td></tr>
 <tr class="separator:ga59e655ca78a175037ca810bbc8539a96"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac19c1d0f3fd48968ea2a93c1dbe3d75d"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#gac19c1d0f3fd48968ea2a93c1dbe3d75d">w25qxx_set_burst_with_wrap</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, <a class="el" href="group__w25qxx__advance__driver.html#ga94bbae2bf8906903e8dc2a28c490723d">w25qxx_burst_wrap_t</a> wrap)</td></tr>
-<tr class="memdesc:gac19c1d0f3fd48968ea2a93c1dbe3d75d"><td class="mdescLeft">&#160;</td><td class="mdescRight">set the burst with wrap  <a href="group__w25qxx__advance__driver.html#gac19c1d0f3fd48968ea2a93c1dbe3d75d">More...</a><br /></td></tr>
+<tr class="memitem:gac19c1d0f3fd48968ea2a93c1dbe3d75d" id="r_gac19c1d0f3fd48968ea2a93c1dbe3d75d"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#gac19c1d0f3fd48968ea2a93c1dbe3d75d">w25qxx_set_burst_with_wrap</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, <a class="el" href="group__w25qxx__advance__driver.html#ga94bbae2bf8906903e8dc2a28c490723d">w25qxx_burst_wrap_t</a> wrap)</td></tr>
+<tr class="memdesc:gac19c1d0f3fd48968ea2a93c1dbe3d75d"><td class="mdescLeft">&#160;</td><td class="mdescRight">set the burst with wrap  <br /></td></tr>
 <tr class="separator:gac19c1d0f3fd48968ea2a93c1dbe3d75d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga8e7a163b3d255b8c7fc035d0d60f2491"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#ga8e7a163b3d255b8c7fc035d0d60f2491">w25qxx_init</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle)</td></tr>
-<tr class="memdesc:ga8e7a163b3d255b8c7fc035d0d60f2491"><td class="mdescLeft">&#160;</td><td class="mdescRight">initialize the chip  <a href="group__w25qxx__basic__driver.html#ga8e7a163b3d255b8c7fc035d0d60f2491">More...</a><br /></td></tr>
+<tr class="memitem:ga8e7a163b3d255b8c7fc035d0d60f2491" id="r_ga8e7a163b3d255b8c7fc035d0d60f2491"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#ga8e7a163b3d255b8c7fc035d0d60f2491">w25qxx_init</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle)</td></tr>
+<tr class="memdesc:ga8e7a163b3d255b8c7fc035d0d60f2491"><td class="mdescLeft">&#160;</td><td class="mdescRight">initialize the chip  <br /></td></tr>
 <tr class="separator:ga8e7a163b3d255b8c7fc035d0d60f2491"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa293c3a46c4010a3af597a83e646de0d"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle)</td></tr>
-<tr class="memdesc:gaa293c3a46c4010a3af597a83e646de0d"><td class="mdescLeft">&#160;</td><td class="mdescRight">close the chip  <a href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">More...</a><br /></td></tr>
+<tr class="memitem:gaa293c3a46c4010a3af597a83e646de0d" id="r_gaa293c3a46c4010a3af597a83e646de0d"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle)</td></tr>
+<tr class="memdesc:gaa293c3a46c4010a3af597a83e646de0d"><td class="mdescLeft">&#160;</td><td class="mdescRight">close the chip  <br /></td></tr>
 <tr class="separator:gaa293c3a46c4010a3af597a83e646de0d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae7479fc9ce911a52e3c5b6f1a615b879"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#gae7479fc9ce911a52e3c5b6f1a615b879">w25qxx_read</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
-<tr class="memdesc:gae7479fc9ce911a52e3c5b6f1a615b879"><td class="mdescLeft">&#160;</td><td class="mdescRight">read data  <a href="group__w25qxx__basic__driver.html#gae7479fc9ce911a52e3c5b6f1a615b879">More...</a><br /></td></tr>
+<tr class="memitem:gae7479fc9ce911a52e3c5b6f1a615b879" id="r_gae7479fc9ce911a52e3c5b6f1a615b879"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#gae7479fc9ce911a52e3c5b6f1a615b879">w25qxx_read</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
+<tr class="memdesc:gae7479fc9ce911a52e3c5b6f1a615b879"><td class="mdescLeft">&#160;</td><td class="mdescRight">read data  <br /></td></tr>
 <tr class="separator:gae7479fc9ce911a52e3c5b6f1a615b879"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaaee8264d840e51460821cb6e609338ee"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#gaaee8264d840e51460821cb6e609338ee">w25qxx_write</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
-<tr class="memdesc:gaaee8264d840e51460821cb6e609338ee"><td class="mdescLeft">&#160;</td><td class="mdescRight">write data  <a href="group__w25qxx__basic__driver.html#gaaee8264d840e51460821cb6e609338ee">More...</a><br /></td></tr>
+<tr class="memitem:gaaee8264d840e51460821cb6e609338ee" id="r_gaaee8264d840e51460821cb6e609338ee"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#gaaee8264d840e51460821cb6e609338ee">w25qxx_write</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
+<tr class="memdesc:gaaee8264d840e51460821cb6e609338ee"><td class="mdescLeft">&#160;</td><td class="mdescRight">write data  <br /></td></tr>
 <tr class="separator:gaaee8264d840e51460821cb6e609338ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga9623a3bec148b148498480518a66cb2b"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__extern__driver.html#ga9623a3bec148b148498480518a66cb2b">w25qxx_write_read_reg</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint8_t instruction, uint8_t instruction_line, uint32_t address, uint8_t address_line, uint8_t address_len, uint32_t alternate, uint8_t alternate_line, uint8_t alternate_len, uint8_t dummy, uint8_t *in_buf, uint32_t in_len, uint8_t *out_buf, uint32_t out_len, uint8_t data_line)</td></tr>
-<tr class="memdesc:ga9623a3bec148b148498480518a66cb2b"><td class="mdescLeft">&#160;</td><td class="mdescRight">write and read register  <a href="group__w25qxx__extern__driver.html#ga9623a3bec148b148498480518a66cb2b">More...</a><br /></td></tr>
+<tr class="memitem:ga9623a3bec148b148498480518a66cb2b" id="r_ga9623a3bec148b148498480518a66cb2b"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__extern__driver.html#ga9623a3bec148b148498480518a66cb2b">w25qxx_write_read_reg</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint8_t instruction, uint8_t instruction_line, uint32_t address, uint8_t address_line, uint8_t address_len, uint32_t alternate, uint8_t alternate_line, uint8_t alternate_len, uint8_t dummy, uint8_t *in_buf, uint32_t in_len, uint8_t *out_buf, uint32_t out_len, uint8_t data_line)</td></tr>
+<tr class="memdesc:ga9623a3bec148b148498480518a66cb2b"><td class="mdescLeft">&#160;</td><td class="mdescRight">write and read register  <br /></td></tr>
 <tr class="separator:ga9623a3bec148b148498480518a66cb2b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga996e2d3009432e7f8c1a5175c4438a57"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#ga996e2d3009432e7f8c1a5175c4438a57">w25qxx_info</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga601d841ddd0ff8ad3ab52e07c679ef19">w25qxx_info_t</a> *info)</td></tr>
-<tr class="memdesc:ga996e2d3009432e7f8c1a5175c4438a57"><td class="mdescLeft">&#160;</td><td class="mdescRight">get chip's information  <a href="group__w25qxx__basic__driver.html#ga996e2d3009432e7f8c1a5175c4438a57">More...</a><br /></td></tr>
+<tr class="memitem:ga996e2d3009432e7f8c1a5175c4438a57" id="r_ga996e2d3009432e7f8c1a5175c4438a57"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#ga996e2d3009432e7f8c1a5175c4438a57">w25qxx_info</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga601d841ddd0ff8ad3ab52e07c679ef19">w25qxx_info_t</a> *info)</td></tr>
+<tr class="memdesc:ga996e2d3009432e7f8c1a5175c4438a57"><td class="mdescLeft">&#160;</td><td class="mdescRight">get chip's information  <br /></td></tr>
 <tr class="separator:ga996e2d3009432e7f8c1a5175c4438a57"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
@@ -415,8 +421,8 @@ <h3>history</h3>
 
 <p class="definition">Definition in file <a class="el" href="driver__w25qxx_8c_source.html">driver_w25qxx.c</a>.</p>
 </div><h2 class="groupheader">Macro Definition Documentation</h2>
-<a id="adc9da0a24824ca1239b593f6459b3954"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#adc9da0a24824ca1239b593f6459b3954">&#9670;&nbsp;</a></span>CHIP_NAME</h2>
+<a id="adc9da0a24824ca1239b593f6459b3954" name="adc9da0a24824ca1239b593f6459b3954"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#adc9da0a24824ca1239b593f6459b3954">&#9670;&#160;</a></span>CHIP_NAME</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -434,8 +440,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#adc9da0a24824ca1239b593f6
 
 </div>
 </div>
-<a id="ae578001fe043b4cca7a0edd801cfe9c4"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ae578001fe043b4cca7a0edd801cfe9c4">&#9670;&nbsp;</a></span>DRIVER_VERSION</h2>
+<a id="ae578001fe043b4cca7a0edd801cfe9c4" name="ae578001fe043b4cca7a0edd801cfe9c4"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ae578001fe043b4cca7a0edd801cfe9c4">&#9670;&#160;</a></span>DRIVER_VERSION</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -451,8 +457,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#ae578001fe043b4cca7a0edd8
 
 </div>
 </div>
-<a id="aaa2b8f5b105c3019df0cb346f472e803"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#aaa2b8f5b105c3019df0cb346f472e803">&#9670;&nbsp;</a></span>MANUFACTURER_NAME</h2>
+<a id="aaa2b8f5b105c3019df0cb346f472e803" name="aaa2b8f5b105c3019df0cb346f472e803"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aaa2b8f5b105c3019df0cb346f472e803">&#9670;&#160;</a></span>MANUFACTURER_NAME</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -468,8 +474,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#aaa2b8f5b105c3019df0cb346
 
 </div>
 </div>
-<a id="a2989837a37d6d63b59c6dd541b785435"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a2989837a37d6d63b59c6dd541b785435">&#9670;&nbsp;</a></span>MAX_CURRENT</h2>
+<a id="a2989837a37d6d63b59c6dd541b785435" name="a2989837a37d6d63b59c6dd541b785435"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a2989837a37d6d63b59c6dd541b785435">&#9670;&#160;</a></span>MAX_CURRENT</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -485,8 +491,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#a2989837a37d6d63b59c6dd54
 
 </div>
 </div>
-<a id="a68eba8b601afe11f1b871d944976c035"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a68eba8b601afe11f1b871d944976c035">&#9670;&nbsp;</a></span>SUPPLY_VOLTAGE_MAX</h2>
+<a id="a68eba8b601afe11f1b871d944976c035" name="a68eba8b601afe11f1b871d944976c035"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a68eba8b601afe11f1b871d944976c035">&#9670;&#160;</a></span>SUPPLY_VOLTAGE_MAX</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -502,8 +508,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#a68eba8b601afe11f1b871d94
 
 </div>
 </div>
-<a id="aac8d8cbd899667d609787ef4cf37054d"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#aac8d8cbd899667d609787ef4cf37054d">&#9670;&nbsp;</a></span>SUPPLY_VOLTAGE_MIN</h2>
+<a id="aac8d8cbd899667d609787ef4cf37054d" name="aac8d8cbd899667d609787ef4cf37054d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aac8d8cbd899667d609787ef4cf37054d">&#9670;&#160;</a></span>SUPPLY_VOLTAGE_MIN</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -519,8 +525,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#aac8d8cbd899667d609787ef4
 
 </div>
 </div>
-<a id="a90c0b20d54005712fcc8cb01281360e9"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a90c0b20d54005712fcc8cb01281360e9">&#9670;&nbsp;</a></span>TEMPERATURE_MAX</h2>
+<a id="a90c0b20d54005712fcc8cb01281360e9" name="a90c0b20d54005712fcc8cb01281360e9"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a90c0b20d54005712fcc8cb01281360e9">&#9670;&#160;</a></span>TEMPERATURE_MAX</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -536,8 +542,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#a90c0b20d54005712fcc8cb01
 
 </div>
 </div>
-<a id="aab353db5bf4eb787f86a2080f609a551"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#aab353db5bf4eb787f86a2080f609a551">&#9670;&nbsp;</a></span>TEMPERATURE_MIN</h2>
+<a id="aab353db5bf4eb787f86a2080f609a551" name="aab353db5bf4eb787f86a2080f609a551"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aab353db5bf4eb787f86a2080f609a551">&#9670;&#160;</a></span>TEMPERATURE_MIN</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -553,8 +559,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#aab353db5bf4eb787f86a2080
 
 </div>
 </div>
-<a id="a8bfb4e869985f5fa21ea7d1d262f90ad"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a8bfb4e869985f5fa21ea7d1d262f90ad">&#9670;&nbsp;</a></span>W25QXX_COMMAND_BLOCK_ERASE_32K</h2>
+<a id="a8bfb4e869985f5fa21ea7d1d262f90ad" name="a8bfb4e869985f5fa21ea7d1d262f90ad"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a8bfb4e869985f5fa21ea7d1d262f90ad">&#9670;&#160;</a></span>W25QXX_COMMAND_BLOCK_ERASE_32K</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -570,8 +576,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#a8bfb4e869985f5fa21ea7d1d
 
 </div>
 </div>
-<a id="a4c5a1ed46f4d662a61bc06573ab548a0"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a4c5a1ed46f4d662a61bc06573ab548a0">&#9670;&nbsp;</a></span>W25QXX_COMMAND_BLOCK_ERASE_64K</h2>
+<a id="a4c5a1ed46f4d662a61bc06573ab548a0" name="a4c5a1ed46f4d662a61bc06573ab548a0"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a4c5a1ed46f4d662a61bc06573ab548a0">&#9670;&#160;</a></span>W25QXX_COMMAND_BLOCK_ERASE_64K</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -587,8 +593,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#a4c5a1ed46f4d662a61bc0657
 
 </div>
 </div>
-<a id="a63ec9ecd709fcb69107756f253616a6e"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a63ec9ecd709fcb69107756f253616a6e">&#9670;&nbsp;</a></span>W25QXX_COMMAND_CHIP_ERASE</h2>
+<a id="a63ec9ecd709fcb69107756f253616a6e" name="a63ec9ecd709fcb69107756f253616a6e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a63ec9ecd709fcb69107756f253616a6e">&#9670;&#160;</a></span>W25QXX_COMMAND_CHIP_ERASE</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -604,8 +610,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#a63ec9ecd709fcb69107756f2
 
 </div>
 </div>
-<a id="a374c09f79cc61a3e7ac374bca5122e25"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a374c09f79cc61a3e7ac374bca5122e25">&#9670;&nbsp;</a></span>W25QXX_COMMAND_DEVICE_ID_DUAL_IO</h2>
+<a id="a374c09f79cc61a3e7ac374bca5122e25" name="a374c09f79cc61a3e7ac374bca5122e25"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a374c09f79cc61a3e7ac374bca5122e25">&#9670;&#160;</a></span>W25QXX_COMMAND_DEVICE_ID_DUAL_IO</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -621,8 +627,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#a374c09f79cc61a3e7ac374bc
 
 </div>
 </div>
-<a id="a7573bc250d850078be3221c29521bc5c"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a7573bc250d850078be3221c29521bc5c">&#9670;&nbsp;</a></span>W25QXX_COMMAND_DEVICE_ID_QUAD_IO</h2>
+<a id="a7573bc250d850078be3221c29521bc5c" name="a7573bc250d850078be3221c29521bc5c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a7573bc250d850078be3221c29521bc5c">&#9670;&#160;</a></span>W25QXX_COMMAND_DEVICE_ID_QUAD_IO</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -638,8 +644,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#a7573bc250d850078be3221c2
 
 </div>
 </div>
-<a id="a6dae3a832abc19d1861fafb32f231d94"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a6dae3a832abc19d1861fafb32f231d94">&#9670;&nbsp;</a></span>W25QXX_COMMAND_ENABLE_RESET</h2>
+<a id="a6dae3a832abc19d1861fafb32f231d94" name="a6dae3a832abc19d1861fafb32f231d94"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a6dae3a832abc19d1861fafb32f231d94">&#9670;&#160;</a></span>W25QXX_COMMAND_ENABLE_RESET</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -655,8 +661,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#a6dae3a832abc19d1861fafb3
 
 </div>
 </div>
-<a id="a052d5373086b473bf0d450ea1bd73828"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a052d5373086b473bf0d450ea1bd73828">&#9670;&nbsp;</a></span>W25QXX_COMMAND_ENTER_QSPI_MODE</h2>
+<a id="a052d5373086b473bf0d450ea1bd73828" name="a052d5373086b473bf0d450ea1bd73828"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a052d5373086b473bf0d450ea1bd73828">&#9670;&#160;</a></span>W25QXX_COMMAND_ENTER_QSPI_MODE</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -672,8 +678,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#a052d5373086b473bf0d450ea
 
 </div>
 </div>
-<a id="a0daeb46fb8b219a3d6b37d426c5c0e95"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a0daeb46fb8b219a3d6b37d426c5c0e95">&#9670;&nbsp;</a></span>W25QXX_COMMAND_ERASE_PROGRAM_RESUME</h2>
+<a id="a0daeb46fb8b219a3d6b37d426c5c0e95" name="a0daeb46fb8b219a3d6b37d426c5c0e95"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a0daeb46fb8b219a3d6b37d426c5c0e95">&#9670;&#160;</a></span>W25QXX_COMMAND_ERASE_PROGRAM_RESUME</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -689,8 +695,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#a0daeb46fb8b219a3d6b37d42
 
 </div>
 </div>
-<a id="a43f9a1e3c03d4a7d2a991e81f0e89f51"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a43f9a1e3c03d4a7d2a991e81f0e89f51">&#9670;&nbsp;</a></span>W25QXX_COMMAND_ERASE_PROGRAM_SUSPEND</h2>
+<a id="a43f9a1e3c03d4a7d2a991e81f0e89f51" name="a43f9a1e3c03d4a7d2a991e81f0e89f51"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a43f9a1e3c03d4a7d2a991e81f0e89f51">&#9670;&#160;</a></span>W25QXX_COMMAND_ERASE_PROGRAM_SUSPEND</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -706,8 +712,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#a43f9a1e3c03d4a7d2a991e81
 
 </div>
 </div>
-<a id="a842f8d646fc8f8ed72422fc1d789498c"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a842f8d646fc8f8ed72422fc1d789498c">&#9670;&nbsp;</a></span>W25QXX_COMMAND_ERASE_SECURITY_REGISTER</h2>
+<a id="a842f8d646fc8f8ed72422fc1d789498c" name="a842f8d646fc8f8ed72422fc1d789498c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a842f8d646fc8f8ed72422fc1d789498c">&#9670;&#160;</a></span>W25QXX_COMMAND_ERASE_SECURITY_REGISTER</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -723,8 +729,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#a842f8d646fc8f8ed72422fc1
 
 </div>
 </div>
-<a id="ac957b31a68db8c14f88a196a98b0aa18"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ac957b31a68db8c14f88a196a98b0aa18">&#9670;&nbsp;</a></span>W25QXX_COMMAND_FAST_READ</h2>
+<a id="ac957b31a68db8c14f88a196a98b0aa18" name="ac957b31a68db8c14f88a196a98b0aa18"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ac957b31a68db8c14f88a196a98b0aa18">&#9670;&#160;</a></span>W25QXX_COMMAND_FAST_READ</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -740,8 +746,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#ac957b31a68db8c14f88a196a
 
 </div>
 </div>
-<a id="a2232ada3558228c2902d654989ca65f1"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a2232ada3558228c2902d654989ca65f1">&#9670;&nbsp;</a></span>W25QXX_COMMAND_FAST_READ_DUAL_IO</h2>
+<a id="a2232ada3558228c2902d654989ca65f1" name="a2232ada3558228c2902d654989ca65f1"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a2232ada3558228c2902d654989ca65f1">&#9670;&#160;</a></span>W25QXX_COMMAND_FAST_READ_DUAL_IO</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -757,8 +763,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#a2232ada3558228c2902d6549
 
 </div>
 </div>
-<a id="a8d49efa8b978ae8fd3eb18d0e5ae73e8"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a8d49efa8b978ae8fd3eb18d0e5ae73e8">&#9670;&nbsp;</a></span>W25QXX_COMMAND_FAST_READ_DUAL_OUTPUT</h2>
+<a id="a8d49efa8b978ae8fd3eb18d0e5ae73e8" name="a8d49efa8b978ae8fd3eb18d0e5ae73e8"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a8d49efa8b978ae8fd3eb18d0e5ae73e8">&#9670;&#160;</a></span>W25QXX_COMMAND_FAST_READ_DUAL_OUTPUT</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -774,8 +780,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#a8d49efa8b978ae8fd3eb18d0
 
 </div>
 </div>
-<a id="a80d19998d9d1218d0fa69e7d4d6b0ecb"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a80d19998d9d1218d0fa69e7d4d6b0ecb">&#9670;&nbsp;</a></span>W25QXX_COMMAND_FAST_READ_QUAD_IO</h2>
+<a id="a80d19998d9d1218d0fa69e7d4d6b0ecb" name="a80d19998d9d1218d0fa69e7d4d6b0ecb"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a80d19998d9d1218d0fa69e7d4d6b0ecb">&#9670;&#160;</a></span>W25QXX_COMMAND_FAST_READ_QUAD_IO</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -791,8 +797,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#a80d19998d9d1218d0fa69e7d
 
 </div>
 </div>
-<a id="a54ddb3d948c4bb95cc62199676c817b2"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a54ddb3d948c4bb95cc62199676c817b2">&#9670;&nbsp;</a></span>W25QXX_COMMAND_FAST_READ_QUAD_OUTPUT</h2>
+<a id="a54ddb3d948c4bb95cc62199676c817b2" name="a54ddb3d948c4bb95cc62199676c817b2"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a54ddb3d948c4bb95cc62199676c817b2">&#9670;&#160;</a></span>W25QXX_COMMAND_FAST_READ_QUAD_OUTPUT</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -808,8 +814,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#a54ddb3d948c4bb95cc621996
 
 </div>
 </div>
-<a id="af81bc9ddfc8da8eb911435e835536ffb"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#af81bc9ddfc8da8eb911435e835536ffb">&#9670;&nbsp;</a></span>W25QXX_COMMAND_GLOBAL_BLOCK_SECTOR_LOCK</h2>
+<a id="af81bc9ddfc8da8eb911435e835536ffb" name="af81bc9ddfc8da8eb911435e835536ffb"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af81bc9ddfc8da8eb911435e835536ffb">&#9670;&#160;</a></span>W25QXX_COMMAND_GLOBAL_BLOCK_SECTOR_LOCK</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -825,8 +831,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#af81bc9ddfc8da8eb911435e8
 
 </div>
 </div>
-<a id="ab96d2ad8602a5a50c988b8c09d4bbbc5"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ab96d2ad8602a5a50c988b8c09d4bbbc5">&#9670;&nbsp;</a></span>W25QXX_COMMAND_GLOBAL_BLOCK_SECTOR_UNLOCK</h2>
+<a id="ab96d2ad8602a5a50c988b8c09d4bbbc5" name="ab96d2ad8602a5a50c988b8c09d4bbbc5"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ab96d2ad8602a5a50c988b8c09d4bbbc5">&#9670;&#160;</a></span>W25QXX_COMMAND_GLOBAL_BLOCK_SECTOR_UNLOCK</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -842,8 +848,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#ab96d2ad8602a5a50c988b8c0
 
 </div>
 </div>
-<a id="a328f6a9635b1ec6868410375de90b0df"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a328f6a9635b1ec6868410375de90b0df">&#9670;&nbsp;</a></span>W25QXX_COMMAND_INDIVIDUAL_BLOCK_LOCK</h2>
+<a id="a328f6a9635b1ec6868410375de90b0df" name="a328f6a9635b1ec6868410375de90b0df"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a328f6a9635b1ec6868410375de90b0df">&#9670;&#160;</a></span>W25QXX_COMMAND_INDIVIDUAL_BLOCK_LOCK</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -859,8 +865,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#a328f6a9635b1ec6868410375
 
 </div>
 </div>
-<a id="a3cc8b61583b5eb9d7c1ecd6831689718"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a3cc8b61583b5eb9d7c1ecd6831689718">&#9670;&nbsp;</a></span>W25QXX_COMMAND_INDIVIDUAL_BLOCK_UNLOCK</h2>
+<a id="a3cc8b61583b5eb9d7c1ecd6831689718" name="a3cc8b61583b5eb9d7c1ecd6831689718"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a3cc8b61583b5eb9d7c1ecd6831689718">&#9670;&#160;</a></span>W25QXX_COMMAND_INDIVIDUAL_BLOCK_UNLOCK</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -876,8 +882,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#a3cc8b61583b5eb9d7c1ecd68
 
 </div>
 </div>
-<a id="a54f3ece548cd5eadc94642235442315a"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a54f3ece548cd5eadc94642235442315a">&#9670;&nbsp;</a></span>W25QXX_COMMAND_JEDEC_ID</h2>
+<a id="a54f3ece548cd5eadc94642235442315a" name="a54f3ece548cd5eadc94642235442315a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a54f3ece548cd5eadc94642235442315a">&#9670;&#160;</a></span>W25QXX_COMMAND_JEDEC_ID</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -893,8 +899,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#a54f3ece548cd5eadc9464223
 
 </div>
 </div>
-<a id="acb7f8599b26c29356651690ec9b25e66"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#acb7f8599b26c29356651690ec9b25e66">&#9670;&nbsp;</a></span>W25QXX_COMMAND_OCTAL_WORD_READ_QUAD_IO</h2>
+<a id="acb7f8599b26c29356651690ec9b25e66" name="acb7f8599b26c29356651690ec9b25e66"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#acb7f8599b26c29356651690ec9b25e66">&#9670;&#160;</a></span>W25QXX_COMMAND_OCTAL_WORD_READ_QUAD_IO</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -910,8 +916,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#acb7f8599b26c29356651690e
 
 </div>
 </div>
-<a id="aebca01f1f7fd279523d29e579998574a"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#aebca01f1f7fd279523d29e579998574a">&#9670;&nbsp;</a></span>W25QXX_COMMAND_PAGE_PROGRAM</h2>
+<a id="aebca01f1f7fd279523d29e579998574a" name="aebca01f1f7fd279523d29e579998574a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aebca01f1f7fd279523d29e579998574a">&#9670;&#160;</a></span>W25QXX_COMMAND_PAGE_PROGRAM</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -927,8 +933,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#aebca01f1f7fd279523d29e57
 
 </div>
 </div>
-<a id="a6fe4d603e33b7c8b8310a884e02a130b"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a6fe4d603e33b7c8b8310a884e02a130b">&#9670;&nbsp;</a></span>W25QXX_COMMAND_POWER_DOWN</h2>
+<a id="a6fe4d603e33b7c8b8310a884e02a130b" name="a6fe4d603e33b7c8b8310a884e02a130b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a6fe4d603e33b7c8b8310a884e02a130b">&#9670;&#160;</a></span>W25QXX_COMMAND_POWER_DOWN</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -944,8 +950,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#a6fe4d603e33b7c8b8310a884
 
 </div>
 </div>
-<a id="a915ab53f5f2d1cad6b954205e76cb4d5"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a915ab53f5f2d1cad6b954205e76cb4d5">&#9670;&nbsp;</a></span>W25QXX_COMMAND_PROGRAM_SECURITY_REGISTER</h2>
+<a id="a915ab53f5f2d1cad6b954205e76cb4d5" name="a915ab53f5f2d1cad6b954205e76cb4d5"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a915ab53f5f2d1cad6b954205e76cb4d5">&#9670;&#160;</a></span>W25QXX_COMMAND_PROGRAM_SECURITY_REGISTER</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -961,8 +967,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#a915ab53f5f2d1cad6b954205
 
 </div>
 </div>
-<a id="a8212fac3d1e43024621b6b560a8dddfe"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a8212fac3d1e43024621b6b560a8dddfe">&#9670;&nbsp;</a></span>W25QXX_COMMAND_QUAD_PAGE_PROGRAM</h2>
+<a id="a8212fac3d1e43024621b6b560a8dddfe" name="a8212fac3d1e43024621b6b560a8dddfe"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a8212fac3d1e43024621b6b560a8dddfe">&#9670;&#160;</a></span>W25QXX_COMMAND_QUAD_PAGE_PROGRAM</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -978,8 +984,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#a8212fac3d1e43024621b6b56
 
 </div>
 </div>
-<a id="a19e055bec30de0ad30e7f8ab5feea6a8"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a19e055bec30de0ad30e7f8ab5feea6a8">&#9670;&nbsp;</a></span>W25QXX_COMMAND_READ_BLOCK_LOCK</h2>
+<a id="a19e055bec30de0ad30e7f8ab5feea6a8" name="a19e055bec30de0ad30e7f8ab5feea6a8"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a19e055bec30de0ad30e7f8ab5feea6a8">&#9670;&#160;</a></span>W25QXX_COMMAND_READ_BLOCK_LOCK</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -995,8 +1001,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#a19e055bec30de0ad30e7f8ab
 
 </div>
 </div>
-<a id="a23fcd6d9b067580d534d626c43b7cff3"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a23fcd6d9b067580d534d626c43b7cff3">&#9670;&nbsp;</a></span>W25QXX_COMMAND_READ_DATA</h2>
+<a id="a23fcd6d9b067580d534d626c43b7cff3" name="a23fcd6d9b067580d534d626c43b7cff3"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a23fcd6d9b067580d534d626c43b7cff3">&#9670;&#160;</a></span>W25QXX_COMMAND_READ_DATA</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -1012,8 +1018,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#a23fcd6d9b067580d534d626c
 
 </div>
 </div>
-<a id="af6d9a5bc0b57b041e22af80b85e53f56"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#af6d9a5bc0b57b041e22af80b85e53f56">&#9670;&nbsp;</a></span>W25QXX_COMMAND_READ_MANUFACTURER</h2>
+<a id="af6d9a5bc0b57b041e22af80b85e53f56" name="af6d9a5bc0b57b041e22af80b85e53f56"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af6d9a5bc0b57b041e22af80b85e53f56">&#9670;&#160;</a></span>W25QXX_COMMAND_READ_MANUFACTURER</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -1029,8 +1035,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#af6d9a5bc0b57b041e22af80b
 
 </div>
 </div>
-<a id="a4dc5fb2c3c15ef86df56b534b874a919"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a4dc5fb2c3c15ef86df56b534b874a919">&#9670;&nbsp;</a></span>W25QXX_COMMAND_READ_SECURITY_REGISTER</h2>
+<a id="a4dc5fb2c3c15ef86df56b534b874a919" name="a4dc5fb2c3c15ef86df56b534b874a919"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a4dc5fb2c3c15ef86df56b534b874a919">&#9670;&#160;</a></span>W25QXX_COMMAND_READ_SECURITY_REGISTER</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -1046,8 +1052,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#a4dc5fb2c3c15ef86df56b534
 
 </div>
 </div>
-<a id="a63774c5ebbdf5445466d840fad567bf6"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a63774c5ebbdf5445466d840fad567bf6">&#9670;&nbsp;</a></span>W25QXX_COMMAND_READ_SFDP_REGISTER</h2>
+<a id="a63774c5ebbdf5445466d840fad567bf6" name="a63774c5ebbdf5445466d840fad567bf6"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a63774c5ebbdf5445466d840fad567bf6">&#9670;&#160;</a></span>W25QXX_COMMAND_READ_SFDP_REGISTER</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -1063,8 +1069,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#a63774c5ebbdf5445466d840f
 
 </div>
 </div>
-<a id="adf682969c34f4b31a87dd92dd18ccea3"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#adf682969c34f4b31a87dd92dd18ccea3">&#9670;&nbsp;</a></span>W25QXX_COMMAND_READ_STATUS_REG1</h2>
+<a id="adf682969c34f4b31a87dd92dd18ccea3" name="adf682969c34f4b31a87dd92dd18ccea3"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#adf682969c34f4b31a87dd92dd18ccea3">&#9670;&#160;</a></span>W25QXX_COMMAND_READ_STATUS_REG1</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -1080,8 +1086,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#adf682969c34f4b31a87dd92d
 
 </div>
 </div>
-<a id="a4a8cdc5b6ce75029df877263bdf35f2a"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a4a8cdc5b6ce75029df877263bdf35f2a">&#9670;&nbsp;</a></span>W25QXX_COMMAND_READ_STATUS_REG2</h2>
+<a id="a4a8cdc5b6ce75029df877263bdf35f2a" name="a4a8cdc5b6ce75029df877263bdf35f2a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a4a8cdc5b6ce75029df877263bdf35f2a">&#9670;&#160;</a></span>W25QXX_COMMAND_READ_STATUS_REG2</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -1097,8 +1103,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#a4a8cdc5b6ce75029df877263
 
 </div>
 </div>
-<a id="a09798bdb3fabdf7bb4cfd8bce18100ce"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a09798bdb3fabdf7bb4cfd8bce18100ce">&#9670;&nbsp;</a></span>W25QXX_COMMAND_READ_STATUS_REG3</h2>
+<a id="a09798bdb3fabdf7bb4cfd8bce18100ce" name="a09798bdb3fabdf7bb4cfd8bce18100ce"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a09798bdb3fabdf7bb4cfd8bce18100ce">&#9670;&#160;</a></span>W25QXX_COMMAND_READ_STATUS_REG3</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -1114,8 +1120,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#a09798bdb3fabdf7bb4cfd8bc
 
 </div>
 </div>
-<a id="a6aeed0a651b31064f25ab2f57fdacf2f"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a6aeed0a651b31064f25ab2f57fdacf2f">&#9670;&nbsp;</a></span>W25QXX_COMMAND_READ_UNIQUE_ID</h2>
+<a id="a6aeed0a651b31064f25ab2f57fdacf2f" name="a6aeed0a651b31064f25ab2f57fdacf2f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a6aeed0a651b31064f25ab2f57fdacf2f">&#9670;&#160;</a></span>W25QXX_COMMAND_READ_UNIQUE_ID</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -1131,8 +1137,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#a6aeed0a651b31064f25ab2f5
 
 </div>
 </div>
-<a id="ad344065461b2c71521017984f040b425"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ad344065461b2c71521017984f040b425">&#9670;&nbsp;</a></span>W25QXX_COMMAND_RELEASE_POWER_DOWN</h2>
+<a id="ad344065461b2c71521017984f040b425" name="ad344065461b2c71521017984f040b425"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ad344065461b2c71521017984f040b425">&#9670;&#160;</a></span>W25QXX_COMMAND_RELEASE_POWER_DOWN</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -1148,8 +1154,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#ad344065461b2c71521017984
 
 </div>
 </div>
-<a id="ab25182298c921c8f7f42216e0d5aa56b"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ab25182298c921c8f7f42216e0d5aa56b">&#9670;&nbsp;</a></span>W25QXX_COMMAND_RESET_DEVICE</h2>
+<a id="ab25182298c921c8f7f42216e0d5aa56b" name="ab25182298c921c8f7f42216e0d5aa56b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ab25182298c921c8f7f42216e0d5aa56b">&#9670;&#160;</a></span>W25QXX_COMMAND_RESET_DEVICE</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -1165,8 +1171,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#ab25182298c921c8f7f42216e
 
 </div>
 </div>
-<a id="a6e7cd159f91e23930450725fd6910f9c"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a6e7cd159f91e23930450725fd6910f9c">&#9670;&nbsp;</a></span>W25QXX_COMMAND_SECTOR_ERASE_4K</h2>
+<a id="a6e7cd159f91e23930450725fd6910f9c" name="a6e7cd159f91e23930450725fd6910f9c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a6e7cd159f91e23930450725fd6910f9c">&#9670;&#160;</a></span>W25QXX_COMMAND_SECTOR_ERASE_4K</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -1182,8 +1188,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#a6e7cd159f91e23930450725f
 
 </div>
 </div>
-<a id="acfb19490258b26729fa83fdd60c4d822"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#acfb19490258b26729fa83fdd60c4d822">&#9670;&nbsp;</a></span>W25QXX_COMMAND_SET_BURST_WITH_WRAP</h2>
+<a id="acfb19490258b26729fa83fdd60c4d822" name="acfb19490258b26729fa83fdd60c4d822"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#acfb19490258b26729fa83fdd60c4d822">&#9670;&#160;</a></span>W25QXX_COMMAND_SET_BURST_WITH_WRAP</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -1199,8 +1205,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#acfb19490258b26729fa83fdd
 
 </div>
 </div>
-<a id="a7c9e980e30f499dd97b02935c91f2c02"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a7c9e980e30f499dd97b02935c91f2c02">&#9670;&nbsp;</a></span>W25QXX_COMMAND_VOLATILE_SR_WRITE_ENABLE</h2>
+<a id="a7c9e980e30f499dd97b02935c91f2c02" name="a7c9e980e30f499dd97b02935c91f2c02"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a7c9e980e30f499dd97b02935c91f2c02">&#9670;&#160;</a></span>W25QXX_COMMAND_VOLATILE_SR_WRITE_ENABLE</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -1216,8 +1222,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#a7c9e980e30f499dd97b02935
 
 </div>
 </div>
-<a id="a947382a74ac06eb8a2ff8f5bcb1b744d"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a947382a74ac06eb8a2ff8f5bcb1b744d">&#9670;&nbsp;</a></span>W25QXX_COMMAND_WORD_READ_QUAD_IO</h2>
+<a id="a947382a74ac06eb8a2ff8f5bcb1b744d" name="a947382a74ac06eb8a2ff8f5bcb1b744d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a947382a74ac06eb8a2ff8f5bcb1b744d">&#9670;&#160;</a></span>W25QXX_COMMAND_WORD_READ_QUAD_IO</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -1233,8 +1239,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#a947382a74ac06eb8a2ff8f5b
 
 </div>
 </div>
-<a id="a36dfb1951fe152d63e3715a161646713"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a36dfb1951fe152d63e3715a161646713">&#9670;&nbsp;</a></span>W25QXX_COMMAND_WRITE_DISABLE</h2>
+<a id="a36dfb1951fe152d63e3715a161646713" name="a36dfb1951fe152d63e3715a161646713"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a36dfb1951fe152d63e3715a161646713">&#9670;&#160;</a></span>W25QXX_COMMAND_WRITE_DISABLE</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -1250,8 +1256,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#a36dfb1951fe152d63e3715a1
 
 </div>
 </div>
-<a id="af0708c46377cfee2dff1ff429d8675d5"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#af0708c46377cfee2dff1ff429d8675d5">&#9670;&nbsp;</a></span>W25QXX_COMMAND_WRITE_ENABLE</h2>
+<a id="af0708c46377cfee2dff1ff429d8675d5" name="af0708c46377cfee2dff1ff429d8675d5"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af0708c46377cfee2dff1ff429d8675d5">&#9670;&#160;</a></span>W25QXX_COMMAND_WRITE_ENABLE</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -1269,8 +1275,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#af0708c46377cfee2dff1ff42
 
 </div>
 </div>
-<a id="a932f54ff92de8bbab4602ab85ac6c155"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a932f54ff92de8bbab4602ab85ac6c155">&#9670;&nbsp;</a></span>W25QXX_COMMAND_WRITE_STATUS_REG1</h2>
+<a id="a932f54ff92de8bbab4602ab85ac6c155" name="a932f54ff92de8bbab4602ab85ac6c155"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a932f54ff92de8bbab4602ab85ac6c155">&#9670;&#160;</a></span>W25QXX_COMMAND_WRITE_STATUS_REG1</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -1286,8 +1292,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#a932f54ff92de8bbab4602ab8
 
 </div>
 </div>
-<a id="a4be10ed873d56bb183d9b1bde9105135"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a4be10ed873d56bb183d9b1bde9105135">&#9670;&nbsp;</a></span>W25QXX_COMMAND_WRITE_STATUS_REG2</h2>
+<a id="a4be10ed873d56bb183d9b1bde9105135" name="a4be10ed873d56bb183d9b1bde9105135"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a4be10ed873d56bb183d9b1bde9105135">&#9670;&#160;</a></span>W25QXX_COMMAND_WRITE_STATUS_REG2</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -1303,8 +1309,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#a4be10ed873d56bb183d9b1bd
 
 </div>
 </div>
-<a id="a6d099dc6afb59cc950d3abe96b840158"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a6d099dc6afb59cc950d3abe96b840158">&#9670;&nbsp;</a></span>W25QXX_COMMAND_WRITE_STATUS_REG3</h2>
+<a id="a6d099dc6afb59cc950d3abe96b840158" name="a6d099dc6afb59cc950d3abe96b840158"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a6d099dc6afb59cc950d3abe96b840158">&#9670;&#160;</a></span>W25QXX_COMMAND_WRITE_STATUS_REG3</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -1326,7 +1332,7 @@ <h2 class="memtitle"><span class="permalink"><a href="#a6d099dc6afb59cc950d3abe9
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
     <li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="driver__w25qxx_8c.html">driver_w25qxx.c</a></li>
-    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
+    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/driver__w25qxx_8c_source.html b/doc/html/driver__w25qxx_8c_source.html
index d367725..cb79739 100644
--- a/doc/html/driver__w25qxx_8c_source.html
+++ b/doc/html/driver__w25qxx_8c_source.html
@@ -1,9 +1,9 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.8"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>LibDriver W25QXX: src/driver_w25qxx.c Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -23,11 +23,10 @@
 <div id="titlearea">
 <table cellspacing="0" cellpadding="0">
  <tbody>
- <tr style="height: 56px;">
+ <tr id="projectrow">
   <td id="projectlogo"><img alt="Logo" src="doxygen.png"/></td>
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">LibDriver W25QXX
-   &#160;<span id="projectnumber">1.0.0</span>
+  <td id="projectalign">
+   <div id="projectname">LibDriver W25QXX<span id="projectnumber">&#160;1.0.0</span>
    </div>
    <div id="projectbrief">W25QXX full function driver</div>
   </td>
@@ -36,22 +35,28 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.8 -->
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search/",'.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
 <script type="text/javascript" src="menu.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(function() {
   initMenu('',true,false,'search.php','Search');
   $(document).ready(function() { init_search(); });
 });
-/* @license-end */</script>
+/* @license-end */
+</script>
 <div id="main-nav"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(document).ready(function() { init_codefold(0); });
+/* @license-end */
+</script>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -64,7 +69,7 @@
   </div>
 </div>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(document).ready(function(){initNavTree('driver__w25qxx_8c_source.html',''); initResizable(); });
 /* @license-end */
 </script>
@@ -78,7859 +83,7987 @@
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
 </div>
 
 <div class="header">
-  <div class="headertitle">
-<div class="title">driver_w25qxx.c</div>  </div>
+  <div class="headertitle"><div class="title">driver_w25qxx.c</div></div>
 </div><!--header-->
 <div class="contents">
-<a href="driver__w25qxx_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160; </div>
-<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="driver__w25qxx_8h.html">driver_w25qxx.h</a>&quot;</span></div>
-<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160; </div>
-<div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="driver__w25qxx_8c.html#adc9da0a24824ca1239b593f6459b3954">   42</a></span>&#160;<span class="preprocessor">#define CHIP_NAME                 &quot;Winbond W25QXX&quot;</span>        </div>
-<div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="driver__w25qxx_8c.html#aaa2b8f5b105c3019df0cb346f472e803">   43</a></span>&#160;<span class="preprocessor">#define MANUFACTURER_NAME         &quot;Winbond&quot;</span>               </div>
-<div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="driver__w25qxx_8c.html#aac8d8cbd899667d609787ef4cf37054d">   44</a></span>&#160;<span class="preprocessor">#define SUPPLY_VOLTAGE_MIN        2.7f                    </span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="driver__w25qxx_8c.html#a68eba8b601afe11f1b871d944976c035">   45</a></span>&#160;<span class="preprocessor">#define SUPPLY_VOLTAGE_MAX        3.6f                    </span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="driver__w25qxx_8c.html#a2989837a37d6d63b59c6dd541b785435">   46</a></span>&#160;<span class="preprocessor">#define MAX_CURRENT               25.0f                   </span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="driver__w25qxx_8c.html#aab353db5bf4eb787f86a2080f609a551">   47</a></span>&#160;<span class="preprocessor">#define TEMPERATURE_MIN           -40.0f                  </span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="driver__w25qxx_8c.html#a90c0b20d54005712fcc8cb01281360e9">   48</a></span>&#160;<span class="preprocessor">#define TEMPERATURE_MAX           85.0f                   </span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="driver__w25qxx_8c.html#ae578001fe043b4cca7a0edd801cfe9c4">   49</a></span>&#160;<span class="preprocessor">#define DRIVER_VERSION            1000                    </span></div>
-<div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">   54</a></span>&#160;<span class="preprocessor">#define W25QXX_COMMAND_WRITE_ENABLE                      0x06        </span></div>
-<div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="driver__w25qxx_8c.html#a7c9e980e30f499dd97b02935c91f2c02">   55</a></span>&#160;<span class="preprocessor">#define W25QXX_COMMAND_VOLATILE_SR_WRITE_ENABLE          0x50        </span></div>
-<div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="driver__w25qxx_8c.html#a36dfb1951fe152d63e3715a161646713">   56</a></span>&#160;<span class="preprocessor">#define W25QXX_COMMAND_WRITE_DISABLE                     0x04        </span></div>
-<div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="driver__w25qxx_8c.html#adf682969c34f4b31a87dd92dd18ccea3">   57</a></span>&#160;<span class="preprocessor">#define W25QXX_COMMAND_READ_STATUS_REG1                  0x05        </span></div>
-<div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="driver__w25qxx_8c.html#a4a8cdc5b6ce75029df877263bdf35f2a">   58</a></span>&#160;<span class="preprocessor">#define W25QXX_COMMAND_READ_STATUS_REG2                  0x35        </span></div>
-<div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="driver__w25qxx_8c.html#a09798bdb3fabdf7bb4cfd8bce18100ce">   59</a></span>&#160;<span class="preprocessor">#define W25QXX_COMMAND_READ_STATUS_REG3                  0x15        </span></div>
-<div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="driver__w25qxx_8c.html#a932f54ff92de8bbab4602ab85ac6c155">   60</a></span>&#160;<span class="preprocessor">#define W25QXX_COMMAND_WRITE_STATUS_REG1                 0x01        </span></div>
-<div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="driver__w25qxx_8c.html#a4be10ed873d56bb183d9b1bde9105135">   61</a></span>&#160;<span class="preprocessor">#define W25QXX_COMMAND_WRITE_STATUS_REG2                 0x31        </span></div>
-<div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="driver__w25qxx_8c.html#a6d099dc6afb59cc950d3abe96b840158">   62</a></span>&#160;<span class="preprocessor">#define W25QXX_COMMAND_WRITE_STATUS_REG3                 0x11        </span></div>
-<div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="driver__w25qxx_8c.html#a63ec9ecd709fcb69107756f253616a6e">   63</a></span>&#160;<span class="preprocessor">#define W25QXX_COMMAND_CHIP_ERASE                        0xC7        </span></div>
-<div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="driver__w25qxx_8c.html#a43f9a1e3c03d4a7d2a991e81f0e89f51">   64</a></span>&#160;<span class="preprocessor">#define W25QXX_COMMAND_ERASE_PROGRAM_SUSPEND             0x75        </span></div>
-<div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="driver__w25qxx_8c.html#a0daeb46fb8b219a3d6b37d426c5c0e95">   65</a></span>&#160;<span class="preprocessor">#define W25QXX_COMMAND_ERASE_PROGRAM_RESUME              0x7A        </span></div>
-<div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="driver__w25qxx_8c.html#a6fe4d603e33b7c8b8310a884e02a130b">   66</a></span>&#160;<span class="preprocessor">#define W25QXX_COMMAND_POWER_DOWN                        0xB9        </span></div>
-<div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="driver__w25qxx_8c.html#ad344065461b2c71521017984f040b425">   67</a></span>&#160;<span class="preprocessor">#define W25QXX_COMMAND_RELEASE_POWER_DOWN                0xAB        </span></div>
-<div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="driver__w25qxx_8c.html#af6d9a5bc0b57b041e22af80b85e53f56">   68</a></span>&#160;<span class="preprocessor">#define W25QXX_COMMAND_READ_MANUFACTURER                 0x90        </span></div>
-<div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="driver__w25qxx_8c.html#a54f3ece548cd5eadc94642235442315a">   69</a></span>&#160;<span class="preprocessor">#define W25QXX_COMMAND_JEDEC_ID                          0x9F        </span></div>
-<div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="driver__w25qxx_8c.html#af81bc9ddfc8da8eb911435e835536ffb">   70</a></span>&#160;<span class="preprocessor">#define W25QXX_COMMAND_GLOBAL_BLOCK_SECTOR_LOCK          0x7E        </span></div>
-<div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="driver__w25qxx_8c.html#ab96d2ad8602a5a50c988b8c09d4bbbc5">   71</a></span>&#160;<span class="preprocessor">#define W25QXX_COMMAND_GLOBAL_BLOCK_SECTOR_UNLOCK        0x98        </span></div>
-<div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="driver__w25qxx_8c.html#a052d5373086b473bf0d450ea1bd73828">   72</a></span>&#160;<span class="preprocessor">#define W25QXX_COMMAND_ENTER_QSPI_MODE                   0x38        </span></div>
-<div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="driver__w25qxx_8c.html#a6dae3a832abc19d1861fafb32f231d94">   73</a></span>&#160;<span class="preprocessor">#define W25QXX_COMMAND_ENABLE_RESET                      0x66        </span></div>
-<div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="driver__w25qxx_8c.html#ab25182298c921c8f7f42216e0d5aa56b">   74</a></span>&#160;<span class="preprocessor">#define W25QXX_COMMAND_RESET_DEVICE                      0x99        </span></div>
-<div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="driver__w25qxx_8c.html#a6aeed0a651b31064f25ab2f57fdacf2f">   75</a></span>&#160;<span class="preprocessor">#define W25QXX_COMMAND_READ_UNIQUE_ID                    0x4B        </span></div>
-<div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="driver__w25qxx_8c.html#aebca01f1f7fd279523d29e579998574a">   76</a></span>&#160;<span class="preprocessor">#define W25QXX_COMMAND_PAGE_PROGRAM                      0x02        </span></div>
-<div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="driver__w25qxx_8c.html#a8212fac3d1e43024621b6b560a8dddfe">   77</a></span>&#160;<span class="preprocessor">#define W25QXX_COMMAND_QUAD_PAGE_PROGRAM                 0x32        </span></div>
-<div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="driver__w25qxx_8c.html#a6e7cd159f91e23930450725fd6910f9c">   78</a></span>&#160;<span class="preprocessor">#define W25QXX_COMMAND_SECTOR_ERASE_4K                   0x20        </span></div>
-<div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="driver__w25qxx_8c.html#a8bfb4e869985f5fa21ea7d1d262f90ad">   79</a></span>&#160;<span class="preprocessor">#define W25QXX_COMMAND_BLOCK_ERASE_32K                   0x52        </span></div>
-<div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="driver__w25qxx_8c.html#a4c5a1ed46f4d662a61bc06573ab548a0">   80</a></span>&#160;<span class="preprocessor">#define W25QXX_COMMAND_BLOCK_ERASE_64K                   0xD8        </span></div>
-<div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="driver__w25qxx_8c.html#a23fcd6d9b067580d534d626c43b7cff3">   81</a></span>&#160;<span class="preprocessor">#define W25QXX_COMMAND_READ_DATA                         0x03        </span></div>
-<div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="driver__w25qxx_8c.html#ac957b31a68db8c14f88a196a98b0aa18">   82</a></span>&#160;<span class="preprocessor">#define W25QXX_COMMAND_FAST_READ                         0x0B        </span></div>
-<div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="driver__w25qxx_8c.html#a8d49efa8b978ae8fd3eb18d0e5ae73e8">   83</a></span>&#160;<span class="preprocessor">#define W25QXX_COMMAND_FAST_READ_DUAL_OUTPUT             0x3B        </span></div>
-<div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="driver__w25qxx_8c.html#a54ddb3d948c4bb95cc62199676c817b2">   84</a></span>&#160;<span class="preprocessor">#define W25QXX_COMMAND_FAST_READ_QUAD_OUTPUT             0x6B        </span></div>
-<div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="driver__w25qxx_8c.html#a63774c5ebbdf5445466d840fad567bf6">   85</a></span>&#160;<span class="preprocessor">#define W25QXX_COMMAND_READ_SFDP_REGISTER                0x5A        </span></div>
-<div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="driver__w25qxx_8c.html#a842f8d646fc8f8ed72422fc1d789498c">   86</a></span>&#160;<span class="preprocessor">#define W25QXX_COMMAND_ERASE_SECURITY_REGISTER           0x44        </span></div>
-<div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="driver__w25qxx_8c.html#a915ab53f5f2d1cad6b954205e76cb4d5">   87</a></span>&#160;<span class="preprocessor">#define W25QXX_COMMAND_PROGRAM_SECURITY_REGISTER         0x42        </span></div>
-<div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="driver__w25qxx_8c.html#a4dc5fb2c3c15ef86df56b534b874a919">   88</a></span>&#160;<span class="preprocessor">#define W25QXX_COMMAND_READ_SECURITY_REGISTER            0x48        </span></div>
-<div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="driver__w25qxx_8c.html#a328f6a9635b1ec6868410375de90b0df">   89</a></span>&#160;<span class="preprocessor">#define W25QXX_COMMAND_INDIVIDUAL_BLOCK_LOCK             0x36        </span></div>
-<div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="driver__w25qxx_8c.html#a3cc8b61583b5eb9d7c1ecd6831689718">   90</a></span>&#160;<span class="preprocessor">#define W25QXX_COMMAND_INDIVIDUAL_BLOCK_UNLOCK           0x39        </span></div>
-<div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="driver__w25qxx_8c.html#a19e055bec30de0ad30e7f8ab5feea6a8">   91</a></span>&#160;<span class="preprocessor">#define W25QXX_COMMAND_READ_BLOCK_LOCK                   0x3D        </span></div>
-<div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="driver__w25qxx_8c.html#a2232ada3558228c2902d654989ca65f1">   92</a></span>&#160;<span class="preprocessor">#define W25QXX_COMMAND_FAST_READ_DUAL_IO                 0xBB        </span></div>
-<div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="driver__w25qxx_8c.html#a374c09f79cc61a3e7ac374bca5122e25">   93</a></span>&#160;<span class="preprocessor">#define W25QXX_COMMAND_DEVICE_ID_DUAL_IO                 0x92        </span></div>
-<div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="driver__w25qxx_8c.html#acfb19490258b26729fa83fdd60c4d822">   94</a></span>&#160;<span class="preprocessor">#define W25QXX_COMMAND_SET_BURST_WITH_WRAP               0x77        </span></div>
-<div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="driver__w25qxx_8c.html#a80d19998d9d1218d0fa69e7d4d6b0ecb">   95</a></span>&#160;<span class="preprocessor">#define W25QXX_COMMAND_FAST_READ_QUAD_IO                 0xEB        </span></div>
-<div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="driver__w25qxx_8c.html#a947382a74ac06eb8a2ff8f5bcb1b744d">   96</a></span>&#160;<span class="preprocessor">#define W25QXX_COMMAND_WORD_READ_QUAD_IO                 0xE7        </span></div>
-<div class="line"><a name="l00097"></a><span class="lineno"><a class="line" href="driver__w25qxx_8c.html#acb7f8599b26c29356651690ec9b25e66">   97</a></span>&#160;<span class="preprocessor">#define W25QXX_COMMAND_OCTAL_WORD_READ_QUAD_IO           0xE3        </span></div>
-<div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="driver__w25qxx_8c.html#a7573bc250d850078be3221c29521bc5c">   98</a></span>&#160;<span class="preprocessor">#define W25QXX_COMMAND_DEVICE_ID_QUAD_IO                 0x94        </span></div>
-<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;<span class="keyword">static</span> uint8_t a_w25qxx_spi_write_read(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint8_t *in_buf, uint32_t in_len, uint8_t *out_buf, uint32_t out_len)</div>
-<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;{</div>
-<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a2d39cde883403779e3da9dd39c32bec5">spi_qspi_write_read</a>(0x00, 0x00, 0x00000000, 0x00, 0x00,                <span class="comment">/* write read data */</span></div>
-<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;                                    0x00000000, 0x00, 0x00, </div>
-<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;                                    0x00, in_buf, in_len, out_buf, out_len, 1) != 0)</div>
-<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;    {</div>
-<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;        <span class="keywordflow">return</span> 1;                                                                      <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;    }</div>
-<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;    <span class="keywordflow">else</span></div>
-<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;    {</div>
-<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;        <span class="keywordflow">return</span> 0;                                                                      <span class="comment">/* success return 0 */</span></div>
-<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;    }</div>
-<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;}</div>
-<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160; </div>
-<div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;<span class="keyword">static</span> uint8_t a_w25qxx_qspi_write_read(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint8_t instruction, uint8_t instruction_line,</div>
-<div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;                                        uint32_t address, uint8_t address_line, uint8_t address_len,</div>
-<div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;                                        uint32_t alternate, uint8_t alternate_line, uint8_t alternate_len,</div>
-<div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;                                        uint8_t dummy, uint8_t *in_buf, uint32_t in_len,</div>
-<div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;                                        uint8_t *out_buf, uint32_t out_len, uint8_t data_line)</div>
-<div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;{</div>
-<div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a2d39cde883403779e3da9dd39c32bec5">spi_qspi_write_read</a>(instruction, instruction_line, address, address_line, address_len,        <span class="comment">/* write read data */</span></div>
-<div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;                                    alternate, alternate_line, alternate_len, </div>
-<div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;                                    dummy, in_buf, in_len, out_buf, out_len, data_line) != 0)</div>
-<div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;    {</div>
-<div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;        <span class="keywordflow">return</span> 1;                                                                                             <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;    }</div>
-<div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;    <span class="keywordflow">else</span></div>
-<div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;    {</div>
-<div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;        <span class="keywordflow">return</span> 0;                                                                                             <span class="comment">/* success return 0 */</span></div>
-<div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;    }</div>
-<div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;}</div>
-<div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160; </div>
-<div class="line"><a name="l00175"></a><span class="lineno"><a class="line" href="group__w25qxx__basic__driver.html#ga665139209b0abc386474a78d89cce6f2">  175</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__basic__driver.html#ga665139209b0abc386474a78d89cce6f2">w25qxx_set_dual_quad_spi</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, <a class="code" href="group__w25qxx__basic__driver.html#gafb2690946f5baf4be6f3a63dde5491fb">w25qxx_bool_t</a> enable)</div>
-<div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;{</div>
-<div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;    <span class="keywordflow">if</span> (handle == NULL)                                    <span class="comment">/* check handle */</span></div>
-<div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;    {</div>
-<div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;        <span class="keywordflow">return</span> 2;                                          <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;    }</div>
-<div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160; </div>
-<div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">dual_quad_spi_enable</a> = (uint8_t)enable;        <span class="comment">/* set enable */</span></div>
-<div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;    </div>
-<div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;    <span class="keywordflow">return</span> 0;                                              <span class="comment">/* success return 0 */</span></div>
-<div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;}</div>
-<div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160; </div>
-<div class="line"><a name="l00196"></a><span class="lineno"><a class="line" href="group__w25qxx__basic__driver.html#gad4c9b8b0a2d0916c13567f9d7e494cf8">  196</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__basic__driver.html#gad4c9b8b0a2d0916c13567f9d7e494cf8">w25qxx_get_dual_quad_spi</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, <a class="code" href="group__w25qxx__basic__driver.html#gafb2690946f5baf4be6f3a63dde5491fb">w25qxx_bool_t</a> *enable)</div>
-<div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;{</div>
-<div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;    <span class="keywordflow">if</span> (handle == NULL)                                             <span class="comment">/* check handle */</span></div>
-<div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;    {</div>
-<div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;        <span class="keywordflow">return</span> 2;                                                   <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;    }</div>
-<div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160; </div>
-<div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;    *enable = (<a class="code" href="group__w25qxx__basic__driver.html#gafb2690946f5baf4be6f3a63dde5491fb">w25qxx_bool_t</a>)(handle-&gt;<a class="code" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">dual_quad_spi_enable</a>);        <span class="comment">/* get enable */</span></div>
-<div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;    </div>
-<div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;    <span class="keywordflow">return</span> 0;                                                       <span class="comment">/* success return 0 */</span></div>
-<div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;}</div>
-<div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160; </div>
-<div class="line"><a name="l00217"></a><span class="lineno"><a class="line" href="group__w25qxx__basic__driver.html#gaa57189cd4170b73f8b1300ca15e27de6">  217</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__basic__driver.html#gaa57189cd4170b73f8b1300ca15e27de6">w25qxx_set_type</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, <a class="code" href="group__w25qxx__basic__driver.html#ga6cb4e5164464df549201dd96cb7a58b1">w25qxx_type_t</a> type)</div>
-<div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;{</div>
-<div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;    <span class="keywordflow">if</span> (handle == NULL)                  <span class="comment">/* check handle */</span></div>
-<div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;    {</div>
-<div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;        <span class="keywordflow">return</span> 2;                        <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;    }</div>
-<div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160; </div>
-<div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> = (uint16_t)type;       <span class="comment">/* set type */</span></div>
-<div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;    </div>
-<div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;    <span class="keywordflow">return</span> 0;                            <span class="comment">/* success return 0 */</span></div>
-<div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;}</div>
-<div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160; </div>
-<div class="line"><a name="l00238"></a><span class="lineno"><a class="line" href="group__w25qxx__basic__driver.html#ga685379998dad173b6d9c0b0da270685c">  238</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__basic__driver.html#ga685379998dad173b6d9c0b0da270685c">w25qxx_get_type</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, <a class="code" href="group__w25qxx__basic__driver.html#ga6cb4e5164464df549201dd96cb7a58b1">w25qxx_type_t</a> *type)</div>
-<div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;{</div>
-<div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;    <span class="keywordflow">if</span> (handle == NULL)                           <span class="comment">/* check handle */</span></div>
-<div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160;    {</div>
-<div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;        <span class="keywordflow">return</span> 2;                                 <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;    }</div>
-<div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160; </div>
-<div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;    *type = (<a class="code" href="group__w25qxx__basic__driver.html#ga6cb4e5164464df549201dd96cb7a58b1">w25qxx_type_t</a>)(handle-&gt;<a class="code" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a>);        <span class="comment">/* get type */</span></div>
-<div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160;    </div>
-<div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160;    <span class="keywordflow">return</span> 0;                                     <span class="comment">/* success return 0 */</span></div>
-<div class="line"><a name="l00248"></a><span class="lineno">  248</span>&#160;}</div>
-<div class="line"><a name="l00249"></a><span class="lineno">  249</span>&#160; </div>
-<div class="line"><a name="l00259"></a><span class="lineno"><a class="line" href="group__w25qxx__basic__driver.html#ga50a62003d566402d46ada2f272c41eb5">  259</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__basic__driver.html#ga50a62003d566402d46ada2f272c41eb5">w25qxx_set_interface</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, <a class="code" href="group__w25qxx__basic__driver.html#gacbf327a42336baf10713a1796ff4f2fe">w25qxx_interface_t</a> interface)</div>
-<div class="line"><a name="l00260"></a><span class="lineno">  260</span>&#160;{</div>
-<div class="line"><a name="l00261"></a><span class="lineno">  261</span>&#160;    <span class="keywordflow">if</span> (handle == NULL)                           <span class="comment">/* check handle */</span></div>
-<div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160;    {</div>
-<div class="line"><a name="l00263"></a><span class="lineno">  263</span>&#160;        <span class="keywordflow">return</span> 2;                                 <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l00264"></a><span class="lineno">  264</span>&#160;    }</div>
-<div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160; </div>
-<div class="line"><a name="l00266"></a><span class="lineno">  266</span>&#160;    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a> = (uint8_t)interface;        <span class="comment">/* set interface */</span></div>
-<div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160;    </div>
-<div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160;    <span class="keywordflow">return</span> 0;                                     <span class="comment">/* success return 0 */</span></div>
-<div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160;}</div>
-<div class="line"><a name="l00270"></a><span class="lineno">  270</span>&#160; </div>
-<div class="line"><a name="l00280"></a><span class="lineno"><a class="line" href="group__w25qxx__basic__driver.html#ga86ef839d475f3926a0be46bbc18d4b45">  280</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__basic__driver.html#ga86ef839d475f3926a0be46bbc18d4b45">w25qxx_get_interface</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, <a class="code" href="group__w25qxx__basic__driver.html#gacbf327a42336baf10713a1796ff4f2fe">w25qxx_interface_t</a> *interface)</div>
-<div class="line"><a name="l00281"></a><span class="lineno">  281</span>&#160;{</div>
-<div class="line"><a name="l00282"></a><span class="lineno">  282</span>&#160;    <span class="keywordflow">if</span> (handle == NULL)                                         <span class="comment">/* check handle */</span></div>
-<div class="line"><a name="l00283"></a><span class="lineno">  283</span>&#160;    {</div>
-<div class="line"><a name="l00284"></a><span class="lineno">  284</span>&#160;        <span class="keywordflow">return</span> 2;                                               <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l00285"></a><span class="lineno">  285</span>&#160;    }</div>
-<div class="line"><a name="l00286"></a><span class="lineno">  286</span>&#160; </div>
-<div class="line"><a name="l00287"></a><span class="lineno">  287</span>&#160;    *<span class="keyword">interface </span>= (<a class="code" href="group__w25qxx__basic__driver.html#gacbf327a42336baf10713a1796ff4f2fe">w25qxx_interface_t</a>)(handle-&gt;spi_qspi);        <span class="comment">/* get interface */</span></div>
-<div class="line"><a name="l00288"></a><span class="lineno">  288</span>&#160;    </div>
-<div class="line"><a name="l00289"></a><span class="lineno">  289</span>&#160;    <span class="keywordflow">return</span> 0;                                                   <span class="comment">/* success return 0 */</span></div>
-<div class="line"><a name="l00290"></a><span class="lineno">  290</span>&#160;}</div>
-<div class="line"><a name="l00291"></a><span class="lineno">  291</span>&#160; </div>
-<div class="line"><a name="l00304"></a><span class="lineno"><a class="line" href="group__w25qxx__basic__driver.html#gad0e125eff304ce66fb3956d2c8c80656">  304</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__basic__driver.html#gad0e125eff304ce66fb3956d2c8c80656">w25qxx_set_address_mode</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, <a class="code" href="group__w25qxx__basic__driver.html#gaa4c45f146d1ade8a2da8e751818fa4a2">w25qxx_address_mode_t</a> mode)</div>
-<div class="line"><a name="l00305"></a><span class="lineno">  305</span>&#160;{</div>
-<div class="line"><a name="l00306"></a><span class="lineno">  306</span>&#160;    uint8_t res;</div>
-<div class="line"><a name="l00307"></a><span class="lineno">  307</span>&#160;    uint8_t buf[1];</div>
-<div class="line"><a name="l00308"></a><span class="lineno">  308</span>&#160;    </div>
-<div class="line"><a name="l00309"></a><span class="lineno">  309</span>&#160;    <span class="keywordflow">if</span> (handle == NULL)                                                               <span class="comment">/* check handle */</span></div>
-<div class="line"><a name="l00310"></a><span class="lineno">  310</span>&#160;    {</div>
-<div class="line"><a name="l00311"></a><span class="lineno">  311</span>&#160;        <span class="keywordflow">return</span> 2;                                                                     <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l00312"></a><span class="lineno">  312</span>&#160;    }   </div>
-<div class="line"><a name="l00313"></a><span class="lineno">  313</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">inited</a> != 1)                                                          <span class="comment">/* check handle initialization */</span></div>
-<div class="line"><a name="l00314"></a><span class="lineno">  314</span>&#160;    {</div>
-<div class="line"><a name="l00315"></a><span class="lineno">  315</span>&#160;        <span class="keywordflow">return</span> 3;                                                                     <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l00316"></a><span class="lineno">  316</span>&#160;    }</div>
-<div class="line"><a name="l00317"></a><span class="lineno">  317</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &lt; <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)                                                       <span class="comment">/* check type */</span></div>
-<div class="line"><a name="l00318"></a><span class="lineno">  318</span>&#160;    {</div>
-<div class="line"><a name="l00319"></a><span class="lineno">  319</span>&#160;        handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: current type can&#39;t use this function.\n&quot;</span>);       <span class="comment">/* current type can&#39;t use this function */</span></div>
-<div class="line"><a name="l00320"></a><span class="lineno">  320</span>&#160;       </div>
-<div class="line"><a name="l00321"></a><span class="lineno">  321</span>&#160;        <span class="keywordflow">return</span> 4;                                                                     <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l00322"></a><span class="lineno">  322</span>&#160;    }</div>
-<div class="line"><a name="l00323"></a><span class="lineno">  323</span>&#160;    </div>
-<div class="line"><a name="l00324"></a><span class="lineno">  324</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>)                                     <span class="comment">/* spi interface */</span></div>
-<div class="line"><a name="l00325"></a><span class="lineno">  325</span>&#160;    {</div>
-<div class="line"><a name="l00326"></a><span class="lineno">  326</span>&#160;        <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">dual_quad_spi_enable</a> != 0)                                        <span class="comment">/* enable dual quad spi */</span></div>
-<div class="line"><a name="l00327"></a><span class="lineno">  327</span>&#160;        {</div>
-<div class="line"><a name="l00328"></a><span class="lineno">  328</span>&#160;            <span class="keywordflow">if</span> (mode == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                   <span class="comment">/* address 3 mode byte */</span></div>
-<div class="line"><a name="l00329"></a><span class="lineno">  329</span>&#160;            {</div>
-<div class="line"><a name="l00330"></a><span class="lineno">  330</span>&#160;                buf[0] = 0xE9;                                                        <span class="comment">/* 3 byte mode */</span></div>
-<div class="line"><a name="l00331"></a><span class="lineno">  331</span>&#160;            }</div>
-<div class="line"><a name="l00332"></a><span class="lineno">  332</span>&#160;            <span class="keywordflow">else</span>                                                                      <span class="comment">/* address 4 mode byte */</span></div>
-<div class="line"><a name="l00333"></a><span class="lineno">  333</span>&#160;            {</div>
-<div class="line"><a name="l00334"></a><span class="lineno">  334</span>&#160;                buf[0] = 0xB7;                                                        <span class="comment">/* 4 byte mode */</span></div>
-<div class="line"><a name="l00335"></a><span class="lineno">  335</span>&#160;            }</div>
-<div class="line"><a name="l00336"></a><span class="lineno">  336</span>&#160;            res = a_w25qxx_qspi_write_read(handle, buf[0], 1,</div>
-<div class="line"><a name="l00337"></a><span class="lineno">  337</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l00338"></a><span class="lineno">  338</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l00339"></a><span class="lineno">  339</span>&#160;                                           0x00, NULL, 0x00,</div>
-<div class="line"><a name="l00340"></a><span class="lineno">  340</span>&#160;                                           NULL, 0x00, 0x00);                         <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l00341"></a><span class="lineno">  341</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                             <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l00342"></a><span class="lineno">  342</span>&#160;            {</div>
-<div class="line"><a name="l00343"></a><span class="lineno">  343</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: set address mode failed.\n&quot;</span>);            <span class="comment">/* set address mode failed */</span></div>
-<div class="line"><a name="l00344"></a><span class="lineno">  344</span>&#160;               </div>
-<div class="line"><a name="l00345"></a><span class="lineno">  345</span>&#160;                <span class="keywordflow">return</span> 1;                                                             <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l00346"></a><span class="lineno">  346</span>&#160;            }</div>
-<div class="line"><a name="l00347"></a><span class="lineno">  347</span>&#160;        }</div>
-<div class="line"><a name="l00348"></a><span class="lineno">  348</span>&#160;        <span class="keywordflow">else</span>                                                                          <span class="comment">/* single spi */</span></div>
-<div class="line"><a name="l00349"></a><span class="lineno">  349</span>&#160;        {</div>
-<div class="line"><a name="l00350"></a><span class="lineno">  350</span>&#160;            <span class="keywordflow">if</span> (mode == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                   <span class="comment">/* address 3 mode byte */</span></div>
-<div class="line"><a name="l00351"></a><span class="lineno">  351</span>&#160;            {</div>
-<div class="line"><a name="l00352"></a><span class="lineno">  352</span>&#160;                buf[0] = 0xE9;                                                        <span class="comment">/* 3 byte mode */</span></div>
-<div class="line"><a name="l00353"></a><span class="lineno">  353</span>&#160;            }</div>
-<div class="line"><a name="l00354"></a><span class="lineno">  354</span>&#160;            <span class="keywordflow">else</span>                                                                      <span class="comment">/* address 4 mode byte */</span></div>
-<div class="line"><a name="l00355"></a><span class="lineno">  355</span>&#160;            {</div>
-<div class="line"><a name="l00356"></a><span class="lineno">  356</span>&#160;                buf[0] = 0xB7;                                                        <span class="comment">/* 4 byte mode */</span></div>
-<div class="line"><a name="l00357"></a><span class="lineno">  357</span>&#160;            }</div>
-<div class="line"><a name="l00358"></a><span class="lineno">  358</span>&#160;            res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 1, NULL, 0);        <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l00359"></a><span class="lineno">  359</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                             <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l00360"></a><span class="lineno">  360</span>&#160;            {</div>
-<div class="line"><a name="l00361"></a><span class="lineno">  361</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: set address mode failed.\n&quot;</span>);            <span class="comment">/* set address mode failed */</span></div>
-<div class="line"><a name="l00362"></a><span class="lineno">  362</span>&#160;               </div>
-<div class="line"><a name="l00363"></a><span class="lineno">  363</span>&#160;                <span class="keywordflow">return</span> 1;                                                             <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l00364"></a><span class="lineno">  364</span>&#160;            }</div>
-<div class="line"><a name="l00365"></a><span class="lineno">  365</span>&#160;        }</div>
-<div class="line"><a name="l00366"></a><span class="lineno">  366</span>&#160;    }</div>
-<div class="line"><a name="l00367"></a><span class="lineno">  367</span>&#160;    <span class="keywordflow">else</span>                                                                              <span class="comment">/* qspi interface */</span></div>
-<div class="line"><a name="l00368"></a><span class="lineno">  368</span>&#160;    {</div>
-<div class="line"><a name="l00369"></a><span class="lineno">  369</span>&#160;        <span class="keywordflow">if</span> (mode == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                       <span class="comment">/* address 3 mode byte */</span></div>
-<div class="line"><a name="l00370"></a><span class="lineno">  370</span>&#160;        {</div>
-<div class="line"><a name="l00371"></a><span class="lineno">  371</span>&#160;            buf[0] = 0xE9;                                                            <span class="comment">/* 3 byte mode */</span></div>
-<div class="line"><a name="l00372"></a><span class="lineno">  372</span>&#160;        }</div>
-<div class="line"><a name="l00373"></a><span class="lineno">  373</span>&#160;        <span class="keywordflow">else</span>                                                                          <span class="comment">/* address 4 mode byte */</span></div>
-<div class="line"><a name="l00374"></a><span class="lineno">  374</span>&#160;        {</div>
-<div class="line"><a name="l00375"></a><span class="lineno">  375</span>&#160;            buf[0] = 0xB7;                                                            <span class="comment">/* 4 byte mode */</span></div>
-<div class="line"><a name="l00376"></a><span class="lineno">  376</span>&#160;        }</div>
-<div class="line"><a name="l00377"></a><span class="lineno">  377</span>&#160;        res = a_w25qxx_qspi_write_read(handle, buf[0], 4,</div>
-<div class="line"><a name="l00378"></a><span class="lineno">  378</span>&#160;                                       0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l00379"></a><span class="lineno">  379</span>&#160;                                       0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l00380"></a><span class="lineno">  380</span>&#160;                                       0x00, NULL, 0x00,</div>
-<div class="line"><a name="l00381"></a><span class="lineno">  381</span>&#160;                                       NULL, 0x00, 0x00);                             <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l00382"></a><span class="lineno">  382</span>&#160;        <span class="keywordflow">if</span> (res != 0)                                                                 <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l00383"></a><span class="lineno">  383</span>&#160;        {</div>
-<div class="line"><a name="l00384"></a><span class="lineno">  384</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: set address mode failed.\n&quot;</span>);                <span class="comment">/* set address mode failed */</span></div>
-<div class="line"><a name="l00385"></a><span class="lineno">  385</span>&#160;           </div>
-<div class="line"><a name="l00386"></a><span class="lineno">  386</span>&#160;            <span class="keywordflow">return</span> 1;                                                                 <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l00387"></a><span class="lineno">  387</span>&#160;        }</div>
-<div class="line"><a name="l00388"></a><span class="lineno">  388</span>&#160;    }</div>
-<div class="line"><a name="l00389"></a><span class="lineno">  389</span>&#160;    </div>
-<div class="line"><a name="l00390"></a><span class="lineno">  390</span>&#160;    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> = (uint8_t)mode;                                             <span class="comment">/* set address mode */</span></div>
-<div class="line"><a name="l00391"></a><span class="lineno">  391</span>&#160;    </div>
-<div class="line"><a name="l00392"></a><span class="lineno">  392</span>&#160;    <span class="keywordflow">return</span> 0;                                                                         <span class="comment">/* success return 0 */</span></div>
-<div class="line"><a name="l00393"></a><span class="lineno">  393</span>&#160;}</div>
-<div class="line"><a name="l00394"></a><span class="lineno">  394</span>&#160; </div>
-<div class="line"><a name="l00405"></a><span class="lineno"><a class="line" href="group__w25qxx__basic__driver.html#ga3a52036a97b12fcbe2280b0901a80b90">  405</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__basic__driver.html#ga3a52036a97b12fcbe2280b0901a80b90">w25qxx_get_address_mode</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, <a class="code" href="group__w25qxx__basic__driver.html#gaa4c45f146d1ade8a2da8e751818fa4a2">w25qxx_address_mode_t</a> *mode)</div>
-<div class="line"><a name="l00406"></a><span class="lineno">  406</span>&#160;{</div>
-<div class="line"><a name="l00407"></a><span class="lineno">  407</span>&#160;    <span class="keywordflow">if</span> (handle == NULL)                                          <span class="comment">/* check handle */</span></div>
-<div class="line"><a name="l00408"></a><span class="lineno">  408</span>&#160;    {</div>
-<div class="line"><a name="l00409"></a><span class="lineno">  409</span>&#160;        <span class="keywordflow">return</span> 2;                                                <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l00410"></a><span class="lineno">  410</span>&#160;    }   </div>
-<div class="line"><a name="l00411"></a><span class="lineno">  411</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">inited</a> != 1)                                     <span class="comment">/* check handle initialization */</span></div>
-<div class="line"><a name="l00412"></a><span class="lineno">  412</span>&#160;    {</div>
-<div class="line"><a name="l00413"></a><span class="lineno">  413</span>&#160;        <span class="keywordflow">return</span> 3;                                                <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l00414"></a><span class="lineno">  414</span>&#160;    }</div>
-<div class="line"><a name="l00415"></a><span class="lineno">  415</span>&#160; </div>
-<div class="line"><a name="l00416"></a><span class="lineno">  416</span>&#160;    *mode = (<a class="code" href="group__w25qxx__basic__driver.html#gaa4c45f146d1ade8a2da8e751818fa4a2">w25qxx_address_mode_t</a>)(handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a>);       <span class="comment">/* get address mode */</span></div>
-<div class="line"><a name="l00417"></a><span class="lineno">  417</span>&#160;    </div>
-<div class="line"><a name="l00418"></a><span class="lineno">  418</span>&#160;    <span class="keywordflow">return</span> 0;                                                    <span class="comment">/* success return 0 */</span></div>
-<div class="line"><a name="l00419"></a><span class="lineno">  419</span>&#160;}</div>
-<div class="line"><a name="l00420"></a><span class="lineno">  420</span>&#160; </div>
-<div class="line"><a name="l00431"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#gaeb269123feec054eaaf70f2ffb5797a3">  431</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__advance__driver.html#gaeb269123feec054eaaf70f2ffb5797a3">w25qxx_enable_write</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle)</div>
-<div class="line"><a name="l00432"></a><span class="lineno">  432</span>&#160;{</div>
-<div class="line"><a name="l00433"></a><span class="lineno">  433</span>&#160;    uint8_t res;</div>
-<div class="line"><a name="l00434"></a><span class="lineno">  434</span>&#160;    uint8_t buf[1];</div>
-<div class="line"><a name="l00435"></a><span class="lineno">  435</span>&#160;    </div>
-<div class="line"><a name="l00436"></a><span class="lineno">  436</span>&#160;    <span class="keywordflow">if</span> (handle == NULL)                                                               <span class="comment">/* check handle */</span></div>
-<div class="line"><a name="l00437"></a><span class="lineno">  437</span>&#160;    {</div>
-<div class="line"><a name="l00438"></a><span class="lineno">  438</span>&#160;        <span class="keywordflow">return</span> 2;                                                                     <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l00439"></a><span class="lineno">  439</span>&#160;    }   </div>
-<div class="line"><a name="l00440"></a><span class="lineno">  440</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">inited</a> != 1)                                                          <span class="comment">/* check handle initialization */</span></div>
-<div class="line"><a name="l00441"></a><span class="lineno">  441</span>&#160;    {</div>
-<div class="line"><a name="l00442"></a><span class="lineno">  442</span>&#160;        <span class="keywordflow">return</span> 3;                                                                     <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l00443"></a><span class="lineno">  443</span>&#160;    }</div>
-<div class="line"><a name="l00444"></a><span class="lineno">  444</span>&#160;    </div>
-<div class="line"><a name="l00445"></a><span class="lineno">  445</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>)                                     <span class="comment">/* spi interface */</span></div>
-<div class="line"><a name="l00446"></a><span class="lineno">  446</span>&#160;    {</div>
-<div class="line"><a name="l00447"></a><span class="lineno">  447</span>&#160;        <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">dual_quad_spi_enable</a> != 0)                                        <span class="comment">/* enable dual quad spi */</span></div>
-<div class="line"><a name="l00448"></a><span class="lineno">  448</span>&#160;        {</div>
-<div class="line"><a name="l00449"></a><span class="lineno">  449</span>&#160;            res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>, 1,</div>
-<div class="line"><a name="l00450"></a><span class="lineno">  450</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l00451"></a><span class="lineno">  451</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l00452"></a><span class="lineno">  452</span>&#160;                                           0x00, NULL, 0x00,</div>
-<div class="line"><a name="l00453"></a><span class="lineno">  453</span>&#160;                                           NULL, 0x00, 0x00);                         <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l00454"></a><span class="lineno">  454</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                             <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l00455"></a><span class="lineno">  455</span>&#160;            {</div>
-<div class="line"><a name="l00456"></a><span class="lineno">  456</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                <span class="comment">/* write enable failed */</span></div>
-<div class="line"><a name="l00457"></a><span class="lineno">  457</span>&#160;               </div>
-<div class="line"><a name="l00458"></a><span class="lineno">  458</span>&#160;                <span class="keywordflow">return</span> 1;                                                             <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l00459"></a><span class="lineno">  459</span>&#160;            }</div>
-<div class="line"><a name="l00460"></a><span class="lineno">  460</span>&#160;        }</div>
-<div class="line"><a name="l00461"></a><span class="lineno">  461</span>&#160;        <span class="keywordflow">else</span>                                                                          <span class="comment">/* single spi */</span></div>
-<div class="line"><a name="l00462"></a><span class="lineno">  462</span>&#160;        {</div>
-<div class="line"><a name="l00463"></a><span class="lineno">  463</span>&#160;            buf[0] = <a class="code" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>;                                     <span class="comment">/* write enable command */</span></div>
-<div class="line"><a name="l00464"></a><span class="lineno">  464</span>&#160;            res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 1, NULL, 0);        <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l00465"></a><span class="lineno">  465</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                             <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l00466"></a><span class="lineno">  466</span>&#160;            {</div>
-<div class="line"><a name="l00467"></a><span class="lineno">  467</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                <span class="comment">/* write enable failed */</span></div>
-<div class="line"><a name="l00468"></a><span class="lineno">  468</span>&#160;               </div>
-<div class="line"><a name="l00469"></a><span class="lineno">  469</span>&#160;                <span class="keywordflow">return</span> 1;                                                             <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l00470"></a><span class="lineno">  470</span>&#160;            }</div>
-<div class="line"><a name="l00471"></a><span class="lineno">  471</span>&#160;        }</div>
-<div class="line"><a name="l00472"></a><span class="lineno">  472</span>&#160;    }</div>
-<div class="line"><a name="l00473"></a><span class="lineno">  473</span>&#160;    <span class="keywordflow">else</span>                                                                              <span class="comment">/* qspi interface */</span></div>
-<div class="line"><a name="l00474"></a><span class="lineno">  474</span>&#160;    {</div>
-<div class="line"><a name="l00475"></a><span class="lineno">  475</span>&#160;        res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>, 4,</div>
-<div class="line"><a name="l00476"></a><span class="lineno">  476</span>&#160;                                       0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l00477"></a><span class="lineno">  477</span>&#160;                                       0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l00478"></a><span class="lineno">  478</span>&#160;                                       0x00, NULL, 0x00,</div>
-<div class="line"><a name="l00479"></a><span class="lineno">  479</span>&#160;                                       NULL, 0x00, 0x00);                             <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l00480"></a><span class="lineno">  480</span>&#160;        <span class="keywordflow">if</span> (res != 0)                                                                 <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l00481"></a><span class="lineno">  481</span>&#160;        {</div>
-<div class="line"><a name="l00482"></a><span class="lineno">  482</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                    <span class="comment">/* write enable failed */</span></div>
-<div class="line"><a name="l00483"></a><span class="lineno">  483</span>&#160;           </div>
-<div class="line"><a name="l00484"></a><span class="lineno">  484</span>&#160;            <span class="keywordflow">return</span> 1;                                                                 <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l00485"></a><span class="lineno">  485</span>&#160;        }</div>
-<div class="line"><a name="l00486"></a><span class="lineno">  486</span>&#160;    }</div>
-<div class="line"><a name="l00487"></a><span class="lineno">  487</span>&#160;    </div>
-<div class="line"><a name="l00488"></a><span class="lineno">  488</span>&#160;    <span class="keywordflow">return</span> 0;                                                                         <span class="comment">/* success return 0 */</span></div>
-<div class="line"><a name="l00489"></a><span class="lineno">  489</span>&#160;}</div>
-<div class="line"><a name="l00490"></a><span class="lineno">  490</span>&#160; </div>
-<div class="line"><a name="l00501"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#ga0f8889d6a25c32e150a2ab30753d461d">  501</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__advance__driver.html#ga0f8889d6a25c32e150a2ab30753d461d">w25qxx_enable_volatile_sr_write</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle)</div>
-<div class="line"><a name="l00502"></a><span class="lineno">  502</span>&#160;{</div>
-<div class="line"><a name="l00503"></a><span class="lineno">  503</span>&#160;    uint8_t res;</div>
-<div class="line"><a name="l00504"></a><span class="lineno">  504</span>&#160;    uint8_t buf[1];</div>
-<div class="line"><a name="l00505"></a><span class="lineno">  505</span>&#160;    </div>
-<div class="line"><a name="l00506"></a><span class="lineno">  506</span>&#160;    <span class="keywordflow">if</span> (handle == NULL)                                                                      <span class="comment">/* check handle */</span></div>
-<div class="line"><a name="l00507"></a><span class="lineno">  507</span>&#160;    {</div>
-<div class="line"><a name="l00508"></a><span class="lineno">  508</span>&#160;        <span class="keywordflow">return</span> 2;                                                                            <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l00509"></a><span class="lineno">  509</span>&#160;    }   </div>
-<div class="line"><a name="l00510"></a><span class="lineno">  510</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">inited</a> != 1)                                                                 <span class="comment">/* check handle initialization */</span></div>
-<div class="line"><a name="l00511"></a><span class="lineno">  511</span>&#160;    {</div>
-<div class="line"><a name="l00512"></a><span class="lineno">  512</span>&#160;        <span class="keywordflow">return</span> 3;                                                                            <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l00513"></a><span class="lineno">  513</span>&#160;    }</div>
-<div class="line"><a name="l00514"></a><span class="lineno">  514</span>&#160; </div>
-<div class="line"><a name="l00515"></a><span class="lineno">  515</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>)                                            <span class="comment">/* spi interface */</span></div>
-<div class="line"><a name="l00516"></a><span class="lineno">  516</span>&#160;    {</div>
-<div class="line"><a name="l00517"></a><span class="lineno">  517</span>&#160;        <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">dual_quad_spi_enable</a> != 0)                                               <span class="comment">/* enable dual quad spi */</span></div>
-<div class="line"><a name="l00518"></a><span class="lineno">  518</span>&#160;        {</div>
-<div class="line"><a name="l00519"></a><span class="lineno">  519</span>&#160;            res = a_w25qxx_qspi_write_read(handle, </div>
-<div class="line"><a name="l00520"></a><span class="lineno">  520</span>&#160;                                           <a class="code" href="driver__w25qxx_8c.html#a7c9e980e30f499dd97b02935c91f2c02">W25QXX_COMMAND_VOLATILE_SR_WRITE_ENABLE</a>, 1,</div>
-<div class="line"><a name="l00521"></a><span class="lineno">  521</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l00522"></a><span class="lineno">  522</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l00523"></a><span class="lineno">  523</span>&#160;                                           0x00, NULL, 0x00,</div>
-<div class="line"><a name="l00524"></a><span class="lineno">  524</span>&#160;                                           NULL, 0x00, 0x00);                                <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l00525"></a><span class="lineno">  525</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                    <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l00526"></a><span class="lineno">  526</span>&#160;            {</div>
-<div class="line"><a name="l00527"></a><span class="lineno">  527</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: sr write enable failed.\n&quot;</span>);                    <span class="comment">/* sr write enable failed */</span></div>
-<div class="line"><a name="l00528"></a><span class="lineno">  528</span>&#160;               </div>
-<div class="line"><a name="l00529"></a><span class="lineno">  529</span>&#160;                <span class="keywordflow">return</span> 1;                                                                    <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l00530"></a><span class="lineno">  530</span>&#160;            }</div>
-<div class="line"><a name="l00531"></a><span class="lineno">  531</span>&#160;        }</div>
-<div class="line"><a name="l00532"></a><span class="lineno">  532</span>&#160;        <span class="keywordflow">else</span>                                                                                 <span class="comment">/* single spi */</span></div>
-<div class="line"><a name="l00533"></a><span class="lineno">  533</span>&#160;        {</div>
-<div class="line"><a name="l00534"></a><span class="lineno">  534</span>&#160;            buf[0] = <a class="code" href="driver__w25qxx_8c.html#a7c9e980e30f499dd97b02935c91f2c02">W25QXX_COMMAND_VOLATILE_SR_WRITE_ENABLE</a>;                                <span class="comment">/* sr write enable command */</span></div>
-<div class="line"><a name="l00535"></a><span class="lineno">  535</span>&#160;            res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 1, NULL, 0);               <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l00536"></a><span class="lineno">  536</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                    <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l00537"></a><span class="lineno">  537</span>&#160;            {</div>
-<div class="line"><a name="l00538"></a><span class="lineno">  538</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: sr write enable failed.\n&quot;</span>);                    <span class="comment">/* sr write enable failed */</span></div>
-<div class="line"><a name="l00539"></a><span class="lineno">  539</span>&#160;               </div>
-<div class="line"><a name="l00540"></a><span class="lineno">  540</span>&#160;                <span class="keywordflow">return</span> 1;                                                                    <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l00541"></a><span class="lineno">  541</span>&#160;            }</div>
-<div class="line"><a name="l00542"></a><span class="lineno">  542</span>&#160;        }</div>
-<div class="line"><a name="l00543"></a><span class="lineno">  543</span>&#160;    }</div>
-<div class="line"><a name="l00544"></a><span class="lineno">  544</span>&#160;    <span class="keywordflow">else</span>                                                                                     <span class="comment">/* qspi interface */</span></div>
-<div class="line"><a name="l00545"></a><span class="lineno">  545</span>&#160;    {</div>
-<div class="line"><a name="l00546"></a><span class="lineno">  546</span>&#160;        res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#a7c9e980e30f499dd97b02935c91f2c02">W25QXX_COMMAND_VOLATILE_SR_WRITE_ENABLE</a>, 4,</div>
-<div class="line"><a name="l00547"></a><span class="lineno">  547</span>&#160;                                       0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l00548"></a><span class="lineno">  548</span>&#160;                                       0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l00549"></a><span class="lineno">  549</span>&#160;                                       0x00, NULL, 0x00,</div>
-<div class="line"><a name="l00550"></a><span class="lineno">  550</span>&#160;                                       NULL, 0x00, 0x00);                                    <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l00551"></a><span class="lineno">  551</span>&#160;        <span class="keywordflow">if</span> (res != 0)                                                                        <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l00552"></a><span class="lineno">  552</span>&#160;        {</div>
-<div class="line"><a name="l00553"></a><span class="lineno">  553</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: sr write enable failed.\n&quot;</span>);                        <span class="comment">/* sr write enable failed */</span></div>
-<div class="line"><a name="l00554"></a><span class="lineno">  554</span>&#160;           </div>
-<div class="line"><a name="l00555"></a><span class="lineno">  555</span>&#160;            <span class="keywordflow">return</span> 1;                                                                        <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l00556"></a><span class="lineno">  556</span>&#160;        }</div>
-<div class="line"><a name="l00557"></a><span class="lineno">  557</span>&#160;    }</div>
-<div class="line"><a name="l00558"></a><span class="lineno">  558</span>&#160;    </div>
-<div class="line"><a name="l00559"></a><span class="lineno">  559</span>&#160;    <span class="keywordflow">return</span> 0;                                                                                <span class="comment">/* success return 0 */</span></div>
-<div class="line"><a name="l00560"></a><span class="lineno">  560</span>&#160;}</div>
-<div class="line"><a name="l00561"></a><span class="lineno">  561</span>&#160; </div>
-<div class="line"><a name="l00572"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#gac16a31269277051baad6c28fe4254b4a">  572</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__advance__driver.html#gac16a31269277051baad6c28fe4254b4a">w25qxx_disable_write</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle)</div>
-<div class="line"><a name="l00573"></a><span class="lineno">  573</span>&#160;{</div>
-<div class="line"><a name="l00574"></a><span class="lineno">  574</span>&#160;    uint8_t res;</div>
-<div class="line"><a name="l00575"></a><span class="lineno">  575</span>&#160;    uint8_t buf[1];</div>
-<div class="line"><a name="l00576"></a><span class="lineno">  576</span>&#160;    </div>
-<div class="line"><a name="l00577"></a><span class="lineno">  577</span>&#160;    <span class="keywordflow">if</span> (handle == NULL)                                                               <span class="comment">/* check handle */</span></div>
-<div class="line"><a name="l00578"></a><span class="lineno">  578</span>&#160;    {</div>
-<div class="line"><a name="l00579"></a><span class="lineno">  579</span>&#160;        <span class="keywordflow">return</span> 2;                                                                     <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l00580"></a><span class="lineno">  580</span>&#160;    }   </div>
-<div class="line"><a name="l00581"></a><span class="lineno">  581</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">inited</a> != 1)                                                          <span class="comment">/* check handle initialization */</span></div>
-<div class="line"><a name="l00582"></a><span class="lineno">  582</span>&#160;    {</div>
-<div class="line"><a name="l00583"></a><span class="lineno">  583</span>&#160;        <span class="keywordflow">return</span> 3;                                                                     <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l00584"></a><span class="lineno">  584</span>&#160;    }</div>
-<div class="line"><a name="l00585"></a><span class="lineno">  585</span>&#160; </div>
-<div class="line"><a name="l00586"></a><span class="lineno">  586</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>)                                     <span class="comment">/* spi interface */</span></div>
-<div class="line"><a name="l00587"></a><span class="lineno">  587</span>&#160;    {</div>
-<div class="line"><a name="l00588"></a><span class="lineno">  588</span>&#160;        <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">dual_quad_spi_enable</a> != 0)                                        <span class="comment">/* enable dual quad spi */</span></div>
-<div class="line"><a name="l00589"></a><span class="lineno">  589</span>&#160;        {</div>
-<div class="line"><a name="l00590"></a><span class="lineno">  590</span>&#160;            res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#a36dfb1951fe152d63e3715a161646713">W25QXX_COMMAND_WRITE_DISABLE</a>, 1,</div>
-<div class="line"><a name="l00591"></a><span class="lineno">  591</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l00592"></a><span class="lineno">  592</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l00593"></a><span class="lineno">  593</span>&#160;                                           0x00, NULL, 0x00,</div>
-<div class="line"><a name="l00594"></a><span class="lineno">  594</span>&#160;                                           NULL, 0x00, 0x00);                         <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l00595"></a><span class="lineno">  595</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                             <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l00596"></a><span class="lineno">  596</span>&#160;            {</div>
-<div class="line"><a name="l00597"></a><span class="lineno">  597</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write disable failed.\n&quot;</span>);               <span class="comment">/* write disable failed */</span></div>
-<div class="line"><a name="l00598"></a><span class="lineno">  598</span>&#160;               </div>
-<div class="line"><a name="l00599"></a><span class="lineno">  599</span>&#160;                <span class="keywordflow">return</span> 1;                                                             <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l00600"></a><span class="lineno">  600</span>&#160;            }</div>
-<div class="line"><a name="l00601"></a><span class="lineno">  601</span>&#160;        }</div>
-<div class="line"><a name="l00602"></a><span class="lineno">  602</span>&#160;        <span class="keywordflow">else</span>                                                                          <span class="comment">/* single spi */</span></div>
-<div class="line"><a name="l00603"></a><span class="lineno">  603</span>&#160;        {</div>
-<div class="line"><a name="l00604"></a><span class="lineno">  604</span>&#160;            buf[0] = <a class="code" href="driver__w25qxx_8c.html#a36dfb1951fe152d63e3715a161646713">W25QXX_COMMAND_WRITE_DISABLE</a>;                                    <span class="comment">/* write disable command */</span></div>
-<div class="line"><a name="l00605"></a><span class="lineno">  605</span>&#160;            res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 1, NULL, 0);        <span class="comment">/* spi qspi write read */</span></div>
-<div class="line"><a name="l00606"></a><span class="lineno">  606</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                             <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l00607"></a><span class="lineno">  607</span>&#160;            {</div>
-<div class="line"><a name="l00608"></a><span class="lineno">  608</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write disable failed.\n&quot;</span>);               <span class="comment">/* write disable failed */</span></div>
-<div class="line"><a name="l00609"></a><span class="lineno">  609</span>&#160;               </div>
-<div class="line"><a name="l00610"></a><span class="lineno">  610</span>&#160;                <span class="keywordflow">return</span> 1;                                                             <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l00611"></a><span class="lineno">  611</span>&#160;            }</div>
-<div class="line"><a name="l00612"></a><span class="lineno">  612</span>&#160;        }</div>
-<div class="line"><a name="l00613"></a><span class="lineno">  613</span>&#160;    }</div>
-<div class="line"><a name="l00614"></a><span class="lineno">  614</span>&#160;    <span class="keywordflow">else</span>                                                                              <span class="comment">/* qspi interface */</span></div>
-<div class="line"><a name="l00615"></a><span class="lineno">  615</span>&#160;    {</div>
-<div class="line"><a name="l00616"></a><span class="lineno">  616</span>&#160;        res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#a36dfb1951fe152d63e3715a161646713">W25QXX_COMMAND_WRITE_DISABLE</a>, 4,</div>
-<div class="line"><a name="l00617"></a><span class="lineno">  617</span>&#160;                                       0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l00618"></a><span class="lineno">  618</span>&#160;                                       0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l00619"></a><span class="lineno">  619</span>&#160;                                       0x00, NULL, 0x00,</div>
-<div class="line"><a name="l00620"></a><span class="lineno">  620</span>&#160;                                       NULL, 0x00, 0x00);                             <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l00621"></a><span class="lineno">  621</span>&#160;        <span class="keywordflow">if</span> (res != 0)                                                                 <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l00622"></a><span class="lineno">  622</span>&#160;        {</div>
-<div class="line"><a name="l00623"></a><span class="lineno">  623</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write disable failed.\n&quot;</span>);                   <span class="comment">/* write disable failed */</span></div>
-<div class="line"><a name="l00624"></a><span class="lineno">  624</span>&#160;           </div>
-<div class="line"><a name="l00625"></a><span class="lineno">  625</span>&#160;            <span class="keywordflow">return</span> 1;                                                                 <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l00626"></a><span class="lineno">  626</span>&#160;        }</div>
-<div class="line"><a name="l00627"></a><span class="lineno">  627</span>&#160;    }</div>
-<div class="line"><a name="l00628"></a><span class="lineno">  628</span>&#160;    </div>
-<div class="line"><a name="l00629"></a><span class="lineno">  629</span>&#160;    <span class="keywordflow">return</span> 0;                                                                         <span class="comment">/* success return 0 */</span></div>
-<div class="line"><a name="l00630"></a><span class="lineno">  630</span>&#160;}</div>
-<div class="line"><a name="l00631"></a><span class="lineno">  631</span>&#160; </div>
-<div class="line"><a name="l00643"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#gaa77d2b00b4fb9cf586f77ace827ea7c6">  643</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__advance__driver.html#gaa77d2b00b4fb9cf586f77ace827ea7c6">w25qxx_get_status1</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint8_t *status)</div>
-<div class="line"><a name="l00644"></a><span class="lineno">  644</span>&#160;{</div>
-<div class="line"><a name="l00645"></a><span class="lineno">  645</span>&#160;    uint8_t res;</div>
-<div class="line"><a name="l00646"></a><span class="lineno">  646</span>&#160;    uint8_t buf[1];</div>
-<div class="line"><a name="l00647"></a><span class="lineno">  647</span>&#160;    </div>
-<div class="line"><a name="l00648"></a><span class="lineno">  648</span>&#160;    <span class="keywordflow">if</span> (handle == NULL)                                                            <span class="comment">/* check handle */</span></div>
-<div class="line"><a name="l00649"></a><span class="lineno">  649</span>&#160;    {</div>
-<div class="line"><a name="l00650"></a><span class="lineno">  650</span>&#160;        <span class="keywordflow">return</span> 2;                                                                  <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l00651"></a><span class="lineno">  651</span>&#160;    }   </div>
-<div class="line"><a name="l00652"></a><span class="lineno">  652</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">inited</a> != 1)                                                       <span class="comment">/* check handle initialization */</span></div>
-<div class="line"><a name="l00653"></a><span class="lineno">  653</span>&#160;    {</div>
-<div class="line"><a name="l00654"></a><span class="lineno">  654</span>&#160;        <span class="keywordflow">return</span> 3;                                                                  <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l00655"></a><span class="lineno">  655</span>&#160;    }</div>
-<div class="line"><a name="l00656"></a><span class="lineno">  656</span>&#160; </div>
-<div class="line"><a name="l00657"></a><span class="lineno">  657</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>)                                  <span class="comment">/* spi interface */</span></div>
-<div class="line"><a name="l00658"></a><span class="lineno">  658</span>&#160;    {</div>
-<div class="line"><a name="l00659"></a><span class="lineno">  659</span>&#160;        <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">dual_quad_spi_enable</a> != 0)                                     <span class="comment">/* enable dual quad spi */</span></div>
-<div class="line"><a name="l00660"></a><span class="lineno">  660</span>&#160;        {</div>
-<div class="line"><a name="l00661"></a><span class="lineno">  661</span>&#160;            res = a_w25qxx_qspi_write_read(handle,</div>
-<div class="line"><a name="l00662"></a><span class="lineno">  662</span>&#160;                                           <a class="code" href="driver__w25qxx_8c.html#adf682969c34f4b31a87dd92dd18ccea3">W25QXX_COMMAND_READ_STATUS_REG1</a>, 1,</div>
-<div class="line"><a name="l00663"></a><span class="lineno">  663</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l00664"></a><span class="lineno">  664</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l00665"></a><span class="lineno">  665</span>&#160;                                           0x00, NULL, 0x00,</div>
-<div class="line"><a name="l00666"></a><span class="lineno">  666</span>&#160;                                           status, 1, 1);                          <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l00667"></a><span class="lineno">  667</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                          <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l00668"></a><span class="lineno">  668</span>&#160;            {</div>
-<div class="line"><a name="l00669"></a><span class="lineno">  669</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: get status1 failed.\n&quot;</span>);              <span class="comment">/* get status1 failed */</span></div>
-<div class="line"><a name="l00670"></a><span class="lineno">  670</span>&#160;               </div>
-<div class="line"><a name="l00671"></a><span class="lineno">  671</span>&#160;                <span class="keywordflow">return</span> 1;                                                          <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l00672"></a><span class="lineno">  672</span>&#160;            }</div>
-<div class="line"><a name="l00673"></a><span class="lineno">  673</span>&#160;        }</div>
-<div class="line"><a name="l00674"></a><span class="lineno">  674</span>&#160;        <span class="keywordflow">else</span>                                                                       <span class="comment">/* single spi */</span></div>
-<div class="line"><a name="l00675"></a><span class="lineno">  675</span>&#160;        {</div>
-<div class="line"><a name="l00676"></a><span class="lineno">  676</span>&#160;            buf[0] = <a class="code" href="driver__w25qxx_8c.html#adf682969c34f4b31a87dd92dd18ccea3">W25QXX_COMMAND_READ_STATUS_REG1</a>;                              <span class="comment">/* read status1 command */</span></div>
-<div class="line"><a name="l00677"></a><span class="lineno">  677</span>&#160;            res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, </div>
-<div class="line"><a name="l00678"></a><span class="lineno">  678</span>&#160;                                          1, status, 1);                           <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l00679"></a><span class="lineno">  679</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                          <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l00680"></a><span class="lineno">  680</span>&#160;            {</div>
-<div class="line"><a name="l00681"></a><span class="lineno">  681</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: get status1 failed.\n&quot;</span>);              <span class="comment">/* get status1 failed */</span></div>
-<div class="line"><a name="l00682"></a><span class="lineno">  682</span>&#160;               </div>
-<div class="line"><a name="l00683"></a><span class="lineno">  683</span>&#160;                <span class="keywordflow">return</span> 1;                                                          <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l00684"></a><span class="lineno">  684</span>&#160;            }</div>
-<div class="line"><a name="l00685"></a><span class="lineno">  685</span>&#160;        }</div>
-<div class="line"><a name="l00686"></a><span class="lineno">  686</span>&#160;    }</div>
-<div class="line"><a name="l00687"></a><span class="lineno">  687</span>&#160;    <span class="keywordflow">else</span>                                                                           <span class="comment">/* qspi interface */</span></div>
-<div class="line"><a name="l00688"></a><span class="lineno">  688</span>&#160;    {</div>
-<div class="line"><a name="l00689"></a><span class="lineno">  689</span>&#160;        res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#adf682969c34f4b31a87dd92dd18ccea3">W25QXX_COMMAND_READ_STATUS_REG1</a>, 4,</div>
-<div class="line"><a name="l00690"></a><span class="lineno">  690</span>&#160;                                       0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l00691"></a><span class="lineno">  691</span>&#160;                                       0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l00692"></a><span class="lineno">  692</span>&#160;                                       0x00, NULL, 0x00,</div>
-<div class="line"><a name="l00693"></a><span class="lineno">  693</span>&#160;                                       status, 1, 4);                              <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l00694"></a><span class="lineno">  694</span>&#160;        <span class="keywordflow">if</span> (res != 0)                                                              <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l00695"></a><span class="lineno">  695</span>&#160;        {</div>
-<div class="line"><a name="l00696"></a><span class="lineno">  696</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: get status1 failed.\n&quot;</span>);                  <span class="comment">/* get status1 failed */</span></div>
-<div class="line"><a name="l00697"></a><span class="lineno">  697</span>&#160;           </div>
-<div class="line"><a name="l00698"></a><span class="lineno">  698</span>&#160;            <span class="keywordflow">return</span> 1;                                                              <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l00699"></a><span class="lineno">  699</span>&#160;        }</div>
-<div class="line"><a name="l00700"></a><span class="lineno">  700</span>&#160;    }</div>
-<div class="line"><a name="l00701"></a><span class="lineno">  701</span>&#160;    </div>
-<div class="line"><a name="l00702"></a><span class="lineno">  702</span>&#160;    <span class="keywordflow">return</span> 0;                                                                      <span class="comment">/* success return 0 */</span></div>
-<div class="line"><a name="l00703"></a><span class="lineno">  703</span>&#160;}</div>
-<div class="line"><a name="l00704"></a><span class="lineno">  704</span>&#160; </div>
-<div class="line"><a name="l00716"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#gaa21237ecbd5951b8017799066e7db5d9">  716</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__advance__driver.html#gaa21237ecbd5951b8017799066e7db5d9">w25qxx_get_status2</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint8_t *status)</div>
-<div class="line"><a name="l00717"></a><span class="lineno">  717</span>&#160;{</div>
-<div class="line"><a name="l00718"></a><span class="lineno">  718</span>&#160;    uint8_t res;</div>
-<div class="line"><a name="l00719"></a><span class="lineno">  719</span>&#160;    uint8_t buf[1];</div>
-<div class="line"><a name="l00720"></a><span class="lineno">  720</span>&#160;    </div>
-<div class="line"><a name="l00721"></a><span class="lineno">  721</span>&#160;    <span class="keywordflow">if</span> (handle == NULL)                                                            <span class="comment">/* check handle */</span></div>
-<div class="line"><a name="l00722"></a><span class="lineno">  722</span>&#160;    {</div>
-<div class="line"><a name="l00723"></a><span class="lineno">  723</span>&#160;        <span class="keywordflow">return</span> 2;                                                                  <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l00724"></a><span class="lineno">  724</span>&#160;    }   </div>
-<div class="line"><a name="l00725"></a><span class="lineno">  725</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">inited</a> != 1)                                                       <span class="comment">/* check handle initialization */</span></div>
-<div class="line"><a name="l00726"></a><span class="lineno">  726</span>&#160;    {</div>
-<div class="line"><a name="l00727"></a><span class="lineno">  727</span>&#160;        <span class="keywordflow">return</span> 3;                                                                  <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l00728"></a><span class="lineno">  728</span>&#160;    }</div>
-<div class="line"><a name="l00729"></a><span class="lineno">  729</span>&#160; </div>
-<div class="line"><a name="l00730"></a><span class="lineno">  730</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>)                                  <span class="comment">/* spi interface */</span></div>
-<div class="line"><a name="l00731"></a><span class="lineno">  731</span>&#160;    {</div>
-<div class="line"><a name="l00732"></a><span class="lineno">  732</span>&#160;        <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">dual_quad_spi_enable</a> != 0)                                     <span class="comment">/* enable dual quad spi */</span></div>
-<div class="line"><a name="l00733"></a><span class="lineno">  733</span>&#160;        {</div>
-<div class="line"><a name="l00734"></a><span class="lineno">  734</span>&#160;            res = a_w25qxx_qspi_write_read(handle, </div>
-<div class="line"><a name="l00735"></a><span class="lineno">  735</span>&#160;                                           <a class="code" href="driver__w25qxx_8c.html#a4a8cdc5b6ce75029df877263bdf35f2a">W25QXX_COMMAND_READ_STATUS_REG2</a>, 1,</div>
-<div class="line"><a name="l00736"></a><span class="lineno">  736</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l00737"></a><span class="lineno">  737</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l00738"></a><span class="lineno">  738</span>&#160;                                           0x00, NULL, 0x00,</div>
-<div class="line"><a name="l00739"></a><span class="lineno">  739</span>&#160;                                           status, 1, 1);                          <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l00740"></a><span class="lineno">  740</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                          <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l00741"></a><span class="lineno">  741</span>&#160;            {</div>
-<div class="line"><a name="l00742"></a><span class="lineno">  742</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: get status2 failed.\n&quot;</span>);              <span class="comment">/* get status2 failed */</span></div>
-<div class="line"><a name="l00743"></a><span class="lineno">  743</span>&#160;               </div>
-<div class="line"><a name="l00744"></a><span class="lineno">  744</span>&#160;                <span class="keywordflow">return</span> 1;                                                          <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l00745"></a><span class="lineno">  745</span>&#160;            }</div>
-<div class="line"><a name="l00746"></a><span class="lineno">  746</span>&#160;        }</div>
-<div class="line"><a name="l00747"></a><span class="lineno">  747</span>&#160;        <span class="keywordflow">else</span>                                                                       <span class="comment">/* single spi */</span></div>
-<div class="line"><a name="l00748"></a><span class="lineno">  748</span>&#160;        {</div>
-<div class="line"><a name="l00749"></a><span class="lineno">  749</span>&#160;            buf[0] = <a class="code" href="driver__w25qxx_8c.html#a4a8cdc5b6ce75029df877263bdf35f2a">W25QXX_COMMAND_READ_STATUS_REG2</a>;                              <span class="comment">/* read status2 command */</span></div>
-<div class="line"><a name="l00750"></a><span class="lineno">  750</span>&#160;            res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf,</div>
-<div class="line"><a name="l00751"></a><span class="lineno">  751</span>&#160;                                          1, status, 1);                           <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l00752"></a><span class="lineno">  752</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                          <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l00753"></a><span class="lineno">  753</span>&#160;            {</div>
-<div class="line"><a name="l00754"></a><span class="lineno">  754</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: get status2 failed.\n&quot;</span>);              <span class="comment">/* get status2 failed */</span></div>
-<div class="line"><a name="l00755"></a><span class="lineno">  755</span>&#160;               </div>
-<div class="line"><a name="l00756"></a><span class="lineno">  756</span>&#160;                <span class="keywordflow">return</span> 1;                                                          <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l00757"></a><span class="lineno">  757</span>&#160;            }</div>
-<div class="line"><a name="l00758"></a><span class="lineno">  758</span>&#160;        }</div>
-<div class="line"><a name="l00759"></a><span class="lineno">  759</span>&#160;    }</div>
-<div class="line"><a name="l00760"></a><span class="lineno">  760</span>&#160;    <span class="keywordflow">else</span>                                                                           <span class="comment">/* qspi interface */</span></div>
-<div class="line"><a name="l00761"></a><span class="lineno">  761</span>&#160;    {</div>
-<div class="line"><a name="l00762"></a><span class="lineno">  762</span>&#160;        res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#a4a8cdc5b6ce75029df877263bdf35f2a">W25QXX_COMMAND_READ_STATUS_REG2</a>, 4,</div>
-<div class="line"><a name="l00763"></a><span class="lineno">  763</span>&#160;                                       0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l00764"></a><span class="lineno">  764</span>&#160;                                       0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l00765"></a><span class="lineno">  765</span>&#160;                                       0x00, NULL, 0x00,</div>
-<div class="line"><a name="l00766"></a><span class="lineno">  766</span>&#160;                                       status, 1, 4);                              <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l00767"></a><span class="lineno">  767</span>&#160;        <span class="keywordflow">if</span> (res != 0)                                                              <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l00768"></a><span class="lineno">  768</span>&#160;        {</div>
-<div class="line"><a name="l00769"></a><span class="lineno">  769</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: get status2 failed.\n&quot;</span>);                  <span class="comment">/* get status2 failed */</span></div>
-<div class="line"><a name="l00770"></a><span class="lineno">  770</span>&#160;           </div>
-<div class="line"><a name="l00771"></a><span class="lineno">  771</span>&#160;            <span class="keywordflow">return</span> 1;                                                              <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l00772"></a><span class="lineno">  772</span>&#160;        }</div>
-<div class="line"><a name="l00773"></a><span class="lineno">  773</span>&#160;    }</div>
-<div class="line"><a name="l00774"></a><span class="lineno">  774</span>&#160;    </div>
-<div class="line"><a name="l00775"></a><span class="lineno">  775</span>&#160;    <span class="keywordflow">return</span> 0;                                                                      <span class="comment">/* success return 0 */</span></div>
-<div class="line"><a name="l00776"></a><span class="lineno">  776</span>&#160;}</div>
-<div class="line"><a name="l00777"></a><span class="lineno">  777</span>&#160; </div>
-<div class="line"><a name="l00789"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#ga99cf6a325a00921d4531004f0c1d75b1">  789</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__advance__driver.html#ga99cf6a325a00921d4531004f0c1d75b1">w25qxx_get_status3</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint8_t *status)</div>
-<div class="line"><a name="l00790"></a><span class="lineno">  790</span>&#160;{</div>
-<div class="line"><a name="l00791"></a><span class="lineno">  791</span>&#160;    uint8_t res;</div>
-<div class="line"><a name="l00792"></a><span class="lineno">  792</span>&#160;    uint8_t buf[1];</div>
-<div class="line"><a name="l00793"></a><span class="lineno">  793</span>&#160;    </div>
-<div class="line"><a name="l00794"></a><span class="lineno">  794</span>&#160;    <span class="keywordflow">if</span> (handle == NULL)                                                            <span class="comment">/* check handle */</span></div>
-<div class="line"><a name="l00795"></a><span class="lineno">  795</span>&#160;    {</div>
-<div class="line"><a name="l00796"></a><span class="lineno">  796</span>&#160;        <span class="keywordflow">return</span> 2;                                                                  <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l00797"></a><span class="lineno">  797</span>&#160;    }   </div>
-<div class="line"><a name="l00798"></a><span class="lineno">  798</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">inited</a> != 1)                                                       <span class="comment">/* check handle initialization */</span></div>
-<div class="line"><a name="l00799"></a><span class="lineno">  799</span>&#160;    {</div>
-<div class="line"><a name="l00800"></a><span class="lineno">  800</span>&#160;        <span class="keywordflow">return</span> 3;                                                                  <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l00801"></a><span class="lineno">  801</span>&#160;    }</div>
-<div class="line"><a name="l00802"></a><span class="lineno">  802</span>&#160; </div>
-<div class="line"><a name="l00803"></a><span class="lineno">  803</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>)                                  <span class="comment">/* spi interface */</span></div>
-<div class="line"><a name="l00804"></a><span class="lineno">  804</span>&#160;    {</div>
-<div class="line"><a name="l00805"></a><span class="lineno">  805</span>&#160;        <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">dual_quad_spi_enable</a> != 0)                                     <span class="comment">/* enable dual quad spi */</span></div>
-<div class="line"><a name="l00806"></a><span class="lineno">  806</span>&#160;        {</div>
-<div class="line"><a name="l00807"></a><span class="lineno">  807</span>&#160;            res = a_w25qxx_qspi_write_read(handle,</div>
-<div class="line"><a name="l00808"></a><span class="lineno">  808</span>&#160;                                           <a class="code" href="driver__w25qxx_8c.html#a09798bdb3fabdf7bb4cfd8bce18100ce">W25QXX_COMMAND_READ_STATUS_REG3</a>, 1,</div>
-<div class="line"><a name="l00809"></a><span class="lineno">  809</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l00810"></a><span class="lineno">  810</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l00811"></a><span class="lineno">  811</span>&#160;                                           0x00, NULL, 0x00,</div>
-<div class="line"><a name="l00812"></a><span class="lineno">  812</span>&#160;                                           status, 1, 1);                          <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l00813"></a><span class="lineno">  813</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                          <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l00814"></a><span class="lineno">  814</span>&#160;            {</div>
-<div class="line"><a name="l00815"></a><span class="lineno">  815</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: get status3 failed.\n&quot;</span>);              <span class="comment">/* get status3 failed */</span></div>
-<div class="line"><a name="l00816"></a><span class="lineno">  816</span>&#160;               </div>
-<div class="line"><a name="l00817"></a><span class="lineno">  817</span>&#160;                <span class="keywordflow">return</span> 1;                                                          <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l00818"></a><span class="lineno">  818</span>&#160;            }</div>
-<div class="line"><a name="l00819"></a><span class="lineno">  819</span>&#160;        }</div>
-<div class="line"><a name="l00820"></a><span class="lineno">  820</span>&#160;        <span class="keywordflow">else</span>                                                                       <span class="comment">/* single spi */</span></div>
-<div class="line"><a name="l00821"></a><span class="lineno">  821</span>&#160;        {</div>
-<div class="line"><a name="l00822"></a><span class="lineno">  822</span>&#160;            buf[0] = <a class="code" href="driver__w25qxx_8c.html#a09798bdb3fabdf7bb4cfd8bce18100ce">W25QXX_COMMAND_READ_STATUS_REG3</a>;                              <span class="comment">/* read status3 command */</span></div>
-<div class="line"><a name="l00823"></a><span class="lineno">  823</span>&#160;            res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 1, </div>
-<div class="line"><a name="l00824"></a><span class="lineno">  824</span>&#160;                                          status, 1);                              <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l00825"></a><span class="lineno">  825</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                          <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l00826"></a><span class="lineno">  826</span>&#160;            {</div>
-<div class="line"><a name="l00827"></a><span class="lineno">  827</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: get status3 failed.\n&quot;</span>);              <span class="comment">/* get status3 failed */</span></div>
-<div class="line"><a name="l00828"></a><span class="lineno">  828</span>&#160;               </div>
-<div class="line"><a name="l00829"></a><span class="lineno">  829</span>&#160;                <span class="keywordflow">return</span> 1;                                                          <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l00830"></a><span class="lineno">  830</span>&#160;            }</div>
-<div class="line"><a name="l00831"></a><span class="lineno">  831</span>&#160;        }</div>
-<div class="line"><a name="l00832"></a><span class="lineno">  832</span>&#160;    }</div>
-<div class="line"><a name="l00833"></a><span class="lineno">  833</span>&#160;    <span class="keywordflow">else</span>                                                                           <span class="comment">/* qspi interface */</span></div>
-<div class="line"><a name="l00834"></a><span class="lineno">  834</span>&#160;    {</div>
-<div class="line"><a name="l00835"></a><span class="lineno">  835</span>&#160;        res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#a09798bdb3fabdf7bb4cfd8bce18100ce">W25QXX_COMMAND_READ_STATUS_REG3</a>, 4,</div>
-<div class="line"><a name="l00836"></a><span class="lineno">  836</span>&#160;                                       0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l00837"></a><span class="lineno">  837</span>&#160;                                       0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l00838"></a><span class="lineno">  838</span>&#160;                                       0x00, NULL, 0x00,</div>
-<div class="line"><a name="l00839"></a><span class="lineno">  839</span>&#160;                                       status, 1, 4);                              <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l00840"></a><span class="lineno">  840</span>&#160;        <span class="keywordflow">if</span> (res != 0)                                                              <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l00841"></a><span class="lineno">  841</span>&#160;        {</div>
-<div class="line"><a name="l00842"></a><span class="lineno">  842</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: get status3 failed.\n&quot;</span>);                  <span class="comment">/* get status3 failed */</span></div>
-<div class="line"><a name="l00843"></a><span class="lineno">  843</span>&#160;           </div>
-<div class="line"><a name="l00844"></a><span class="lineno">  844</span>&#160;            <span class="keywordflow">return</span> 1;                                                              <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l00845"></a><span class="lineno">  845</span>&#160;        }</div>
-<div class="line"><a name="l00846"></a><span class="lineno">  846</span>&#160;    }</div>
-<div class="line"><a name="l00847"></a><span class="lineno">  847</span>&#160;    </div>
-<div class="line"><a name="l00848"></a><span class="lineno">  848</span>&#160;    <span class="keywordflow">return</span> 0;                                                                      <span class="comment">/* success return 0 */</span></div>
-<div class="line"><a name="l00849"></a><span class="lineno">  849</span>&#160;}</div>
-<div class="line"><a name="l00850"></a><span class="lineno">  850</span>&#160; </div>
-<div class="line"><a name="l00863"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#ga246e0bb07c8bbb39731f17906779c012">  863</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__advance__driver.html#ga246e0bb07c8bbb39731f17906779c012">w25qxx_set_status1</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint8_t status)</div>
-<div class="line"><a name="l00864"></a><span class="lineno">  864</span>&#160;{</div>
-<div class="line"><a name="l00865"></a><span class="lineno">  865</span>&#160;    uint8_t res;</div>
-<div class="line"><a name="l00866"></a><span class="lineno">  866</span>&#160;    uint8_t buf[2];</div>
-<div class="line"><a name="l00867"></a><span class="lineno">  867</span>&#160;    uint32_t timeout;</div>
-<div class="line"><a name="l00868"></a><span class="lineno">  868</span>&#160;    uint8_t status_check;</div>
-<div class="line"><a name="l00869"></a><span class="lineno">  869</span>&#160;    </div>
-<div class="line"><a name="l00870"></a><span class="lineno">  870</span>&#160;    <span class="keywordflow">if</span> (handle == NULL)                                                                                  <span class="comment">/* check handle */</span></div>
-<div class="line"><a name="l00871"></a><span class="lineno">  871</span>&#160;    {</div>
-<div class="line"><a name="l00872"></a><span class="lineno">  872</span>&#160;        <span class="keywordflow">return</span> 2;                                                                                        <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l00873"></a><span class="lineno">  873</span>&#160;    }   </div>
-<div class="line"><a name="l00874"></a><span class="lineno">  874</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">inited</a> != 1)                                                                             <span class="comment">/* check handle initialization */</span></div>
-<div class="line"><a name="l00875"></a><span class="lineno">  875</span>&#160;    {</div>
-<div class="line"><a name="l00876"></a><span class="lineno">  876</span>&#160;        <span class="keywordflow">return</span> 3;                                                                                        <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l00877"></a><span class="lineno">  877</span>&#160;    }</div>
-<div class="line"><a name="l00878"></a><span class="lineno">  878</span>&#160; </div>
-<div class="line"><a name="l00879"></a><span class="lineno">  879</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>)                                                        <span class="comment">/* spi interface */</span></div>
-<div class="line"><a name="l00880"></a><span class="lineno">  880</span>&#160;    {</div>
-<div class="line"><a name="l00881"></a><span class="lineno">  881</span>&#160;        <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">dual_quad_spi_enable</a> != 0)                                                           <span class="comment">/* enable dual quad spi */</span></div>
-<div class="line"><a name="l00882"></a><span class="lineno">  882</span>&#160;        {</div>
-<div class="line"><a name="l00883"></a><span class="lineno">  883</span>&#160;            res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#a7c9e980e30f499dd97b02935c91f2c02">W25QXX_COMMAND_VOLATILE_SR_WRITE_ENABLE</a>, 1,</div>
-<div class="line"><a name="l00884"></a><span class="lineno">  884</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l00885"></a><span class="lineno">  885</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l00886"></a><span class="lineno">  886</span>&#160;                                           0x00, NULL, 0x00,</div>
-<div class="line"><a name="l00887"></a><span class="lineno">  887</span>&#160;                                           NULL, 0x00, 0x00);                                            <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l00888"></a><span class="lineno">  888</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                                <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l00889"></a><span class="lineno">  889</span>&#160;            {</div>
-<div class="line"><a name="l00890"></a><span class="lineno">  890</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                                   <span class="comment">/* write enable failed */</span></div>
-<div class="line"><a name="l00891"></a><span class="lineno">  891</span>&#160;               </div>
-<div class="line"><a name="l00892"></a><span class="lineno">  892</span>&#160;                <span class="keywordflow">return</span> 1;                                                                                <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l00893"></a><span class="lineno">  893</span>&#160;            }</div>
-<div class="line"><a name="l00894"></a><span class="lineno">  894</span>&#160;            buf[0] = status;                                                                             <span class="comment">/* set status */</span></div>
-<div class="line"><a name="l00895"></a><span class="lineno">  895</span>&#160;            res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#a932f54ff92de8bbab4602ab85ac6c155">W25QXX_COMMAND_WRITE_STATUS_REG1</a>, 1,</div>
-<div class="line"><a name="l00896"></a><span class="lineno">  896</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l00897"></a><span class="lineno">  897</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l00898"></a><span class="lineno">  898</span>&#160;                                           0x00, (uint8_t *)buf, 1,</div>
-<div class="line"><a name="l00899"></a><span class="lineno">  899</span>&#160;                                           NULL, 0x00, 1);                                               <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l00900"></a><span class="lineno">  900</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                                <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l00901"></a><span class="lineno">  901</span>&#160;            {</div>
-<div class="line"><a name="l00902"></a><span class="lineno">  902</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: set status1 failed.\n&quot;</span>);                                    <span class="comment">/* set status1 failed */</span></div>
-<div class="line"><a name="l00903"></a><span class="lineno">  903</span>&#160;               </div>
-<div class="line"><a name="l00904"></a><span class="lineno">  904</span>&#160;                <span class="keywordflow">return</span> 1;                                                                                <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l00905"></a><span class="lineno">  905</span>&#160;            }</div>
-<div class="line"><a name="l00906"></a><span class="lineno">  906</span>&#160;            </div>
-<div class="line"><a name="l00907"></a><span class="lineno">  907</span>&#160;            timeout = 1000;                                                                              <span class="comment">/* max 1000 ms */</span></div>
-<div class="line"><a name="l00908"></a><span class="lineno">  908</span>&#160;            <span class="keywordflow">while</span> (timeout != 0)                                                                         <span class="comment">/* check timeout */</span></div>
-<div class="line"><a name="l00909"></a><span class="lineno">  909</span>&#160;            {</div>
-<div class="line"><a name="l00910"></a><span class="lineno">  910</span>&#160;                res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#adf682969c34f4b31a87dd92dd18ccea3">W25QXX_COMMAND_READ_STATUS_REG1</a>, 1,</div>
-<div class="line"><a name="l00911"></a><span class="lineno">  911</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l00912"></a><span class="lineno">  912</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l00913"></a><span class="lineno">  913</span>&#160;                                               0x00, NULL, 0x00,</div>
-<div class="line"><a name="l00914"></a><span class="lineno">  914</span>&#160;                                              (uint8_t *)&amp;status_check, 1, 1);                           <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l00915"></a><span class="lineno">  915</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                            <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l00916"></a><span class="lineno">  916</span>&#160;                {</div>
-<div class="line"><a name="l00917"></a><span class="lineno">  917</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: get status1 failed.\n&quot;</span>);                                <span class="comment">/* get status1 failed */</span></div>
-<div class="line"><a name="l00918"></a><span class="lineno">  918</span>&#160;                   </div>
-<div class="line"><a name="l00919"></a><span class="lineno">  919</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                            <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l00920"></a><span class="lineno">  920</span>&#160;                }</div>
-<div class="line"><a name="l00921"></a><span class="lineno">  921</span>&#160;                <span class="keywordflow">if</span> ((status_check &amp; 0x01) == 0x00)                                                       <span class="comment">/* check status */</span></div>
-<div class="line"><a name="l00922"></a><span class="lineno">  922</span>&#160;                {</div>
-<div class="line"><a name="l00923"></a><span class="lineno">  923</span>&#160;                    <span class="keywordflow">break</span>;                                                                               <span class="comment">/* break */</span></div>
-<div class="line"><a name="l00924"></a><span class="lineno">  924</span>&#160;                }</div>
-<div class="line"><a name="l00925"></a><span class="lineno">  925</span>&#160;                timeout--;                                                                               <span class="comment">/* timeout-- */</span></div>
-<div class="line"><a name="l00926"></a><span class="lineno">  926</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a406c9433252b7366de417b7a60915c81">delay_ms</a>(1);                                                                     <span class="comment">/* delay 1 ms */</span></div>
-<div class="line"><a name="l00927"></a><span class="lineno">  927</span>&#160;            }</div>
-<div class="line"><a name="l00928"></a><span class="lineno">  928</span>&#160;            <span class="keywordflow">if</span> (timeout == 0)                                                                            <span class="comment">/* check timeout */</span></div>
-<div class="line"><a name="l00929"></a><span class="lineno">  929</span>&#160;            {</div>
-<div class="line"><a name="l00930"></a><span class="lineno">  930</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write status 1 timeout.\n&quot;</span>);                                <span class="comment">/* write status 1 timeout */</span></div>
-<div class="line"><a name="l00931"></a><span class="lineno">  931</span>&#160;               </div>
-<div class="line"><a name="l00932"></a><span class="lineno">  932</span>&#160;                <span class="keywordflow">return</span> 4;                                                                                <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l00933"></a><span class="lineno">  933</span>&#160;            }</div>
-<div class="line"><a name="l00934"></a><span class="lineno">  934</span>&#160;            <span class="keywordflow">else</span></div>
-<div class="line"><a name="l00935"></a><span class="lineno">  935</span>&#160;            {</div>
-<div class="line"><a name="l00936"></a><span class="lineno">  936</span>&#160;                <span class="keywordflow">return</span> 0;                                                                                <span class="comment">/* success return 0 */</span></div>
-<div class="line"><a name="l00937"></a><span class="lineno">  937</span>&#160;            }</div>
-<div class="line"><a name="l00938"></a><span class="lineno">  938</span>&#160;        }</div>
-<div class="line"><a name="l00939"></a><span class="lineno">  939</span>&#160;        <span class="keywordflow">else</span>                                                                                             <span class="comment">/* single spi */</span></div>
-<div class="line"><a name="l00940"></a><span class="lineno">  940</span>&#160;        {</div>
-<div class="line"><a name="l00941"></a><span class="lineno">  941</span>&#160;            buf[0] = <a class="code" href="driver__w25qxx_8c.html#a7c9e980e30f499dd97b02935c91f2c02">W25QXX_COMMAND_VOLATILE_SR_WRITE_ENABLE</a>;                                            <span class="comment">/* sr write enable command */</span></div>
-<div class="line"><a name="l00942"></a><span class="lineno">  942</span>&#160;            res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 1, NULL, 0);                           <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l00943"></a><span class="lineno">  943</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                                <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l00944"></a><span class="lineno">  944</span>&#160;            {</div>
-<div class="line"><a name="l00945"></a><span class="lineno">  945</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                                   <span class="comment">/* write enable failed */</span></div>
-<div class="line"><a name="l00946"></a><span class="lineno">  946</span>&#160;               </div>
-<div class="line"><a name="l00947"></a><span class="lineno">  947</span>&#160;                <span class="keywordflow">return</span> 1;                                                                                <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l00948"></a><span class="lineno">  948</span>&#160;            }</div>
-<div class="line"><a name="l00949"></a><span class="lineno">  949</span>&#160;            buf[0] = <a class="code" href="driver__w25qxx_8c.html#a932f54ff92de8bbab4602ab85ac6c155">W25QXX_COMMAND_WRITE_STATUS_REG1</a>;                                                   <span class="comment">/* write status1 command */</span></div>
-<div class="line"><a name="l00950"></a><span class="lineno">  950</span>&#160;            buf[1] = status;                                                                             <span class="comment">/* set status */</span></div>
-<div class="line"><a name="l00951"></a><span class="lineno">  951</span>&#160;            res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 2, NULL, 0);                           <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l00952"></a><span class="lineno">  952</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                                <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l00953"></a><span class="lineno">  953</span>&#160;            {</div>
-<div class="line"><a name="l00954"></a><span class="lineno">  954</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: set status1 failed.\n&quot;</span>);                                    <span class="comment">/* set status1 failed */</span></div>
-<div class="line"><a name="l00955"></a><span class="lineno">  955</span>&#160;               </div>
-<div class="line"><a name="l00956"></a><span class="lineno">  956</span>&#160;                <span class="keywordflow">return</span> 1;                                                                                <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l00957"></a><span class="lineno">  957</span>&#160;            }</div>
-<div class="line"><a name="l00958"></a><span class="lineno">  958</span>&#160;            </div>
-<div class="line"><a name="l00959"></a><span class="lineno">  959</span>&#160;            timeout = 1000;                                                                              <span class="comment">/* max 1000 ms */</span></div>
-<div class="line"><a name="l00960"></a><span class="lineno">  960</span>&#160;            <span class="keywordflow">while</span> (timeout != 0)                                                                         <span class="comment">/* check timeout */</span></div>
-<div class="line"><a name="l00961"></a><span class="lineno">  961</span>&#160;            {</div>
-<div class="line"><a name="l00962"></a><span class="lineno">  962</span>&#160;                buf[0] = <a class="code" href="driver__w25qxx_8c.html#adf682969c34f4b31a87dd92dd18ccea3">W25QXX_COMMAND_READ_STATUS_REG1</a>;                                                <span class="comment">/* read status1 command */</span></div>
-<div class="line"><a name="l00963"></a><span class="lineno">  963</span>&#160;                res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 1,</div>
-<div class="line"><a name="l00964"></a><span class="lineno">  964</span>&#160;                                             (uint8_t *)&amp;status_check, 1);                               <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l00965"></a><span class="lineno">  965</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                            <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l00966"></a><span class="lineno">  966</span>&#160;                {</div>
-<div class="line"><a name="l00967"></a><span class="lineno">  967</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: get status1 failed.\n&quot;</span>);                                <span class="comment">/* get status1 failed */</span></div>
-<div class="line"><a name="l00968"></a><span class="lineno">  968</span>&#160;                   </div>
-<div class="line"><a name="l00969"></a><span class="lineno">  969</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                            <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l00970"></a><span class="lineno">  970</span>&#160;                }</div>
-<div class="line"><a name="l00971"></a><span class="lineno">  971</span>&#160;                <span class="keywordflow">if</span> ((status_check &amp; 0x01) == 0x00)                                                       <span class="comment">/* check status */</span></div>
-<div class="line"><a name="l00972"></a><span class="lineno">  972</span>&#160;                {</div>
-<div class="line"><a name="l00973"></a><span class="lineno">  973</span>&#160;                    <span class="keywordflow">break</span>;                                                                               <span class="comment">/* break */</span></div>
-<div class="line"><a name="l00974"></a><span class="lineno">  974</span>&#160;                }</div>
-<div class="line"><a name="l00975"></a><span class="lineno">  975</span>&#160;                timeout--;                                                                               <span class="comment">/* timeout-- */</span></div>
-<div class="line"><a name="l00976"></a><span class="lineno">  976</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a406c9433252b7366de417b7a60915c81">delay_ms</a>(1);                                                                     <span class="comment">/* delay 1 ms */</span></div>
-<div class="line"><a name="l00977"></a><span class="lineno">  977</span>&#160;            }</div>
-<div class="line"><a name="l00978"></a><span class="lineno">  978</span>&#160;            <span class="keywordflow">if</span> (timeout == 0)                                                                            <span class="comment">/* check timeout */</span></div>
-<div class="line"><a name="l00979"></a><span class="lineno">  979</span>&#160;            {</div>
-<div class="line"><a name="l00980"></a><span class="lineno">  980</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write status 1 timeout.\n&quot;</span>);                                <span class="comment">/* write status 1 timeout */</span></div>
-<div class="line"><a name="l00981"></a><span class="lineno">  981</span>&#160;               </div>
-<div class="line"><a name="l00982"></a><span class="lineno">  982</span>&#160;                <span class="keywordflow">return</span> 4;                                                                                <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l00983"></a><span class="lineno">  983</span>&#160;            }</div>
-<div class="line"><a name="l00984"></a><span class="lineno">  984</span>&#160;            <span class="keywordflow">else</span></div>
-<div class="line"><a name="l00985"></a><span class="lineno">  985</span>&#160;            {</div>
-<div class="line"><a name="l00986"></a><span class="lineno">  986</span>&#160;                <span class="keywordflow">return</span> 0;                                                                                <span class="comment">/* success return 0 */</span></div>
-<div class="line"><a name="l00987"></a><span class="lineno">  987</span>&#160;            }</div>
-<div class="line"><a name="l00988"></a><span class="lineno">  988</span>&#160;        }</div>
-<div class="line"><a name="l00989"></a><span class="lineno">  989</span>&#160;    }</div>
-<div class="line"><a name="l00990"></a><span class="lineno">  990</span>&#160;    <span class="keywordflow">else</span>                                                                                                 <span class="comment">/* qspi interface */</span></div>
-<div class="line"><a name="l00991"></a><span class="lineno">  991</span>&#160;    {</div>
-<div class="line"><a name="l00992"></a><span class="lineno">  992</span>&#160;        res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#a7c9e980e30f499dd97b02935c91f2c02">W25QXX_COMMAND_VOLATILE_SR_WRITE_ENABLE</a>, 4,</div>
-<div class="line"><a name="l00993"></a><span class="lineno">  993</span>&#160;                                       0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l00994"></a><span class="lineno">  994</span>&#160;                                       0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l00995"></a><span class="lineno">  995</span>&#160;                                       0x00, NULL, 0x00,</div>
-<div class="line"><a name="l00996"></a><span class="lineno">  996</span>&#160;                                       NULL, 0x00, 0x00);                                                <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l00997"></a><span class="lineno">  997</span>&#160;        <span class="keywordflow">if</span> (res != 0)                                                                                    <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l00998"></a><span class="lineno">  998</span>&#160;        {</div>
-<div class="line"><a name="l00999"></a><span class="lineno">  999</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                                       <span class="comment">/* write enable failed */</span></div>
-<div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>&#160;           </div>
-<div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>&#160;            <span class="keywordflow">return</span> 1;                                                                                    <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>&#160;        }</div>
-<div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>&#160;        buf[0] = status;                                                                                 <span class="comment">/* set status */</span></div>
-<div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>&#160;        res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#a932f54ff92de8bbab4602ab85ac6c155">W25QXX_COMMAND_WRITE_STATUS_REG1</a>, 4,</div>
-<div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>&#160;                                       0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>&#160;                                       0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>&#160;                                       0x00, (uint8_t *)buf, 1,</div>
-<div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>&#160;                                       NULL, 0x00, 4);                                                   <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>&#160;        <span class="keywordflow">if</span> (res != 0)                                                                                    <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>&#160;        {</div>
-<div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: set status1 failed.\n&quot;</span>);                                        <span class="comment">/* set status1 failed */</span></div>
-<div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>&#160;           </div>
-<div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>&#160;            <span class="keywordflow">return</span> 1;                                                                                    <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>&#160;        }</div>
-<div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>&#160;        </div>
-<div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>&#160;        timeout = 1000;                                                                                  <span class="comment">/* max 1000 ms */</span></div>
-<div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>&#160;        <span class="keywordflow">while</span> (timeout != 0)                                                                             <span class="comment">/* check timeout */</span></div>
-<div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>&#160;        {</div>
-<div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>&#160;            res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#adf682969c34f4b31a87dd92dd18ccea3">W25QXX_COMMAND_READ_STATUS_REG1</a>, 4,</div>
-<div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>&#160;                                           0x00, NULL, 0x00,</div>
-<div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>&#160;                                          (uint8_t *)&amp;status_check, 1, 4);                               <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                                <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>&#160;            {</div>
-<div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: get status1 failed.\n&quot;</span>);                                    <span class="comment">/* get status1 failed */</span></div>
-<div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>&#160;               </div>
-<div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>&#160;                <span class="keywordflow">return</span> 1;                                                                                <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>&#160;            }</div>
-<div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>&#160;            <span class="keywordflow">if</span> ((status_check &amp; 0x01) == 0x00)                                                           <span class="comment">/* check status */</span></div>
-<div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>&#160;            {</div>
-<div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>&#160;                <span class="keywordflow">break</span>;                                                                                   <span class="comment">/* break */</span></div>
-<div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>&#160;            }</div>
-<div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>&#160;            timeout--;                                                                                   <span class="comment">/* timeout-- */</span></div>
-<div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a406c9433252b7366de417b7a60915c81">delay_ms</a>(1);                                                                         <span class="comment">/* delay 1 ms */</span></div>
-<div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>&#160;        }</div>
-<div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>&#160;        <span class="keywordflow">if</span> (timeout == 0)                                                                                <span class="comment">/* check timeout */</span></div>
-<div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>&#160;        {</div>
-<div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write status 1 timeout.\n&quot;</span>);                                    <span class="comment">/* write status 1 timeout */</span></div>
-<div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>&#160;           </div>
-<div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>&#160;            <span class="keywordflow">return</span> 4;                                                                                    <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>&#160;        }</div>
-<div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>&#160;        <span class="keywordflow">else</span></div>
-<div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>&#160;        {</div>
-<div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>&#160;            <span class="keywordflow">return</span> 0;                                                                                    <span class="comment">/* success return 0 */</span></div>
-<div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>&#160;        }</div>
-<div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>&#160;    }</div>
-<div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>&#160;}</div>
-<div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>&#160; </div>
-<div class="line"><a name="l01062"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#gaab5f28e8930d50dbc2178e39bc9fa456"> 1062</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__advance__driver.html#gaab5f28e8930d50dbc2178e39bc9fa456">w25qxx_set_status2</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint8_t status)</div>
-<div class="line"><a name="l01063"></a><span class="lineno"> 1063</span>&#160;{</div>
-<div class="line"><a name="l01064"></a><span class="lineno"> 1064</span>&#160;    uint8_t res;</div>
-<div class="line"><a name="l01065"></a><span class="lineno"> 1065</span>&#160;    uint8_t buf[2];</div>
-<div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>&#160;    uint32_t timeout;</div>
-<div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>&#160;    uint8_t status_check;</div>
-<div class="line"><a name="l01068"></a><span class="lineno"> 1068</span>&#160;    </div>
-<div class="line"><a name="l01069"></a><span class="lineno"> 1069</span>&#160;    <span class="keywordflow">if</span> (handle == NULL)                                                                                  <span class="comment">/* check handle */</span></div>
-<div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>&#160;    {</div>
-<div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>&#160;        <span class="keywordflow">return</span> 2;                                                                                        <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>&#160;    }   </div>
-<div class="line"><a name="l01073"></a><span class="lineno"> 1073</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">inited</a> != 1)                                                                             <span class="comment">/* check handle initialization */</span></div>
-<div class="line"><a name="l01074"></a><span class="lineno"> 1074</span>&#160;    {</div>
-<div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>&#160;        <span class="keywordflow">return</span> 3;                                                                                        <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>&#160;    }</div>
-<div class="line"><a name="l01077"></a><span class="lineno"> 1077</span>&#160; </div>
-<div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>)                                                        <span class="comment">/* spi interface */</span></div>
-<div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>&#160;    {</div>
-<div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>&#160;        <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">dual_quad_spi_enable</a> != 0)                                                           <span class="comment">/* enable dual quad spi */</span></div>
-<div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>&#160;        {</div>
-<div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>&#160;            res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#a7c9e980e30f499dd97b02935c91f2c02">W25QXX_COMMAND_VOLATILE_SR_WRITE_ENABLE</a>, 1,</div>
-<div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l01084"></a><span class="lineno"> 1084</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l01085"></a><span class="lineno"> 1085</span>&#160;                                           0x00, NULL, 0x00,</div>
-<div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>&#160;                                           NULL, 0x00, 0x00);                                            <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                                <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l01088"></a><span class="lineno"> 1088</span>&#160;            {</div>
-<div class="line"><a name="l01089"></a><span class="lineno"> 1089</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                                   <span class="comment">/* write enable failed */</span></div>
-<div class="line"><a name="l01090"></a><span class="lineno"> 1090</span>&#160;               </div>
-<div class="line"><a name="l01091"></a><span class="lineno"> 1091</span>&#160;                <span class="keywordflow">return</span> 1;                                                                                <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l01092"></a><span class="lineno"> 1092</span>&#160;            }</div>
-<div class="line"><a name="l01093"></a><span class="lineno"> 1093</span>&#160;            buf[0] = status;                                                                             <span class="comment">/* set status */</span></div>
-<div class="line"><a name="l01094"></a><span class="lineno"> 1094</span>&#160;            res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#a4be10ed873d56bb183d9b1bde9105135">W25QXX_COMMAND_WRITE_STATUS_REG2</a>, 1,</div>
-<div class="line"><a name="l01095"></a><span class="lineno"> 1095</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l01096"></a><span class="lineno"> 1096</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l01097"></a><span class="lineno"> 1097</span>&#160;                                           0x00, (uint8_t *)buf, 1,</div>
-<div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>&#160;                                           NULL, 0x00, 1);                                               <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l01099"></a><span class="lineno"> 1099</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                                <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l01100"></a><span class="lineno"> 1100</span>&#160;            {</div>
-<div class="line"><a name="l01101"></a><span class="lineno"> 1101</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: set status2 failed.\n&quot;</span>);                                    <span class="comment">/* set status2 failed */</span></div>
-<div class="line"><a name="l01102"></a><span class="lineno"> 1102</span>&#160;               </div>
-<div class="line"><a name="l01103"></a><span class="lineno"> 1103</span>&#160;                <span class="keywordflow">return</span> 1;                                                                                <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l01104"></a><span class="lineno"> 1104</span>&#160;            }</div>
-<div class="line"><a name="l01105"></a><span class="lineno"> 1105</span>&#160;            </div>
-<div class="line"><a name="l01106"></a><span class="lineno"> 1106</span>&#160;            timeout = 1000;                                                                              <span class="comment">/* max 1000 ms */</span></div>
-<div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>&#160;            <span class="keywordflow">while</span> (timeout != 0)                                                                         <span class="comment">/* check timeout */</span></div>
-<div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>&#160;            {</div>
-<div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>&#160;                res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#adf682969c34f4b31a87dd92dd18ccea3">W25QXX_COMMAND_READ_STATUS_REG1</a>, 1,</div>
-<div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l01111"></a><span class="lineno"> 1111</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l01112"></a><span class="lineno"> 1112</span>&#160;                                               0x00, NULL, 0x00,</div>
-<div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>&#160;                                              (uint8_t *)&amp;status_check, 1, 1);                           <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                            <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l01115"></a><span class="lineno"> 1115</span>&#160;                {</div>
-<div class="line"><a name="l01116"></a><span class="lineno"> 1116</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: get status1 failed.\n&quot;</span>);                                <span class="comment">/* get status1 failed */</span></div>
-<div class="line"><a name="l01117"></a><span class="lineno"> 1117</span>&#160;                   </div>
-<div class="line"><a name="l01118"></a><span class="lineno"> 1118</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                            <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l01119"></a><span class="lineno"> 1119</span>&#160;                }</div>
-<div class="line"><a name="l01120"></a><span class="lineno"> 1120</span>&#160;                <span class="keywordflow">if</span> ((status_check &amp; 0x01) == 0x00)                                                       <span class="comment">/* check status */</span></div>
-<div class="line"><a name="l01121"></a><span class="lineno"> 1121</span>&#160;                {</div>
-<div class="line"><a name="l01122"></a><span class="lineno"> 1122</span>&#160;                    <span class="keywordflow">break</span>;                                                                               <span class="comment">/* break */</span></div>
-<div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>&#160;                }</div>
-<div class="line"><a name="l01124"></a><span class="lineno"> 1124</span>&#160;                timeout--;                                                                               <span class="comment">/* timeout-- */</span></div>
-<div class="line"><a name="l01125"></a><span class="lineno"> 1125</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a406c9433252b7366de417b7a60915c81">delay_ms</a>(1);                                                                     <span class="comment">/* delay 1 ms */</span></div>
-<div class="line"><a name="l01126"></a><span class="lineno"> 1126</span>&#160;            }</div>
-<div class="line"><a name="l01127"></a><span class="lineno"> 1127</span>&#160;            <span class="keywordflow">if</span> (timeout == 0)                                                                            <span class="comment">/* check timeout */</span></div>
-<div class="line"><a name="l01128"></a><span class="lineno"> 1128</span>&#160;            {</div>
-<div class="line"><a name="l01129"></a><span class="lineno"> 1129</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write status 2 timeout.\n&quot;</span>);                                <span class="comment">/* write status 2 timeout */</span></div>
-<div class="line"><a name="l01130"></a><span class="lineno"> 1130</span>&#160;               </div>
-<div class="line"><a name="l01131"></a><span class="lineno"> 1131</span>&#160;                <span class="keywordflow">return</span> 4;                                                                                <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l01132"></a><span class="lineno"> 1132</span>&#160;            }</div>
-<div class="line"><a name="l01133"></a><span class="lineno"> 1133</span>&#160;            <span class="keywordflow">else</span></div>
-<div class="line"><a name="l01134"></a><span class="lineno"> 1134</span>&#160;            {</div>
-<div class="line"><a name="l01135"></a><span class="lineno"> 1135</span>&#160;                <span class="keywordflow">return</span> 0;                                                                                <span class="comment">/* success return 0 */</span></div>
-<div class="line"><a name="l01136"></a><span class="lineno"> 1136</span>&#160;            }</div>
-<div class="line"><a name="l01137"></a><span class="lineno"> 1137</span>&#160;        }</div>
-<div class="line"><a name="l01138"></a><span class="lineno"> 1138</span>&#160;        <span class="keywordflow">else</span>                                                                                             <span class="comment">/* single spi */</span></div>
-<div class="line"><a name="l01139"></a><span class="lineno"> 1139</span>&#160;        {</div>
-<div class="line"><a name="l01140"></a><span class="lineno"> 1140</span>&#160;            buf[0] = <a class="code" href="driver__w25qxx_8c.html#a7c9e980e30f499dd97b02935c91f2c02">W25QXX_COMMAND_VOLATILE_SR_WRITE_ENABLE</a>;                                            <span class="comment">/* sr write enable command */</span></div>
-<div class="line"><a name="l01141"></a><span class="lineno"> 1141</span>&#160;            res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 1, NULL, 0);                           <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l01142"></a><span class="lineno"> 1142</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                                <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l01143"></a><span class="lineno"> 1143</span>&#160;            {</div>
-<div class="line"><a name="l01144"></a><span class="lineno"> 1144</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                                   <span class="comment">/* write enable failed */</span></div>
-<div class="line"><a name="l01145"></a><span class="lineno"> 1145</span>&#160;               </div>
-<div class="line"><a name="l01146"></a><span class="lineno"> 1146</span>&#160;                <span class="keywordflow">return</span> 1;                                                                                <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l01147"></a><span class="lineno"> 1147</span>&#160;            }</div>
-<div class="line"><a name="l01148"></a><span class="lineno"> 1148</span>&#160;            buf[0] = <a class="code" href="driver__w25qxx_8c.html#a4be10ed873d56bb183d9b1bde9105135">W25QXX_COMMAND_WRITE_STATUS_REG2</a>;                                                   <span class="comment">/* write status2 command */</span></div>
-<div class="line"><a name="l01149"></a><span class="lineno"> 1149</span>&#160;            buf[1] = status;                                                                             <span class="comment">/* set status */</span></div>
-<div class="line"><a name="l01150"></a><span class="lineno"> 1150</span>&#160;            res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 2, NULL, 0);                           <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l01151"></a><span class="lineno"> 1151</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                                <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l01152"></a><span class="lineno"> 1152</span>&#160;            {</div>
-<div class="line"><a name="l01153"></a><span class="lineno"> 1153</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: set status2 failed.\n&quot;</span>);                                    <span class="comment">/* set status2 failed */</span></div>
-<div class="line"><a name="l01154"></a><span class="lineno"> 1154</span>&#160;               </div>
-<div class="line"><a name="l01155"></a><span class="lineno"> 1155</span>&#160;                <span class="keywordflow">return</span> 1;                                                                                <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l01156"></a><span class="lineno"> 1156</span>&#160;            }</div>
-<div class="line"><a name="l01157"></a><span class="lineno"> 1157</span>&#160;            </div>
-<div class="line"><a name="l01158"></a><span class="lineno"> 1158</span>&#160;            timeout = 1000;                                                                              <span class="comment">/* max 1000 ms */</span></div>
-<div class="line"><a name="l01159"></a><span class="lineno"> 1159</span>&#160;            <span class="keywordflow">while</span> (timeout != 0)                                                                         <span class="comment">/* check timeout */</span></div>
-<div class="line"><a name="l01160"></a><span class="lineno"> 1160</span>&#160;            {</div>
-<div class="line"><a name="l01161"></a><span class="lineno"> 1161</span>&#160;                buf[0] = <a class="code" href="driver__w25qxx_8c.html#adf682969c34f4b31a87dd92dd18ccea3">W25QXX_COMMAND_READ_STATUS_REG1</a>;                                                <span class="comment">/* read status1 command */</span></div>
-<div class="line"><a name="l01162"></a><span class="lineno"> 1162</span>&#160;                res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 1,</div>
-<div class="line"><a name="l01163"></a><span class="lineno"> 1163</span>&#160;                                             (uint8_t *)&amp;status_check, 1);                               <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l01164"></a><span class="lineno"> 1164</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                            <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l01165"></a><span class="lineno"> 1165</span>&#160;                {</div>
-<div class="line"><a name="l01166"></a><span class="lineno"> 1166</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: get status1 failed.\n&quot;</span>);                                <span class="comment">/* get status1 failed */</span></div>
-<div class="line"><a name="l01167"></a><span class="lineno"> 1167</span>&#160;                   </div>
-<div class="line"><a name="l01168"></a><span class="lineno"> 1168</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                            <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l01169"></a><span class="lineno"> 1169</span>&#160;                }</div>
-<div class="line"><a name="l01170"></a><span class="lineno"> 1170</span>&#160;                <span class="keywordflow">if</span> ((status_check &amp; 0x01) == 0x00)                                                       <span class="comment">/* check status */</span></div>
-<div class="line"><a name="l01171"></a><span class="lineno"> 1171</span>&#160;                {</div>
-<div class="line"><a name="l01172"></a><span class="lineno"> 1172</span>&#160;                    <span class="keywordflow">break</span>;                                                                               <span class="comment">/* break */</span></div>
-<div class="line"><a name="l01173"></a><span class="lineno"> 1173</span>&#160;                }</div>
-<div class="line"><a name="l01174"></a><span class="lineno"> 1174</span>&#160;                timeout--;                                                                               <span class="comment">/* timeout-- */</span></div>
-<div class="line"><a name="l01175"></a><span class="lineno"> 1175</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a406c9433252b7366de417b7a60915c81">delay_ms</a>(1);                                                                     <span class="comment">/* delay 1 ms */</span></div>
-<div class="line"><a name="l01176"></a><span class="lineno"> 1176</span>&#160;            }</div>
-<div class="line"><a name="l01177"></a><span class="lineno"> 1177</span>&#160;            <span class="keywordflow">if</span> (timeout == 0)                                                                            <span class="comment">/* check timeout */</span></div>
-<div class="line"><a name="l01178"></a><span class="lineno"> 1178</span>&#160;            {</div>
-<div class="line"><a name="l01179"></a><span class="lineno"> 1179</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write status 2 timeout.\n&quot;</span>);                                <span class="comment">/* write status 2 timeout */</span></div>
-<div class="line"><a name="l01180"></a><span class="lineno"> 1180</span>&#160;               </div>
-<div class="line"><a name="l01181"></a><span class="lineno"> 1181</span>&#160;                <span class="keywordflow">return</span> 4;                                                                                <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l01182"></a><span class="lineno"> 1182</span>&#160;            }</div>
-<div class="line"><a name="l01183"></a><span class="lineno"> 1183</span>&#160;            <span class="keywordflow">else</span></div>
-<div class="line"><a name="l01184"></a><span class="lineno"> 1184</span>&#160;            {</div>
-<div class="line"><a name="l01185"></a><span class="lineno"> 1185</span>&#160;                <span class="keywordflow">return</span> 0;                                                                                <span class="comment">/* success return 0 */</span></div>
-<div class="line"><a name="l01186"></a><span class="lineno"> 1186</span>&#160;            }</div>
-<div class="line"><a name="l01187"></a><span class="lineno"> 1187</span>&#160;        }</div>
-<div class="line"><a name="l01188"></a><span class="lineno"> 1188</span>&#160;    }</div>
-<div class="line"><a name="l01189"></a><span class="lineno"> 1189</span>&#160;    <span class="keywordflow">else</span>                                                                                                 <span class="comment">/* qspi interface */</span></div>
-<div class="line"><a name="l01190"></a><span class="lineno"> 1190</span>&#160;    {</div>
-<div class="line"><a name="l01191"></a><span class="lineno"> 1191</span>&#160;        res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#a7c9e980e30f499dd97b02935c91f2c02">W25QXX_COMMAND_VOLATILE_SR_WRITE_ENABLE</a>, 4,</div>
-<div class="line"><a name="l01192"></a><span class="lineno"> 1192</span>&#160;                                       0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l01193"></a><span class="lineno"> 1193</span>&#160;                                       0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l01194"></a><span class="lineno"> 1194</span>&#160;                                       0x00, NULL, 0x00,</div>
-<div class="line"><a name="l01195"></a><span class="lineno"> 1195</span>&#160;                                       NULL, 0x00, 0x00);                                                <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l01196"></a><span class="lineno"> 1196</span>&#160;        <span class="keywordflow">if</span> (res != 0)                                                                                    <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l01197"></a><span class="lineno"> 1197</span>&#160;        {</div>
-<div class="line"><a name="l01198"></a><span class="lineno"> 1198</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                                       <span class="comment">/* write enable failed */</span></div>
-<div class="line"><a name="l01199"></a><span class="lineno"> 1199</span>&#160;           </div>
-<div class="line"><a name="l01200"></a><span class="lineno"> 1200</span>&#160;            <span class="keywordflow">return</span> 1;                                                                                    <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l01201"></a><span class="lineno"> 1201</span>&#160;        }</div>
-<div class="line"><a name="l01202"></a><span class="lineno"> 1202</span>&#160;        buf[0] = status;                                                                                 <span class="comment">/* set status */</span></div>
-<div class="line"><a name="l01203"></a><span class="lineno"> 1203</span>&#160;        res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#a4be10ed873d56bb183d9b1bde9105135">W25QXX_COMMAND_WRITE_STATUS_REG2</a>, 4,</div>
-<div class="line"><a name="l01204"></a><span class="lineno"> 1204</span>&#160;                                       0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l01205"></a><span class="lineno"> 1205</span>&#160;                                       0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l01206"></a><span class="lineno"> 1206</span>&#160;                                       0x00, (uint8_t *)buf, 1,</div>
-<div class="line"><a name="l01207"></a><span class="lineno"> 1207</span>&#160;                                       NULL, 0x00, 4);                                                   <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l01208"></a><span class="lineno"> 1208</span>&#160;        <span class="keywordflow">if</span> (res != 0)                                                                                    <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l01209"></a><span class="lineno"> 1209</span>&#160;        {</div>
-<div class="line"><a name="l01210"></a><span class="lineno"> 1210</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: set status2 failed.\n&quot;</span>);                                        <span class="comment">/* set status2 failed */</span></div>
-<div class="line"><a name="l01211"></a><span class="lineno"> 1211</span>&#160;           </div>
-<div class="line"><a name="l01212"></a><span class="lineno"> 1212</span>&#160;            <span class="keywordflow">return</span> 1;                                                                                    <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l01213"></a><span class="lineno"> 1213</span>&#160;        }</div>
-<div class="line"><a name="l01214"></a><span class="lineno"> 1214</span>&#160;        </div>
-<div class="line"><a name="l01215"></a><span class="lineno"> 1215</span>&#160;        timeout = 1000;                                                                                  <span class="comment">/* max 1000 ms */</span></div>
-<div class="line"><a name="l01216"></a><span class="lineno"> 1216</span>&#160;        <span class="keywordflow">while</span> (timeout != 0)                                                                             <span class="comment">/* check timeout */</span></div>
-<div class="line"><a name="l01217"></a><span class="lineno"> 1217</span>&#160;        {</div>
-<div class="line"><a name="l01218"></a><span class="lineno"> 1218</span>&#160;            res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#adf682969c34f4b31a87dd92dd18ccea3">W25QXX_COMMAND_READ_STATUS_REG1</a>, 4,</div>
-<div class="line"><a name="l01219"></a><span class="lineno"> 1219</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l01220"></a><span class="lineno"> 1220</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l01221"></a><span class="lineno"> 1221</span>&#160;                                           0x00, NULL, 0x00,</div>
-<div class="line"><a name="l01222"></a><span class="lineno"> 1222</span>&#160;                                          (uint8_t *)&amp;status_check, 1, 4);                               <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l01223"></a><span class="lineno"> 1223</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                                <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l01224"></a><span class="lineno"> 1224</span>&#160;            {</div>
-<div class="line"><a name="l01225"></a><span class="lineno"> 1225</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: get status1 failed.\n&quot;</span>);                                    <span class="comment">/* get status1 failed */</span></div>
-<div class="line"><a name="l01226"></a><span class="lineno"> 1226</span>&#160;               </div>
-<div class="line"><a name="l01227"></a><span class="lineno"> 1227</span>&#160;                <span class="keywordflow">return</span> 1;                                                                                <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l01228"></a><span class="lineno"> 1228</span>&#160;            }</div>
-<div class="line"><a name="l01229"></a><span class="lineno"> 1229</span>&#160;            <span class="keywordflow">if</span> ((status_check &amp; 0x01) == 0x00)                                                           <span class="comment">/* check status */</span></div>
-<div class="line"><a name="l01230"></a><span class="lineno"> 1230</span>&#160;            {</div>
-<div class="line"><a name="l01231"></a><span class="lineno"> 1231</span>&#160;                <span class="keywordflow">break</span>;                                                                                   <span class="comment">/* break */</span></div>
-<div class="line"><a name="l01232"></a><span class="lineno"> 1232</span>&#160;            }</div>
-<div class="line"><a name="l01233"></a><span class="lineno"> 1233</span>&#160;            timeout--;                                                                                   <span class="comment">/* timeout-- */</span></div>
-<div class="line"><a name="l01234"></a><span class="lineno"> 1234</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a406c9433252b7366de417b7a60915c81">delay_ms</a>(1);                                                                         <span class="comment">/* delay 1 ms */</span></div>
-<div class="line"><a name="l01235"></a><span class="lineno"> 1235</span>&#160;        }</div>
-<div class="line"><a name="l01236"></a><span class="lineno"> 1236</span>&#160;        <span class="keywordflow">if</span> (timeout == 0)                                                                                <span class="comment">/* check timeout */</span></div>
-<div class="line"><a name="l01237"></a><span class="lineno"> 1237</span>&#160;        {</div>
-<div class="line"><a name="l01238"></a><span class="lineno"> 1238</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write status 2 timeout.\n&quot;</span>);                                    <span class="comment">/* write status 2 timeout */</span></div>
-<div class="line"><a name="l01239"></a><span class="lineno"> 1239</span>&#160;           </div>
-<div class="line"><a name="l01240"></a><span class="lineno"> 1240</span>&#160;            <span class="keywordflow">return</span> 4;                                                                                    <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l01241"></a><span class="lineno"> 1241</span>&#160;        }</div>
-<div class="line"><a name="l01242"></a><span class="lineno"> 1242</span>&#160;        <span class="keywordflow">else</span></div>
-<div class="line"><a name="l01243"></a><span class="lineno"> 1243</span>&#160;        {</div>
-<div class="line"><a name="l01244"></a><span class="lineno"> 1244</span>&#160;            <span class="keywordflow">return</span> 0;                                                                                    <span class="comment">/* success return 0 */</span></div>
-<div class="line"><a name="l01245"></a><span class="lineno"> 1245</span>&#160;        }</div>
-<div class="line"><a name="l01246"></a><span class="lineno"> 1246</span>&#160;    }</div>
-<div class="line"><a name="l01247"></a><span class="lineno"> 1247</span>&#160;}</div>
-<div class="line"><a name="l01248"></a><span class="lineno"> 1248</span>&#160; </div>
-<div class="line"><a name="l01261"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#gada897a6c6d6acb99f4dd4ff9b65ad8ee"> 1261</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__advance__driver.html#gada897a6c6d6acb99f4dd4ff9b65ad8ee">w25qxx_set_status3</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint8_t status)</div>
-<div class="line"><a name="l01262"></a><span class="lineno"> 1262</span>&#160;{</div>
-<div class="line"><a name="l01263"></a><span class="lineno"> 1263</span>&#160;    uint8_t res;</div>
-<div class="line"><a name="l01264"></a><span class="lineno"> 1264</span>&#160;    uint8_t buf[2];</div>
-<div class="line"><a name="l01265"></a><span class="lineno"> 1265</span>&#160;    uint32_t timeout;</div>
-<div class="line"><a name="l01266"></a><span class="lineno"> 1266</span>&#160;    uint8_t status_check;</div>
-<div class="line"><a name="l01267"></a><span class="lineno"> 1267</span>&#160;    </div>
-<div class="line"><a name="l01268"></a><span class="lineno"> 1268</span>&#160;    <span class="keywordflow">if</span> (handle == NULL)                                                                                  <span class="comment">/* check handle */</span></div>
-<div class="line"><a name="l01269"></a><span class="lineno"> 1269</span>&#160;    {</div>
-<div class="line"><a name="l01270"></a><span class="lineno"> 1270</span>&#160;        <span class="keywordflow">return</span> 2;                                                                                        <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l01271"></a><span class="lineno"> 1271</span>&#160;    }   </div>
-<div class="line"><a name="l01272"></a><span class="lineno"> 1272</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">inited</a> != 1)                                                                             <span class="comment">/* check handle initialization */</span></div>
-<div class="line"><a name="l01273"></a><span class="lineno"> 1273</span>&#160;    {</div>
-<div class="line"><a name="l01274"></a><span class="lineno"> 1274</span>&#160;        <span class="keywordflow">return</span> 3;                                                                                        <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l01275"></a><span class="lineno"> 1275</span>&#160;    }</div>
-<div class="line"><a name="l01276"></a><span class="lineno"> 1276</span>&#160; </div>
-<div class="line"><a name="l01277"></a><span class="lineno"> 1277</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>)                                                        <span class="comment">/* spi interface */</span></div>
-<div class="line"><a name="l01278"></a><span class="lineno"> 1278</span>&#160;    {</div>
-<div class="line"><a name="l01279"></a><span class="lineno"> 1279</span>&#160;        <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">dual_quad_spi_enable</a> != 0)                                                           <span class="comment">/* enable dual quad spi */</span></div>
-<div class="line"><a name="l01280"></a><span class="lineno"> 1280</span>&#160;        {</div>
-<div class="line"><a name="l01281"></a><span class="lineno"> 1281</span>&#160;            res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#a7c9e980e30f499dd97b02935c91f2c02">W25QXX_COMMAND_VOLATILE_SR_WRITE_ENABLE</a>, 1,</div>
-<div class="line"><a name="l01282"></a><span class="lineno"> 1282</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l01283"></a><span class="lineno"> 1283</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l01284"></a><span class="lineno"> 1284</span>&#160;                                           0x00, NULL, 0x00,</div>
-<div class="line"><a name="l01285"></a><span class="lineno"> 1285</span>&#160;                                           NULL, 0x00, 0x00);                                            <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l01286"></a><span class="lineno"> 1286</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                                <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l01287"></a><span class="lineno"> 1287</span>&#160;            {</div>
-<div class="line"><a name="l01288"></a><span class="lineno"> 1288</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                                   <span class="comment">/* write enable failed */</span></div>
-<div class="line"><a name="l01289"></a><span class="lineno"> 1289</span>&#160;               </div>
-<div class="line"><a name="l01290"></a><span class="lineno"> 1290</span>&#160;                <span class="keywordflow">return</span> 1;                                                                                <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l01291"></a><span class="lineno"> 1291</span>&#160;            }</div>
-<div class="line"><a name="l01292"></a><span class="lineno"> 1292</span>&#160;            buf[0] = status;                                                                             <span class="comment">/* set status */</span></div>
-<div class="line"><a name="l01293"></a><span class="lineno"> 1293</span>&#160;            res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#a6d099dc6afb59cc950d3abe96b840158">W25QXX_COMMAND_WRITE_STATUS_REG3</a>, 1,</div>
-<div class="line"><a name="l01294"></a><span class="lineno"> 1294</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l01295"></a><span class="lineno"> 1295</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l01296"></a><span class="lineno"> 1296</span>&#160;                                           0x00, (uint8_t *)buf, 1,</div>
-<div class="line"><a name="l01297"></a><span class="lineno"> 1297</span>&#160;                                           NULL, 0x00, 1);                                               <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l01298"></a><span class="lineno"> 1298</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                                <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l01299"></a><span class="lineno"> 1299</span>&#160;            {</div>
-<div class="line"><a name="l01300"></a><span class="lineno"> 1300</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: set status3 failed.\n&quot;</span>);                                    <span class="comment">/* set status3 failed */</span></div>
-<div class="line"><a name="l01301"></a><span class="lineno"> 1301</span>&#160;               </div>
-<div class="line"><a name="l01302"></a><span class="lineno"> 1302</span>&#160;                <span class="keywordflow">return</span> 1;                                                                                <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l01303"></a><span class="lineno"> 1303</span>&#160;            }</div>
-<div class="line"><a name="l01304"></a><span class="lineno"> 1304</span>&#160;            </div>
-<div class="line"><a name="l01305"></a><span class="lineno"> 1305</span>&#160;            timeout = 1000;                                                                              <span class="comment">/* max 1000 ms */</span></div>
-<div class="line"><a name="l01306"></a><span class="lineno"> 1306</span>&#160;            <span class="keywordflow">while</span> (timeout != 0)                                                                         <span class="comment">/* check timeout */</span></div>
-<div class="line"><a name="l01307"></a><span class="lineno"> 1307</span>&#160;            {</div>
-<div class="line"><a name="l01308"></a><span class="lineno"> 1308</span>&#160;                res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#adf682969c34f4b31a87dd92dd18ccea3">W25QXX_COMMAND_READ_STATUS_REG1</a>, 1,</div>
-<div class="line"><a name="l01309"></a><span class="lineno"> 1309</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l01310"></a><span class="lineno"> 1310</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l01311"></a><span class="lineno"> 1311</span>&#160;                                               0x00, NULL, 0x00,</div>
-<div class="line"><a name="l01312"></a><span class="lineno"> 1312</span>&#160;                                              (uint8_t *)&amp;status_check, 1, 1);                           <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l01313"></a><span class="lineno"> 1313</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                            <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l01314"></a><span class="lineno"> 1314</span>&#160;                {</div>
-<div class="line"><a name="l01315"></a><span class="lineno"> 1315</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: get status1 failed.\n&quot;</span>);                                <span class="comment">/* get status1 failed */</span></div>
-<div class="line"><a name="l01316"></a><span class="lineno"> 1316</span>&#160;                   </div>
-<div class="line"><a name="l01317"></a><span class="lineno"> 1317</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                            <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l01318"></a><span class="lineno"> 1318</span>&#160;                }</div>
-<div class="line"><a name="l01319"></a><span class="lineno"> 1319</span>&#160;                <span class="keywordflow">if</span> ((status_check &amp; 0x01) == 0x00)                                                       <span class="comment">/* check status */</span></div>
-<div class="line"><a name="l01320"></a><span class="lineno"> 1320</span>&#160;                {</div>
-<div class="line"><a name="l01321"></a><span class="lineno"> 1321</span>&#160;                    <span class="keywordflow">break</span>;                                                                               <span class="comment">/* break */</span></div>
-<div class="line"><a name="l01322"></a><span class="lineno"> 1322</span>&#160;                }</div>
-<div class="line"><a name="l01323"></a><span class="lineno"> 1323</span>&#160;                timeout--;                                                                               <span class="comment">/* timeout-- */</span></div>
-<div class="line"><a name="l01324"></a><span class="lineno"> 1324</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a406c9433252b7366de417b7a60915c81">delay_ms</a>(1);                                                                     <span class="comment">/* delay 1 ms */</span></div>
-<div class="line"><a name="l01325"></a><span class="lineno"> 1325</span>&#160;            }</div>
-<div class="line"><a name="l01326"></a><span class="lineno"> 1326</span>&#160;            <span class="keywordflow">if</span> (timeout == 0)                                                                            <span class="comment">/* check timeout */</span></div>
-<div class="line"><a name="l01327"></a><span class="lineno"> 1327</span>&#160;            {</div>
-<div class="line"><a name="l01328"></a><span class="lineno"> 1328</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write status 3 timeout.\n&quot;</span>);                                <span class="comment">/* write status 3 timeout */</span></div>
-<div class="line"><a name="l01329"></a><span class="lineno"> 1329</span>&#160;               </div>
-<div class="line"><a name="l01330"></a><span class="lineno"> 1330</span>&#160;                <span class="keywordflow">return</span> 4;                                                                                <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l01331"></a><span class="lineno"> 1331</span>&#160;            }</div>
-<div class="line"><a name="l01332"></a><span class="lineno"> 1332</span>&#160;            <span class="keywordflow">else</span></div>
-<div class="line"><a name="l01333"></a><span class="lineno"> 1333</span>&#160;            {</div>
-<div class="line"><a name="l01334"></a><span class="lineno"> 1334</span>&#160;                <span class="keywordflow">return</span> 0;                                                                                <span class="comment">/* success return 0 */</span></div>
-<div class="line"><a name="l01335"></a><span class="lineno"> 1335</span>&#160;            }</div>
-<div class="line"><a name="l01336"></a><span class="lineno"> 1336</span>&#160;        }</div>
-<div class="line"><a name="l01337"></a><span class="lineno"> 1337</span>&#160;        <span class="keywordflow">else</span>                                                                                             <span class="comment">/* single spi */</span></div>
-<div class="line"><a name="l01338"></a><span class="lineno"> 1338</span>&#160;        {</div>
-<div class="line"><a name="l01339"></a><span class="lineno"> 1339</span>&#160;            buf[0] = <a class="code" href="driver__w25qxx_8c.html#a7c9e980e30f499dd97b02935c91f2c02">W25QXX_COMMAND_VOLATILE_SR_WRITE_ENABLE</a>;                                            <span class="comment">/* sr write enable command */</span></div>
-<div class="line"><a name="l01340"></a><span class="lineno"> 1340</span>&#160;            res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 1, NULL, 0);                           <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l01341"></a><span class="lineno"> 1341</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                                <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l01342"></a><span class="lineno"> 1342</span>&#160;            {</div>
-<div class="line"><a name="l01343"></a><span class="lineno"> 1343</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                                   <span class="comment">/* write enable failed */</span></div>
-<div class="line"><a name="l01344"></a><span class="lineno"> 1344</span>&#160;               </div>
-<div class="line"><a name="l01345"></a><span class="lineno"> 1345</span>&#160;                <span class="keywordflow">return</span> 1;                                                                                <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l01346"></a><span class="lineno"> 1346</span>&#160;            }</div>
-<div class="line"><a name="l01347"></a><span class="lineno"> 1347</span>&#160;            buf[0] = <a class="code" href="driver__w25qxx_8c.html#a6d099dc6afb59cc950d3abe96b840158">W25QXX_COMMAND_WRITE_STATUS_REG3</a>;                                                   <span class="comment">/* write status3 command */</span></div>
-<div class="line"><a name="l01348"></a><span class="lineno"> 1348</span>&#160;            buf[1] = status;                                                                             <span class="comment">/* set status */</span></div>
-<div class="line"><a name="l01349"></a><span class="lineno"> 1349</span>&#160;            res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 2, NULL, 0);                           <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l01350"></a><span class="lineno"> 1350</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                                <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l01351"></a><span class="lineno"> 1351</span>&#160;            {</div>
-<div class="line"><a name="l01352"></a><span class="lineno"> 1352</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: set status3 failed.\n&quot;</span>);                                    <span class="comment">/* set status3 failed */</span></div>
-<div class="line"><a name="l01353"></a><span class="lineno"> 1353</span>&#160;               </div>
-<div class="line"><a name="l01354"></a><span class="lineno"> 1354</span>&#160;                <span class="keywordflow">return</span> 1;                                                                                <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l01355"></a><span class="lineno"> 1355</span>&#160;            }</div>
-<div class="line"><a name="l01356"></a><span class="lineno"> 1356</span>&#160;            </div>
-<div class="line"><a name="l01357"></a><span class="lineno"> 1357</span>&#160;            timeout = 1000;                                                                              <span class="comment">/* max 1000 ms */</span></div>
-<div class="line"><a name="l01358"></a><span class="lineno"> 1358</span>&#160;            <span class="keywordflow">while</span> (timeout != 0)                                                                         <span class="comment">/* check timeout */</span></div>
-<div class="line"><a name="l01359"></a><span class="lineno"> 1359</span>&#160;            {</div>
-<div class="line"><a name="l01360"></a><span class="lineno"> 1360</span>&#160;                buf[0] = <a class="code" href="driver__w25qxx_8c.html#adf682969c34f4b31a87dd92dd18ccea3">W25QXX_COMMAND_READ_STATUS_REG1</a>;                                                <span class="comment">/* read status1 command */</span></div>
-<div class="line"><a name="l01361"></a><span class="lineno"> 1361</span>&#160;                res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 1,</div>
-<div class="line"><a name="l01362"></a><span class="lineno"> 1362</span>&#160;                                             (uint8_t *)&amp;status_check, 1);                               <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l01363"></a><span class="lineno"> 1363</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                            <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l01364"></a><span class="lineno"> 1364</span>&#160;                {</div>
-<div class="line"><a name="l01365"></a><span class="lineno"> 1365</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: get status1 failed.\n&quot;</span>);                                <span class="comment">/* get status1 failed */</span></div>
-<div class="line"><a name="l01366"></a><span class="lineno"> 1366</span>&#160;                   </div>
-<div class="line"><a name="l01367"></a><span class="lineno"> 1367</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                            <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l01368"></a><span class="lineno"> 1368</span>&#160;                }</div>
-<div class="line"><a name="l01369"></a><span class="lineno"> 1369</span>&#160;                <span class="keywordflow">if</span> ((status_check &amp; 0x01) == 0x00)                                                       <span class="comment">/* check status */</span></div>
-<div class="line"><a name="l01370"></a><span class="lineno"> 1370</span>&#160;                {</div>
-<div class="line"><a name="l01371"></a><span class="lineno"> 1371</span>&#160;                    <span class="keywordflow">break</span>;                                                                               <span class="comment">/* break */</span></div>
-<div class="line"><a name="l01372"></a><span class="lineno"> 1372</span>&#160;                }</div>
-<div class="line"><a name="l01373"></a><span class="lineno"> 1373</span>&#160;                timeout--;                                                                               <span class="comment">/* timeout-- */</span></div>
-<div class="line"><a name="l01374"></a><span class="lineno"> 1374</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a406c9433252b7366de417b7a60915c81">delay_ms</a>(1);                                                                     <span class="comment">/* delay 1 ms */</span></div>
-<div class="line"><a name="l01375"></a><span class="lineno"> 1375</span>&#160;            }</div>
-<div class="line"><a name="l01376"></a><span class="lineno"> 1376</span>&#160;            <span class="keywordflow">if</span> (timeout == 0)                                                                            <span class="comment">/* check timeout */</span></div>
-<div class="line"><a name="l01377"></a><span class="lineno"> 1377</span>&#160;            {</div>
-<div class="line"><a name="l01378"></a><span class="lineno"> 1378</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write status 3 timeout.\n&quot;</span>);                                <span class="comment">/* write status 3 timeout */</span></div>
-<div class="line"><a name="l01379"></a><span class="lineno"> 1379</span>&#160;               </div>
-<div class="line"><a name="l01380"></a><span class="lineno"> 1380</span>&#160;                <span class="keywordflow">return</span> 4;                                                                                <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l01381"></a><span class="lineno"> 1381</span>&#160;            }</div>
-<div class="line"><a name="l01382"></a><span class="lineno"> 1382</span>&#160;            <span class="keywordflow">else</span></div>
-<div class="line"><a name="l01383"></a><span class="lineno"> 1383</span>&#160;            {</div>
-<div class="line"><a name="l01384"></a><span class="lineno"> 1384</span>&#160;                <span class="keywordflow">return</span> 0;                                                                                <span class="comment">/* success return 0 */</span></div>
-<div class="line"><a name="l01385"></a><span class="lineno"> 1385</span>&#160;            }</div>
-<div class="line"><a name="l01386"></a><span class="lineno"> 1386</span>&#160;        }</div>
-<div class="line"><a name="l01387"></a><span class="lineno"> 1387</span>&#160;    }</div>
-<div class="line"><a name="l01388"></a><span class="lineno"> 1388</span>&#160;    <span class="keywordflow">else</span>                                                                                                 <span class="comment">/* qspi interface */</span></div>
-<div class="line"><a name="l01389"></a><span class="lineno"> 1389</span>&#160;    {</div>
-<div class="line"><a name="l01390"></a><span class="lineno"> 1390</span>&#160;        res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#a7c9e980e30f499dd97b02935c91f2c02">W25QXX_COMMAND_VOLATILE_SR_WRITE_ENABLE</a>, 4,</div>
-<div class="line"><a name="l01391"></a><span class="lineno"> 1391</span>&#160;                                       0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l01392"></a><span class="lineno"> 1392</span>&#160;                                       0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l01393"></a><span class="lineno"> 1393</span>&#160;                                       0x00, NULL, 0x00,</div>
-<div class="line"><a name="l01394"></a><span class="lineno"> 1394</span>&#160;                                       NULL, 0x00, 0x00);                                                <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l01395"></a><span class="lineno"> 1395</span>&#160;        <span class="keywordflow">if</span> (res != 0)                                                                                    <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l01396"></a><span class="lineno"> 1396</span>&#160;        {</div>
-<div class="line"><a name="l01397"></a><span class="lineno"> 1397</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                                       <span class="comment">/* write enable failed */</span></div>
-<div class="line"><a name="l01398"></a><span class="lineno"> 1398</span>&#160;           </div>
-<div class="line"><a name="l01399"></a><span class="lineno"> 1399</span>&#160;            <span class="keywordflow">return</span> 1;                                                                                    <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l01400"></a><span class="lineno"> 1400</span>&#160;        }</div>
-<div class="line"><a name="l01401"></a><span class="lineno"> 1401</span>&#160;        buf[0] = status;                                                                                 <span class="comment">/* set status */</span></div>
-<div class="line"><a name="l01402"></a><span class="lineno"> 1402</span>&#160;        res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#a6d099dc6afb59cc950d3abe96b840158">W25QXX_COMMAND_WRITE_STATUS_REG3</a>, 4,</div>
-<div class="line"><a name="l01403"></a><span class="lineno"> 1403</span>&#160;                                       0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l01404"></a><span class="lineno"> 1404</span>&#160;                                       0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l01405"></a><span class="lineno"> 1405</span>&#160;                                       0x00, (uint8_t *)buf, 1,</div>
-<div class="line"><a name="l01406"></a><span class="lineno"> 1406</span>&#160;                                       NULL, 0x00, 4);                                                   <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l01407"></a><span class="lineno"> 1407</span>&#160;        <span class="keywordflow">if</span> (res != 0)                                                                                    <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l01408"></a><span class="lineno"> 1408</span>&#160;        {</div>
-<div class="line"><a name="l01409"></a><span class="lineno"> 1409</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: set status3 failed.\n&quot;</span>);                                        <span class="comment">/* set status3 failed */</span></div>
-<div class="line"><a name="l01410"></a><span class="lineno"> 1410</span>&#160;           </div>
-<div class="line"><a name="l01411"></a><span class="lineno"> 1411</span>&#160;            <span class="keywordflow">return</span> 1;                                                                                    <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l01412"></a><span class="lineno"> 1412</span>&#160;        }</div>
-<div class="line"><a name="l01413"></a><span class="lineno"> 1413</span>&#160;        </div>
-<div class="line"><a name="l01414"></a><span class="lineno"> 1414</span>&#160;        timeout = 1000;                                                                                  <span class="comment">/* max 1000 ms */</span></div>
-<div class="line"><a name="l01415"></a><span class="lineno"> 1415</span>&#160;        <span class="keywordflow">while</span> (timeout != 0)                                                                             <span class="comment">/* check timeout */</span></div>
-<div class="line"><a name="l01416"></a><span class="lineno"> 1416</span>&#160;        {</div>
-<div class="line"><a name="l01417"></a><span class="lineno"> 1417</span>&#160;            res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#adf682969c34f4b31a87dd92dd18ccea3">W25QXX_COMMAND_READ_STATUS_REG1</a>, 4,</div>
-<div class="line"><a name="l01418"></a><span class="lineno"> 1418</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l01419"></a><span class="lineno"> 1419</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l01420"></a><span class="lineno"> 1420</span>&#160;                                           0x00, NULL, 0x00,</div>
-<div class="line"><a name="l01421"></a><span class="lineno"> 1421</span>&#160;                                          (uint8_t *)&amp;status_check, 1, 4);                               <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l01422"></a><span class="lineno"> 1422</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                                <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l01423"></a><span class="lineno"> 1423</span>&#160;            {</div>
-<div class="line"><a name="l01424"></a><span class="lineno"> 1424</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: get status1 failed.\n&quot;</span>);                                    <span class="comment">/* get status1 failed */</span></div>
-<div class="line"><a name="l01425"></a><span class="lineno"> 1425</span>&#160;               </div>
-<div class="line"><a name="l01426"></a><span class="lineno"> 1426</span>&#160;                <span class="keywordflow">return</span> 1;                                                                                <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l01427"></a><span class="lineno"> 1427</span>&#160;            }</div>
-<div class="line"><a name="l01428"></a><span class="lineno"> 1428</span>&#160;            <span class="keywordflow">if</span> ((status_check &amp; 0x01) == 0x00)                                                           <span class="comment">/* check status */</span></div>
-<div class="line"><a name="l01429"></a><span class="lineno"> 1429</span>&#160;            {</div>
-<div class="line"><a name="l01430"></a><span class="lineno"> 1430</span>&#160;                <span class="keywordflow">break</span>;                                                                                   <span class="comment">/* break */</span></div>
-<div class="line"><a name="l01431"></a><span class="lineno"> 1431</span>&#160;            }</div>
-<div class="line"><a name="l01432"></a><span class="lineno"> 1432</span>&#160;            timeout--;                                                                                   <span class="comment">/* timeout-- */</span></div>
-<div class="line"><a name="l01433"></a><span class="lineno"> 1433</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a406c9433252b7366de417b7a60915c81">delay_ms</a>(1);                                                                         <span class="comment">/* delay 1 ms */</span></div>
-<div class="line"><a name="l01434"></a><span class="lineno"> 1434</span>&#160;        }</div>
-<div class="line"><a name="l01435"></a><span class="lineno"> 1435</span>&#160;        <span class="keywordflow">if</span> (timeout == 0)                                                                                <span class="comment">/* check timeout */</span></div>
-<div class="line"><a name="l01436"></a><span class="lineno"> 1436</span>&#160;        {</div>
-<div class="line"><a name="l01437"></a><span class="lineno"> 1437</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write status 3 timeout.\n&quot;</span>);                                    <span class="comment">/* write status 3 timeout */</span></div>
-<div class="line"><a name="l01438"></a><span class="lineno"> 1438</span>&#160;           </div>
-<div class="line"><a name="l01439"></a><span class="lineno"> 1439</span>&#160;            <span class="keywordflow">return</span> 4;                                                                                    <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l01440"></a><span class="lineno"> 1440</span>&#160;        }</div>
-<div class="line"><a name="l01441"></a><span class="lineno"> 1441</span>&#160;        <span class="keywordflow">else</span></div>
-<div class="line"><a name="l01442"></a><span class="lineno"> 1442</span>&#160;        {</div>
-<div class="line"><a name="l01443"></a><span class="lineno"> 1443</span>&#160;            <span class="keywordflow">return</span> 0;                                                                                    <span class="comment">/* success return 0 */</span></div>
-<div class="line"><a name="l01444"></a><span class="lineno"> 1444</span>&#160;        }</div>
-<div class="line"><a name="l01445"></a><span class="lineno"> 1445</span>&#160;    }</div>
-<div class="line"><a name="l01446"></a><span class="lineno"> 1446</span>&#160;}</div>
-<div class="line"><a name="l01447"></a><span class="lineno"> 1447</span>&#160; </div>
-<div class="line"><a name="l01459"></a><span class="lineno"><a class="line" href="group__w25qxx__basic__driver.html#ga0862833b36831f92684980b2e21f2e39"> 1459</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__basic__driver.html#ga0862833b36831f92684980b2e21f2e39">w25qxx_chip_erase</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle)</div>
-<div class="line"><a name="l01460"></a><span class="lineno"> 1460</span>&#160;{</div>
-<div class="line"><a name="l01461"></a><span class="lineno"> 1461</span>&#160;    uint8_t res;</div>
-<div class="line"><a name="l01462"></a><span class="lineno"> 1462</span>&#160;    uint8_t status;</div>
-<div class="line"><a name="l01463"></a><span class="lineno"> 1463</span>&#160;    uint8_t buf[1];</div>
-<div class="line"><a name="l01464"></a><span class="lineno"> 1464</span>&#160;    uint32_t timeout;</div>
-<div class="line"><a name="l01465"></a><span class="lineno"> 1465</span>&#160;    </div>
-<div class="line"><a name="l01466"></a><span class="lineno"> 1466</span>&#160;    <span class="keywordflow">if</span> (handle == NULL)                                                                            <span class="comment">/* check handle */</span></div>
-<div class="line"><a name="l01467"></a><span class="lineno"> 1467</span>&#160;    {</div>
-<div class="line"><a name="l01468"></a><span class="lineno"> 1468</span>&#160;        <span class="keywordflow">return</span> 2;                                                                                  <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l01469"></a><span class="lineno"> 1469</span>&#160;    }   </div>
-<div class="line"><a name="l01470"></a><span class="lineno"> 1470</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">inited</a> != 1)                                                                       <span class="comment">/* check handle initialization */</span></div>
-<div class="line"><a name="l01471"></a><span class="lineno"> 1471</span>&#160;    {</div>
-<div class="line"><a name="l01472"></a><span class="lineno"> 1472</span>&#160;        <span class="keywordflow">return</span> 3;                                                                                  <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l01473"></a><span class="lineno"> 1473</span>&#160;    }</div>
-<div class="line"><a name="l01474"></a><span class="lineno"> 1474</span>&#160; </div>
-<div class="line"><a name="l01475"></a><span class="lineno"> 1475</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>)                                                  <span class="comment">/* spi interface */</span></div>
-<div class="line"><a name="l01476"></a><span class="lineno"> 1476</span>&#160;    {</div>
-<div class="line"><a name="l01477"></a><span class="lineno"> 1477</span>&#160;        <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">dual_quad_spi_enable</a> != 0)                                                     <span class="comment">/* enable dual quad spi */</span></div>
-<div class="line"><a name="l01478"></a><span class="lineno"> 1478</span>&#160;        {</div>
-<div class="line"><a name="l01479"></a><span class="lineno"> 1479</span>&#160;            res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>, 1,</div>
-<div class="line"><a name="l01480"></a><span class="lineno"> 1480</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l01481"></a><span class="lineno"> 1481</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l01482"></a><span class="lineno"> 1482</span>&#160;                                           0x00, NULL, 0x00,</div>
-<div class="line"><a name="l01483"></a><span class="lineno"> 1483</span>&#160;                                           NULL, 0x00, 0x00);                                      <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l01484"></a><span class="lineno"> 1484</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                          <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l01485"></a><span class="lineno"> 1485</span>&#160;            {</div>
-<div class="line"><a name="l01486"></a><span class="lineno"> 1486</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                             <span class="comment">/* write enable failed */</span></div>
-<div class="line"><a name="l01487"></a><span class="lineno"> 1487</span>&#160;               </div>
-<div class="line"><a name="l01488"></a><span class="lineno"> 1488</span>&#160;                <span class="keywordflow">return</span> 1;                                                                          <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l01489"></a><span class="lineno"> 1489</span>&#160;            }</div>
-<div class="line"><a name="l01490"></a><span class="lineno"> 1490</span>&#160;            res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#a63ec9ecd709fcb69107756f253616a6e">W25QXX_COMMAND_CHIP_ERASE</a>, 1,</div>
-<div class="line"><a name="l01491"></a><span class="lineno"> 1491</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l01492"></a><span class="lineno"> 1492</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l01493"></a><span class="lineno"> 1493</span>&#160;                                           0x00, NULL, 0x00,</div>
-<div class="line"><a name="l01494"></a><span class="lineno"> 1494</span>&#160;                                           NULL, 0x00, 0x00);                                      <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l01495"></a><span class="lineno"> 1495</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                          <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l01496"></a><span class="lineno"> 1496</span>&#160;            {</div>
-<div class="line"><a name="l01497"></a><span class="lineno"> 1497</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: chip erase failed.\n&quot;</span>);                               <span class="comment">/* chip erase failed */</span></div>
-<div class="line"><a name="l01498"></a><span class="lineno"> 1498</span>&#160;               </div>
-<div class="line"><a name="l01499"></a><span class="lineno"> 1499</span>&#160;                <span class="keywordflow">return</span> 1;                                                                          <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l01500"></a><span class="lineno"> 1500</span>&#160;            }</div>
-<div class="line"><a name="l01501"></a><span class="lineno"> 1501</span>&#160;            timeout = 400 * 1000;                                                                  <span class="comment">/* max 400s */</span></div>
-<div class="line"><a name="l01502"></a><span class="lineno"> 1502</span>&#160;            <span class="keywordflow">while</span> (timeout != 0)                                                                   <span class="comment">/* check timeout */</span></div>
-<div class="line"><a name="l01503"></a><span class="lineno"> 1503</span>&#160;            {</div>
-<div class="line"><a name="l01504"></a><span class="lineno"> 1504</span>&#160;                res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#adf682969c34f4b31a87dd92dd18ccea3">W25QXX_COMMAND_READ_STATUS_REG1</a>, 1,</div>
-<div class="line"><a name="l01505"></a><span class="lineno"> 1505</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l01506"></a><span class="lineno"> 1506</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l01507"></a><span class="lineno"> 1507</span>&#160;                                               0x00, NULL, 0x00,</div>
-<div class="line"><a name="l01508"></a><span class="lineno"> 1508</span>&#160;                                              (uint8_t *)&amp;status, 1, 1);                           <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l01509"></a><span class="lineno"> 1509</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                      <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l01510"></a><span class="lineno"> 1510</span>&#160;                {</div>
-<div class="line"><a name="l01511"></a><span class="lineno"> 1511</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: get status1 failed.\n&quot;</span>);                          <span class="comment">/* get status1 failed */</span></div>
-<div class="line"><a name="l01512"></a><span class="lineno"> 1512</span>&#160;                   </div>
-<div class="line"><a name="l01513"></a><span class="lineno"> 1513</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                      <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l01514"></a><span class="lineno"> 1514</span>&#160;                }</div>
-<div class="line"><a name="l01515"></a><span class="lineno"> 1515</span>&#160;                <span class="keywordflow">if</span> ((status &amp; 0x01) == 0x00)                                                       <span class="comment">/* check status */</span></div>
-<div class="line"><a name="l01516"></a><span class="lineno"> 1516</span>&#160;                {</div>
-<div class="line"><a name="l01517"></a><span class="lineno"> 1517</span>&#160;                    <span class="keywordflow">break</span>;                                                                         <span class="comment">/* break */</span></div>
-<div class="line"><a name="l01518"></a><span class="lineno"> 1518</span>&#160;                }</div>
-<div class="line"><a name="l01519"></a><span class="lineno"> 1519</span>&#160;                timeout--;                                                                         <span class="comment">/* timeout-- */</span></div>
-<div class="line"><a name="l01520"></a><span class="lineno"> 1520</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a406c9433252b7366de417b7a60915c81">delay_ms</a>(1);                                                               <span class="comment">/* delay 1 ms */</span></div>
-<div class="line"><a name="l01521"></a><span class="lineno"> 1521</span>&#160;            }</div>
-<div class="line"><a name="l01522"></a><span class="lineno"> 1522</span>&#160;            <span class="keywordflow">if</span> (timeout == 0)                                                                      <span class="comment">/* check timeout */</span></div>
-<div class="line"><a name="l01523"></a><span class="lineno"> 1523</span>&#160;            {</div>
-<div class="line"><a name="l01524"></a><span class="lineno"> 1524</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: erase timeout.\n&quot;</span>);                                   <span class="comment">/* erase timeout */</span></div>
-<div class="line"><a name="l01525"></a><span class="lineno"> 1525</span>&#160;               </div>
-<div class="line"><a name="l01526"></a><span class="lineno"> 1526</span>&#160;                <span class="keywordflow">return</span> 4;                                                                          <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l01527"></a><span class="lineno"> 1527</span>&#160;            }</div>
-<div class="line"><a name="l01528"></a><span class="lineno"> 1528</span>&#160;            <span class="keywordflow">else</span></div>
-<div class="line"><a name="l01529"></a><span class="lineno"> 1529</span>&#160;            {</div>
-<div class="line"><a name="l01530"></a><span class="lineno"> 1530</span>&#160;                <span class="keywordflow">return</span> 0;                                                                          <span class="comment">/* success return 0 */</span></div>
-<div class="line"><a name="l01531"></a><span class="lineno"> 1531</span>&#160;            }</div>
-<div class="line"><a name="l01532"></a><span class="lineno"> 1532</span>&#160;        }</div>
-<div class="line"><a name="l01533"></a><span class="lineno"> 1533</span>&#160;        <span class="keywordflow">else</span>                                                                                       <span class="comment">/* single spi */</span></div>
-<div class="line"><a name="l01534"></a><span class="lineno"> 1534</span>&#160;        {</div>
-<div class="line"><a name="l01535"></a><span class="lineno"> 1535</span>&#160;            buf[0] = <a class="code" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>;                                                  <span class="comment">/* write enable command */</span></div>
-<div class="line"><a name="l01536"></a><span class="lineno"> 1536</span>&#160;            res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 1, NULL, 0);                     <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l01537"></a><span class="lineno"> 1537</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                          <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l01538"></a><span class="lineno"> 1538</span>&#160;            {</div>
-<div class="line"><a name="l01539"></a><span class="lineno"> 1539</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                             <span class="comment">/* write enable failed */</span></div>
-<div class="line"><a name="l01540"></a><span class="lineno"> 1540</span>&#160;               </div>
-<div class="line"><a name="l01541"></a><span class="lineno"> 1541</span>&#160;                <span class="keywordflow">return</span> 1;                                                                          <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l01542"></a><span class="lineno"> 1542</span>&#160;            }</div>
-<div class="line"><a name="l01543"></a><span class="lineno"> 1543</span>&#160;            buf[0] = <a class="code" href="driver__w25qxx_8c.html#a63ec9ecd709fcb69107756f253616a6e">W25QXX_COMMAND_CHIP_ERASE</a>;                                                    <span class="comment">/* chip erase command */</span></div>
-<div class="line"><a name="l01544"></a><span class="lineno"> 1544</span>&#160;            res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 1, NULL, 0);                     <span class="comment">/* spi qspi write read */</span></div>
-<div class="line"><a name="l01545"></a><span class="lineno"> 1545</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                          <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l01546"></a><span class="lineno"> 1546</span>&#160;            {</div>
-<div class="line"><a name="l01547"></a><span class="lineno"> 1547</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: chip erase failed.\n&quot;</span>);                               <span class="comment">/* chip erase failed */</span></div>
-<div class="line"><a name="l01548"></a><span class="lineno"> 1548</span>&#160;               </div>
-<div class="line"><a name="l01549"></a><span class="lineno"> 1549</span>&#160;                <span class="keywordflow">return</span> 1;                                                                          <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l01550"></a><span class="lineno"> 1550</span>&#160;            }</div>
-<div class="line"><a name="l01551"></a><span class="lineno"> 1551</span>&#160;            timeout = 400 * 1000;                                                                  <span class="comment">/* max 400s */</span></div>
-<div class="line"><a name="l01552"></a><span class="lineno"> 1552</span>&#160;            <span class="keywordflow">while</span> (timeout != 0)                                                                   <span class="comment">/* check timeout */</span></div>
-<div class="line"><a name="l01553"></a><span class="lineno"> 1553</span>&#160;            {</div>
-<div class="line"><a name="l01554"></a><span class="lineno"> 1554</span>&#160;                buf[0] = <a class="code" href="driver__w25qxx_8c.html#adf682969c34f4b31a87dd92dd18ccea3">W25QXX_COMMAND_READ_STATUS_REG1</a>;                                          <span class="comment">/* read status1 command */</span></div>
-<div class="line"><a name="l01555"></a><span class="lineno"> 1555</span>&#160;                res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 1,</div>
-<div class="line"><a name="l01556"></a><span class="lineno"> 1556</span>&#160;                                             (uint8_t *)&amp;status, 1);                               <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l01557"></a><span class="lineno"> 1557</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                      <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l01558"></a><span class="lineno"> 1558</span>&#160;                {</div>
-<div class="line"><a name="l01559"></a><span class="lineno"> 1559</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: get status1 failed.\n&quot;</span>);                          <span class="comment">/* get status1 failed */</span></div>
-<div class="line"><a name="l01560"></a><span class="lineno"> 1560</span>&#160;                   </div>
-<div class="line"><a name="l01561"></a><span class="lineno"> 1561</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                      <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l01562"></a><span class="lineno"> 1562</span>&#160;                }</div>
-<div class="line"><a name="l01563"></a><span class="lineno"> 1563</span>&#160;                <span class="keywordflow">if</span> ((status &amp; 0x01) == 0x00)                                                       <span class="comment">/* check status */</span></div>
-<div class="line"><a name="l01564"></a><span class="lineno"> 1564</span>&#160;                {</div>
-<div class="line"><a name="l01565"></a><span class="lineno"> 1565</span>&#160;                    <span class="keywordflow">break</span>;                                                                         <span class="comment">/* break */</span></div>
-<div class="line"><a name="l01566"></a><span class="lineno"> 1566</span>&#160;                }</div>
-<div class="line"><a name="l01567"></a><span class="lineno"> 1567</span>&#160;                timeout--;                                                                         <span class="comment">/* timeout-- */</span></div>
-<div class="line"><a name="l01568"></a><span class="lineno"> 1568</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a406c9433252b7366de417b7a60915c81">delay_ms</a>(1);                                                               <span class="comment">/* delay 1 ms */</span></div>
-<div class="line"><a name="l01569"></a><span class="lineno"> 1569</span>&#160;            }</div>
-<div class="line"><a name="l01570"></a><span class="lineno"> 1570</span>&#160;            <span class="keywordflow">if</span> (timeout == 0)                                                                      <span class="comment">/* check timeout */</span></div>
-<div class="line"><a name="l01571"></a><span class="lineno"> 1571</span>&#160;            {</div>
-<div class="line"><a name="l01572"></a><span class="lineno"> 1572</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: erase timeout.\n&quot;</span>);                                   <span class="comment">/* erase timeout */</span></div>
-<div class="line"><a name="l01573"></a><span class="lineno"> 1573</span>&#160;               </div>
-<div class="line"><a name="l01574"></a><span class="lineno"> 1574</span>&#160;                <span class="keywordflow">return</span> 4;                                                                          <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l01575"></a><span class="lineno"> 1575</span>&#160;            }</div>
-<div class="line"><a name="l01576"></a><span class="lineno"> 1576</span>&#160;            <span class="keywordflow">else</span></div>
-<div class="line"><a name="l01577"></a><span class="lineno"> 1577</span>&#160;            {</div>
-<div class="line"><a name="l01578"></a><span class="lineno"> 1578</span>&#160;                <span class="keywordflow">return</span> 0;                                                                          <span class="comment">/* success return 0 */</span></div>
-<div class="line"><a name="l01579"></a><span class="lineno"> 1579</span>&#160;            }</div>
-<div class="line"><a name="l01580"></a><span class="lineno"> 1580</span>&#160;        }</div>
-<div class="line"><a name="l01581"></a><span class="lineno"> 1581</span>&#160;    }</div>
-<div class="line"><a name="l01582"></a><span class="lineno"> 1582</span>&#160;    <span class="keywordflow">else</span>                                                                                           <span class="comment">/* qspi interface */</span></div>
-<div class="line"><a name="l01583"></a><span class="lineno"> 1583</span>&#160;    {</div>
-<div class="line"><a name="l01584"></a><span class="lineno"> 1584</span>&#160;        res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>, 4,</div>
-<div class="line"><a name="l01585"></a><span class="lineno"> 1585</span>&#160;                                       0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l01586"></a><span class="lineno"> 1586</span>&#160;                                       0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l01587"></a><span class="lineno"> 1587</span>&#160;                                       0x00, NULL, 0x00,</div>
-<div class="line"><a name="l01588"></a><span class="lineno"> 1588</span>&#160;                                       NULL, 0x00, 0x00);                                          <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l01589"></a><span class="lineno"> 1589</span>&#160;        <span class="keywordflow">if</span> (res != 0)                                                                              <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l01590"></a><span class="lineno"> 1590</span>&#160;        {</div>
-<div class="line"><a name="l01591"></a><span class="lineno"> 1591</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                                 <span class="comment">/* write enable failed */</span></div>
-<div class="line"><a name="l01592"></a><span class="lineno"> 1592</span>&#160;           </div>
-<div class="line"><a name="l01593"></a><span class="lineno"> 1593</span>&#160;            <span class="keywordflow">return</span> 1;                                                                              <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l01594"></a><span class="lineno"> 1594</span>&#160;        }</div>
-<div class="line"><a name="l01595"></a><span class="lineno"> 1595</span>&#160;        res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#a63ec9ecd709fcb69107756f253616a6e">W25QXX_COMMAND_CHIP_ERASE</a>, 4,</div>
-<div class="line"><a name="l01596"></a><span class="lineno"> 1596</span>&#160;                                       0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l01597"></a><span class="lineno"> 1597</span>&#160;                                       0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l01598"></a><span class="lineno"> 1598</span>&#160;                                       0x00, NULL, 0x00,</div>
-<div class="line"><a name="l01599"></a><span class="lineno"> 1599</span>&#160;                                       NULL, 0x00, 0x00);                                          <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l01600"></a><span class="lineno"> 1600</span>&#160;        <span class="keywordflow">if</span> (res != 0)                                                                              <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l01601"></a><span class="lineno"> 1601</span>&#160;        {</div>
-<div class="line"><a name="l01602"></a><span class="lineno"> 1602</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: chip erase failed.\n&quot;</span>);                                   <span class="comment">/* chip erase failed */</span></div>
-<div class="line"><a name="l01603"></a><span class="lineno"> 1603</span>&#160;           </div>
-<div class="line"><a name="l01604"></a><span class="lineno"> 1604</span>&#160;            <span class="keywordflow">return</span> 1;                                                                              <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l01605"></a><span class="lineno"> 1605</span>&#160;        }</div>
-<div class="line"><a name="l01606"></a><span class="lineno"> 1606</span>&#160;        timeout = 400 * 1000;                                                                      <span class="comment">/* max 400s */</span></div>
-<div class="line"><a name="l01607"></a><span class="lineno"> 1607</span>&#160;        <span class="keywordflow">while</span> (timeout != 0)                                                                       <span class="comment">/* check timeout */</span></div>
-<div class="line"><a name="l01608"></a><span class="lineno"> 1608</span>&#160;        {</div>
-<div class="line"><a name="l01609"></a><span class="lineno"> 1609</span>&#160;            res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#adf682969c34f4b31a87dd92dd18ccea3">W25QXX_COMMAND_READ_STATUS_REG1</a>, 4,</div>
-<div class="line"><a name="l01610"></a><span class="lineno"> 1610</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l01611"></a><span class="lineno"> 1611</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l01612"></a><span class="lineno"> 1612</span>&#160;                                           0x00, NULL, 0x00,</div>
-<div class="line"><a name="l01613"></a><span class="lineno"> 1613</span>&#160;                                          (uint8_t *)&amp;status, 1, 4);                               <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l01614"></a><span class="lineno"> 1614</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                          <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l01615"></a><span class="lineno"> 1615</span>&#160;            {</div>
-<div class="line"><a name="l01616"></a><span class="lineno"> 1616</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: get status1 failed.\n&quot;</span>);                              <span class="comment">/* get status1 failed */</span></div>
-<div class="line"><a name="l01617"></a><span class="lineno"> 1617</span>&#160;               </div>
-<div class="line"><a name="l01618"></a><span class="lineno"> 1618</span>&#160;                <span class="keywordflow">return</span> 1;                                                                          <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l01619"></a><span class="lineno"> 1619</span>&#160;            }</div>
-<div class="line"><a name="l01620"></a><span class="lineno"> 1620</span>&#160;            <span class="keywordflow">if</span> ((status &amp; 0x01) == 0x00)                                                           <span class="comment">/* check status */</span></div>
-<div class="line"><a name="l01621"></a><span class="lineno"> 1621</span>&#160;            {</div>
-<div class="line"><a name="l01622"></a><span class="lineno"> 1622</span>&#160;                <span class="keywordflow">break</span>;                                                                             <span class="comment">/* break */</span></div>
-<div class="line"><a name="l01623"></a><span class="lineno"> 1623</span>&#160;            }</div>
-<div class="line"><a name="l01624"></a><span class="lineno"> 1624</span>&#160;            timeout--;                                                                             <span class="comment">/* timeout-- */</span></div>
-<div class="line"><a name="l01625"></a><span class="lineno"> 1625</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a406c9433252b7366de417b7a60915c81">delay_ms</a>(1);                                                                   <span class="comment">/* delay 1 ms */</span></div>
-<div class="line"><a name="l01626"></a><span class="lineno"> 1626</span>&#160;        }</div>
-<div class="line"><a name="l01627"></a><span class="lineno"> 1627</span>&#160;        <span class="keywordflow">if</span> (timeout == 0)                                                                          <span class="comment">/* check timeout */</span></div>
-<div class="line"><a name="l01628"></a><span class="lineno"> 1628</span>&#160;        {</div>
-<div class="line"><a name="l01629"></a><span class="lineno"> 1629</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: erase timeout.\n&quot;</span>);                                       <span class="comment">/* erase timeout */</span></div>
-<div class="line"><a name="l01630"></a><span class="lineno"> 1630</span>&#160;           </div>
-<div class="line"><a name="l01631"></a><span class="lineno"> 1631</span>&#160;            <span class="keywordflow">return</span> 4;                                                                              <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l01632"></a><span class="lineno"> 1632</span>&#160;        }</div>
-<div class="line"><a name="l01633"></a><span class="lineno"> 1633</span>&#160;        <span class="keywordflow">else</span></div>
-<div class="line"><a name="l01634"></a><span class="lineno"> 1634</span>&#160;        {</div>
-<div class="line"><a name="l01635"></a><span class="lineno"> 1635</span>&#160;            <span class="keywordflow">return</span> 0;                                                                              <span class="comment">/* success return 0 */</span></div>
-<div class="line"><a name="l01636"></a><span class="lineno"> 1636</span>&#160;        }</div>
-<div class="line"><a name="l01637"></a><span class="lineno"> 1637</span>&#160;    }</div>
-<div class="line"><a name="l01638"></a><span class="lineno"> 1638</span>&#160;}</div>
-<div class="line"><a name="l01639"></a><span class="lineno"> 1639</span>&#160; </div>
-<div class="line"><a name="l01650"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#gac7fbabc574c250eec100be861f5918ff"> 1650</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__advance__driver.html#gac7fbabc574c250eec100be861f5918ff">w25qxx_erase_program_suspend</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle)</div>
-<div class="line"><a name="l01651"></a><span class="lineno"> 1651</span>&#160;{</div>
-<div class="line"><a name="l01652"></a><span class="lineno"> 1652</span>&#160;    uint8_t res;</div>
-<div class="line"><a name="l01653"></a><span class="lineno"> 1653</span>&#160;    uint8_t buf[1];</div>
-<div class="line"><a name="l01654"></a><span class="lineno"> 1654</span>&#160;    </div>
-<div class="line"><a name="l01655"></a><span class="lineno"> 1655</span>&#160;    <span class="keywordflow">if</span> (handle == NULL)                                                                       <span class="comment">/* check handle */</span></div>
-<div class="line"><a name="l01656"></a><span class="lineno"> 1656</span>&#160;    {</div>
-<div class="line"><a name="l01657"></a><span class="lineno"> 1657</span>&#160;        <span class="keywordflow">return</span> 2;                                                                             <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l01658"></a><span class="lineno"> 1658</span>&#160;    }   </div>
-<div class="line"><a name="l01659"></a><span class="lineno"> 1659</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">inited</a> != 1)                                                                  <span class="comment">/* check handle initialization */</span></div>
-<div class="line"><a name="l01660"></a><span class="lineno"> 1660</span>&#160;    {</div>
-<div class="line"><a name="l01661"></a><span class="lineno"> 1661</span>&#160;        <span class="keywordflow">return</span> 3;                                                                             <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l01662"></a><span class="lineno"> 1662</span>&#160;    }</div>
-<div class="line"><a name="l01663"></a><span class="lineno"> 1663</span>&#160;    </div>
-<div class="line"><a name="l01664"></a><span class="lineno"> 1664</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>)                                             <span class="comment">/* spi interface */</span></div>
-<div class="line"><a name="l01665"></a><span class="lineno"> 1665</span>&#160;    {</div>
-<div class="line"><a name="l01666"></a><span class="lineno"> 1666</span>&#160;        <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">dual_quad_spi_enable</a> != 0)                                                <span class="comment">/* enable dual quad spi */</span></div>
-<div class="line"><a name="l01667"></a><span class="lineno"> 1667</span>&#160;        {</div>
-<div class="line"><a name="l01668"></a><span class="lineno"> 1668</span>&#160;            res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#a43f9a1e3c03d4a7d2a991e81f0e89f51">W25QXX_COMMAND_ERASE_PROGRAM_SUSPEND</a>, 1,</div>
-<div class="line"><a name="l01669"></a><span class="lineno"> 1669</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l01670"></a><span class="lineno"> 1670</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l01671"></a><span class="lineno"> 1671</span>&#160;                                           0x00, NULL, 0x00,</div>
-<div class="line"><a name="l01672"></a><span class="lineno"> 1672</span>&#160;                                           NULL, 0x00, 0x00);                                 <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l01673"></a><span class="lineno"> 1673</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                     <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l01674"></a><span class="lineno"> 1674</span>&#160;            {</div>
-<div class="line"><a name="l01675"></a><span class="lineno"> 1675</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: erase program suspend failed.\n&quot;</span>);               <span class="comment">/* erase program suspend failed */</span></div>
-<div class="line"><a name="l01676"></a><span class="lineno"> 1676</span>&#160;               </div>
-<div class="line"><a name="l01677"></a><span class="lineno"> 1677</span>&#160;                <span class="keywordflow">return</span> 1;                                                                     <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l01678"></a><span class="lineno"> 1678</span>&#160;            }</div>
-<div class="line"><a name="l01679"></a><span class="lineno"> 1679</span>&#160;        }</div>
-<div class="line"><a name="l01680"></a><span class="lineno"> 1680</span>&#160;        <span class="keywordflow">else</span>                                                                                  <span class="comment">/* single spi */</span></div>
-<div class="line"><a name="l01681"></a><span class="lineno"> 1681</span>&#160;        {</div>
-<div class="line"><a name="l01682"></a><span class="lineno"> 1682</span>&#160;            buf[0] = <a class="code" href="driver__w25qxx_8c.html#a43f9a1e3c03d4a7d2a991e81f0e89f51">W25QXX_COMMAND_ERASE_PROGRAM_SUSPEND</a>;                                    <span class="comment">/* erase program suspend command */</span></div>
-<div class="line"><a name="l01683"></a><span class="lineno"> 1683</span>&#160;            res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 1, NULL, 0);                <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l01684"></a><span class="lineno"> 1684</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                     <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l01685"></a><span class="lineno"> 1685</span>&#160;            {</div>
-<div class="line"><a name="l01686"></a><span class="lineno"> 1686</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: erase program suspend failed.\n&quot;</span>);               <span class="comment">/* erase program suspend failed */</span></div>
-<div class="line"><a name="l01687"></a><span class="lineno"> 1687</span>&#160;               </div>
-<div class="line"><a name="l01688"></a><span class="lineno"> 1688</span>&#160;                <span class="keywordflow">return</span> 1;                                                                     <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l01689"></a><span class="lineno"> 1689</span>&#160;            }</div>
-<div class="line"><a name="l01690"></a><span class="lineno"> 1690</span>&#160;            </div>
-<div class="line"><a name="l01691"></a><span class="lineno"> 1691</span>&#160;            <span class="keywordflow">return</span> 0;                                                                         <span class="comment">/* success return 0 */</span></div>
-<div class="line"><a name="l01692"></a><span class="lineno"> 1692</span>&#160;        }</div>
-<div class="line"><a name="l01693"></a><span class="lineno"> 1693</span>&#160;    }</div>
-<div class="line"><a name="l01694"></a><span class="lineno"> 1694</span>&#160;    <span class="keywordflow">else</span>                                                                                      <span class="comment">/* qspi interface */</span></div>
-<div class="line"><a name="l01695"></a><span class="lineno"> 1695</span>&#160;    {</div>
-<div class="line"><a name="l01696"></a><span class="lineno"> 1696</span>&#160;        res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#a43f9a1e3c03d4a7d2a991e81f0e89f51">W25QXX_COMMAND_ERASE_PROGRAM_SUSPEND</a>, 4,</div>
-<div class="line"><a name="l01697"></a><span class="lineno"> 1697</span>&#160;                                       0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l01698"></a><span class="lineno"> 1698</span>&#160;                                       0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l01699"></a><span class="lineno"> 1699</span>&#160;                                       0x00, NULL, 0x00,</div>
-<div class="line"><a name="l01700"></a><span class="lineno"> 1700</span>&#160;                                       NULL, 0x00, 0x00);                                     <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l01701"></a><span class="lineno"> 1701</span>&#160;        <span class="keywordflow">if</span> (res != 0)                                                                         <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l01702"></a><span class="lineno"> 1702</span>&#160;        {</div>
-<div class="line"><a name="l01703"></a><span class="lineno"> 1703</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: erase program suspend failed.\n&quot;</span>);                   <span class="comment">/* erase program suspend failed */</span></div>
-<div class="line"><a name="l01704"></a><span class="lineno"> 1704</span>&#160;           </div>
-<div class="line"><a name="l01705"></a><span class="lineno"> 1705</span>&#160;            <span class="keywordflow">return</span> 1;                                                                         <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l01706"></a><span class="lineno"> 1706</span>&#160;        }</div>
-<div class="line"><a name="l01707"></a><span class="lineno"> 1707</span>&#160;    }</div>
-<div class="line"><a name="l01708"></a><span class="lineno"> 1708</span>&#160;    </div>
-<div class="line"><a name="l01709"></a><span class="lineno"> 1709</span>&#160;    <span class="keywordflow">return</span> 0;                                                                                 <span class="comment">/* success return 0 */</span></div>
-<div class="line"><a name="l01710"></a><span class="lineno"> 1710</span>&#160;}</div>
-<div class="line"><a name="l01711"></a><span class="lineno"> 1711</span>&#160; </div>
-<div class="line"><a name="l01722"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#ga05c69ac66309544eba4ff38a69f24c00"> 1722</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__advance__driver.html#ga05c69ac66309544eba4ff38a69f24c00">w25qxx_erase_program_resume</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle)</div>
-<div class="line"><a name="l01723"></a><span class="lineno"> 1723</span>&#160;{</div>
-<div class="line"><a name="l01724"></a><span class="lineno"> 1724</span>&#160;    uint8_t res;</div>
-<div class="line"><a name="l01725"></a><span class="lineno"> 1725</span>&#160;    uint8_t buf[1];</div>
-<div class="line"><a name="l01726"></a><span class="lineno"> 1726</span>&#160;    </div>
-<div class="line"><a name="l01727"></a><span class="lineno"> 1727</span>&#160;    <span class="keywordflow">if</span> (handle == NULL)                                                                       <span class="comment">/* check handle */</span></div>
-<div class="line"><a name="l01728"></a><span class="lineno"> 1728</span>&#160;    {</div>
-<div class="line"><a name="l01729"></a><span class="lineno"> 1729</span>&#160;        <span class="keywordflow">return</span> 2;                                                                             <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l01730"></a><span class="lineno"> 1730</span>&#160;    }   </div>
-<div class="line"><a name="l01731"></a><span class="lineno"> 1731</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">inited</a> != 1)                                                                  <span class="comment">/* check handle initialization */</span></div>
-<div class="line"><a name="l01732"></a><span class="lineno"> 1732</span>&#160;    {</div>
-<div class="line"><a name="l01733"></a><span class="lineno"> 1733</span>&#160;        <span class="keywordflow">return</span> 3;                                                                             <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l01734"></a><span class="lineno"> 1734</span>&#160;    }</div>
-<div class="line"><a name="l01735"></a><span class="lineno"> 1735</span>&#160;    </div>
-<div class="line"><a name="l01736"></a><span class="lineno"> 1736</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>)                                             <span class="comment">/* spi interface */</span></div>
-<div class="line"><a name="l01737"></a><span class="lineno"> 1737</span>&#160;    {</div>
-<div class="line"><a name="l01738"></a><span class="lineno"> 1738</span>&#160;        <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">dual_quad_spi_enable</a> != 0)                                                <span class="comment">/* enable dual quad spi */</span></div>
-<div class="line"><a name="l01739"></a><span class="lineno"> 1739</span>&#160;        {</div>
-<div class="line"><a name="l01740"></a><span class="lineno"> 1740</span>&#160;            res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#a0daeb46fb8b219a3d6b37d426c5c0e95">W25QXX_COMMAND_ERASE_PROGRAM_RESUME</a>, 1,</div>
-<div class="line"><a name="l01741"></a><span class="lineno"> 1741</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l01742"></a><span class="lineno"> 1742</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l01743"></a><span class="lineno"> 1743</span>&#160;                                           0x00, NULL, 0x00,</div>
-<div class="line"><a name="l01744"></a><span class="lineno"> 1744</span>&#160;                                           NULL, 0x00, 0x00);                                 <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l01745"></a><span class="lineno"> 1745</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                     <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l01746"></a><span class="lineno"> 1746</span>&#160;            {</div>
-<div class="line"><a name="l01747"></a><span class="lineno"> 1747</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: erase program resume failed.\n&quot;</span>);                <span class="comment">/* erase program resume failed */</span></div>
-<div class="line"><a name="l01748"></a><span class="lineno"> 1748</span>&#160;               </div>
-<div class="line"><a name="l01749"></a><span class="lineno"> 1749</span>&#160;                <span class="keywordflow">return</span> 1;                                                                     <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l01750"></a><span class="lineno"> 1750</span>&#160;            }</div>
-<div class="line"><a name="l01751"></a><span class="lineno"> 1751</span>&#160;        }</div>
-<div class="line"><a name="l01752"></a><span class="lineno"> 1752</span>&#160;        <span class="keywordflow">else</span>                                                                                  <span class="comment">/* single spi */</span></div>
-<div class="line"><a name="l01753"></a><span class="lineno"> 1753</span>&#160;        {</div>
-<div class="line"><a name="l01754"></a><span class="lineno"> 1754</span>&#160;            buf[0] = <a class="code" href="driver__w25qxx_8c.html#a0daeb46fb8b219a3d6b37d426c5c0e95">W25QXX_COMMAND_ERASE_PROGRAM_RESUME</a>;                                     <span class="comment">/* erase program resume command */</span></div>
-<div class="line"><a name="l01755"></a><span class="lineno"> 1755</span>&#160;            res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 1, NULL, 0);                <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l01756"></a><span class="lineno"> 1756</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                     <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l01757"></a><span class="lineno"> 1757</span>&#160;            {</div>
-<div class="line"><a name="l01758"></a><span class="lineno"> 1758</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: erase program resume failed.\n&quot;</span>);                <span class="comment">/* erase program resume failed */</span></div>
-<div class="line"><a name="l01759"></a><span class="lineno"> 1759</span>&#160;               </div>
-<div class="line"><a name="l01760"></a><span class="lineno"> 1760</span>&#160;                <span class="keywordflow">return</span> 1;                                                                     <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l01761"></a><span class="lineno"> 1761</span>&#160;            }</div>
-<div class="line"><a name="l01762"></a><span class="lineno"> 1762</span>&#160;        }</div>
-<div class="line"><a name="l01763"></a><span class="lineno"> 1763</span>&#160;    }</div>
-<div class="line"><a name="l01764"></a><span class="lineno"> 1764</span>&#160;    <span class="keywordflow">else</span>                                                                                      <span class="comment">/* qspi interface */</span></div>
-<div class="line"><a name="l01765"></a><span class="lineno"> 1765</span>&#160;    {</div>
-<div class="line"><a name="l01766"></a><span class="lineno"> 1766</span>&#160;        res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#a0daeb46fb8b219a3d6b37d426c5c0e95">W25QXX_COMMAND_ERASE_PROGRAM_RESUME</a>, 4,</div>
-<div class="line"><a name="l01767"></a><span class="lineno"> 1767</span>&#160;                                       0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l01768"></a><span class="lineno"> 1768</span>&#160;                                       0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l01769"></a><span class="lineno"> 1769</span>&#160;                                       0x00, NULL, 0x00,</div>
-<div class="line"><a name="l01770"></a><span class="lineno"> 1770</span>&#160;                                       NULL, 0x00, 0x00);                                     <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l01771"></a><span class="lineno"> 1771</span>&#160;        <span class="keywordflow">if</span> (res != 0)                                                                         <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l01772"></a><span class="lineno"> 1772</span>&#160;        {</div>
-<div class="line"><a name="l01773"></a><span class="lineno"> 1773</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: erase program resume failed.\n&quot;</span>);                    <span class="comment">/* erase program resume failed */</span></div>
-<div class="line"><a name="l01774"></a><span class="lineno"> 1774</span>&#160;           </div>
-<div class="line"><a name="l01775"></a><span class="lineno"> 1775</span>&#160;            <span class="keywordflow">return</span> 1;                                                                         <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l01776"></a><span class="lineno"> 1776</span>&#160;        }</div>
-<div class="line"><a name="l01777"></a><span class="lineno"> 1777</span>&#160;    }</div>
-<div class="line"><a name="l01778"></a><span class="lineno"> 1778</span>&#160;    </div>
-<div class="line"><a name="l01779"></a><span class="lineno"> 1779</span>&#160;    <span class="keywordflow">return</span> 0;                                                                                 <span class="comment">/* success return 0 */</span></div>
-<div class="line"><a name="l01780"></a><span class="lineno"> 1780</span>&#160;}</div>
-<div class="line"><a name="l01781"></a><span class="lineno"> 1781</span>&#160; </div>
-<div class="line"><a name="l01792"></a><span class="lineno"><a class="line" href="group__w25qxx__basic__driver.html#gae4effce67e36120325e3c7b245b90142"> 1792</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__basic__driver.html#gae4effce67e36120325e3c7b245b90142">w25qxx_power_down</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle)</div>
-<div class="line"><a name="l01793"></a><span class="lineno"> 1793</span>&#160;{</div>
-<div class="line"><a name="l01794"></a><span class="lineno"> 1794</span>&#160;    uint8_t res;</div>
-<div class="line"><a name="l01795"></a><span class="lineno"> 1795</span>&#160;    uint8_t buf[1];</div>
-<div class="line"><a name="l01796"></a><span class="lineno"> 1796</span>&#160;    </div>
-<div class="line"><a name="l01797"></a><span class="lineno"> 1797</span>&#160;    <span class="keywordflow">if</span> (handle == NULL)                                                            <span class="comment">/* check handle */</span></div>
-<div class="line"><a name="l01798"></a><span class="lineno"> 1798</span>&#160;    {</div>
-<div class="line"><a name="l01799"></a><span class="lineno"> 1799</span>&#160;        <span class="keywordflow">return</span> 2;                                                                  <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l01800"></a><span class="lineno"> 1800</span>&#160;    }   </div>
-<div class="line"><a name="l01801"></a><span class="lineno"> 1801</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">inited</a> != 1)                                                       <span class="comment">/* check handle initialization */</span></div>
-<div class="line"><a name="l01802"></a><span class="lineno"> 1802</span>&#160;    {</div>
-<div class="line"><a name="l01803"></a><span class="lineno"> 1803</span>&#160;        <span class="keywordflow">return</span> 3;                                                                  <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l01804"></a><span class="lineno"> 1804</span>&#160;    }</div>
-<div class="line"><a name="l01805"></a><span class="lineno"> 1805</span>&#160; </div>
-<div class="line"><a name="l01806"></a><span class="lineno"> 1806</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>)                                  <span class="comment">/* spi interface */</span></div>
-<div class="line"><a name="l01807"></a><span class="lineno"> 1807</span>&#160;    {</div>
-<div class="line"><a name="l01808"></a><span class="lineno"> 1808</span>&#160;        <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">dual_quad_spi_enable</a> != 0)                                     <span class="comment">/* enable dual quad spi */</span></div>
-<div class="line"><a name="l01809"></a><span class="lineno"> 1809</span>&#160;        {</div>
-<div class="line"><a name="l01810"></a><span class="lineno"> 1810</span>&#160;            res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#a6fe4d603e33b7c8b8310a884e02a130b">W25QXX_COMMAND_POWER_DOWN</a>, 1,</div>
-<div class="line"><a name="l01811"></a><span class="lineno"> 1811</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l01812"></a><span class="lineno"> 1812</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l01813"></a><span class="lineno"> 1813</span>&#160;                                           0x00, NULL, 0x00,</div>
-<div class="line"><a name="l01814"></a><span class="lineno"> 1814</span>&#160;                                           NULL, 0x00, 0x00);                      <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l01815"></a><span class="lineno"> 1815</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                          <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l01816"></a><span class="lineno"> 1816</span>&#160;            {</div>
-<div class="line"><a name="l01817"></a><span class="lineno"> 1817</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: power down failed.\n&quot;</span>);               <span class="comment">/* power down failed */</span></div>
-<div class="line"><a name="l01818"></a><span class="lineno"> 1818</span>&#160;               </div>
-<div class="line"><a name="l01819"></a><span class="lineno"> 1819</span>&#160;                <span class="keywordflow">return</span> 1;                                                          <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l01820"></a><span class="lineno"> 1820</span>&#160;            }</div>
-<div class="line"><a name="l01821"></a><span class="lineno"> 1821</span>&#160;        }</div>
-<div class="line"><a name="l01822"></a><span class="lineno"> 1822</span>&#160;        <span class="keywordflow">else</span>                                                                       <span class="comment">/* single spi */</span></div>
-<div class="line"><a name="l01823"></a><span class="lineno"> 1823</span>&#160;        {</div>
-<div class="line"><a name="l01824"></a><span class="lineno"> 1824</span>&#160;            buf[0] = <a class="code" href="driver__w25qxx_8c.html#a6fe4d603e33b7c8b8310a884e02a130b">W25QXX_COMMAND_POWER_DOWN</a>;                                    <span class="comment">/* power down command */</span></div>
-<div class="line"><a name="l01825"></a><span class="lineno"> 1825</span>&#160;            res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf,</div>
-<div class="line"><a name="l01826"></a><span class="lineno"> 1826</span>&#160;                                          1, NULL, 0);                             <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l01827"></a><span class="lineno"> 1827</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                          <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l01828"></a><span class="lineno"> 1828</span>&#160;            {</div>
-<div class="line"><a name="l01829"></a><span class="lineno"> 1829</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: power down failed.\n&quot;</span>);               <span class="comment">/* power down failed */</span></div>
-<div class="line"><a name="l01830"></a><span class="lineno"> 1830</span>&#160;               </div>
-<div class="line"><a name="l01831"></a><span class="lineno"> 1831</span>&#160;                <span class="keywordflow">return</span> 1;                                                          <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l01832"></a><span class="lineno"> 1832</span>&#160;            }</div>
-<div class="line"><a name="l01833"></a><span class="lineno"> 1833</span>&#160;        }</div>
-<div class="line"><a name="l01834"></a><span class="lineno"> 1834</span>&#160;    }</div>
-<div class="line"><a name="l01835"></a><span class="lineno"> 1835</span>&#160;    <span class="keywordflow">else</span>                                                                           <span class="comment">/* qspi interface */</span></div>
-<div class="line"><a name="l01836"></a><span class="lineno"> 1836</span>&#160;    {</div>
-<div class="line"><a name="l01837"></a><span class="lineno"> 1837</span>&#160;        res = a_w25qxx_qspi_write_read(handle, 0xFF, 4,</div>
-<div class="line"><a name="l01838"></a><span class="lineno"> 1838</span>&#160;                                       0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l01839"></a><span class="lineno"> 1839</span>&#160;                                       0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l01840"></a><span class="lineno"> 1840</span>&#160;                                       0, NULL, 0x00,</div>
-<div class="line"><a name="l01841"></a><span class="lineno"> 1841</span>&#160;                                       NULL, 0x00, 0);                             <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l01842"></a><span class="lineno"> 1842</span>&#160;        <span class="keywordflow">if</span> (res != 0)                                                              <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l01843"></a><span class="lineno"> 1843</span>&#160;        {</div>
-<div class="line"><a name="l01844"></a><span class="lineno"> 1844</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: exit qspi mode failed.\n&quot;</span>);               <span class="comment">/* exit qspi mode failed */</span></div>
-<div class="line"><a name="l01845"></a><span class="lineno"> 1845</span>&#160;           </div>
-<div class="line"><a name="l01846"></a><span class="lineno"> 1846</span>&#160;            <span class="keywordflow">return</span> 1;                                                              <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l01847"></a><span class="lineno"> 1847</span>&#160;        }</div>
-<div class="line"><a name="l01848"></a><span class="lineno"> 1848</span>&#160;        handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a406c9433252b7366de417b7a60915c81">delay_ms</a>(10);                                                      <span class="comment">/* delay 10 ms */</span></div>
-<div class="line"><a name="l01849"></a><span class="lineno"> 1849</span>&#160;        res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#a6fe4d603e33b7c8b8310a884e02a130b">W25QXX_COMMAND_POWER_DOWN</a>, 4,</div>
-<div class="line"><a name="l01850"></a><span class="lineno"> 1850</span>&#160;                                       0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l01851"></a><span class="lineno"> 1851</span>&#160;                                       0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l01852"></a><span class="lineno"> 1852</span>&#160;                                       0x00, NULL, 0x00,</div>
-<div class="line"><a name="l01853"></a><span class="lineno"> 1853</span>&#160;                                       NULL, 0x00, 0x00);                          <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l01854"></a><span class="lineno"> 1854</span>&#160;        <span class="keywordflow">if</span> (res != 0)                                                              <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l01855"></a><span class="lineno"> 1855</span>&#160;        {</div>
-<div class="line"><a name="l01856"></a><span class="lineno"> 1856</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: power down failed.\n&quot;</span>);                   <span class="comment">/* power down failed */</span></div>
-<div class="line"><a name="l01857"></a><span class="lineno"> 1857</span>&#160;           </div>
-<div class="line"><a name="l01858"></a><span class="lineno"> 1858</span>&#160;            <span class="keywordflow">return</span> 1;                                                              <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l01859"></a><span class="lineno"> 1859</span>&#160;        }</div>
-<div class="line"><a name="l01860"></a><span class="lineno"> 1860</span>&#160;    }</div>
-<div class="line"><a name="l01861"></a><span class="lineno"> 1861</span>&#160;    </div>
-<div class="line"><a name="l01862"></a><span class="lineno"> 1862</span>&#160;    <span class="keywordflow">return</span> 0;                                                                      <span class="comment">/* success return 0 */</span></div>
-<div class="line"><a name="l01863"></a><span class="lineno"> 1863</span>&#160;}</div>
-<div class="line"><a name="l01864"></a><span class="lineno"> 1864</span>&#160; </div>
-<div class="line"><a name="l01875"></a><span class="lineno"><a class="line" href="group__w25qxx__basic__driver.html#ga09c9b52877516a2ee4c080dc249e7331"> 1875</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__basic__driver.html#ga09c9b52877516a2ee4c080dc249e7331">w25qxx_release_power_down</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle)</div>
-<div class="line"><a name="l01876"></a><span class="lineno"> 1876</span>&#160;{</div>
-<div class="line"><a name="l01877"></a><span class="lineno"> 1877</span>&#160;    uint8_t res;</div>
-<div class="line"><a name="l01878"></a><span class="lineno"> 1878</span>&#160;    uint8_t id;</div>
-<div class="line"><a name="l01879"></a><span class="lineno"> 1879</span>&#160;    uint8_t buf[4];</div>
-<div class="line"><a name="l01880"></a><span class="lineno"> 1880</span>&#160;    </div>
-<div class="line"><a name="l01881"></a><span class="lineno"> 1881</span>&#160;    <span class="keywordflow">if</span> (handle == NULL)                                                                    <span class="comment">/* check handle */</span></div>
-<div class="line"><a name="l01882"></a><span class="lineno"> 1882</span>&#160;    {</div>
-<div class="line"><a name="l01883"></a><span class="lineno"> 1883</span>&#160;        <span class="keywordflow">return</span> 2;                                                                          <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l01884"></a><span class="lineno"> 1884</span>&#160;    }   </div>
-<div class="line"><a name="l01885"></a><span class="lineno"> 1885</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">inited</a> != 1)                                                               <span class="comment">/* check handle initialization */</span></div>
-<div class="line"><a name="l01886"></a><span class="lineno"> 1886</span>&#160;    {</div>
-<div class="line"><a name="l01887"></a><span class="lineno"> 1887</span>&#160;        <span class="keywordflow">return</span> 3;                                                                          <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l01888"></a><span class="lineno"> 1888</span>&#160;    }</div>
-<div class="line"><a name="l01889"></a><span class="lineno"> 1889</span>&#160;    </div>
-<div class="line"><a name="l01890"></a><span class="lineno"> 1890</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>)                                          <span class="comment">/* spi interface */</span></div>
-<div class="line"><a name="l01891"></a><span class="lineno"> 1891</span>&#160;    {</div>
-<div class="line"><a name="l01892"></a><span class="lineno"> 1892</span>&#160;        <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">dual_quad_spi_enable</a> != 0)                                             <span class="comment">/* enable dual quad spi */</span></div>
-<div class="line"><a name="l01893"></a><span class="lineno"> 1893</span>&#160;        {</div>
-<div class="line"><a name="l01894"></a><span class="lineno"> 1894</span>&#160;            res = a_w25qxx_qspi_write_read(handle,</div>
-<div class="line"><a name="l01895"></a><span class="lineno"> 1895</span>&#160;                                           <a class="code" href="driver__w25qxx_8c.html#ad344065461b2c71521017984f040b425">W25QXX_COMMAND_RELEASE_POWER_DOWN</a>, 1,</div>
-<div class="line"><a name="l01896"></a><span class="lineno"> 1896</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l01897"></a><span class="lineno"> 1897</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l01898"></a><span class="lineno"> 1898</span>&#160;                                           3 * 8, NULL, 0x00,</div>
-<div class="line"><a name="l01899"></a><span class="lineno"> 1899</span>&#160;                                          (uint8_t *)&amp;<span class="keywordtype">id</span>, 1, 1);                           <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l01900"></a><span class="lineno"> 1900</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                  <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l01901"></a><span class="lineno"> 1901</span>&#160;            {</div>
-<div class="line"><a name="l01902"></a><span class="lineno"> 1902</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: release power down failed.\n&quot;</span>);               <span class="comment">/* release power down failed */</span></div>
-<div class="line"><a name="l01903"></a><span class="lineno"> 1903</span>&#160;               </div>
-<div class="line"><a name="l01904"></a><span class="lineno"> 1904</span>&#160;                <span class="keywordflow">return</span> 1;                                                                  <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l01905"></a><span class="lineno"> 1905</span>&#160;            }</div>
-<div class="line"><a name="l01906"></a><span class="lineno"> 1906</span>&#160;        }</div>
-<div class="line"><a name="l01907"></a><span class="lineno"> 1907</span>&#160;        <span class="keywordflow">else</span>                                                                               <span class="comment">/* single spi */</span></div>
-<div class="line"><a name="l01908"></a><span class="lineno"> 1908</span>&#160;        {</div>
-<div class="line"><a name="l01909"></a><span class="lineno"> 1909</span>&#160;            buf[0] = <a class="code" href="driver__w25qxx_8c.html#ad344065461b2c71521017984f040b425">W25QXX_COMMAND_RELEASE_POWER_DOWN</a>;                                    <span class="comment">/* release power down command */</span></div>
-<div class="line"><a name="l01910"></a><span class="lineno"> 1910</span>&#160;            buf[1] = 0xFF;                                                                 <span class="comment">/* dummy */</span></div>
-<div class="line"><a name="l01911"></a><span class="lineno"> 1911</span>&#160;            buf[2] = 0xFF;                                                                 <span class="comment">/* dummy */</span></div>
-<div class="line"><a name="l01912"></a><span class="lineno"> 1912</span>&#160;            buf[3] = 0xFF;                                                                 <span class="comment">/* dummy */</span></div>
-<div class="line"><a name="l01913"></a><span class="lineno"> 1913</span>&#160;            res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 4, (uint8_t *)&amp;<span class="keywordtype">id</span>, 1);   <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l01914"></a><span class="lineno"> 1914</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                  <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l01915"></a><span class="lineno"> 1915</span>&#160;            {</div>
-<div class="line"><a name="l01916"></a><span class="lineno"> 1916</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: release power down failed.\n&quot;</span>);               <span class="comment">/* release power down failed */</span></div>
-<div class="line"><a name="l01917"></a><span class="lineno"> 1917</span>&#160;               </div>
-<div class="line"><a name="l01918"></a><span class="lineno"> 1918</span>&#160;                <span class="keywordflow">return</span> 1;                                                                  <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l01919"></a><span class="lineno"> 1919</span>&#160;            }</div>
-<div class="line"><a name="l01920"></a><span class="lineno"> 1920</span>&#160;        }</div>
-<div class="line"><a name="l01921"></a><span class="lineno"> 1921</span>&#160;    }</div>
-<div class="line"><a name="l01922"></a><span class="lineno"> 1922</span>&#160;    <span class="keywordflow">else</span>                                                                                   <span class="comment">/* qspi interface */</span></div>
-<div class="line"><a name="l01923"></a><span class="lineno"> 1923</span>&#160;    {</div>
-<div class="line"><a name="l01924"></a><span class="lineno"> 1924</span>&#160;        res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#ad344065461b2c71521017984f040b425">W25QXX_COMMAND_RELEASE_POWER_DOWN</a>, 4,</div>
-<div class="line"><a name="l01925"></a><span class="lineno"> 1925</span>&#160;                                       0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l01926"></a><span class="lineno"> 1926</span>&#160;                                       0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l01927"></a><span class="lineno"> 1927</span>&#160;                                       6, NULL, 0x00,</div>
-<div class="line"><a name="l01928"></a><span class="lineno"> 1928</span>&#160;                                      (uint8_t *)&amp;<span class="keywordtype">id</span>, 1, 4);                               <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l01929"></a><span class="lineno"> 1929</span>&#160;        <span class="keywordflow">if</span> (res != 0)                                                                      <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l01930"></a><span class="lineno"> 1930</span>&#160;        {</div>
-<div class="line"><a name="l01931"></a><span class="lineno"> 1931</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: release power down failed.\n&quot;</span>);                   <span class="comment">/* release power down failed */</span></div>
-<div class="line"><a name="l01932"></a><span class="lineno"> 1932</span>&#160;           </div>
-<div class="line"><a name="l01933"></a><span class="lineno"> 1933</span>&#160;            <span class="keywordflow">return</span> 1;                                                                      <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l01934"></a><span class="lineno"> 1934</span>&#160;        }</div>
-<div class="line"><a name="l01935"></a><span class="lineno"> 1935</span>&#160;    }</div>
-<div class="line"><a name="l01936"></a><span class="lineno"> 1936</span>&#160;    </div>
-<div class="line"><a name="l01937"></a><span class="lineno"> 1937</span>&#160;    <span class="keywordflow">return</span> 0;                                                                              <span class="comment">/* success return 0 */</span></div>
-<div class="line"><a name="l01938"></a><span class="lineno"> 1938</span>&#160;}</div>
-<div class="line"><a name="l01939"></a><span class="lineno"> 1939</span>&#160; </div>
-<div class="line"><a name="l01952"></a><span class="lineno"><a class="line" href="group__w25qxx__basic__driver.html#ga921836a777b082ff4d0f322ccfda6b22"> 1952</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__basic__driver.html#ga921836a777b082ff4d0f322ccfda6b22">w25qxx_get_manufacturer_device_id</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint8_t *manufacturer, uint8_t *device_id)</div>
-<div class="line"><a name="l01953"></a><span class="lineno"> 1953</span>&#160;{</div>
-<div class="line"><a name="l01954"></a><span class="lineno"> 1954</span>&#160;    uint8_t res;</div>
-<div class="line"><a name="l01955"></a><span class="lineno"> 1955</span>&#160;    uint8_t buf[4];</div>
-<div class="line"><a name="l01956"></a><span class="lineno"> 1956</span>&#160;    uint8_t out[2];</div>
-<div class="line"><a name="l01957"></a><span class="lineno"> 1957</span>&#160;    </div>
-<div class="line"><a name="l01958"></a><span class="lineno"> 1958</span>&#160;    <span class="keywordflow">if</span> (handle == NULL)                                                                    <span class="comment">/* check handle */</span></div>
-<div class="line"><a name="l01959"></a><span class="lineno"> 1959</span>&#160;    {</div>
-<div class="line"><a name="l01960"></a><span class="lineno"> 1960</span>&#160;        <span class="keywordflow">return</span> 2;                                                                          <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l01961"></a><span class="lineno"> 1961</span>&#160;    }   </div>
-<div class="line"><a name="l01962"></a><span class="lineno"> 1962</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">inited</a> != 1)                                                               <span class="comment">/* check handle initialization */</span></div>
-<div class="line"><a name="l01963"></a><span class="lineno"> 1963</span>&#160;    {</div>
-<div class="line"><a name="l01964"></a><span class="lineno"> 1964</span>&#160;        <span class="keywordflow">return</span> 3;                                                                          <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l01965"></a><span class="lineno"> 1965</span>&#160;    }</div>
-<div class="line"><a name="l01966"></a><span class="lineno"> 1966</span>&#160;    </div>
-<div class="line"><a name="l01967"></a><span class="lineno"> 1967</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>)                                          <span class="comment">/* spi interface */</span></div>
-<div class="line"><a name="l01968"></a><span class="lineno"> 1968</span>&#160;    {</div>
-<div class="line"><a name="l01969"></a><span class="lineno"> 1969</span>&#160;        <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">dual_quad_spi_enable</a> != 0)                                             <span class="comment">/* enable dual quad spi */</span></div>
-<div class="line"><a name="l01970"></a><span class="lineno"> 1970</span>&#160;        {</div>
-<div class="line"><a name="l01971"></a><span class="lineno"> 1971</span>&#160;            res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#af6d9a5bc0b57b041e22af80b85e53f56">W25QXX_COMMAND_READ_MANUFACTURER</a>, 1,</div>
-<div class="line"><a name="l01972"></a><span class="lineno"> 1972</span>&#160;                                           0x00000000, 1, 3,</div>
-<div class="line"><a name="l01973"></a><span class="lineno"> 1973</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l01974"></a><span class="lineno"> 1974</span>&#160;                                           0, NULL, 0x00,</div>
-<div class="line"><a name="l01975"></a><span class="lineno"> 1975</span>&#160;                                          (uint8_t *)out, 2, 1);                           <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l01976"></a><span class="lineno"> 1976</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                  <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l01977"></a><span class="lineno"> 1977</span>&#160;            {</div>
-<div class="line"><a name="l01978"></a><span class="lineno"> 1978</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: get manufacturer device id failed.\n&quot;</span>);       <span class="comment">/* get manufacturer device id failed */</span></div>
-<div class="line"><a name="l01979"></a><span class="lineno"> 1979</span>&#160;               </div>
-<div class="line"><a name="l01980"></a><span class="lineno"> 1980</span>&#160;                <span class="keywordflow">return</span> 1;                                                                  <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l01981"></a><span class="lineno"> 1981</span>&#160;            }</div>
-<div class="line"><a name="l01982"></a><span class="lineno"> 1982</span>&#160;            *manufacturer = out[0];                                                        <span class="comment">/* set manufacturer */</span></div>
-<div class="line"><a name="l01983"></a><span class="lineno"> 1983</span>&#160;            *device_id = out[1];                                                           <span class="comment">/* set device id */</span></div>
-<div class="line"><a name="l01984"></a><span class="lineno"> 1984</span>&#160;        }</div>
-<div class="line"><a name="l01985"></a><span class="lineno"> 1985</span>&#160;        <span class="keywordflow">else</span>                                                                               <span class="comment">/* single spi */</span></div>
-<div class="line"><a name="l01986"></a><span class="lineno"> 1986</span>&#160;        {</div>
-<div class="line"><a name="l01987"></a><span class="lineno"> 1987</span>&#160;            buf[0] = <a class="code" href="driver__w25qxx_8c.html#af6d9a5bc0b57b041e22af80b85e53f56">W25QXX_COMMAND_READ_MANUFACTURER</a>;                                     <span class="comment">/* read manufacturer command */</span></div>
-<div class="line"><a name="l01988"></a><span class="lineno"> 1988</span>&#160;            buf[1] = 0x00;                                                                 <span class="comment">/* dummy */</span></div>
-<div class="line"><a name="l01989"></a><span class="lineno"> 1989</span>&#160;            buf[2] = 0x00;                                                                 <span class="comment">/* dummy */</span></div>
-<div class="line"><a name="l01990"></a><span class="lineno"> 1990</span>&#160;            buf[3] = 0x00;                                                                 <span class="comment">/* dummy */</span></div>
-<div class="line"><a name="l01991"></a><span class="lineno"> 1991</span>&#160;            res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 4,</div>
-<div class="line"><a name="l01992"></a><span class="lineno"> 1992</span>&#160;                                         (uint8_t *)out, 2);                               <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l01993"></a><span class="lineno"> 1993</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                  <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l01994"></a><span class="lineno"> 1994</span>&#160;            {</div>
-<div class="line"><a name="l01995"></a><span class="lineno"> 1995</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: get manufacturer device id failed.\n&quot;</span>);       <span class="comment">/* get manufacturer device id failed */</span></div>
-<div class="line"><a name="l01996"></a><span class="lineno"> 1996</span>&#160;               </div>
-<div class="line"><a name="l01997"></a><span class="lineno"> 1997</span>&#160;                <span class="keywordflow">return</span> 1;                                                                  <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l01998"></a><span class="lineno"> 1998</span>&#160;            }</div>
-<div class="line"><a name="l01999"></a><span class="lineno"> 1999</span>&#160;            *manufacturer = out[0];                                                        <span class="comment">/* set manufacturer */</span></div>
-<div class="line"><a name="l02000"></a><span class="lineno"> 2000</span>&#160;            *device_id = out[1];                                                           <span class="comment">/* set device id */</span></div>
-<div class="line"><a name="l02001"></a><span class="lineno"> 2001</span>&#160;        }</div>
-<div class="line"><a name="l02002"></a><span class="lineno"> 2002</span>&#160;    }</div>
-<div class="line"><a name="l02003"></a><span class="lineno"> 2003</span>&#160;    <span class="keywordflow">else</span>                                                                                   <span class="comment">/* qspi interface */</span></div>
-<div class="line"><a name="l02004"></a><span class="lineno"> 2004</span>&#160;    {</div>
-<div class="line"><a name="l02005"></a><span class="lineno"> 2005</span>&#160;        res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#af6d9a5bc0b57b041e22af80b85e53f56">W25QXX_COMMAND_READ_MANUFACTURER</a>, 4,</div>
-<div class="line"><a name="l02006"></a><span class="lineno"> 2006</span>&#160;                                       0x00000000, 4, 3,</div>
-<div class="line"><a name="l02007"></a><span class="lineno"> 2007</span>&#160;                                       0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l02008"></a><span class="lineno"> 2008</span>&#160;                                       0, NULL, 0x00,</div>
-<div class="line"><a name="l02009"></a><span class="lineno"> 2009</span>&#160;                                      (uint8_t *)out, 2, 4);                               <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l02010"></a><span class="lineno"> 2010</span>&#160;        <span class="keywordflow">if</span> (res != 0)                                                                      <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l02011"></a><span class="lineno"> 2011</span>&#160;        {</div>
-<div class="line"><a name="l02012"></a><span class="lineno"> 2012</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: get manufacturer device id failed.\n&quot;</span>);           <span class="comment">/* get manufacturer device id failed */</span></div>
-<div class="line"><a name="l02013"></a><span class="lineno"> 2013</span>&#160;           </div>
-<div class="line"><a name="l02014"></a><span class="lineno"> 2014</span>&#160;            <span class="keywordflow">return</span> 1;                                                                      <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l02015"></a><span class="lineno"> 2015</span>&#160;        }</div>
-<div class="line"><a name="l02016"></a><span class="lineno"> 2016</span>&#160;        *manufacturer = out[0];                                                            <span class="comment">/* set manufacturer */</span></div>
-<div class="line"><a name="l02017"></a><span class="lineno"> 2017</span>&#160;        *device_id = out[1];                                                               <span class="comment">/* set device id */</span></div>
-<div class="line"><a name="l02018"></a><span class="lineno"> 2018</span>&#160;    }</div>
-<div class="line"><a name="l02019"></a><span class="lineno"> 2019</span>&#160;    </div>
-<div class="line"><a name="l02020"></a><span class="lineno"> 2020</span>&#160;    <span class="keywordflow">return</span> 0;                                                                              <span class="comment">/* success return 0 */</span></div>
-<div class="line"><a name="l02021"></a><span class="lineno"> 2021</span>&#160;}</div>
-<div class="line"><a name="l02022"></a><span class="lineno"> 2022</span>&#160; </div>
-<div class="line"><a name="l02038"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#ga1cd3aec1bdeabbaed5f049fbf83ceeb4"> 2038</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__advance__driver.html#ga1cd3aec1bdeabbaed5f049fbf83ceeb4">w25qxx_get_manufacturer_device_id_dual_io</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint8_t *manufacturer, uint8_t *device_id)</div>
-<div class="line"><a name="l02039"></a><span class="lineno"> 2039</span>&#160;{</div>
-<div class="line"><a name="l02040"></a><span class="lineno"> 2040</span>&#160;    uint8_t res;</div>
-<div class="line"><a name="l02041"></a><span class="lineno"> 2041</span>&#160;    uint8_t out[2];</div>
-<div class="line"><a name="l02042"></a><span class="lineno"> 2042</span>&#160;    </div>
-<div class="line"><a name="l02043"></a><span class="lineno"> 2043</span>&#160;    <span class="keywordflow">if</span> (handle == NULL)                                                                             <span class="comment">/* check handle */</span></div>
-<div class="line"><a name="l02044"></a><span class="lineno"> 2044</span>&#160;    {</div>
-<div class="line"><a name="l02045"></a><span class="lineno"> 2045</span>&#160;        <span class="keywordflow">return</span> 2;                                                                                   <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l02046"></a><span class="lineno"> 2046</span>&#160;    }   </div>
-<div class="line"><a name="l02047"></a><span class="lineno"> 2047</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">inited</a> != 1)                                                                        <span class="comment">/* check handle initialization */</span></div>
-<div class="line"><a name="l02048"></a><span class="lineno"> 2048</span>&#160;    {</div>
-<div class="line"><a name="l02049"></a><span class="lineno"> 2049</span>&#160;        <span class="keywordflow">return</span> 3;                                                                                   <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l02050"></a><span class="lineno"> 2050</span>&#160;    }</div>
-<div class="line"><a name="l02051"></a><span class="lineno"> 2051</span>&#160;    </div>
-<div class="line"><a name="l02052"></a><span class="lineno"> 2052</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>)                                                   <span class="comment">/* spi interface */</span></div>
-<div class="line"><a name="l02053"></a><span class="lineno"> 2053</span>&#160;    {</div>
-<div class="line"><a name="l02054"></a><span class="lineno"> 2054</span>&#160;        <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">dual_quad_spi_enable</a> == 0)                                                      <span class="comment">/* check spi */</span></div>
-<div class="line"><a name="l02055"></a><span class="lineno"> 2055</span>&#160;        {</div>
-<div class="line"><a name="l02056"></a><span class="lineno"> 2056</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: standard spi can&#39;t use this function failed.\n&quot;</span>);          <span class="comment">/* standard spi can&#39;t use this function failed */</span></div>
-<div class="line"><a name="l02057"></a><span class="lineno"> 2057</span>&#160;           </div>
-<div class="line"><a name="l02058"></a><span class="lineno"> 2058</span>&#160;            <span class="keywordflow">return</span> 6;                                                                               <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l02059"></a><span class="lineno"> 2059</span>&#160;        }</div>
-<div class="line"><a name="l02060"></a><span class="lineno"> 2060</span>&#160;        <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                     <span class="comment">/* 3 address mode */</span></div>
-<div class="line"><a name="l02061"></a><span class="lineno"> 2061</span>&#160;        {</div>
-<div class="line"><a name="l02062"></a><span class="lineno"> 2062</span>&#160;            res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#a374c09f79cc61a3e7ac374bca5122e25">W25QXX_COMMAND_DEVICE_ID_DUAL_IO</a>, 1,</div>
-<div class="line"><a name="l02063"></a><span class="lineno"> 2063</span>&#160;                                           0x00000000, 2, 3,</div>
-<div class="line"><a name="l02064"></a><span class="lineno"> 2064</span>&#160;                                           0x000000FF, 2, 1,</div>
-<div class="line"><a name="l02065"></a><span class="lineno"> 2065</span>&#160;                                           0x00, NULL, 0x00,</div>
-<div class="line"><a name="l02066"></a><span class="lineno"> 2066</span>&#160;                                          (uint8_t *)out, 2, 2);                                    <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l02067"></a><span class="lineno"> 2067</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                           <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l02068"></a><span class="lineno"> 2068</span>&#160;            {</div>
-<div class="line"><a name="l02069"></a><span class="lineno"> 2069</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: get manufacturer device id dual io failed.\n&quot;</span>);        <span class="comment">/* get manufacturer device id dual io failed */</span></div>
-<div class="line"><a name="l02070"></a><span class="lineno"> 2070</span>&#160;               </div>
-<div class="line"><a name="l02071"></a><span class="lineno"> 2071</span>&#160;                <span class="keywordflow">return</span> 1;                                                                           <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l02072"></a><span class="lineno"> 2072</span>&#160;            }</div>
-<div class="line"><a name="l02073"></a><span class="lineno"> 2073</span>&#160;        }</div>
-<div class="line"><a name="l02074"></a><span class="lineno"> 2074</span>&#160;        <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>) &amp;&amp; (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>))</div>
-<div class="line"><a name="l02075"></a><span class="lineno"> 2075</span>&#160;        {</div>
-<div class="line"><a name="l02076"></a><span class="lineno"> 2076</span>&#160;            res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#a374c09f79cc61a3e7ac374bca5122e25">W25QXX_COMMAND_DEVICE_ID_DUAL_IO</a>, 1,</div>
-<div class="line"><a name="l02077"></a><span class="lineno"> 2077</span>&#160;                                           0x00000000, 2, 4,</div>
-<div class="line"><a name="l02078"></a><span class="lineno"> 2078</span>&#160;                                           0x000000FF, 2, 1,</div>
-<div class="line"><a name="l02079"></a><span class="lineno"> 2079</span>&#160;                                           0x00, NULL, 0x00,</div>
-<div class="line"><a name="l02080"></a><span class="lineno"> 2080</span>&#160;                                          (uint8_t *)out, 2, 2);                                    <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l02081"></a><span class="lineno"> 2081</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                           <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l02082"></a><span class="lineno"> 2082</span>&#160;            {</div>
-<div class="line"><a name="l02083"></a><span class="lineno"> 2083</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: get manufacturer device id dual io failed.\n&quot;</span>);        <span class="comment">/* get manufacturer device id dual io failed */</span></div>
-<div class="line"><a name="l02084"></a><span class="lineno"> 2084</span>&#160;               </div>
-<div class="line"><a name="l02085"></a><span class="lineno"> 2085</span>&#160;                <span class="keywordflow">return</span> 1;                                                                           <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l02086"></a><span class="lineno"> 2086</span>&#160;            }</div>
-<div class="line"><a name="l02087"></a><span class="lineno"> 2087</span>&#160;        }</div>
-<div class="line"><a name="l02088"></a><span class="lineno"> 2088</span>&#160;        <span class="keywordflow">else</span></div>
-<div class="line"><a name="l02089"></a><span class="lineno"> 2089</span>&#160;        {</div>
-<div class="line"><a name="l02090"></a><span class="lineno"> 2090</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: address mode is invalid.\n&quot;</span>);                              <span class="comment">/* address mode is invalid */</span></div>
-<div class="line"><a name="l02091"></a><span class="lineno"> 2091</span>&#160;           </div>
-<div class="line"><a name="l02092"></a><span class="lineno"> 2092</span>&#160;            <span class="keywordflow">return</span> 4;                                                                               <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l02093"></a><span class="lineno"> 2093</span>&#160;        }</div>
-<div class="line"><a name="l02094"></a><span class="lineno"> 2094</span>&#160;        *manufacturer = out[0];                                                                     <span class="comment">/* set manufacturer */</span></div>
-<div class="line"><a name="l02095"></a><span class="lineno"> 2095</span>&#160;        *device_id = out[1];                                                                        <span class="comment">/* set device id */</span></div>
-<div class="line"><a name="l02096"></a><span class="lineno"> 2096</span>&#160;    }</div>
-<div class="line"><a name="l02097"></a><span class="lineno"> 2097</span>&#160;    <span class="keywordflow">else</span></div>
-<div class="line"><a name="l02098"></a><span class="lineno"> 2098</span>&#160;    {</div>
-<div class="line"><a name="l02099"></a><span class="lineno"> 2099</span>&#160;        handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: qspi can&#39;t use this function.\n&quot;</span>);                             <span class="comment">/* qspi can&#39;t use this function */</span></div>
-<div class="line"><a name="l02100"></a><span class="lineno"> 2100</span>&#160;       </div>
-<div class="line"><a name="l02101"></a><span class="lineno"> 2101</span>&#160;        <span class="keywordflow">return</span> 5;                                                                                   <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l02102"></a><span class="lineno"> 2102</span>&#160;    }</div>
-<div class="line"><a name="l02103"></a><span class="lineno"> 2103</span>&#160;    </div>
-<div class="line"><a name="l02104"></a><span class="lineno"> 2104</span>&#160;    <span class="keywordflow">return</span> 0;                                                                                       <span class="comment">/* success return 0 */</span></div>
-<div class="line"><a name="l02105"></a><span class="lineno"> 2105</span>&#160;}</div>
-<div class="line"><a name="l02106"></a><span class="lineno"> 2106</span>&#160; </div>
-<div class="line"><a name="l02122"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#ga61bd3ce40b76b6862c6a53e0e37a3455"> 2122</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__advance__driver.html#ga61bd3ce40b76b6862c6a53e0e37a3455">w25qxx_get_manufacturer_device_id_quad_io</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint8_t *manufacturer, uint8_t *device_id)</div>
-<div class="line"><a name="l02123"></a><span class="lineno"> 2123</span>&#160;{</div>
-<div class="line"><a name="l02124"></a><span class="lineno"> 2124</span>&#160;    uint8_t res;</div>
-<div class="line"><a name="l02125"></a><span class="lineno"> 2125</span>&#160;    uint8_t out[2];</div>
-<div class="line"><a name="l02126"></a><span class="lineno"> 2126</span>&#160;    </div>
-<div class="line"><a name="l02127"></a><span class="lineno"> 2127</span>&#160;    <span class="keywordflow">if</span> (handle == NULL)                                                                             <span class="comment">/* check handle */</span></div>
-<div class="line"><a name="l02128"></a><span class="lineno"> 2128</span>&#160;    {</div>
-<div class="line"><a name="l02129"></a><span class="lineno"> 2129</span>&#160;        <span class="keywordflow">return</span> 2;                                                                                   <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l02130"></a><span class="lineno"> 2130</span>&#160;    }   </div>
-<div class="line"><a name="l02131"></a><span class="lineno"> 2131</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">inited</a> != 1)                                                                        <span class="comment">/* check handle initialization */</span></div>
-<div class="line"><a name="l02132"></a><span class="lineno"> 2132</span>&#160;    {</div>
-<div class="line"><a name="l02133"></a><span class="lineno"> 2133</span>&#160;        <span class="keywordflow">return</span> 3;                                                                                   <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l02134"></a><span class="lineno"> 2134</span>&#160;    }</div>
-<div class="line"><a name="l02135"></a><span class="lineno"> 2135</span>&#160;    </div>
-<div class="line"><a name="l02136"></a><span class="lineno"> 2136</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>)                                                   <span class="comment">/* spi interface */</span></div>
-<div class="line"><a name="l02137"></a><span class="lineno"> 2137</span>&#160;    {</div>
-<div class="line"><a name="l02138"></a><span class="lineno"> 2138</span>&#160;        <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">dual_quad_spi_enable</a> == 0)                                                      <span class="comment">/* check spi */</span></div>
-<div class="line"><a name="l02139"></a><span class="lineno"> 2139</span>&#160;        {</div>
-<div class="line"><a name="l02140"></a><span class="lineno"> 2140</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: standard spi can&#39;t use this function failed.\n&quot;</span>);          <span class="comment">/* standard spi can&#39;t use this function failed */</span></div>
-<div class="line"><a name="l02141"></a><span class="lineno"> 2141</span>&#160;           </div>
-<div class="line"><a name="l02142"></a><span class="lineno"> 2142</span>&#160;            <span class="keywordflow">return</span> 6;                                                                               <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l02143"></a><span class="lineno"> 2143</span>&#160;        }</div>
-<div class="line"><a name="l02144"></a><span class="lineno"> 2144</span>&#160;        <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                     <span class="comment">/* 3 address mode */</span></div>
-<div class="line"><a name="l02145"></a><span class="lineno"> 2145</span>&#160;        {</div>
-<div class="line"><a name="l02146"></a><span class="lineno"> 2146</span>&#160;            res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#a7573bc250d850078be3221c29521bc5c">W25QXX_COMMAND_DEVICE_ID_QUAD_IO</a>, 1,</div>
-<div class="line"><a name="l02147"></a><span class="lineno"> 2147</span>&#160;                                           0x00000000, 4, 3,</div>
-<div class="line"><a name="l02148"></a><span class="lineno"> 2148</span>&#160;                                           0x000000FF, 4, 1,</div>
-<div class="line"><a name="l02149"></a><span class="lineno"> 2149</span>&#160;                                           4, NULL, 0x00,</div>
-<div class="line"><a name="l02150"></a><span class="lineno"> 2150</span>&#160;                                          (uint8_t *)out, 2, 4);                                    <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l02151"></a><span class="lineno"> 2151</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                           <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l02152"></a><span class="lineno"> 2152</span>&#160;            {</div>
-<div class="line"><a name="l02153"></a><span class="lineno"> 2153</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: get manufacturer device id quad io failed.\n&quot;</span>);        <span class="comment">/* get manufacturer device id quad io failed */</span></div>
-<div class="line"><a name="l02154"></a><span class="lineno"> 2154</span>&#160;               </div>
-<div class="line"><a name="l02155"></a><span class="lineno"> 2155</span>&#160;                <span class="keywordflow">return</span> 1;                                                                           <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l02156"></a><span class="lineno"> 2156</span>&#160;            }</div>
-<div class="line"><a name="l02157"></a><span class="lineno"> 2157</span>&#160;        }</div>
-<div class="line"><a name="l02158"></a><span class="lineno"> 2158</span>&#160;        <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>) &amp;&amp; (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>))</div>
-<div class="line"><a name="l02159"></a><span class="lineno"> 2159</span>&#160;        {</div>
-<div class="line"><a name="l02160"></a><span class="lineno"> 2160</span>&#160;            res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#a7573bc250d850078be3221c29521bc5c">W25QXX_COMMAND_DEVICE_ID_QUAD_IO</a>, 1,</div>
-<div class="line"><a name="l02161"></a><span class="lineno"> 2161</span>&#160;                                           0x00000000, 4, 4,</div>
-<div class="line"><a name="l02162"></a><span class="lineno"> 2162</span>&#160;                                           0x000000FF, 4, 1,</div>
-<div class="line"><a name="l02163"></a><span class="lineno"> 2163</span>&#160;                                           4, NULL, 0x00,</div>
-<div class="line"><a name="l02164"></a><span class="lineno"> 2164</span>&#160;                                          (uint8_t *)out, 2, 4);                                    <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l02165"></a><span class="lineno"> 2165</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                           <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l02166"></a><span class="lineno"> 2166</span>&#160;            {</div>
-<div class="line"><a name="l02167"></a><span class="lineno"> 2167</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: get manufacturer device id quad io failed.\n&quot;</span>);        <span class="comment">/* get manufacturer device id quad io failed */</span></div>
-<div class="line"><a name="l02168"></a><span class="lineno"> 2168</span>&#160;               </div>
-<div class="line"><a name="l02169"></a><span class="lineno"> 2169</span>&#160;                <span class="keywordflow">return</span> 1;                                                                           <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l02170"></a><span class="lineno"> 2170</span>&#160;            }</div>
-<div class="line"><a name="l02171"></a><span class="lineno"> 2171</span>&#160;        }</div>
-<div class="line"><a name="l02172"></a><span class="lineno"> 2172</span>&#160;        <span class="keywordflow">else</span></div>
-<div class="line"><a name="l02173"></a><span class="lineno"> 2173</span>&#160;        {</div>
-<div class="line"><a name="l02174"></a><span class="lineno"> 2174</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: address mode is invalid.\n&quot;</span>);                              <span class="comment">/* address mode is invalid */</span></div>
-<div class="line"><a name="l02175"></a><span class="lineno"> 2175</span>&#160;           </div>
-<div class="line"><a name="l02176"></a><span class="lineno"> 2176</span>&#160;            <span class="keywordflow">return</span> 4;                                                                               <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l02177"></a><span class="lineno"> 2177</span>&#160;        }</div>
-<div class="line"><a name="l02178"></a><span class="lineno"> 2178</span>&#160;        *manufacturer = out[0];                                                                     <span class="comment">/* set manufacturer */</span></div>
-<div class="line"><a name="l02179"></a><span class="lineno"> 2179</span>&#160;        *device_id = out[1];                                                                        <span class="comment">/* set device id */</span></div>
-<div class="line"><a name="l02180"></a><span class="lineno"> 2180</span>&#160;    }</div>
-<div class="line"><a name="l02181"></a><span class="lineno"> 2181</span>&#160;    <span class="keywordflow">else</span></div>
-<div class="line"><a name="l02182"></a><span class="lineno"> 2182</span>&#160;    {</div>
-<div class="line"><a name="l02183"></a><span class="lineno"> 2183</span>&#160;        handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: qspi can&#39;t use this function.\n&quot;</span>);                             <span class="comment">/* qspi can&#39;t use this function */</span></div>
-<div class="line"><a name="l02184"></a><span class="lineno"> 2184</span>&#160;       </div>
-<div class="line"><a name="l02185"></a><span class="lineno"> 2185</span>&#160;        <span class="keywordflow">return</span> 5;                                                                                   <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l02186"></a><span class="lineno"> 2186</span>&#160;    }</div>
-<div class="line"><a name="l02187"></a><span class="lineno"> 2187</span>&#160;    </div>
-<div class="line"><a name="l02188"></a><span class="lineno"> 2188</span>&#160;    <span class="keywordflow">return</span> 0;                                                                                       <span class="comment">/* success return 0 */</span></div>
-<div class="line"><a name="l02189"></a><span class="lineno"> 2189</span>&#160;}</div>
-<div class="line"><a name="l02190"></a><span class="lineno"> 2190</span>&#160; </div>
-<div class="line"><a name="l02203"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#ga8a93ba14a032e10a27f1495fdcf56058"> 2203</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__advance__driver.html#ga8a93ba14a032e10a27f1495fdcf56058">w25qxx_get_jedec_id</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint8_t *manufacturer, uint8_t device_id[2])</div>
-<div class="line"><a name="l02204"></a><span class="lineno"> 2204</span>&#160;{</div>
-<div class="line"><a name="l02205"></a><span class="lineno"> 2205</span>&#160;    uint8_t res;</div>
-<div class="line"><a name="l02206"></a><span class="lineno"> 2206</span>&#160;    uint8_t buf[1];</div>
-<div class="line"><a name="l02207"></a><span class="lineno"> 2207</span>&#160;    uint8_t out[3];</div>
-<div class="line"><a name="l02208"></a><span class="lineno"> 2208</span>&#160;    </div>
-<div class="line"><a name="l02209"></a><span class="lineno"> 2209</span>&#160;    <span class="keywordflow">if</span> (handle == NULL)                                                                    <span class="comment">/* check handle */</span></div>
-<div class="line"><a name="l02210"></a><span class="lineno"> 2210</span>&#160;    {</div>
-<div class="line"><a name="l02211"></a><span class="lineno"> 2211</span>&#160;        <span class="keywordflow">return</span> 2;                                                                          <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l02212"></a><span class="lineno"> 2212</span>&#160;    }   </div>
-<div class="line"><a name="l02213"></a><span class="lineno"> 2213</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">inited</a> != 1)                                                               <span class="comment">/* check handle initialization */</span></div>
-<div class="line"><a name="l02214"></a><span class="lineno"> 2214</span>&#160;    {</div>
-<div class="line"><a name="l02215"></a><span class="lineno"> 2215</span>&#160;        <span class="keywordflow">return</span> 3;                                                                          <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l02216"></a><span class="lineno"> 2216</span>&#160;    }</div>
-<div class="line"><a name="l02217"></a><span class="lineno"> 2217</span>&#160;    </div>
-<div class="line"><a name="l02218"></a><span class="lineno"> 2218</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>)                                          <span class="comment">/* spi interface */</span></div>
-<div class="line"><a name="l02219"></a><span class="lineno"> 2219</span>&#160;    {</div>
-<div class="line"><a name="l02220"></a><span class="lineno"> 2220</span>&#160;        <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">dual_quad_spi_enable</a> != 0)                                             <span class="comment">/* enable dual quad spi */</span></div>
-<div class="line"><a name="l02221"></a><span class="lineno"> 2221</span>&#160;        {</div>
-<div class="line"><a name="l02222"></a><span class="lineno"> 2222</span>&#160;            res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#a54f3ece548cd5eadc94642235442315a">W25QXX_COMMAND_JEDEC_ID</a>, 1,</div>
-<div class="line"><a name="l02223"></a><span class="lineno"> 2223</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l02224"></a><span class="lineno"> 2224</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l02225"></a><span class="lineno"> 2225</span>&#160;                                           0, NULL, 0x00,</div>
-<div class="line"><a name="l02226"></a><span class="lineno"> 2226</span>&#160;                                          (uint8_t *)out, 3, 1);                           <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l02227"></a><span class="lineno"> 2227</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                  <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l02228"></a><span class="lineno"> 2228</span>&#160;            {</div>
-<div class="line"><a name="l02229"></a><span class="lineno"> 2229</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: get jedec id failed.\n&quot;</span>);                     <span class="comment">/* get jedec id failed */</span></div>
-<div class="line"><a name="l02230"></a><span class="lineno"> 2230</span>&#160;               </div>
-<div class="line"><a name="l02231"></a><span class="lineno"> 2231</span>&#160;                <span class="keywordflow">return</span> 1;                                                                  <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l02232"></a><span class="lineno"> 2232</span>&#160;            }</div>
-<div class="line"><a name="l02233"></a><span class="lineno"> 2233</span>&#160;            *manufacturer = out[0];                                                        <span class="comment">/* set manufacturer */</span></div>
-<div class="line"><a name="l02234"></a><span class="lineno"> 2234</span>&#160;            device_id[0] = out[1];                                                         <span class="comment">/* set device id 0 */</span></div>
-<div class="line"><a name="l02235"></a><span class="lineno"> 2235</span>&#160;            device_id[1] = out[2];                                                         <span class="comment">/* set device id 1 */</span></div>
-<div class="line"><a name="l02236"></a><span class="lineno"> 2236</span>&#160;        }</div>
-<div class="line"><a name="l02237"></a><span class="lineno"> 2237</span>&#160;        <span class="keywordflow">else</span>                                                                               <span class="comment">/* single spi */</span></div>
-<div class="line"><a name="l02238"></a><span class="lineno"> 2238</span>&#160;        {</div>
-<div class="line"><a name="l02239"></a><span class="lineno"> 2239</span>&#160;            buf[0] = <a class="code" href="driver__w25qxx_8c.html#a54f3ece548cd5eadc94642235442315a">W25QXX_COMMAND_JEDEC_ID</a>;                                              <span class="comment">/* jedec id command */</span></div>
-<div class="line"><a name="l02240"></a><span class="lineno"> 2240</span>&#160;            res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 1,</div>
-<div class="line"><a name="l02241"></a><span class="lineno"> 2241</span>&#160;                                         (uint8_t *)out, 3);                               <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l02242"></a><span class="lineno"> 2242</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                  <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l02243"></a><span class="lineno"> 2243</span>&#160;            {</div>
-<div class="line"><a name="l02244"></a><span class="lineno"> 2244</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: get jedec id failed.\n&quot;</span>);                     <span class="comment">/* get jedec id  failed */</span></div>
-<div class="line"><a name="l02245"></a><span class="lineno"> 2245</span>&#160;               </div>
-<div class="line"><a name="l02246"></a><span class="lineno"> 2246</span>&#160;                <span class="keywordflow">return</span> 1;                                                                  <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l02247"></a><span class="lineno"> 2247</span>&#160;            }</div>
-<div class="line"><a name="l02248"></a><span class="lineno"> 2248</span>&#160;            *manufacturer = out[0];                                                        <span class="comment">/* set manufacturer */</span></div>
-<div class="line"><a name="l02249"></a><span class="lineno"> 2249</span>&#160;            device_id[0] = out[1];                                                         <span class="comment">/* set device id 0 */</span></div>
-<div class="line"><a name="l02250"></a><span class="lineno"> 2250</span>&#160;            device_id[1] = out[2];                                                         <span class="comment">/* set device id 1 */</span></div>
-<div class="line"><a name="l02251"></a><span class="lineno"> 2251</span>&#160;        }</div>
-<div class="line"><a name="l02252"></a><span class="lineno"> 2252</span>&#160;    }</div>
-<div class="line"><a name="l02253"></a><span class="lineno"> 2253</span>&#160;    <span class="keywordflow">else</span>                                                                                   <span class="comment">/* qspi interface */</span></div>
-<div class="line"><a name="l02254"></a><span class="lineno"> 2254</span>&#160;    {</div>
-<div class="line"><a name="l02255"></a><span class="lineno"> 2255</span>&#160;        res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#a54f3ece548cd5eadc94642235442315a">W25QXX_COMMAND_JEDEC_ID</a>, 4,</div>
-<div class="line"><a name="l02256"></a><span class="lineno"> 2256</span>&#160;                                       0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l02257"></a><span class="lineno"> 2257</span>&#160;                                       0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l02258"></a><span class="lineno"> 2258</span>&#160;                                       0, NULL, 0x00,</div>
-<div class="line"><a name="l02259"></a><span class="lineno"> 2259</span>&#160;                                      (uint8_t *)out, 3, 4);                               <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l02260"></a><span class="lineno"> 2260</span>&#160;        <span class="keywordflow">if</span> (res != 0)                                                                      <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l02261"></a><span class="lineno"> 2261</span>&#160;        {</div>
-<div class="line"><a name="l02262"></a><span class="lineno"> 2262</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: get jedec id failed.\n&quot;</span>);                         <span class="comment">/* get jedec id failed */</span></div>
-<div class="line"><a name="l02263"></a><span class="lineno"> 2263</span>&#160;           </div>
-<div class="line"><a name="l02264"></a><span class="lineno"> 2264</span>&#160;            <span class="keywordflow">return</span> 1;                                                                      <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l02265"></a><span class="lineno"> 2265</span>&#160;        }</div>
-<div class="line"><a name="l02266"></a><span class="lineno"> 2266</span>&#160;        *manufacturer = out[0];                                                            <span class="comment">/* set manufacturer */</span></div>
-<div class="line"><a name="l02267"></a><span class="lineno"> 2267</span>&#160;        device_id[0] = out[1];                                                             <span class="comment">/* set device id 0 */</span></div>
-<div class="line"><a name="l02268"></a><span class="lineno"> 2268</span>&#160;        device_id[1] = out[2];                                                             <span class="comment">/* set device id 1 */</span></div>
-<div class="line"><a name="l02269"></a><span class="lineno"> 2269</span>&#160;    }</div>
-<div class="line"><a name="l02270"></a><span class="lineno"> 2270</span>&#160;    </div>
-<div class="line"><a name="l02271"></a><span class="lineno"> 2271</span>&#160;    <span class="keywordflow">return</span> 0;                                                                              <span class="comment">/* success return 0 */</span></div>
-<div class="line"><a name="l02272"></a><span class="lineno"> 2272</span>&#160;}</div>
-<div class="line"><a name="l02273"></a><span class="lineno"> 2273</span>&#160; </div>
-<div class="line"><a name="l02284"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#gab5579bc42bc07a7657848140888a817c"> 2284</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__advance__driver.html#gab5579bc42bc07a7657848140888a817c">w25qxx_global_block_lock</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle)</div>
-<div class="line"><a name="l02285"></a><span class="lineno"> 2285</span>&#160;{</div>
-<div class="line"><a name="l02286"></a><span class="lineno"> 2286</span>&#160;    uint8_t res;</div>
-<div class="line"><a name="l02287"></a><span class="lineno"> 2287</span>&#160;    uint8_t buf[1];</div>
-<div class="line"><a name="l02288"></a><span class="lineno"> 2288</span>&#160;    </div>
-<div class="line"><a name="l02289"></a><span class="lineno"> 2289</span>&#160;    <span class="keywordflow">if</span> (handle == NULL)                                                                          <span class="comment">/* check handle */</span></div>
-<div class="line"><a name="l02290"></a><span class="lineno"> 2290</span>&#160;    {</div>
-<div class="line"><a name="l02291"></a><span class="lineno"> 2291</span>&#160;        <span class="keywordflow">return</span> 2;                                                                                <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l02292"></a><span class="lineno"> 2292</span>&#160;    }   </div>
-<div class="line"><a name="l02293"></a><span class="lineno"> 2293</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">inited</a> != 1)                                                                     <span class="comment">/* check handle initialization */</span></div>
-<div class="line"><a name="l02294"></a><span class="lineno"> 2294</span>&#160;    {</div>
-<div class="line"><a name="l02295"></a><span class="lineno"> 2295</span>&#160;        <span class="keywordflow">return</span> 3;                                                                                <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l02296"></a><span class="lineno"> 2296</span>&#160;    }</div>
-<div class="line"><a name="l02297"></a><span class="lineno"> 2297</span>&#160;    </div>
-<div class="line"><a name="l02298"></a><span class="lineno"> 2298</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>)                                                <span class="comment">/* spi interface */</span></div>
-<div class="line"><a name="l02299"></a><span class="lineno"> 2299</span>&#160;    {</div>
-<div class="line"><a name="l02300"></a><span class="lineno"> 2300</span>&#160;        <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">dual_quad_spi_enable</a> != 0)                                                   <span class="comment">/* enable dual quad spi */</span></div>
-<div class="line"><a name="l02301"></a><span class="lineno"> 2301</span>&#160;        {</div>
-<div class="line"><a name="l02302"></a><span class="lineno"> 2302</span>&#160;            res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#af81bc9ddfc8da8eb911435e835536ffb">W25QXX_COMMAND_GLOBAL_BLOCK_SECTOR_LOCK</a>, 1,</div>
-<div class="line"><a name="l02303"></a><span class="lineno"> 2303</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l02304"></a><span class="lineno"> 2304</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l02305"></a><span class="lineno"> 2305</span>&#160;                                           0, NULL, 0x00,</div>
-<div class="line"><a name="l02306"></a><span class="lineno"> 2306</span>&#160;                                           NULL, 0x00, 0x00);                                    <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l02307"></a><span class="lineno"> 2307</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                        <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l02308"></a><span class="lineno"> 2308</span>&#160;            {</div>
-<div class="line"><a name="l02309"></a><span class="lineno"> 2309</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: global block lock failed.\n&quot;</span>);                      <span class="comment">/* global block lock failed */</span></div>
-<div class="line"><a name="l02310"></a><span class="lineno"> 2310</span>&#160;               </div>
-<div class="line"><a name="l02311"></a><span class="lineno"> 2311</span>&#160;                <span class="keywordflow">return</span> 1;                                                                        <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l02312"></a><span class="lineno"> 2312</span>&#160;            }</div>
-<div class="line"><a name="l02313"></a><span class="lineno"> 2313</span>&#160;        }</div>
-<div class="line"><a name="l02314"></a><span class="lineno"> 2314</span>&#160;        <span class="keywordflow">else</span>                                                                                     <span class="comment">/* single spi */</span></div>
-<div class="line"><a name="l02315"></a><span class="lineno"> 2315</span>&#160;        {</div>
-<div class="line"><a name="l02316"></a><span class="lineno"> 2316</span>&#160;            buf[0] = <a class="code" href="driver__w25qxx_8c.html#af81bc9ddfc8da8eb911435e835536ffb">W25QXX_COMMAND_GLOBAL_BLOCK_SECTOR_LOCK</a>;                                    <span class="comment">/* global block lock command */</span></div>
-<div class="line"><a name="l02317"></a><span class="lineno"> 2317</span>&#160;            res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 1, NULL, 0);                   <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l02318"></a><span class="lineno"> 2318</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                        <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l02319"></a><span class="lineno"> 2319</span>&#160;            {</div>
-<div class="line"><a name="l02320"></a><span class="lineno"> 2320</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: global block lock failed.\n&quot;</span>);                      <span class="comment">/* global block lock failed */</span></div>
-<div class="line"><a name="l02321"></a><span class="lineno"> 2321</span>&#160;               </div>
-<div class="line"><a name="l02322"></a><span class="lineno"> 2322</span>&#160;                <span class="keywordflow">return</span> 1;                                                                        <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l02323"></a><span class="lineno"> 2323</span>&#160;            }</div>
-<div class="line"><a name="l02324"></a><span class="lineno"> 2324</span>&#160;        }</div>
-<div class="line"><a name="l02325"></a><span class="lineno"> 2325</span>&#160;    }</div>
-<div class="line"><a name="l02326"></a><span class="lineno"> 2326</span>&#160;    <span class="keywordflow">else</span>                                                                                         <span class="comment">/* qspi interface */</span></div>
-<div class="line"><a name="l02327"></a><span class="lineno"> 2327</span>&#160;    {</div>
-<div class="line"><a name="l02328"></a><span class="lineno"> 2328</span>&#160;        res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#af81bc9ddfc8da8eb911435e835536ffb">W25QXX_COMMAND_GLOBAL_BLOCK_SECTOR_LOCK</a>, 4,</div>
-<div class="line"><a name="l02329"></a><span class="lineno"> 2329</span>&#160;                                       0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l02330"></a><span class="lineno"> 2330</span>&#160;                                       0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l02331"></a><span class="lineno"> 2331</span>&#160;                                       0, NULL, 0x00,</div>
-<div class="line"><a name="l02332"></a><span class="lineno"> 2332</span>&#160;                                       NULL, 0x00, 0x00);                                        <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l02333"></a><span class="lineno"> 2333</span>&#160;        <span class="keywordflow">if</span> (res != 0)                                                                            <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l02334"></a><span class="lineno"> 2334</span>&#160;        {</div>
-<div class="line"><a name="l02335"></a><span class="lineno"> 2335</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: global block lock failed.\n&quot;</span>);                          <span class="comment">/* global block lock failed */</span></div>
-<div class="line"><a name="l02336"></a><span class="lineno"> 2336</span>&#160;           </div>
-<div class="line"><a name="l02337"></a><span class="lineno"> 2337</span>&#160;            <span class="keywordflow">return</span> 1;                                                                            <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l02338"></a><span class="lineno"> 2338</span>&#160;        }</div>
-<div class="line"><a name="l02339"></a><span class="lineno"> 2339</span>&#160;    }</div>
-<div class="line"><a name="l02340"></a><span class="lineno"> 2340</span>&#160;    </div>
-<div class="line"><a name="l02341"></a><span class="lineno"> 2341</span>&#160;    <span class="keywordflow">return</span> 0;                                                                                    <span class="comment">/* success return 0 */</span></div>
-<div class="line"><a name="l02342"></a><span class="lineno"> 2342</span>&#160;}</div>
-<div class="line"><a name="l02343"></a><span class="lineno"> 2343</span>&#160; </div>
-<div class="line"><a name="l02354"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#ga6d62f7d14945cfde7cde7a0e9a4e3afb"> 2354</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__advance__driver.html#ga6d62f7d14945cfde7cde7a0e9a4e3afb">w25qxx_global_block_unlock</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle)</div>
-<div class="line"><a name="l02355"></a><span class="lineno"> 2355</span>&#160;{</div>
-<div class="line"><a name="l02356"></a><span class="lineno"> 2356</span>&#160;    uint8_t res;</div>
-<div class="line"><a name="l02357"></a><span class="lineno"> 2357</span>&#160;    uint8_t buf[1];</div>
-<div class="line"><a name="l02358"></a><span class="lineno"> 2358</span>&#160;    </div>
-<div class="line"><a name="l02359"></a><span class="lineno"> 2359</span>&#160;    <span class="keywordflow">if</span> (handle == NULL)                                                                          <span class="comment">/* check handle */</span></div>
-<div class="line"><a name="l02360"></a><span class="lineno"> 2360</span>&#160;    {</div>
-<div class="line"><a name="l02361"></a><span class="lineno"> 2361</span>&#160;        <span class="keywordflow">return</span> 2;                                                                                <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l02362"></a><span class="lineno"> 2362</span>&#160;    }   </div>
-<div class="line"><a name="l02363"></a><span class="lineno"> 2363</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">inited</a> != 1)                                                                     <span class="comment">/* check handle initialization */</span></div>
-<div class="line"><a name="l02364"></a><span class="lineno"> 2364</span>&#160;    {</div>
-<div class="line"><a name="l02365"></a><span class="lineno"> 2365</span>&#160;        <span class="keywordflow">return</span> 3;                                                                                <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l02366"></a><span class="lineno"> 2366</span>&#160;    }</div>
-<div class="line"><a name="l02367"></a><span class="lineno"> 2367</span>&#160;    </div>
-<div class="line"><a name="l02368"></a><span class="lineno"> 2368</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>)                                                <span class="comment">/* spi interface */</span></div>
-<div class="line"><a name="l02369"></a><span class="lineno"> 2369</span>&#160;    {</div>
-<div class="line"><a name="l02370"></a><span class="lineno"> 2370</span>&#160;        <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">dual_quad_spi_enable</a> != 0)                                                   <span class="comment">/* enable dual quad spi */</span></div>
-<div class="line"><a name="l02371"></a><span class="lineno"> 2371</span>&#160;        {</div>
-<div class="line"><a name="l02372"></a><span class="lineno"> 2372</span>&#160;            res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#ab96d2ad8602a5a50c988b8c09d4bbbc5">W25QXX_COMMAND_GLOBAL_BLOCK_SECTOR_UNLOCK</a>, 1,</div>
-<div class="line"><a name="l02373"></a><span class="lineno"> 2373</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l02374"></a><span class="lineno"> 2374</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l02375"></a><span class="lineno"> 2375</span>&#160;                                           0, NULL, 0x00,</div>
-<div class="line"><a name="l02376"></a><span class="lineno"> 2376</span>&#160;                                           NULL, 0x00, 0x00);                                    <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l02377"></a><span class="lineno"> 2377</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                        <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l02378"></a><span class="lineno"> 2378</span>&#160;            {</div>
-<div class="line"><a name="l02379"></a><span class="lineno"> 2379</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: global block unlock failed.\n&quot;</span>);                    <span class="comment">/* global block unlock failed */</span></div>
-<div class="line"><a name="l02380"></a><span class="lineno"> 2380</span>&#160;               </div>
-<div class="line"><a name="l02381"></a><span class="lineno"> 2381</span>&#160;                <span class="keywordflow">return</span> 1;                                                                        <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l02382"></a><span class="lineno"> 2382</span>&#160;            }</div>
-<div class="line"><a name="l02383"></a><span class="lineno"> 2383</span>&#160;        }</div>
-<div class="line"><a name="l02384"></a><span class="lineno"> 2384</span>&#160;        <span class="keywordflow">else</span>                                                                                     <span class="comment">/* single spi */</span></div>
-<div class="line"><a name="l02385"></a><span class="lineno"> 2385</span>&#160;        {</div>
-<div class="line"><a name="l02386"></a><span class="lineno"> 2386</span>&#160;            buf[0] = <a class="code" href="driver__w25qxx_8c.html#ab96d2ad8602a5a50c988b8c09d4bbbc5">W25QXX_COMMAND_GLOBAL_BLOCK_SECTOR_UNLOCK</a>;                                  <span class="comment">/* global block unlock command */</span></div>
-<div class="line"><a name="l02387"></a><span class="lineno"> 2387</span>&#160;            res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 1, NULL, 0);                   <span class="comment">/* spi qspi write read */</span></div>
-<div class="line"><a name="l02388"></a><span class="lineno"> 2388</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                        <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l02389"></a><span class="lineno"> 2389</span>&#160;            {</div>
-<div class="line"><a name="l02390"></a><span class="lineno"> 2390</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: global block unlock failed.\n&quot;</span>);                    <span class="comment">/* global block unlock failed */</span></div>
-<div class="line"><a name="l02391"></a><span class="lineno"> 2391</span>&#160;               </div>
-<div class="line"><a name="l02392"></a><span class="lineno"> 2392</span>&#160;                <span class="keywordflow">return</span> 1;                                                                        <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l02393"></a><span class="lineno"> 2393</span>&#160;            }</div>
-<div class="line"><a name="l02394"></a><span class="lineno"> 2394</span>&#160;        }</div>
-<div class="line"><a name="l02395"></a><span class="lineno"> 2395</span>&#160;    }</div>
-<div class="line"><a name="l02396"></a><span class="lineno"> 2396</span>&#160;    <span class="keywordflow">else</span>                                                                                         <span class="comment">/* qspi interface */</span></div>
-<div class="line"><a name="l02397"></a><span class="lineno"> 2397</span>&#160;    {</div>
-<div class="line"><a name="l02398"></a><span class="lineno"> 2398</span>&#160;        res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#ab96d2ad8602a5a50c988b8c09d4bbbc5">W25QXX_COMMAND_GLOBAL_BLOCK_SECTOR_UNLOCK</a>, 4,</div>
-<div class="line"><a name="l02399"></a><span class="lineno"> 2399</span>&#160;                                       0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l02400"></a><span class="lineno"> 2400</span>&#160;                                       0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l02401"></a><span class="lineno"> 2401</span>&#160;                                       0, NULL, 0x00,</div>
-<div class="line"><a name="l02402"></a><span class="lineno"> 2402</span>&#160;                                       NULL, 0x00, 0x00);                                        <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l02403"></a><span class="lineno"> 2403</span>&#160;        <span class="keywordflow">if</span> (res != 0)                                                                            <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l02404"></a><span class="lineno"> 2404</span>&#160;        {</div>
-<div class="line"><a name="l02405"></a><span class="lineno"> 2405</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: global block unlock failed.\n&quot;</span>);                        <span class="comment">/* global block unlock failed */</span></div>
-<div class="line"><a name="l02406"></a><span class="lineno"> 2406</span>&#160;           </div>
-<div class="line"><a name="l02407"></a><span class="lineno"> 2407</span>&#160;            <span class="keywordflow">return</span> 1;                                                                            <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l02408"></a><span class="lineno"> 2408</span>&#160;        }</div>
-<div class="line"><a name="l02409"></a><span class="lineno"> 2409</span>&#160;    }</div>
-<div class="line"><a name="l02410"></a><span class="lineno"> 2410</span>&#160;    </div>
-<div class="line"><a name="l02411"></a><span class="lineno"> 2411</span>&#160;    <span class="keywordflow">return</span> 0;                                                                                    <span class="comment">/* success return 0 */</span></div>
-<div class="line"><a name="l02412"></a><span class="lineno"> 2412</span>&#160;}</div>
-<div class="line"><a name="l02413"></a><span class="lineno"> 2413</span>&#160; </div>
-<div class="line"><a name="l02427"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#ga9ad10781d888b32b43b9eba45d049624"> 2427</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__advance__driver.html#ga9ad10781d888b32b43b9eba45d049624">w25qxx_set_read_parameters</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, <a class="code" href="group__w25qxx__advance__driver.html#ga6ff284154302248f00db269146545443">w25qxx_qspi_read_dummy_t</a> dummy, <a class="code" href="group__w25qxx__advance__driver.html#ga2fd3023819e1aebe089a4a72eb136da3">w25qxx_qspi_read_wrap_length_t</a> length)</div>
-<div class="line"><a name="l02428"></a><span class="lineno"> 2428</span>&#160;{</div>
-<div class="line"><a name="l02429"></a><span class="lineno"> 2429</span>&#160;    uint8_t res;</div>
-<div class="line"><a name="l02430"></a><span class="lineno"> 2430</span>&#160;    uint8_t buf[1];</div>
-<div class="line"><a name="l02431"></a><span class="lineno"> 2431</span>&#160;    </div>
-<div class="line"><a name="l02432"></a><span class="lineno"> 2432</span>&#160;    <span class="keywordflow">if</span> (handle == NULL)                                                                 <span class="comment">/* check handle */</span></div>
-<div class="line"><a name="l02433"></a><span class="lineno"> 2433</span>&#160;    {</div>
-<div class="line"><a name="l02434"></a><span class="lineno"> 2434</span>&#160;        <span class="keywordflow">return</span> 2;                                                                       <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l02435"></a><span class="lineno"> 2435</span>&#160;    }   </div>
-<div class="line"><a name="l02436"></a><span class="lineno"> 2436</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">inited</a> != 1)                                                            <span class="comment">/* check handle initialization */</span></div>
-<div class="line"><a name="l02437"></a><span class="lineno"> 2437</span>&#160;    {</div>
-<div class="line"><a name="l02438"></a><span class="lineno"> 2438</span>&#160;        <span class="keywordflow">return</span> 3;                                                                       <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l02439"></a><span class="lineno"> 2439</span>&#160;    }</div>
-<div class="line"><a name="l02440"></a><span class="lineno"> 2440</span>&#160;    </div>
-<div class="line"><a name="l02441"></a><span class="lineno"> 2441</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>)                                       <span class="comment">/* spi interface */</span></div>
-<div class="line"><a name="l02442"></a><span class="lineno"> 2442</span>&#160;    {</div>
-<div class="line"><a name="l02443"></a><span class="lineno"> 2443</span>&#160;        handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: spi interface can&#39;t use this function.\n&quot;</span>);        <span class="comment">/* spi interface can&#39;t use this function */</span></div>
-<div class="line"><a name="l02444"></a><span class="lineno"> 2444</span>&#160;       </div>
-<div class="line"><a name="l02445"></a><span class="lineno"> 2445</span>&#160;        <span class="keywordflow">return</span> 4;                                                                       <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l02446"></a><span class="lineno"> 2446</span>&#160;    }</div>
-<div class="line"><a name="l02447"></a><span class="lineno"> 2447</span>&#160;    <span class="keywordflow">else</span></div>
-<div class="line"><a name="l02448"></a><span class="lineno"> 2448</span>&#160;    {</div>
-<div class="line"><a name="l02449"></a><span class="lineno"> 2449</span>&#160;        handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a3d28993689552e18d554dc0644efcf16">param</a> = (uint8_t)((dummy &lt;&lt; 4) | (length &lt;&lt; 0));                        <span class="comment">/* set param */</span></div>
-<div class="line"><a name="l02450"></a><span class="lineno"> 2450</span>&#160;        buf[0] = handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a3d28993689552e18d554dc0644efcf16">param</a>;                                                         <span class="comment">/* set param */</span></div>
-<div class="line"><a name="l02451"></a><span class="lineno"> 2451</span>&#160;        res = a_w25qxx_qspi_write_read(handle, 0xC0, 4,</div>
-<div class="line"><a name="l02452"></a><span class="lineno"> 2452</span>&#160;                                       0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l02453"></a><span class="lineno"> 2453</span>&#160;                                       0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l02454"></a><span class="lineno"> 2454</span>&#160;                                       0, (uint8_t *)buf, 1,</div>
-<div class="line"><a name="l02455"></a><span class="lineno"> 2455</span>&#160;                                       NULL, 0x00, 4);                                  <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l02456"></a><span class="lineno"> 2456</span>&#160;        <span class="keywordflow">if</span> (res != 0)                                                                   <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l02457"></a><span class="lineno"> 2457</span>&#160;        {</div>
-<div class="line"><a name="l02458"></a><span class="lineno"> 2458</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: set read parameters failed.\n&quot;</span>);               <span class="comment">/* set read parameters failed */</span></div>
-<div class="line"><a name="l02459"></a><span class="lineno"> 2459</span>&#160;           </div>
-<div class="line"><a name="l02460"></a><span class="lineno"> 2460</span>&#160;            <span class="keywordflow">return</span> 5;                                                                   <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l02461"></a><span class="lineno"> 2461</span>&#160;        }</div>
-<div class="line"><a name="l02462"></a><span class="lineno"> 2462</span>&#160;        <span class="keywordflow">if</span> (((buf[0] &gt;&gt; 4) &amp; 0x03) == 0x00)                                             <span class="comment">/* if 0x00 */</span></div>
-<div class="line"><a name="l02463"></a><span class="lineno"> 2463</span>&#160;        {</div>
-<div class="line"><a name="l02464"></a><span class="lineno"> 2464</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#aff7b59f569ec689a7580bd6911daafd5">dummy</a> = 2;                                                          <span class="comment">/* dummy 2 */</span></div>
-<div class="line"><a name="l02465"></a><span class="lineno"> 2465</span>&#160;        }</div>
-<div class="line"><a name="l02466"></a><span class="lineno"> 2466</span>&#160;        <span class="keywordflow">else</span> <span class="keywordflow">if</span> (((buf[0] &gt;&gt; 4) &amp; 0x03) == 0x01)                                        <span class="comment">/* if 0x01 */</span></div>
-<div class="line"><a name="l02467"></a><span class="lineno"> 2467</span>&#160;        {</div>
-<div class="line"><a name="l02468"></a><span class="lineno"> 2468</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#aff7b59f569ec689a7580bd6911daafd5">dummy</a> = 4;                                                          <span class="comment">/* dummy 4 */</span></div>
-<div class="line"><a name="l02469"></a><span class="lineno"> 2469</span>&#160;        }</div>
-<div class="line"><a name="l02470"></a><span class="lineno"> 2470</span>&#160;        <span class="keywordflow">else</span> <span class="keywordflow">if</span> (((buf[0] &gt;&gt; 4) &amp; 0x03) == 0x02)                                        <span class="comment">/* if 0x02 */</span></div>
-<div class="line"><a name="l02471"></a><span class="lineno"> 2471</span>&#160;        {</div>
-<div class="line"><a name="l02472"></a><span class="lineno"> 2472</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#aff7b59f569ec689a7580bd6911daafd5">dummy</a> = 6;                                                          <span class="comment">/* dummy 6 */</span></div>
-<div class="line"><a name="l02473"></a><span class="lineno"> 2473</span>&#160;        }</div>
-<div class="line"><a name="l02474"></a><span class="lineno"> 2474</span>&#160;        <span class="keywordflow">else</span>                                                                            <span class="comment">/* if 0x03 */</span></div>
-<div class="line"><a name="l02475"></a><span class="lineno"> 2475</span>&#160;        {</div>
-<div class="line"><a name="l02476"></a><span class="lineno"> 2476</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#aff7b59f569ec689a7580bd6911daafd5">dummy</a> = 8;                                                          <span class="comment">/* dummy 8 */</span></div>
-<div class="line"><a name="l02477"></a><span class="lineno"> 2477</span>&#160;        }</div>
-<div class="line"><a name="l02478"></a><span class="lineno"> 2478</span>&#160;    }</div>
-<div class="line"><a name="l02479"></a><span class="lineno"> 2479</span>&#160;    </div>
-<div class="line"><a name="l02480"></a><span class="lineno"> 2480</span>&#160;    <span class="keywordflow">return</span> 0;                                                                           <span class="comment">/* success return 0 */</span></div>
-<div class="line"><a name="l02481"></a><span class="lineno"> 2481</span>&#160;}</div>
-<div class="line"><a name="l02482"></a><span class="lineno"> 2482</span>&#160; </div>
-<div class="line"><a name="l02494"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#gaa5ab3548707a95ded115255432224c5a"> 2494</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__advance__driver.html#gaa5ab3548707a95ded115255432224c5a">w25qxx_enter_qspi_mode</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle)</div>
-<div class="line"><a name="l02495"></a><span class="lineno"> 2495</span>&#160;{</div>
-<div class="line"><a name="l02496"></a><span class="lineno"> 2496</span>&#160;    uint8_t res;</div>
-<div class="line"><a name="l02497"></a><span class="lineno"> 2497</span>&#160;    uint8_t buf[1];</div>
-<div class="line"><a name="l02498"></a><span class="lineno"> 2498</span>&#160;    </div>
-<div class="line"><a name="l02499"></a><span class="lineno"> 2499</span>&#160;    <span class="keywordflow">if</span> (handle == NULL)                                                                 <span class="comment">/* check handle */</span></div>
-<div class="line"><a name="l02500"></a><span class="lineno"> 2500</span>&#160;    {</div>
-<div class="line"><a name="l02501"></a><span class="lineno"> 2501</span>&#160;        <span class="keywordflow">return</span> 2;                                                                       <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l02502"></a><span class="lineno"> 2502</span>&#160;    }   </div>
-<div class="line"><a name="l02503"></a><span class="lineno"> 2503</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">inited</a> != 1)                                                            <span class="comment">/* check handle initialization */</span></div>
-<div class="line"><a name="l02504"></a><span class="lineno"> 2504</span>&#160;    {</div>
-<div class="line"><a name="l02505"></a><span class="lineno"> 2505</span>&#160;        <span class="keywordflow">return</span> 3;                                                                       <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l02506"></a><span class="lineno"> 2506</span>&#160;    }</div>
-<div class="line"><a name="l02507"></a><span class="lineno"> 2507</span>&#160;    </div>
-<div class="line"><a name="l02508"></a><span class="lineno"> 2508</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2fea895dcb5c91da89fad1c12161ffd2d5d4">W25QXX_INTERFACE_QSPI</a>)                                      <span class="comment">/* qspi interface */</span></div>
-<div class="line"><a name="l02509"></a><span class="lineno"> 2509</span>&#160;    {</div>
-<div class="line"><a name="l02510"></a><span class="lineno"> 2510</span>&#160;        handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: qspi interface can&#39;t use this function.\n&quot;</span>);       <span class="comment">/* qspi interface can&#39;t use this function */</span></div>
-<div class="line"><a name="l02511"></a><span class="lineno"> 2511</span>&#160;       </div>
-<div class="line"><a name="l02512"></a><span class="lineno"> 2512</span>&#160;        <span class="keywordflow">return</span> 4;                                                                       <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l02513"></a><span class="lineno"> 2513</span>&#160;    }</div>
-<div class="line"><a name="l02514"></a><span class="lineno"> 2514</span>&#160;    <span class="keywordflow">else</span></div>
-<div class="line"><a name="l02515"></a><span class="lineno"> 2515</span>&#160;    {</div>
-<div class="line"><a name="l02516"></a><span class="lineno"> 2516</span>&#160;        res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#a052d5373086b473bf0d450ea1bd73828">W25QXX_COMMAND_ENTER_QSPI_MODE</a>, 1,</div>
-<div class="line"><a name="l02517"></a><span class="lineno"> 2517</span>&#160;                                       0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l02518"></a><span class="lineno"> 2518</span>&#160;                                       0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l02519"></a><span class="lineno"> 2519</span>&#160;                                       0, NULL, 0x00,</div>
-<div class="line"><a name="l02520"></a><span class="lineno"> 2520</span>&#160;                                       NULL, 0x00, 0x00);                               <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l02521"></a><span class="lineno"> 2521</span>&#160;        <span class="keywordflow">if</span> (res != 0)                                                                   <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l02522"></a><span class="lineno"> 2522</span>&#160;        {</div>
-<div class="line"><a name="l02523"></a><span class="lineno"> 2523</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: enter qspi mode failed.\n&quot;</span>);                   <span class="comment">/* enter qspi mode failed */</span></div>
-<div class="line"><a name="l02524"></a><span class="lineno"> 2524</span>&#160;           </div>
-<div class="line"><a name="l02525"></a><span class="lineno"> 2525</span>&#160;            <span class="keywordflow">return</span> 1;                                                                   <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l02526"></a><span class="lineno"> 2526</span>&#160;        }</div>
-<div class="line"><a name="l02527"></a><span class="lineno"> 2527</span>&#160;        handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a406c9433252b7366de417b7a60915c81">delay_ms</a>(10);                                                           <span class="comment">/* delay 10 ms */</span></div>
-<div class="line"><a name="l02528"></a><span class="lineno"> 2528</span>&#160;        buf[0] = handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a3d28993689552e18d554dc0644efcf16">param</a>;                                                         <span class="comment">/* set param */</span></div>
-<div class="line"><a name="l02529"></a><span class="lineno"> 2529</span>&#160;        res = a_w25qxx_qspi_write_read(handle, 0xC0, 4,</div>
-<div class="line"><a name="l02530"></a><span class="lineno"> 2530</span>&#160;                                       0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l02531"></a><span class="lineno"> 2531</span>&#160;                                       0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l02532"></a><span class="lineno"> 2532</span>&#160;                                       0, (uint8_t *)buf, 1,</div>
-<div class="line"><a name="l02533"></a><span class="lineno"> 2533</span>&#160;                                       NULL, 0x00, 4);                                  <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l02534"></a><span class="lineno"> 2534</span>&#160;        <span class="keywordflow">if</span> (res != 0)                                                                   <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l02535"></a><span class="lineno"> 2535</span>&#160;        {</div>
-<div class="line"><a name="l02536"></a><span class="lineno"> 2536</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: set read parameters failed.\n&quot;</span>);               <span class="comment">/* set read parameters failed */</span></div>
-<div class="line"><a name="l02537"></a><span class="lineno"> 2537</span>&#160;           </div>
-<div class="line"><a name="l02538"></a><span class="lineno"> 2538</span>&#160;            <span class="keywordflow">return</span> 5;                                                                   <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l02539"></a><span class="lineno"> 2539</span>&#160;        }</div>
-<div class="line"><a name="l02540"></a><span class="lineno"> 2540</span>&#160;        <span class="keywordflow">if</span> (((buf[0] &gt;&gt; 4) &amp; 0x03) == 0x00)                                             <span class="comment">/* if 0x00 */</span></div>
-<div class="line"><a name="l02541"></a><span class="lineno"> 2541</span>&#160;        {</div>
-<div class="line"><a name="l02542"></a><span class="lineno"> 2542</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#aff7b59f569ec689a7580bd6911daafd5">dummy</a> = 2;                                                          <span class="comment">/* dummy 2 */</span></div>
-<div class="line"><a name="l02543"></a><span class="lineno"> 2543</span>&#160;        }</div>
-<div class="line"><a name="l02544"></a><span class="lineno"> 2544</span>&#160;        <span class="keywordflow">else</span> <span class="keywordflow">if</span> (((buf[0] &gt;&gt; 4) &amp; 0x03) == 0x01)                                        <span class="comment">/* if 0x01 */</span></div>
-<div class="line"><a name="l02545"></a><span class="lineno"> 2545</span>&#160;        {</div>
-<div class="line"><a name="l02546"></a><span class="lineno"> 2546</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#aff7b59f569ec689a7580bd6911daafd5">dummy</a> = 4;                                                          <span class="comment">/* dummy 4 */</span></div>
-<div class="line"><a name="l02547"></a><span class="lineno"> 2547</span>&#160;        }</div>
-<div class="line"><a name="l02548"></a><span class="lineno"> 2548</span>&#160;        <span class="keywordflow">else</span> <span class="keywordflow">if</span> (((buf[0] &gt;&gt; 4) &amp; 0x03) == 0x02)                                        <span class="comment">/* if 0x02 */</span></div>
-<div class="line"><a name="l02549"></a><span class="lineno"> 2549</span>&#160;        {</div>
-<div class="line"><a name="l02550"></a><span class="lineno"> 2550</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#aff7b59f569ec689a7580bd6911daafd5">dummy</a> = 6;                                                          <span class="comment">/* dummy 6 */</span></div>
-<div class="line"><a name="l02551"></a><span class="lineno"> 2551</span>&#160;        }</div>
-<div class="line"><a name="l02552"></a><span class="lineno"> 2552</span>&#160;        <span class="keywordflow">else</span>                                                                            <span class="comment">/* if 0x03 */</span></div>
-<div class="line"><a name="l02553"></a><span class="lineno"> 2553</span>&#160;        {</div>
-<div class="line"><a name="l02554"></a><span class="lineno"> 2554</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#aff7b59f569ec689a7580bd6911daafd5">dummy</a> = 8;                                                          <span class="comment">/* dummy 8 */</span></div>
-<div class="line"><a name="l02555"></a><span class="lineno"> 2555</span>&#160;        }</div>
-<div class="line"><a name="l02556"></a><span class="lineno"> 2556</span>&#160;    }</div>
-<div class="line"><a name="l02557"></a><span class="lineno"> 2557</span>&#160;    </div>
-<div class="line"><a name="l02558"></a><span class="lineno"> 2558</span>&#160;    <span class="keywordflow">return</span> 0;                                                                           <span class="comment">/* success return 0 */</span></div>
-<div class="line"><a name="l02559"></a><span class="lineno"> 2559</span>&#160;}</div>
-<div class="line"><a name="l02560"></a><span class="lineno"> 2560</span>&#160; </div>
-<div class="line"><a name="l02572"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#ga6b9f75f7426a54ffdb1f5a057f8188f4"> 2572</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__advance__driver.html#ga6b9f75f7426a54ffdb1f5a057f8188f4">w25qxx_exit_qspi_mode</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle)</div>
-<div class="line"><a name="l02573"></a><span class="lineno"> 2573</span>&#160;{</div>
-<div class="line"><a name="l02574"></a><span class="lineno"> 2574</span>&#160;    uint8_t res;</div>
-<div class="line"><a name="l02575"></a><span class="lineno"> 2575</span>&#160;    </div>
-<div class="line"><a name="l02576"></a><span class="lineno"> 2576</span>&#160;    <span class="keywordflow">if</span> (handle == NULL)                                                                 <span class="comment">/* check handle */</span></div>
-<div class="line"><a name="l02577"></a><span class="lineno"> 2577</span>&#160;    {</div>
-<div class="line"><a name="l02578"></a><span class="lineno"> 2578</span>&#160;        <span class="keywordflow">return</span> 2;                                                                       <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l02579"></a><span class="lineno"> 2579</span>&#160;    }   </div>
-<div class="line"><a name="l02580"></a><span class="lineno"> 2580</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">inited</a> != 1)                                                            <span class="comment">/* check handle initialization */</span></div>
-<div class="line"><a name="l02581"></a><span class="lineno"> 2581</span>&#160;    {</div>
-<div class="line"><a name="l02582"></a><span class="lineno"> 2582</span>&#160;        <span class="keywordflow">return</span> 3;                                                                       <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l02583"></a><span class="lineno"> 2583</span>&#160;    }</div>
-<div class="line"><a name="l02584"></a><span class="lineno"> 2584</span>&#160;    </div>
-<div class="line"><a name="l02585"></a><span class="lineno"> 2585</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>)                                       <span class="comment">/* spi interface */</span></div>
-<div class="line"><a name="l02586"></a><span class="lineno"> 2586</span>&#160;    {</div>
-<div class="line"><a name="l02587"></a><span class="lineno"> 2587</span>&#160;        handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: spi interface can&#39;t use this function.\n&quot;</span>);        <span class="comment">/* spi interface can&#39;t use this function */</span></div>
-<div class="line"><a name="l02588"></a><span class="lineno"> 2588</span>&#160;       </div>
-<div class="line"><a name="l02589"></a><span class="lineno"> 2589</span>&#160;        <span class="keywordflow">return</span> 4;                                                                       <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l02590"></a><span class="lineno"> 2590</span>&#160;    }</div>
-<div class="line"><a name="l02591"></a><span class="lineno"> 2591</span>&#160;    <span class="keywordflow">else</span></div>
-<div class="line"><a name="l02592"></a><span class="lineno"> 2592</span>&#160;    {</div>
-<div class="line"><a name="l02593"></a><span class="lineno"> 2593</span>&#160;        res = a_w25qxx_qspi_write_read(handle, 0xFF, 4,</div>
-<div class="line"><a name="l02594"></a><span class="lineno"> 2594</span>&#160;                                       0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l02595"></a><span class="lineno"> 2595</span>&#160;                                       0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l02596"></a><span class="lineno"> 2596</span>&#160;                                       0, NULL, 0x00,</div>
-<div class="line"><a name="l02597"></a><span class="lineno"> 2597</span>&#160;                                       NULL, 0x00, 0x00);                               <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l02598"></a><span class="lineno"> 2598</span>&#160;        <span class="keywordflow">if</span> (res != 0)                                                                   <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l02599"></a><span class="lineno"> 2599</span>&#160;        {</div>
-<div class="line"><a name="l02600"></a><span class="lineno"> 2600</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: exit qspi mode failed.\n&quot;</span>);                    <span class="comment">/* exit qspi mode failed */</span></div>
-<div class="line"><a name="l02601"></a><span class="lineno"> 2601</span>&#160;           </div>
-<div class="line"><a name="l02602"></a><span class="lineno"> 2602</span>&#160;            <span class="keywordflow">return</span> 1;                                                                   <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l02603"></a><span class="lineno"> 2603</span>&#160;        }</div>
-<div class="line"><a name="l02604"></a><span class="lineno"> 2604</span>&#160;    }</div>
-<div class="line"><a name="l02605"></a><span class="lineno"> 2605</span>&#160;    </div>
-<div class="line"><a name="l02606"></a><span class="lineno"> 2606</span>&#160;    <span class="keywordflow">return</span> 0;                                                                           <span class="comment">/* success return 0 */</span></div>
-<div class="line"><a name="l02607"></a><span class="lineno"> 2607</span>&#160;}</div>
-<div class="line"><a name="l02608"></a><span class="lineno"> 2608</span>&#160; </div>
-<div class="line"><a name="l02619"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#gab55b4e071e20feb58584025287949438"> 2619</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__advance__driver.html#gab55b4e071e20feb58584025287949438">w25qxx_enable_reset</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle)</div>
-<div class="line"><a name="l02620"></a><span class="lineno"> 2620</span>&#160;{</div>
-<div class="line"><a name="l02621"></a><span class="lineno"> 2621</span>&#160;    uint8_t res;</div>
-<div class="line"><a name="l02622"></a><span class="lineno"> 2622</span>&#160;    uint8_t buf[1];</div>
-<div class="line"><a name="l02623"></a><span class="lineno"> 2623</span>&#160;    </div>
-<div class="line"><a name="l02624"></a><span class="lineno"> 2624</span>&#160;    <span class="keywordflow">if</span> (handle == NULL)                                                              <span class="comment">/* check handle */</span></div>
-<div class="line"><a name="l02625"></a><span class="lineno"> 2625</span>&#160;    {</div>
-<div class="line"><a name="l02626"></a><span class="lineno"> 2626</span>&#160;        <span class="keywordflow">return</span> 2;                                                                    <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l02627"></a><span class="lineno"> 2627</span>&#160;    }   </div>
-<div class="line"><a name="l02628"></a><span class="lineno"> 2628</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">inited</a> != 1)                                                         <span class="comment">/* check handle initialization */</span></div>
-<div class="line"><a name="l02629"></a><span class="lineno"> 2629</span>&#160;    {</div>
-<div class="line"><a name="l02630"></a><span class="lineno"> 2630</span>&#160;        <span class="keywordflow">return</span> 3;                                                                    <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l02631"></a><span class="lineno"> 2631</span>&#160;    }</div>
-<div class="line"><a name="l02632"></a><span class="lineno"> 2632</span>&#160;    </div>
-<div class="line"><a name="l02633"></a><span class="lineno"> 2633</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>)                                    <span class="comment">/* spi interface */</span></div>
-<div class="line"><a name="l02634"></a><span class="lineno"> 2634</span>&#160;    {</div>
-<div class="line"><a name="l02635"></a><span class="lineno"> 2635</span>&#160;        <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">dual_quad_spi_enable</a> != 0)                                       <span class="comment">/* enable dual quad spi */</span></div>
-<div class="line"><a name="l02636"></a><span class="lineno"> 2636</span>&#160;        {</div>
-<div class="line"><a name="l02637"></a><span class="lineno"> 2637</span>&#160;            res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#a6dae3a832abc19d1861fafb32f231d94">W25QXX_COMMAND_ENABLE_RESET</a>, 1,</div>
-<div class="line"><a name="l02638"></a><span class="lineno"> 2638</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l02639"></a><span class="lineno"> 2639</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l02640"></a><span class="lineno"> 2640</span>&#160;                                           0, NULL, 0x00,</div>
-<div class="line"><a name="l02641"></a><span class="lineno"> 2641</span>&#160;                                           NULL, 0x00, 0x00);                        <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l02642"></a><span class="lineno"> 2642</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                            <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l02643"></a><span class="lineno"> 2643</span>&#160;            {</div>
-<div class="line"><a name="l02644"></a><span class="lineno"> 2644</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: enable reset failed.\n&quot;</span>);               <span class="comment">/* enable reset failed */</span></div>
-<div class="line"><a name="l02645"></a><span class="lineno"> 2645</span>&#160;               </div>
-<div class="line"><a name="l02646"></a><span class="lineno"> 2646</span>&#160;                <span class="keywordflow">return</span> 1;                                                            <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l02647"></a><span class="lineno"> 2647</span>&#160;            }</div>
-<div class="line"><a name="l02648"></a><span class="lineno"> 2648</span>&#160;        }</div>
-<div class="line"><a name="l02649"></a><span class="lineno"> 2649</span>&#160;        <span class="keywordflow">else</span>                                                                         <span class="comment">/* single spi */</span></div>
-<div class="line"><a name="l02650"></a><span class="lineno"> 2650</span>&#160;        {</div>
-<div class="line"><a name="l02651"></a><span class="lineno"> 2651</span>&#160;            buf[0] = <a class="code" href="driver__w25qxx_8c.html#a6dae3a832abc19d1861fafb32f231d94">W25QXX_COMMAND_ENABLE_RESET</a>;                                    <span class="comment">/* enable reset command */</span></div>
-<div class="line"><a name="l02652"></a><span class="lineno"> 2652</span>&#160;            res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf,</div>
-<div class="line"><a name="l02653"></a><span class="lineno"> 2653</span>&#160;                                          1, NULL, 0);                               <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l02654"></a><span class="lineno"> 2654</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                            <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l02655"></a><span class="lineno"> 2655</span>&#160;            {</div>
-<div class="line"><a name="l02656"></a><span class="lineno"> 2656</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: enable reset failed.\n&quot;</span>);               <span class="comment">/* enable reset failed */</span></div>
-<div class="line"><a name="l02657"></a><span class="lineno"> 2657</span>&#160;               </div>
-<div class="line"><a name="l02658"></a><span class="lineno"> 2658</span>&#160;                <span class="keywordflow">return</span> 1;                                                            <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l02659"></a><span class="lineno"> 2659</span>&#160;            }</div>
-<div class="line"><a name="l02660"></a><span class="lineno"> 2660</span>&#160;        }</div>
-<div class="line"><a name="l02661"></a><span class="lineno"> 2661</span>&#160;    }</div>
-<div class="line"><a name="l02662"></a><span class="lineno"> 2662</span>&#160;    <span class="keywordflow">else</span>                                                                             <span class="comment">/* qspi interface */</span></div>
-<div class="line"><a name="l02663"></a><span class="lineno"> 2663</span>&#160;    {</div>
-<div class="line"><a name="l02664"></a><span class="lineno"> 2664</span>&#160;        res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#a6dae3a832abc19d1861fafb32f231d94">W25QXX_COMMAND_ENABLE_RESET</a>, 4,</div>
-<div class="line"><a name="l02665"></a><span class="lineno"> 2665</span>&#160;                                       0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l02666"></a><span class="lineno"> 2666</span>&#160;                                       0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l02667"></a><span class="lineno"> 2667</span>&#160;                                       0, NULL, 0x00,</div>
-<div class="line"><a name="l02668"></a><span class="lineno"> 2668</span>&#160;                                       NULL, 0x00, 0x00);                            <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l02669"></a><span class="lineno"> 2669</span>&#160;        <span class="keywordflow">if</span> (res != 0)                                                                <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l02670"></a><span class="lineno"> 2670</span>&#160;        {</div>
-<div class="line"><a name="l02671"></a><span class="lineno"> 2671</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: enable reset failed.\n&quot;</span>);                   <span class="comment">/* enable reset failed */</span></div>
-<div class="line"><a name="l02672"></a><span class="lineno"> 2672</span>&#160;           </div>
-<div class="line"><a name="l02673"></a><span class="lineno"> 2673</span>&#160;            <span class="keywordflow">return</span> 1;                                                                <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l02674"></a><span class="lineno"> 2674</span>&#160;        }</div>
-<div class="line"><a name="l02675"></a><span class="lineno"> 2675</span>&#160;    }</div>
-<div class="line"><a name="l02676"></a><span class="lineno"> 2676</span>&#160;    </div>
-<div class="line"><a name="l02677"></a><span class="lineno"> 2677</span>&#160;    <span class="keywordflow">return</span> 0;                                                                        <span class="comment">/* success return 0 */</span></div>
-<div class="line"><a name="l02678"></a><span class="lineno"> 2678</span>&#160;}</div>
-<div class="line"><a name="l02679"></a><span class="lineno"> 2679</span>&#160; </div>
-<div class="line"><a name="l02690"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#ga2abebfe2a8d9377eb88448ffca73f222"> 2690</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__advance__driver.html#ga2abebfe2a8d9377eb88448ffca73f222">w25qxx_reset_device</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle)</div>
-<div class="line"><a name="l02691"></a><span class="lineno"> 2691</span>&#160;{</div>
-<div class="line"><a name="l02692"></a><span class="lineno"> 2692</span>&#160;    uint8_t res;</div>
-<div class="line"><a name="l02693"></a><span class="lineno"> 2693</span>&#160;    uint8_t buf[1];</div>
-<div class="line"><a name="l02694"></a><span class="lineno"> 2694</span>&#160;    </div>
-<div class="line"><a name="l02695"></a><span class="lineno"> 2695</span>&#160;    <span class="keywordflow">if</span> (handle == NULL)                                                              <span class="comment">/* check handle */</span></div>
-<div class="line"><a name="l02696"></a><span class="lineno"> 2696</span>&#160;    {</div>
-<div class="line"><a name="l02697"></a><span class="lineno"> 2697</span>&#160;        <span class="keywordflow">return</span> 2;                                                                    <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l02698"></a><span class="lineno"> 2698</span>&#160;    }   </div>
-<div class="line"><a name="l02699"></a><span class="lineno"> 2699</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">inited</a> != 1)                                                         <span class="comment">/* check handle initialization */</span></div>
-<div class="line"><a name="l02700"></a><span class="lineno"> 2700</span>&#160;    {</div>
-<div class="line"><a name="l02701"></a><span class="lineno"> 2701</span>&#160;        <span class="keywordflow">return</span> 3;                                                                    <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l02702"></a><span class="lineno"> 2702</span>&#160;    }</div>
-<div class="line"><a name="l02703"></a><span class="lineno"> 2703</span>&#160;    </div>
-<div class="line"><a name="l02704"></a><span class="lineno"> 2704</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>)                                    <span class="comment">/* spi interface */</span></div>
-<div class="line"><a name="l02705"></a><span class="lineno"> 2705</span>&#160;    {</div>
-<div class="line"><a name="l02706"></a><span class="lineno"> 2706</span>&#160;        <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">dual_quad_spi_enable</a> != 0)                                       <span class="comment">/* enable dual quad spi */</span></div>
-<div class="line"><a name="l02707"></a><span class="lineno"> 2707</span>&#160;        {</div>
-<div class="line"><a name="l02708"></a><span class="lineno"> 2708</span>&#160;            res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#ab25182298c921c8f7f42216e0d5aa56b">W25QXX_COMMAND_RESET_DEVICE</a>, 1,</div>
-<div class="line"><a name="l02709"></a><span class="lineno"> 2709</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l02710"></a><span class="lineno"> 2710</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l02711"></a><span class="lineno"> 2711</span>&#160;                                           0, NULL, 0x00,</div>
-<div class="line"><a name="l02712"></a><span class="lineno"> 2712</span>&#160;                                           NULL, 0x00, 0x00);                        <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l02713"></a><span class="lineno"> 2713</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                            <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l02714"></a><span class="lineno"> 2714</span>&#160;            {</div>
-<div class="line"><a name="l02715"></a><span class="lineno"> 2715</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: reset device failed.\n&quot;</span>);               <span class="comment">/* reset device failed */</span></div>
-<div class="line"><a name="l02716"></a><span class="lineno"> 2716</span>&#160;               </div>
-<div class="line"><a name="l02717"></a><span class="lineno"> 2717</span>&#160;                <span class="keywordflow">return</span> 1;                                                            <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l02718"></a><span class="lineno"> 2718</span>&#160;            }</div>
-<div class="line"><a name="l02719"></a><span class="lineno"> 2719</span>&#160;        }</div>
-<div class="line"><a name="l02720"></a><span class="lineno"> 2720</span>&#160;        <span class="keywordflow">else</span>                                                                         <span class="comment">/* single spi */</span></div>
-<div class="line"><a name="l02721"></a><span class="lineno"> 2721</span>&#160;        {</div>
-<div class="line"><a name="l02722"></a><span class="lineno"> 2722</span>&#160;            buf[0] = <a class="code" href="driver__w25qxx_8c.html#ab25182298c921c8f7f42216e0d5aa56b">W25QXX_COMMAND_RESET_DEVICE</a>;                                    <span class="comment">/* reset device command */</span></div>
-<div class="line"><a name="l02723"></a><span class="lineno"> 2723</span>&#160;            res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf,</div>
-<div class="line"><a name="l02724"></a><span class="lineno"> 2724</span>&#160;                                          1, NULL, 0);                               <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l02725"></a><span class="lineno"> 2725</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                            <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l02726"></a><span class="lineno"> 2726</span>&#160;            {</div>
-<div class="line"><a name="l02727"></a><span class="lineno"> 2727</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: reset device failed.\n&quot;</span>);               <span class="comment">/* reset device failed */</span></div>
-<div class="line"><a name="l02728"></a><span class="lineno"> 2728</span>&#160;               </div>
-<div class="line"><a name="l02729"></a><span class="lineno"> 2729</span>&#160;                <span class="keywordflow">return</span> 1;                                                            <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l02730"></a><span class="lineno"> 2730</span>&#160;            }</div>
-<div class="line"><a name="l02731"></a><span class="lineno"> 2731</span>&#160;        }</div>
-<div class="line"><a name="l02732"></a><span class="lineno"> 2732</span>&#160;    }</div>
-<div class="line"><a name="l02733"></a><span class="lineno"> 2733</span>&#160;    <span class="keywordflow">else</span>                                                                             <span class="comment">/* qspi interface */</span></div>
-<div class="line"><a name="l02734"></a><span class="lineno"> 2734</span>&#160;    {</div>
-<div class="line"><a name="l02735"></a><span class="lineno"> 2735</span>&#160;        res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#ab25182298c921c8f7f42216e0d5aa56b">W25QXX_COMMAND_RESET_DEVICE</a>, 4,</div>
-<div class="line"><a name="l02736"></a><span class="lineno"> 2736</span>&#160;                                       0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l02737"></a><span class="lineno"> 2737</span>&#160;                                       0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l02738"></a><span class="lineno"> 2738</span>&#160;                                       0, NULL, 0x00,</div>
-<div class="line"><a name="l02739"></a><span class="lineno"> 2739</span>&#160;                                       NULL, 0x00, 0x00);                            <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l02740"></a><span class="lineno"> 2740</span>&#160;        <span class="keywordflow">if</span> (res != 0)                                                                <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l02741"></a><span class="lineno"> 2741</span>&#160;        {</div>
-<div class="line"><a name="l02742"></a><span class="lineno"> 2742</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: reset device failed.\n&quot;</span>);                   <span class="comment">/* reset device failed */</span></div>
-<div class="line"><a name="l02743"></a><span class="lineno"> 2743</span>&#160;           </div>
-<div class="line"><a name="l02744"></a><span class="lineno"> 2744</span>&#160;            <span class="keywordflow">return</span> 1;                                                                <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l02745"></a><span class="lineno"> 2745</span>&#160;        }</div>
-<div class="line"><a name="l02746"></a><span class="lineno"> 2746</span>&#160;    }</div>
-<div class="line"><a name="l02747"></a><span class="lineno"> 2747</span>&#160;    </div>
-<div class="line"><a name="l02748"></a><span class="lineno"> 2748</span>&#160;    <span class="keywordflow">return</span> 0;                                                                        <span class="comment">/* success return 0 */</span></div>
-<div class="line"><a name="l02749"></a><span class="lineno"> 2749</span>&#160;}</div>
-<div class="line"><a name="l02750"></a><span class="lineno"> 2750</span>&#160; </div>
-<div class="line"><a name="l02764"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#ga11af244389478de68a6777076ee82d69"> 2764</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__advance__driver.html#ga11af244389478de68a6777076ee82d69">w25qxx_get_unique_id</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint8_t <span class="keywordtype">id</span>[8])</div>
-<div class="line"><a name="l02765"></a><span class="lineno"> 2765</span>&#160;{</div>
-<div class="line"><a name="l02766"></a><span class="lineno"> 2766</span>&#160;    uint8_t res;</div>
-<div class="line"><a name="l02767"></a><span class="lineno"> 2767</span>&#160;    uint8_t buf[6];</div>
-<div class="line"><a name="l02768"></a><span class="lineno"> 2768</span>&#160;    </div>
-<div class="line"><a name="l02769"></a><span class="lineno"> 2769</span>&#160;    <span class="keywordflow">if</span> (handle == NULL)                                                                                           <span class="comment">/* check handle */</span></div>
-<div class="line"><a name="l02770"></a><span class="lineno"> 2770</span>&#160;    {</div>
-<div class="line"><a name="l02771"></a><span class="lineno"> 2771</span>&#160;        <span class="keywordflow">return</span> 2;                                                                                                 <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l02772"></a><span class="lineno"> 2772</span>&#160;    }   </div>
-<div class="line"><a name="l02773"></a><span class="lineno"> 2773</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">inited</a> != 1)                                                                                      <span class="comment">/* check handle initialization */</span></div>
-<div class="line"><a name="l02774"></a><span class="lineno"> 2774</span>&#160;    {</div>
-<div class="line"><a name="l02775"></a><span class="lineno"> 2775</span>&#160;        <span class="keywordflow">return</span> 3;                                                                                                 <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l02776"></a><span class="lineno"> 2776</span>&#160;    }</div>
-<div class="line"><a name="l02777"></a><span class="lineno"> 2777</span>&#160;    </div>
-<div class="line"><a name="l02778"></a><span class="lineno"> 2778</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>)                                                                 <span class="comment">/* spi interface */</span></div>
-<div class="line"><a name="l02779"></a><span class="lineno"> 2779</span>&#160;    {</div>
-<div class="line"><a name="l02780"></a><span class="lineno"> 2780</span>&#160;        <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">dual_quad_spi_enable</a> != 0)                                                                    <span class="comment">/* enable dual quad spi */</span></div>
-<div class="line"><a name="l02781"></a><span class="lineno"> 2781</span>&#160;        {</div>
-<div class="line"><a name="l02782"></a><span class="lineno"> 2782</span>&#160;            <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                               <span class="comment">/* 3 address mode */</span></div>
-<div class="line"><a name="l02783"></a><span class="lineno"> 2783</span>&#160;            {</div>
-<div class="line"><a name="l02784"></a><span class="lineno"> 2784</span>&#160;                res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#a6aeed0a651b31064f25ab2f57fdacf2f">W25QXX_COMMAND_READ_UNIQUE_ID</a>, 1,</div>
-<div class="line"><a name="l02785"></a><span class="lineno"> 2785</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l02786"></a><span class="lineno"> 2786</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l02787"></a><span class="lineno"> 2787</span>&#160;                                               4 * 8, NULL, 0x00,</div>
-<div class="line"><a name="l02788"></a><span class="lineno"> 2788</span>&#160;                                              (uint8_t *)<span class="keywordtype">id</span>, 8, 1);                                               <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l02789"></a><span class="lineno"> 2789</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                                     <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l02790"></a><span class="lineno"> 2790</span>&#160;                {</div>
-<div class="line"><a name="l02791"></a><span class="lineno"> 2791</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: read unique id failed.\n&quot;</span>);                                      <span class="comment">/* read unique id failed */</span></div>
-<div class="line"><a name="l02792"></a><span class="lineno"> 2792</span>&#160;                   </div>
-<div class="line"><a name="l02793"></a><span class="lineno"> 2793</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                                     <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l02794"></a><span class="lineno"> 2794</span>&#160;                }</div>
-<div class="line"><a name="l02795"></a><span class="lineno"> 2795</span>&#160;            }</div>
-<div class="line"><a name="l02796"></a><span class="lineno"> 2796</span>&#160;            <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>) &amp;&amp; (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>))</div>
-<div class="line"><a name="l02797"></a><span class="lineno"> 2797</span>&#160;            {</div>
-<div class="line"><a name="l02798"></a><span class="lineno"> 2798</span>&#160;                res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#a6aeed0a651b31064f25ab2f57fdacf2f">W25QXX_COMMAND_READ_UNIQUE_ID</a>, 1,</div>
-<div class="line"><a name="l02799"></a><span class="lineno"> 2799</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l02800"></a><span class="lineno"> 2800</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l02801"></a><span class="lineno"> 2801</span>&#160;                                               5 * 8, NULL, 0x00,</div>
-<div class="line"><a name="l02802"></a><span class="lineno"> 2802</span>&#160;                                              (uint8_t *)<span class="keywordtype">id</span>, 8, 1);                                               <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l02803"></a><span class="lineno"> 2803</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                                     <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l02804"></a><span class="lineno"> 2804</span>&#160;                {</div>
-<div class="line"><a name="l02805"></a><span class="lineno"> 2805</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: read unique id failed.\n&quot;</span>);                                      <span class="comment">/* read unique id failed */</span></div>
-<div class="line"><a name="l02806"></a><span class="lineno"> 2806</span>&#160;                   </div>
-<div class="line"><a name="l02807"></a><span class="lineno"> 2807</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                                     <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l02808"></a><span class="lineno"> 2808</span>&#160;                }</div>
-<div class="line"><a name="l02809"></a><span class="lineno"> 2809</span>&#160;            }</div>
-<div class="line"><a name="l02810"></a><span class="lineno"> 2810</span>&#160;            <span class="keywordflow">else</span></div>
-<div class="line"><a name="l02811"></a><span class="lineno"> 2811</span>&#160;            {</div>
-<div class="line"><a name="l02812"></a><span class="lineno"> 2812</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: address mode is invalid.\n&quot;</span>);                                        <span class="comment">/* address mode is invalid */</span></div>
-<div class="line"><a name="l02813"></a><span class="lineno"> 2813</span>&#160;               </div>
-<div class="line"><a name="l02814"></a><span class="lineno"> 2814</span>&#160;                <span class="keywordflow">return</span> 4;                                                                                         <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l02815"></a><span class="lineno"> 2815</span>&#160;            }</div>
-<div class="line"><a name="l02816"></a><span class="lineno"> 2816</span>&#160;        }</div>
-<div class="line"><a name="l02817"></a><span class="lineno"> 2817</span>&#160;        <span class="keywordflow">else</span>                                                                                                      <span class="comment">/* single spi */</span></div>
-<div class="line"><a name="l02818"></a><span class="lineno"> 2818</span>&#160;        {</div>
-<div class="line"><a name="l02819"></a><span class="lineno"> 2819</span>&#160;            <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                               <span class="comment">/* 3 address mode */</span></div>
-<div class="line"><a name="l02820"></a><span class="lineno"> 2820</span>&#160;            {</div>
-<div class="line"><a name="l02821"></a><span class="lineno"> 2821</span>&#160;                buf[0] = <a class="code" href="driver__w25qxx_8c.html#a6aeed0a651b31064f25ab2f57fdacf2f">W25QXX_COMMAND_READ_UNIQUE_ID</a>;                                                           <span class="comment">/* read unique id command */</span></div>
-<div class="line"><a name="l02822"></a><span class="lineno"> 2822</span>&#160;                buf[1] = 0x00;                                                                                    <span class="comment">/* dummy */</span></div>
-<div class="line"><a name="l02823"></a><span class="lineno"> 2823</span>&#160;                buf[2] = 0x00;                                                                                    <span class="comment">/* dummy */</span></div>
-<div class="line"><a name="l02824"></a><span class="lineno"> 2824</span>&#160;                buf[3] = 0x00;                                                                                    <span class="comment">/* dummy */</span></div>
-<div class="line"><a name="l02825"></a><span class="lineno"> 2825</span>&#160;                buf[4] = 0x00;                                                                                    <span class="comment">/* dummy */</span></div>
-<div class="line"><a name="l02826"></a><span class="lineno"> 2826</span>&#160;                res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 5, (uint8_t *)<span class="keywordtype">id</span>, 8);                       <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l02827"></a><span class="lineno"> 2827</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                                     <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l02828"></a><span class="lineno"> 2828</span>&#160;                {</div>
-<div class="line"><a name="l02829"></a><span class="lineno"> 2829</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: read unique id failed.\n&quot;</span>);                                      <span class="comment">/* read unique id failed */</span></div>
-<div class="line"><a name="l02830"></a><span class="lineno"> 2830</span>&#160;                   </div>
-<div class="line"><a name="l02831"></a><span class="lineno"> 2831</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                                     <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l02832"></a><span class="lineno"> 2832</span>&#160;                }</div>
-<div class="line"><a name="l02833"></a><span class="lineno"> 2833</span>&#160;            }</div>
-<div class="line"><a name="l02834"></a><span class="lineno"> 2834</span>&#160;            <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>) &amp;&amp; (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>))</div>
-<div class="line"><a name="l02835"></a><span class="lineno"> 2835</span>&#160;            {</div>
-<div class="line"><a name="l02836"></a><span class="lineno"> 2836</span>&#160;                buf[0] = <a class="code" href="driver__w25qxx_8c.html#a6aeed0a651b31064f25ab2f57fdacf2f">W25QXX_COMMAND_READ_UNIQUE_ID</a>;                                                           <span class="comment">/* read unique id command */</span></div>
-<div class="line"><a name="l02837"></a><span class="lineno"> 2837</span>&#160;                buf[1] = 0x00;                                                                                    <span class="comment">/* dummy */</span></div>
-<div class="line"><a name="l02838"></a><span class="lineno"> 2838</span>&#160;                buf[2] = 0x00;                                                                                    <span class="comment">/* dummy */</span></div>
-<div class="line"><a name="l02839"></a><span class="lineno"> 2839</span>&#160;                buf[3] = 0x00;                                                                                    <span class="comment">/* dummy */</span></div>
-<div class="line"><a name="l02840"></a><span class="lineno"> 2840</span>&#160;                buf[4] = 0x00;                                                                                    <span class="comment">/* dummy */</span></div>
-<div class="line"><a name="l02841"></a><span class="lineno"> 2841</span>&#160;                buf[5] = 0x00;                                                                                    <span class="comment">/* dummy */</span></div>
-<div class="line"><a name="l02842"></a><span class="lineno"> 2842</span>&#160;                res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 6, (uint8_t *)<span class="keywordtype">id</span>, 8);                       <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l02843"></a><span class="lineno"> 2843</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                                     <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l02844"></a><span class="lineno"> 2844</span>&#160;                {</div>
-<div class="line"><a name="l02845"></a><span class="lineno"> 2845</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: read unique id failed.\n&quot;</span>);                                      <span class="comment">/* read unique id failed */</span></div>
-<div class="line"><a name="l02846"></a><span class="lineno"> 2846</span>&#160;                   </div>
-<div class="line"><a name="l02847"></a><span class="lineno"> 2847</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                                     <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l02848"></a><span class="lineno"> 2848</span>&#160;                }</div>
-<div class="line"><a name="l02849"></a><span class="lineno"> 2849</span>&#160;            }</div>
-<div class="line"><a name="l02850"></a><span class="lineno"> 2850</span>&#160;            <span class="keywordflow">else</span></div>
-<div class="line"><a name="l02851"></a><span class="lineno"> 2851</span>&#160;            {</div>
-<div class="line"><a name="l02852"></a><span class="lineno"> 2852</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: address mode is invalid.\n&quot;</span>);                                        <span class="comment">/* address mode is invalid */</span></div>
-<div class="line"><a name="l02853"></a><span class="lineno"> 2853</span>&#160;               </div>
-<div class="line"><a name="l02854"></a><span class="lineno"> 2854</span>&#160;                <span class="keywordflow">return</span> 4;                                                                                         <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l02855"></a><span class="lineno"> 2855</span>&#160;            }</div>
-<div class="line"><a name="l02856"></a><span class="lineno"> 2856</span>&#160;        }</div>
-<div class="line"><a name="l02857"></a><span class="lineno"> 2857</span>&#160;    }</div>
-<div class="line"><a name="l02858"></a><span class="lineno"> 2858</span>&#160;    <span class="keywordflow">else</span>                                                                                                          <span class="comment">/* qspi interface */</span></div>
-<div class="line"><a name="l02859"></a><span class="lineno"> 2859</span>&#160;    {</div>
-<div class="line"><a name="l02860"></a><span class="lineno"> 2860</span>&#160;        handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: qspi can&#39;t use this function.\n&quot;</span>);                                           <span class="comment">/* qspi can&#39;t use this function */</span></div>
-<div class="line"><a name="l02861"></a><span class="lineno"> 2861</span>&#160;       </div>
-<div class="line"><a name="l02862"></a><span class="lineno"> 2862</span>&#160;        <span class="keywordflow">return</span> 5;                                                                                                 <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l02863"></a><span class="lineno"> 2863</span>&#160;    }</div>
-<div class="line"><a name="l02864"></a><span class="lineno"> 2864</span>&#160;    </div>
-<div class="line"><a name="l02865"></a><span class="lineno"> 2865</span>&#160;    <span class="keywordflow">return</span> 0;                                                                                                     <span class="comment">/* success return 0 */</span></div>
-<div class="line"><a name="l02866"></a><span class="lineno"> 2866</span>&#160;}</div>
-<div class="line"><a name="l02867"></a><span class="lineno"> 2867</span>&#160; </div>
-<div class="line"><a name="l02880"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#ga244a91b9c0c32e899ca89e1943045624"> 2880</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__advance__driver.html#ga244a91b9c0c32e899ca89e1943045624">w25qxx_get_sfdp</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint8_t sfdp[256])</div>
-<div class="line"><a name="l02881"></a><span class="lineno"> 2881</span>&#160;{</div>
-<div class="line"><a name="l02882"></a><span class="lineno"> 2882</span>&#160;    uint8_t res;</div>
-<div class="line"><a name="l02883"></a><span class="lineno"> 2883</span>&#160;    uint8_t buf[5];</div>
-<div class="line"><a name="l02884"></a><span class="lineno"> 2884</span>&#160;    </div>
-<div class="line"><a name="l02885"></a><span class="lineno"> 2885</span>&#160;    <span class="keywordflow">if</span> (handle == NULL)                                                                       <span class="comment">/* check handle */</span></div>
-<div class="line"><a name="l02886"></a><span class="lineno"> 2886</span>&#160;    {</div>
-<div class="line"><a name="l02887"></a><span class="lineno"> 2887</span>&#160;        <span class="keywordflow">return</span> 2;                                                                             <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l02888"></a><span class="lineno"> 2888</span>&#160;    }   </div>
-<div class="line"><a name="l02889"></a><span class="lineno"> 2889</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">inited</a> != 1)                                                                  <span class="comment">/* check handle initialization */</span></div>
-<div class="line"><a name="l02890"></a><span class="lineno"> 2890</span>&#160;    {</div>
-<div class="line"><a name="l02891"></a><span class="lineno"> 2891</span>&#160;        <span class="keywordflow">return</span> 3;                                                                             <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l02892"></a><span class="lineno"> 2892</span>&#160;    }</div>
-<div class="line"><a name="l02893"></a><span class="lineno"> 2893</span>&#160;    </div>
-<div class="line"><a name="l02894"></a><span class="lineno"> 2894</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>)                                             <span class="comment">/* spi interface */</span></div>
-<div class="line"><a name="l02895"></a><span class="lineno"> 2895</span>&#160;    {</div>
-<div class="line"><a name="l02896"></a><span class="lineno"> 2896</span>&#160;        <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">dual_quad_spi_enable</a> != 0)                                                <span class="comment">/* enable dual quad spi */</span></div>
-<div class="line"><a name="l02897"></a><span class="lineno"> 2897</span>&#160;        {</div>
-<div class="line"><a name="l02898"></a><span class="lineno"> 2898</span>&#160;            res = a_w25qxx_qspi_write_read(handle,</div>
-<div class="line"><a name="l02899"></a><span class="lineno"> 2899</span>&#160;                                           <a class="code" href="driver__w25qxx_8c.html#a63774c5ebbdf5445466d840fad567bf6">W25QXX_COMMAND_READ_SFDP_REGISTER</a>, 1,</div>
-<div class="line"><a name="l02900"></a><span class="lineno"> 2900</span>&#160;                                           0x00000000, 1, 3,</div>
-<div class="line"><a name="l02901"></a><span class="lineno"> 2901</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l02902"></a><span class="lineno"> 2902</span>&#160;                                           8, NULL, 0x00,</div>
-<div class="line"><a name="l02903"></a><span class="lineno"> 2903</span>&#160;                                          (uint8_t *)sfdp, 256, 1);                           <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l02904"></a><span class="lineno"> 2904</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                     <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l02905"></a><span class="lineno"> 2905</span>&#160;            {</div>
-<div class="line"><a name="l02906"></a><span class="lineno"> 2906</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: read unique id failed.\n&quot;</span>);                      <span class="comment">/* read unique id failed */</span></div>
-<div class="line"><a name="l02907"></a><span class="lineno"> 2907</span>&#160;               </div>
-<div class="line"><a name="l02908"></a><span class="lineno"> 2908</span>&#160;                <span class="keywordflow">return</span> 1;                                                                     <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l02909"></a><span class="lineno"> 2909</span>&#160;            }</div>
-<div class="line"><a name="l02910"></a><span class="lineno"> 2910</span>&#160;        }</div>
-<div class="line"><a name="l02911"></a><span class="lineno"> 2911</span>&#160;        <span class="keywordflow">else</span>                                                                                  <span class="comment">/* single spi */</span></div>
-<div class="line"><a name="l02912"></a><span class="lineno"> 2912</span>&#160;        {</div>
-<div class="line"><a name="l02913"></a><span class="lineno"> 2913</span>&#160;            buf[0] = <a class="code" href="driver__w25qxx_8c.html#a63774c5ebbdf5445466d840fad567bf6">W25QXX_COMMAND_READ_SFDP_REGISTER</a>;                                       <span class="comment">/* read sfdp command */</span></div>
-<div class="line"><a name="l02914"></a><span class="lineno"> 2914</span>&#160;            buf[1] = 0x00;                                                                    <span class="comment">/* 0x00 */</span></div>
-<div class="line"><a name="l02915"></a><span class="lineno"> 2915</span>&#160;            buf[2] = 0x00;                                                                    <span class="comment">/* 0x00 */</span></div>
-<div class="line"><a name="l02916"></a><span class="lineno"> 2916</span>&#160;            buf[3] = 0x00;                                                                    <span class="comment">/* 0x00 */</span></div>
-<div class="line"><a name="l02917"></a><span class="lineno"> 2917</span>&#160;            buf[4] = 0x00;                                                                    <span class="comment">/* dummy */</span></div>
-<div class="line"><a name="l02918"></a><span class="lineno"> 2918</span>&#160;            res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 5,</div>
-<div class="line"><a name="l02919"></a><span class="lineno"> 2919</span>&#160;                                         (uint8_t *)sfdp, 256);                               <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l02920"></a><span class="lineno"> 2920</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                     <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l02921"></a><span class="lineno"> 2921</span>&#160;            {</div>
-<div class="line"><a name="l02922"></a><span class="lineno"> 2922</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: get sfdp failed.\n&quot;</span>);                            <span class="comment">/* get sfdp failed */</span></div>
-<div class="line"><a name="l02923"></a><span class="lineno"> 2923</span>&#160;               </div>
-<div class="line"><a name="l02924"></a><span class="lineno"> 2924</span>&#160;                <span class="keywordflow">return</span> 1;                                                                     <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l02925"></a><span class="lineno"> 2925</span>&#160;            }</div>
-<div class="line"><a name="l02926"></a><span class="lineno"> 2926</span>&#160;        }</div>
-<div class="line"><a name="l02927"></a><span class="lineno"> 2927</span>&#160;    }</div>
-<div class="line"><a name="l02928"></a><span class="lineno"> 2928</span>&#160;    <span class="keywordflow">else</span>                                                                                      <span class="comment">/* qspi interface */</span></div>
-<div class="line"><a name="l02929"></a><span class="lineno"> 2929</span>&#160;    {</div>
-<div class="line"><a name="l02930"></a><span class="lineno"> 2930</span>&#160;        handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: qspi can&#39;t use this function.\n&quot;</span>);                       <span class="comment">/* qspi can&#39;t use this function */</span></div>
-<div class="line"><a name="l02931"></a><span class="lineno"> 2931</span>&#160;       </div>
-<div class="line"><a name="l02932"></a><span class="lineno"> 2932</span>&#160;        <span class="keywordflow">return</span> 4;                                                                             <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l02933"></a><span class="lineno"> 2933</span>&#160;    }</div>
-<div class="line"><a name="l02934"></a><span class="lineno"> 2934</span>&#160;    </div>
-<div class="line"><a name="l02935"></a><span class="lineno"> 2935</span>&#160;    <span class="keywordflow">return</span> 0;                                                                                 <span class="comment">/* success return 0 */</span></div>
-<div class="line"><a name="l02936"></a><span class="lineno"> 2936</span>&#160;}</div>
-<div class="line"><a name="l02937"></a><span class="lineno"> 2937</span>&#160; </div>
-<div class="line"><a name="l02952"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#gaf297e2c6877c64f8fd10a555f783ddaf"> 2952</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__advance__driver.html#gaf297e2c6877c64f8fd10a555f783ddaf">w25qxx_erase_security_register</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, <a class="code" href="group__w25qxx__advance__driver.html#ga81ddc7d4b9f4f124163beea19cc33c7e">w25qxx_security_register_t</a> num)</div>
-<div class="line"><a name="l02953"></a><span class="lineno"> 2953</span>&#160;{</div>
-<div class="line"><a name="l02954"></a><span class="lineno"> 2954</span>&#160;    uint8_t res;</div>
-<div class="line"><a name="l02955"></a><span class="lineno"> 2955</span>&#160;    uint8_t status;</div>
-<div class="line"><a name="l02956"></a><span class="lineno"> 2956</span>&#160;    uint32_t timeout;</div>
-<div class="line"><a name="l02957"></a><span class="lineno"> 2957</span>&#160;    uint8_t buf[5];</div>
-<div class="line"><a name="l02958"></a><span class="lineno"> 2958</span>&#160;    </div>
-<div class="line"><a name="l02959"></a><span class="lineno"> 2959</span>&#160;    <span class="keywordflow">if</span> (handle == NULL)                                                                                       <span class="comment">/* check handle */</span></div>
-<div class="line"><a name="l02960"></a><span class="lineno"> 2960</span>&#160;    {</div>
-<div class="line"><a name="l02961"></a><span class="lineno"> 2961</span>&#160;        <span class="keywordflow">return</span> 2;                                                                                             <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l02962"></a><span class="lineno"> 2962</span>&#160;    }   </div>
-<div class="line"><a name="l02963"></a><span class="lineno"> 2963</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">inited</a> != 1)                                                                                  <span class="comment">/* check handle initialization */</span></div>
-<div class="line"><a name="l02964"></a><span class="lineno"> 2964</span>&#160;    {</div>
-<div class="line"><a name="l02965"></a><span class="lineno"> 2965</span>&#160;        <span class="keywordflow">return</span> 3;                                                                                             <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l02966"></a><span class="lineno"> 2966</span>&#160;    }</div>
-<div class="line"><a name="l02967"></a><span class="lineno"> 2967</span>&#160;    </div>
-<div class="line"><a name="l02968"></a><span class="lineno"> 2968</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>)                                                             <span class="comment">/* spi interface */</span></div>
-<div class="line"><a name="l02969"></a><span class="lineno"> 2969</span>&#160;    {</div>
-<div class="line"><a name="l02970"></a><span class="lineno"> 2970</span>&#160;        <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">dual_quad_spi_enable</a> != 0)                                                                <span class="comment">/* enable dual quad spi */</span></div>
-<div class="line"><a name="l02971"></a><span class="lineno"> 2971</span>&#160;        {</div>
-<div class="line"><a name="l02972"></a><span class="lineno"> 2972</span>&#160;            res = a_w25qxx_qspi_write_read(handle,</div>
-<div class="line"><a name="l02973"></a><span class="lineno"> 2973</span>&#160;                                           <a class="code" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>, 1,</div>
-<div class="line"><a name="l02974"></a><span class="lineno"> 2974</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l02975"></a><span class="lineno"> 2975</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l02976"></a><span class="lineno"> 2976</span>&#160;                                           0x00, NULL, 0x00,</div>
-<div class="line"><a name="l02977"></a><span class="lineno"> 2977</span>&#160;                                           NULL, 0x00, 0x00);                                                 <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l02978"></a><span class="lineno"> 2978</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                                     <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l02979"></a><span class="lineno"> 2979</span>&#160;            {</div>
-<div class="line"><a name="l02980"></a><span class="lineno"> 2980</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                                        <span class="comment">/* write enable failed */</span></div>
-<div class="line"><a name="l02981"></a><span class="lineno"> 2981</span>&#160;               </div>
-<div class="line"><a name="l02982"></a><span class="lineno"> 2982</span>&#160;                <span class="keywordflow">return</span> 1;                                                                                     <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l02983"></a><span class="lineno"> 2983</span>&#160;            }</div>
-<div class="line"><a name="l02984"></a><span class="lineno"> 2984</span>&#160;            <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                           <span class="comment">/* 3 address mode */</span></div>
-<div class="line"><a name="l02985"></a><span class="lineno"> 2985</span>&#160;            {</div>
-<div class="line"><a name="l02986"></a><span class="lineno"> 2986</span>&#160;                res = a_w25qxx_qspi_write_read(handle,</div>
-<div class="line"><a name="l02987"></a><span class="lineno"> 2987</span>&#160;                                               <a class="code" href="driver__w25qxx_8c.html#a842f8d646fc8f8ed72422fc1d789498c">W25QXX_COMMAND_ERASE_SECURITY_REGISTER</a>, 1,</div>
-<div class="line"><a name="l02988"></a><span class="lineno"> 2988</span>&#160;                                               num &lt;&lt; 8, 1, 3,</div>
-<div class="line"><a name="l02989"></a><span class="lineno"> 2989</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l02990"></a><span class="lineno"> 2990</span>&#160;                                               0x00, NULL, 0x00,</div>
-<div class="line"><a name="l02991"></a><span class="lineno"> 2991</span>&#160;                                               NULL, 0x00, 0x00);                                             <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l02992"></a><span class="lineno"> 2992</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                                 <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l02993"></a><span class="lineno"> 2993</span>&#160;                {</div>
-<div class="line"><a name="l02994"></a><span class="lineno"> 2994</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: erase security register failed.\n&quot;</span>);                         <span class="comment">/* erase security register failed */</span></div>
-<div class="line"><a name="l02995"></a><span class="lineno"> 2995</span>&#160;                   </div>
-<div class="line"><a name="l02996"></a><span class="lineno"> 2996</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                                 <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l02997"></a><span class="lineno"> 2997</span>&#160;                }</div>
-<div class="line"><a name="l02998"></a><span class="lineno"> 2998</span>&#160;            }</div>
-<div class="line"><a name="l02999"></a><span class="lineno"> 2999</span>&#160;            <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>) &amp;&amp; (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>))</div>
-<div class="line"><a name="l03000"></a><span class="lineno"> 3000</span>&#160;            {</div>
-<div class="line"><a name="l03001"></a><span class="lineno"> 3001</span>&#160;                res = a_w25qxx_qspi_write_read(handle,</div>
-<div class="line"><a name="l03002"></a><span class="lineno"> 3002</span>&#160;                                               <a class="code" href="driver__w25qxx_8c.html#a842f8d646fc8f8ed72422fc1d789498c">W25QXX_COMMAND_ERASE_SECURITY_REGISTER</a>, 1,</div>
-<div class="line"><a name="l03003"></a><span class="lineno"> 3003</span>&#160;                                               num &lt;&lt; 8, 1, 4,</div>
-<div class="line"><a name="l03004"></a><span class="lineno"> 3004</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l03005"></a><span class="lineno"> 3005</span>&#160;                                               0x00, NULL, 0x00,</div>
-<div class="line"><a name="l03006"></a><span class="lineno"> 3006</span>&#160;                                               NULL, 0x00, 0x00);                                             <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l03007"></a><span class="lineno"> 3007</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                                 <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l03008"></a><span class="lineno"> 3008</span>&#160;                {</div>
-<div class="line"><a name="l03009"></a><span class="lineno"> 3009</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: erase security register failed.\n&quot;</span>);                         <span class="comment">/* erase security register failed */</span></div>
-<div class="line"><a name="l03010"></a><span class="lineno"> 3010</span>&#160;                   </div>
-<div class="line"><a name="l03011"></a><span class="lineno"> 3011</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                                 <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l03012"></a><span class="lineno"> 3012</span>&#160;                }</div>
-<div class="line"><a name="l03013"></a><span class="lineno"> 3013</span>&#160;            }</div>
-<div class="line"><a name="l03014"></a><span class="lineno"> 3014</span>&#160;            <span class="keywordflow">else</span></div>
-<div class="line"><a name="l03015"></a><span class="lineno"> 3015</span>&#160;            {</div>
-<div class="line"><a name="l03016"></a><span class="lineno"> 3016</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: address mode is invalid.\n&quot;</span>);                                    <span class="comment">/* address mode is invalid */</span></div>
-<div class="line"><a name="l03017"></a><span class="lineno"> 3017</span>&#160;               </div>
-<div class="line"><a name="l03018"></a><span class="lineno"> 3018</span>&#160;                <span class="keywordflow">return</span> 4;                                                                                     <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l03019"></a><span class="lineno"> 3019</span>&#160;            }</div>
-<div class="line"><a name="l03020"></a><span class="lineno"> 3020</span>&#160;            </div>
-<div class="line"><a name="l03021"></a><span class="lineno"> 3021</span>&#160;            timeout = 100 * 100;                                                                              <span class="comment">/* max 1000 ms */</span></div>
-<div class="line"><a name="l03022"></a><span class="lineno"> 3022</span>&#160;            <span class="keywordflow">while</span> (timeout != 0)                                                                              <span class="comment">/* check timeout */</span></div>
-<div class="line"><a name="l03023"></a><span class="lineno"> 3023</span>&#160;            {</div>
-<div class="line"><a name="l03024"></a><span class="lineno"> 3024</span>&#160;                res = a_w25qxx_qspi_write_read(handle,</div>
-<div class="line"><a name="l03025"></a><span class="lineno"> 3025</span>&#160;                                               <a class="code" href="driver__w25qxx_8c.html#adf682969c34f4b31a87dd92dd18ccea3">W25QXX_COMMAND_READ_STATUS_REG1</a>, 1,</div>
-<div class="line"><a name="l03026"></a><span class="lineno"> 3026</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l03027"></a><span class="lineno"> 3027</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l03028"></a><span class="lineno"> 3028</span>&#160;                                               0x00, NULL, 0x00,</div>
-<div class="line"><a name="l03029"></a><span class="lineno"> 3029</span>&#160;                                              (uint8_t *)&amp;status, 1, 1);                                      <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l03030"></a><span class="lineno"> 3030</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                                 <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l03031"></a><span class="lineno"> 3031</span>&#160;                {</div>
-<div class="line"><a name="l03032"></a><span class="lineno"> 3032</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: get status1 failed.\n&quot;</span>);                                     <span class="comment">/* get status1 failed */</span></div>
-<div class="line"><a name="l03033"></a><span class="lineno"> 3033</span>&#160;                   </div>
-<div class="line"><a name="l03034"></a><span class="lineno"> 3034</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                                 <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l03035"></a><span class="lineno"> 3035</span>&#160;                }</div>
-<div class="line"><a name="l03036"></a><span class="lineno"> 3036</span>&#160;                <span class="keywordflow">if</span> ((status &amp; 0x01) == 0x00)                                                                  <span class="comment">/* check status */</span></div>
-<div class="line"><a name="l03037"></a><span class="lineno"> 3037</span>&#160;                {</div>
-<div class="line"><a name="l03038"></a><span class="lineno"> 3038</span>&#160;                    <span class="keywordflow">break</span>;                                                                                    <span class="comment">/* break */</span></div>
-<div class="line"><a name="l03039"></a><span class="lineno"> 3039</span>&#160;                }</div>
-<div class="line"><a name="l03040"></a><span class="lineno"> 3040</span>&#160;                timeout--;                                                                                    <span class="comment">/* timeout-- */</span></div>
-<div class="line"><a name="l03041"></a><span class="lineno"> 3041</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a97ffc4fce945527bd6ab25a3596caef7">delay_us</a>(10);                                                                         <span class="comment">/* delay 10 us */</span></div>
-<div class="line"><a name="l03042"></a><span class="lineno"> 3042</span>&#160;            }</div>
-<div class="line"><a name="l03043"></a><span class="lineno"> 3043</span>&#160;            <span class="keywordflow">if</span> (timeout == 0)</div>
-<div class="line"><a name="l03044"></a><span class="lineno"> 3044</span>&#160;            {</div>
-<div class="line"><a name="l03045"></a><span class="lineno"> 3045</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: erase security register timeout.\n&quot;</span>);                            <span class="comment">/* erase security register timeout */</span></div>
-<div class="line"><a name="l03046"></a><span class="lineno"> 3046</span>&#160;               </div>
-<div class="line"><a name="l03047"></a><span class="lineno"> 3047</span>&#160;                <span class="keywordflow">return</span> 6;                                                                                     <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l03048"></a><span class="lineno"> 3048</span>&#160;            }</div>
-<div class="line"><a name="l03049"></a><span class="lineno"> 3049</span>&#160;        }</div>
-<div class="line"><a name="l03050"></a><span class="lineno"> 3050</span>&#160;        <span class="keywordflow">else</span>                                                                                                  <span class="comment">/* single spi */</span></div>
-<div class="line"><a name="l03051"></a><span class="lineno"> 3051</span>&#160;        {</div>
-<div class="line"><a name="l03052"></a><span class="lineno"> 3052</span>&#160;            buf[0] = <a class="code" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>;                                                             <span class="comment">/* write enable command */</span></div>
-<div class="line"><a name="l03053"></a><span class="lineno"> 3053</span>&#160;            res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 1, NULL, 0);                                <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l03054"></a><span class="lineno"> 3054</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                                     <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l03055"></a><span class="lineno"> 3055</span>&#160;            {</div>
-<div class="line"><a name="l03056"></a><span class="lineno"> 3056</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                                        <span class="comment">/* write enable failed */</span></div>
-<div class="line"><a name="l03057"></a><span class="lineno"> 3057</span>&#160;               </div>
-<div class="line"><a name="l03058"></a><span class="lineno"> 3058</span>&#160;                <span class="keywordflow">return</span> 1;                                                                                     <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l03059"></a><span class="lineno"> 3059</span>&#160;            }</div>
-<div class="line"><a name="l03060"></a><span class="lineno"> 3060</span>&#160;            <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                           <span class="comment">/* 3 address mode */</span></div>
-<div class="line"><a name="l03061"></a><span class="lineno"> 3061</span>&#160;            {</div>
-<div class="line"><a name="l03062"></a><span class="lineno"> 3062</span>&#160;                buf[0] = <a class="code" href="driver__w25qxx_8c.html#a842f8d646fc8f8ed72422fc1d789498c">W25QXX_COMMAND_ERASE_SECURITY_REGISTER</a>;                                              <span class="comment">/* erase security register command */</span></div>
-<div class="line"><a name="l03063"></a><span class="lineno"> 3063</span>&#160;                buf[1] = 0x00;                                                                                <span class="comment">/* 0x00 */</span></div>
-<div class="line"><a name="l03064"></a><span class="lineno"> 3064</span>&#160;                buf[2] = num;                                                                                 <span class="comment">/* num */</span></div>
-<div class="line"><a name="l03065"></a><span class="lineno"> 3065</span>&#160;                buf[3] = 0x00;                                                                                <span class="comment">/* 0x00 */</span></div>
-<div class="line"><a name="l03066"></a><span class="lineno"> 3066</span>&#160;                res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 4, NULL, 0);                            <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l03067"></a><span class="lineno"> 3067</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                                 <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l03068"></a><span class="lineno"> 3068</span>&#160;                {</div>
-<div class="line"><a name="l03069"></a><span class="lineno"> 3069</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: erase security register failed.\n&quot;</span>);                         <span class="comment">/* erase security register failed */</span></div>
-<div class="line"><a name="l03070"></a><span class="lineno"> 3070</span>&#160;                   </div>
-<div class="line"><a name="l03071"></a><span class="lineno"> 3071</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                                 <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l03072"></a><span class="lineno"> 3072</span>&#160;                }</div>
-<div class="line"><a name="l03073"></a><span class="lineno"> 3073</span>&#160;            }</div>
-<div class="line"><a name="l03074"></a><span class="lineno"> 3074</span>&#160;            <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>) &amp;&amp; (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>))</div>
-<div class="line"><a name="l03075"></a><span class="lineno"> 3075</span>&#160;            {</div>
-<div class="line"><a name="l03076"></a><span class="lineno"> 3076</span>&#160;                buf[0] = <a class="code" href="driver__w25qxx_8c.html#a842f8d646fc8f8ed72422fc1d789498c">W25QXX_COMMAND_ERASE_SECURITY_REGISTER</a>;                                              <span class="comment">/* erase security register command */</span></div>
-<div class="line"><a name="l03077"></a><span class="lineno"> 3077</span>&#160;                buf[1] = 0x00;                                                                                <span class="comment">/* 0x00 */</span></div>
-<div class="line"><a name="l03078"></a><span class="lineno"> 3078</span>&#160;                buf[2] = 0x00;                                                                                <span class="comment">/* 0x00 */</span></div>
-<div class="line"><a name="l03079"></a><span class="lineno"> 3079</span>&#160;                buf[3] = num;                                                                                 <span class="comment">/* num */</span></div>
-<div class="line"><a name="l03080"></a><span class="lineno"> 3080</span>&#160;                buf[4] = 0x00;                                                                                <span class="comment">/* 0x00 */</span></div>
-<div class="line"><a name="l03081"></a><span class="lineno"> 3081</span>&#160;                res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 5, NULL, 0);                            <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l03082"></a><span class="lineno"> 3082</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                                 <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l03083"></a><span class="lineno"> 3083</span>&#160;                {</div>
-<div class="line"><a name="l03084"></a><span class="lineno"> 3084</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: erase security register failed.\n&quot;</span>);                         <span class="comment">/* erase security register failed */</span></div>
-<div class="line"><a name="l03085"></a><span class="lineno"> 3085</span>&#160;                   </div>
-<div class="line"><a name="l03086"></a><span class="lineno"> 3086</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                                 <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l03087"></a><span class="lineno"> 3087</span>&#160;                }</div>
-<div class="line"><a name="l03088"></a><span class="lineno"> 3088</span>&#160;            }</div>
-<div class="line"><a name="l03089"></a><span class="lineno"> 3089</span>&#160;            <span class="keywordflow">else</span></div>
-<div class="line"><a name="l03090"></a><span class="lineno"> 3090</span>&#160;            {</div>
-<div class="line"><a name="l03091"></a><span class="lineno"> 3091</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: address mode is invalid.\n&quot;</span>);                                    <span class="comment">/* address mode is invalid */</span></div>
-<div class="line"><a name="l03092"></a><span class="lineno"> 3092</span>&#160;               </div>
-<div class="line"><a name="l03093"></a><span class="lineno"> 3093</span>&#160;                <span class="keywordflow">return</span> 4;                                                                                     <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l03094"></a><span class="lineno"> 3094</span>&#160;            }</div>
-<div class="line"><a name="l03095"></a><span class="lineno"> 3095</span>&#160;            </div>
-<div class="line"><a name="l03096"></a><span class="lineno"> 3096</span>&#160;            timeout = 100 * 100;                                                                              <span class="comment">/* max 1000 ms */</span></div>
-<div class="line"><a name="l03097"></a><span class="lineno"> 3097</span>&#160;            <span class="keywordflow">while</span> (timeout != 0)                                                                              <span class="comment">/* check timeout */</span></div>
-<div class="line"><a name="l03098"></a><span class="lineno"> 3098</span>&#160;            {</div>
-<div class="line"><a name="l03099"></a><span class="lineno"> 3099</span>&#160;                buf[0] = <a class="code" href="driver__w25qxx_8c.html#adf682969c34f4b31a87dd92dd18ccea3">W25QXX_COMMAND_READ_STATUS_REG1</a>;                                                     <span class="comment">/* read status1 command */</span></div>
-<div class="line"><a name="l03100"></a><span class="lineno"> 3100</span>&#160;                res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 1, (uint8_t *)&amp;status, 1);              <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l03101"></a><span class="lineno"> 3101</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                                 <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l03102"></a><span class="lineno"> 3102</span>&#160;                {</div>
-<div class="line"><a name="l03103"></a><span class="lineno"> 3103</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: get status1 failed.\n&quot;</span>);                                     <span class="comment">/* get status1 failed */</span></div>
-<div class="line"><a name="l03104"></a><span class="lineno"> 3104</span>&#160;                   </div>
-<div class="line"><a name="l03105"></a><span class="lineno"> 3105</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                                 <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l03106"></a><span class="lineno"> 3106</span>&#160;                }</div>
-<div class="line"><a name="l03107"></a><span class="lineno"> 3107</span>&#160;                <span class="keywordflow">if</span> ((status &amp; 0x01) == 0x00)                                                                  <span class="comment">/* check status */</span></div>
-<div class="line"><a name="l03108"></a><span class="lineno"> 3108</span>&#160;                {</div>
-<div class="line"><a name="l03109"></a><span class="lineno"> 3109</span>&#160;                    <span class="keywordflow">break</span>;                                                                                    <span class="comment">/* break */</span></div>
-<div class="line"><a name="l03110"></a><span class="lineno"> 3110</span>&#160;                }</div>
-<div class="line"><a name="l03111"></a><span class="lineno"> 3111</span>&#160;                timeout--;                                                                                    <span class="comment">/* timeout-- */</span></div>
-<div class="line"><a name="l03112"></a><span class="lineno"> 3112</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a97ffc4fce945527bd6ab25a3596caef7">delay_us</a>(10);                                                                         <span class="comment">/* delay 10 us */</span></div>
-<div class="line"><a name="l03113"></a><span class="lineno"> 3113</span>&#160;            }</div>
-<div class="line"><a name="l03114"></a><span class="lineno"> 3114</span>&#160;            <span class="keywordflow">if</span> (timeout == 0)</div>
-<div class="line"><a name="l03115"></a><span class="lineno"> 3115</span>&#160;            {</div>
-<div class="line"><a name="l03116"></a><span class="lineno"> 3116</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: erase security register timeout.\n&quot;</span>);                            <span class="comment">/* erase security register timeout */</span></div>
-<div class="line"><a name="l03117"></a><span class="lineno"> 3117</span>&#160;               </div>
-<div class="line"><a name="l03118"></a><span class="lineno"> 3118</span>&#160;                <span class="keywordflow">return</span> 6;                                                                                     <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l03119"></a><span class="lineno"> 3119</span>&#160;            }</div>
-<div class="line"><a name="l03120"></a><span class="lineno"> 3120</span>&#160;        }</div>
-<div class="line"><a name="l03121"></a><span class="lineno"> 3121</span>&#160;    }</div>
-<div class="line"><a name="l03122"></a><span class="lineno"> 3122</span>&#160;    <span class="keywordflow">else</span>                                                                                                      <span class="comment">/* qspi interface */</span></div>
-<div class="line"><a name="l03123"></a><span class="lineno"> 3123</span>&#160;    {</div>
-<div class="line"><a name="l03124"></a><span class="lineno"> 3124</span>&#160;        handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: qspi can&#39;t use this function.\n&quot;</span>);                                       <span class="comment">/* qspi can&#39;t use this function */</span></div>
-<div class="line"><a name="l03125"></a><span class="lineno"> 3125</span>&#160;       </div>
-<div class="line"><a name="l03126"></a><span class="lineno"> 3126</span>&#160;        <span class="keywordflow">return</span> 5;                                                                                             <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l03127"></a><span class="lineno"> 3127</span>&#160;    }</div>
-<div class="line"><a name="l03128"></a><span class="lineno"> 3128</span>&#160;    </div>
-<div class="line"><a name="l03129"></a><span class="lineno"> 3129</span>&#160;    <span class="keywordflow">return</span> 0;                                                                                                 <span class="comment">/* success return 0 */</span></div>
-<div class="line"><a name="l03130"></a><span class="lineno"> 3130</span>&#160;}</div>
-<div class="line"><a name="l03131"></a><span class="lineno"> 3131</span>&#160; </div>
-<div class="line"><a name="l03147"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#ga4e9c059ff78866e478e835cb27a92899"> 3147</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__advance__driver.html#ga4e9c059ff78866e478e835cb27a92899">w25qxx_program_security_register</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, <a class="code" href="group__w25qxx__advance__driver.html#ga81ddc7d4b9f4f124163beea19cc33c7e">w25qxx_security_register_t</a> num, uint8_t data[256])</div>
-<div class="line"><a name="l03148"></a><span class="lineno"> 3148</span>&#160;{</div>
-<div class="line"><a name="l03149"></a><span class="lineno"> 3149</span>&#160;    uint8_t res;</div>
-<div class="line"><a name="l03150"></a><span class="lineno"> 3150</span>&#160;    uint8_t status;</div>
-<div class="line"><a name="l03151"></a><span class="lineno"> 3151</span>&#160;    uint32_t timeout;</div>
-<div class="line"><a name="l03152"></a><span class="lineno"> 3152</span>&#160;    uint8_t buf[5];</div>
-<div class="line"><a name="l03153"></a><span class="lineno"> 3153</span>&#160;    </div>
-<div class="line"><a name="l03154"></a><span class="lineno"> 3154</span>&#160;    <span class="keywordflow">if</span> (handle == NULL)                                                                                       <span class="comment">/* check handle */</span></div>
-<div class="line"><a name="l03155"></a><span class="lineno"> 3155</span>&#160;    {</div>
-<div class="line"><a name="l03156"></a><span class="lineno"> 3156</span>&#160;        <span class="keywordflow">return</span> 2;                                                                                             <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l03157"></a><span class="lineno"> 3157</span>&#160;    }   </div>
-<div class="line"><a name="l03158"></a><span class="lineno"> 3158</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">inited</a> != 1)                                                                                  <span class="comment">/* check handle initialization */</span></div>
-<div class="line"><a name="l03159"></a><span class="lineno"> 3159</span>&#160;    {</div>
-<div class="line"><a name="l03160"></a><span class="lineno"> 3160</span>&#160;        <span class="keywordflow">return</span> 3;                                                                                             <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l03161"></a><span class="lineno"> 3161</span>&#160;    }</div>
-<div class="line"><a name="l03162"></a><span class="lineno"> 3162</span>&#160;    </div>
-<div class="line"><a name="l03163"></a><span class="lineno"> 3163</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>)                                                             <span class="comment">/* spi interface */</span></div>
-<div class="line"><a name="l03164"></a><span class="lineno"> 3164</span>&#160;    {</div>
-<div class="line"><a name="l03165"></a><span class="lineno"> 3165</span>&#160;        <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">dual_quad_spi_enable</a> != 0)                                                                <span class="comment">/* enable dual quad spi */</span></div>
-<div class="line"><a name="l03166"></a><span class="lineno"> 3166</span>&#160;        {</div>
-<div class="line"><a name="l03167"></a><span class="lineno"> 3167</span>&#160;            res = a_w25qxx_qspi_write_read(handle,</div>
-<div class="line"><a name="l03168"></a><span class="lineno"> 3168</span>&#160;                                           <a class="code" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>, 1,</div>
-<div class="line"><a name="l03169"></a><span class="lineno"> 3169</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l03170"></a><span class="lineno"> 3170</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l03171"></a><span class="lineno"> 3171</span>&#160;                                           0x00, NULL, 0x00,</div>
-<div class="line"><a name="l03172"></a><span class="lineno"> 3172</span>&#160;                                           NULL, 0x00, 0x00);                                                 <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l03173"></a><span class="lineno"> 3173</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                                     <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l03174"></a><span class="lineno"> 3174</span>&#160;            {</div>
-<div class="line"><a name="l03175"></a><span class="lineno"> 3175</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                                        <span class="comment">/* write enable failed */</span></div>
-<div class="line"><a name="l03176"></a><span class="lineno"> 3176</span>&#160;               </div>
-<div class="line"><a name="l03177"></a><span class="lineno"> 3177</span>&#160;                <span class="keywordflow">return</span> 1;                                                                                     <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l03178"></a><span class="lineno"> 3178</span>&#160;            }</div>
-<div class="line"><a name="l03179"></a><span class="lineno"> 3179</span>&#160;            <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                           <span class="comment">/* 3 address mode */</span></div>
-<div class="line"><a name="l03180"></a><span class="lineno"> 3180</span>&#160;            {</div>
-<div class="line"><a name="l03181"></a><span class="lineno"> 3181</span>&#160;                res = a_w25qxx_qspi_write_read(handle,</div>
-<div class="line"><a name="l03182"></a><span class="lineno"> 3182</span>&#160;                                               <a class="code" href="driver__w25qxx_8c.html#a915ab53f5f2d1cad6b954205e76cb4d5">W25QXX_COMMAND_PROGRAM_SECURITY_REGISTER</a>, 1,</div>
-<div class="line"><a name="l03183"></a><span class="lineno"> 3183</span>&#160;                                               num &lt;&lt; 8, 1, 3,</div>
-<div class="line"><a name="l03184"></a><span class="lineno"> 3184</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l03185"></a><span class="lineno"> 3185</span>&#160;                                               0x00, data, 256,</div>
-<div class="line"><a name="l03186"></a><span class="lineno"> 3186</span>&#160;                                               NULL, 0x00, 1);                                                <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l03187"></a><span class="lineno"> 3187</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                                 <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l03188"></a><span class="lineno"> 3188</span>&#160;                {</div>
-<div class="line"><a name="l03189"></a><span class="lineno"> 3189</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: program security register failed.\n&quot;</span>);                       <span class="comment">/* program security register failed */</span></div>
-<div class="line"><a name="l03190"></a><span class="lineno"> 3190</span>&#160;                   </div>
-<div class="line"><a name="l03191"></a><span class="lineno"> 3191</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                                 <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l03192"></a><span class="lineno"> 3192</span>&#160;                }</div>
-<div class="line"><a name="l03193"></a><span class="lineno"> 3193</span>&#160;            }</div>
-<div class="line"><a name="l03194"></a><span class="lineno"> 3194</span>&#160;            <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>) &amp;&amp; (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>))</div>
-<div class="line"><a name="l03195"></a><span class="lineno"> 3195</span>&#160;            {</div>
-<div class="line"><a name="l03196"></a><span class="lineno"> 3196</span>&#160;                res = a_w25qxx_qspi_write_read(handle,</div>
-<div class="line"><a name="l03197"></a><span class="lineno"> 3197</span>&#160;                                               <a class="code" href="driver__w25qxx_8c.html#a915ab53f5f2d1cad6b954205e76cb4d5">W25QXX_COMMAND_PROGRAM_SECURITY_REGISTER</a>, 1,</div>
-<div class="line"><a name="l03198"></a><span class="lineno"> 3198</span>&#160;                                               num &lt;&lt; 8, 1, 4,</div>
-<div class="line"><a name="l03199"></a><span class="lineno"> 3199</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l03200"></a><span class="lineno"> 3200</span>&#160;                                               0x00, data, 256,</div>
-<div class="line"><a name="l03201"></a><span class="lineno"> 3201</span>&#160;                                               NULL, 0x00, 1);                                                <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l03202"></a><span class="lineno"> 3202</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                                 <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l03203"></a><span class="lineno"> 3203</span>&#160;                {</div>
-<div class="line"><a name="l03204"></a><span class="lineno"> 3204</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: program security register failed.\n&quot;</span>);                       <span class="comment">/* program security register failed */</span></div>
-<div class="line"><a name="l03205"></a><span class="lineno"> 3205</span>&#160;                   </div>
-<div class="line"><a name="l03206"></a><span class="lineno"> 3206</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                                 <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l03207"></a><span class="lineno"> 3207</span>&#160;                }</div>
-<div class="line"><a name="l03208"></a><span class="lineno"> 3208</span>&#160;            }</div>
-<div class="line"><a name="l03209"></a><span class="lineno"> 3209</span>&#160;            <span class="keywordflow">else</span></div>
-<div class="line"><a name="l03210"></a><span class="lineno"> 3210</span>&#160;            {</div>
-<div class="line"><a name="l03211"></a><span class="lineno"> 3211</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: address mode is invalid.\n&quot;</span>);                                    <span class="comment">/* address mode is invalid */</span></div>
-<div class="line"><a name="l03212"></a><span class="lineno"> 3212</span>&#160;               </div>
-<div class="line"><a name="l03213"></a><span class="lineno"> 3213</span>&#160;                <span class="keywordflow">return</span> 4;                                                                                     <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l03214"></a><span class="lineno"> 3214</span>&#160;            }</div>
-<div class="line"><a name="l03215"></a><span class="lineno"> 3215</span>&#160;            </div>
-<div class="line"><a name="l03216"></a><span class="lineno"> 3216</span>&#160;            timeout = 3 * 100;                                                                                <span class="comment">/* max 3 ms */</span></div>
-<div class="line"><a name="l03217"></a><span class="lineno"> 3217</span>&#160;            <span class="keywordflow">while</span> (timeout != 0)                                                                              <span class="comment">/* check timeout */</span></div>
-<div class="line"><a name="l03218"></a><span class="lineno"> 3218</span>&#160;            {</div>
-<div class="line"><a name="l03219"></a><span class="lineno"> 3219</span>&#160;                res = a_w25qxx_qspi_write_read(handle,</div>
-<div class="line"><a name="l03220"></a><span class="lineno"> 3220</span>&#160;                                               <a class="code" href="driver__w25qxx_8c.html#adf682969c34f4b31a87dd92dd18ccea3">W25QXX_COMMAND_READ_STATUS_REG1</a>, 1,</div>
-<div class="line"><a name="l03221"></a><span class="lineno"> 3221</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l03222"></a><span class="lineno"> 3222</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l03223"></a><span class="lineno"> 3223</span>&#160;                                               0x00, NULL, 0x00,</div>
-<div class="line"><a name="l03224"></a><span class="lineno"> 3224</span>&#160;                                              (uint8_t *)&amp;status, 1, 1);                                      <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l03225"></a><span class="lineno"> 3225</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                                 <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l03226"></a><span class="lineno"> 3226</span>&#160;                {</div>
-<div class="line"><a name="l03227"></a><span class="lineno"> 3227</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: get status1 failed.\n&quot;</span>);                                     <span class="comment">/* get status1 failed */</span></div>
-<div class="line"><a name="l03228"></a><span class="lineno"> 3228</span>&#160;                   </div>
-<div class="line"><a name="l03229"></a><span class="lineno"> 3229</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                                 <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l03230"></a><span class="lineno"> 3230</span>&#160;                }</div>
-<div class="line"><a name="l03231"></a><span class="lineno"> 3231</span>&#160;                <span class="keywordflow">if</span> ((status &amp; 0x01) == 0x00)                                                                  <span class="comment">/* check status */</span></div>
-<div class="line"><a name="l03232"></a><span class="lineno"> 3232</span>&#160;                {</div>
-<div class="line"><a name="l03233"></a><span class="lineno"> 3233</span>&#160;                    <span class="keywordflow">break</span>;                                                                                    <span class="comment">/* break */</span></div>
-<div class="line"><a name="l03234"></a><span class="lineno"> 3234</span>&#160;                }</div>
-<div class="line"><a name="l03235"></a><span class="lineno"> 3235</span>&#160;                timeout--;                                                                                    <span class="comment">/* timeout-- */</span></div>
-<div class="line"><a name="l03236"></a><span class="lineno"> 3236</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a97ffc4fce945527bd6ab25a3596caef7">delay_us</a>(10);                                                                         <span class="comment">/* delay 10 us */</span></div>
-<div class="line"><a name="l03237"></a><span class="lineno"> 3237</span>&#160;            }</div>
-<div class="line"><a name="l03238"></a><span class="lineno"> 3238</span>&#160;            <span class="keywordflow">if</span> (timeout == 0)</div>
-<div class="line"><a name="l03239"></a><span class="lineno"> 3239</span>&#160;            {</div>
-<div class="line"><a name="l03240"></a><span class="lineno"> 3240</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: program security register timeout.\n&quot;</span>);                          <span class="comment">/* program security register timeout */</span></div>
-<div class="line"><a name="l03241"></a><span class="lineno"> 3241</span>&#160;               </div>
-<div class="line"><a name="l03242"></a><span class="lineno"> 3242</span>&#160;                <span class="keywordflow">return</span> 6;                                                                                     <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l03243"></a><span class="lineno"> 3243</span>&#160;            }</div>
-<div class="line"><a name="l03244"></a><span class="lineno"> 3244</span>&#160;        }</div>
-<div class="line"><a name="l03245"></a><span class="lineno"> 3245</span>&#160;        <span class="keywordflow">else</span>                                                                                                  <span class="comment">/* single spi */</span></div>
-<div class="line"><a name="l03246"></a><span class="lineno"> 3246</span>&#160;        {</div>
-<div class="line"><a name="l03247"></a><span class="lineno"> 3247</span>&#160;            buf[0] = <a class="code" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>;                                                             <span class="comment">/* write enable command */</span></div>
-<div class="line"><a name="l03248"></a><span class="lineno"> 3248</span>&#160;            res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 1, NULL, 0);                                <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l03249"></a><span class="lineno"> 3249</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                                     <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l03250"></a><span class="lineno"> 3250</span>&#160;            {</div>
-<div class="line"><a name="l03251"></a><span class="lineno"> 3251</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                                        <span class="comment">/* write enable failed */</span></div>
-<div class="line"><a name="l03252"></a><span class="lineno"> 3252</span>&#160;               </div>
-<div class="line"><a name="l03253"></a><span class="lineno"> 3253</span>&#160;                <span class="keywordflow">return</span> 1;                                                                                     <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l03254"></a><span class="lineno"> 3254</span>&#160;            }</div>
-<div class="line"><a name="l03255"></a><span class="lineno"> 3255</span>&#160;            <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                           <span class="comment">/* 3 address mode */</span></div>
-<div class="line"><a name="l03256"></a><span class="lineno"> 3256</span>&#160;            {</div>
-<div class="line"><a name="l03257"></a><span class="lineno"> 3257</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a2121914a1858618e9216fa2daf0a42a2">buf</a>[0] = <a class="code" href="driver__w25qxx_8c.html#a915ab53f5f2d1cad6b954205e76cb4d5">W25QXX_COMMAND_PROGRAM_SECURITY_REGISTER</a>;                                    <span class="comment">/* program security register command */</span></div>
-<div class="line"><a name="l03258"></a><span class="lineno"> 3258</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a2121914a1858618e9216fa2daf0a42a2">buf</a>[1] = 0x00;                                                                        <span class="comment">/* 0x00 */</span></div>
-<div class="line"><a name="l03259"></a><span class="lineno"> 3259</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a2121914a1858618e9216fa2daf0a42a2">buf</a>[2] = num;                                                                         <span class="comment">/* num */</span></div>
-<div class="line"><a name="l03260"></a><span class="lineno"> 3260</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a2121914a1858618e9216fa2daf0a42a2">buf</a>[3] = 0x00;                                                                        <span class="comment">/* 0x00 */</span></div>
-<div class="line"><a name="l03261"></a><span class="lineno"> 3261</span>&#160;                memcpy(&amp;handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a2121914a1858618e9216fa2daf0a42a2">buf</a>[4], data, 256);                                                           <span class="comment">/* copy data */</span></div>
-<div class="line"><a name="l03262"></a><span class="lineno"> 3262</span>&#160;                res = a_w25qxx_spi_write_read(handle, (uint8_t *)handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a2121914a1858618e9216fa2daf0a42a2">buf</a>, 260, NULL, 0);                  <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l03263"></a><span class="lineno"> 3263</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                                 <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l03264"></a><span class="lineno"> 3264</span>&#160;                {</div>
-<div class="line"><a name="l03265"></a><span class="lineno"> 3265</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: program security register failed.\n&quot;</span>);                       <span class="comment">/* program security register failed */</span></div>
-<div class="line"><a name="l03266"></a><span class="lineno"> 3266</span>&#160;                   </div>
-<div class="line"><a name="l03267"></a><span class="lineno"> 3267</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                                 <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l03268"></a><span class="lineno"> 3268</span>&#160;                }</div>
-<div class="line"><a name="l03269"></a><span class="lineno"> 3269</span>&#160;            }</div>
-<div class="line"><a name="l03270"></a><span class="lineno"> 3270</span>&#160;            <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>) &amp;&amp; (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>))</div>
-<div class="line"><a name="l03271"></a><span class="lineno"> 3271</span>&#160;            {</div>
-<div class="line"><a name="l03272"></a><span class="lineno"> 3272</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a2121914a1858618e9216fa2daf0a42a2">buf</a>[0] = <a class="code" href="driver__w25qxx_8c.html#a915ab53f5f2d1cad6b954205e76cb4d5">W25QXX_COMMAND_PROGRAM_SECURITY_REGISTER</a>;                                    <span class="comment">/* program security register command */</span></div>
-<div class="line"><a name="l03273"></a><span class="lineno"> 3273</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a2121914a1858618e9216fa2daf0a42a2">buf</a>[1] = 0x00;                                                                        <span class="comment">/* 0x00 */</span></div>
-<div class="line"><a name="l03274"></a><span class="lineno"> 3274</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a2121914a1858618e9216fa2daf0a42a2">buf</a>[2] = 0x00;                                                                        <span class="comment">/* 0x00 */</span></div>
-<div class="line"><a name="l03275"></a><span class="lineno"> 3275</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a2121914a1858618e9216fa2daf0a42a2">buf</a>[3] = num;                                                                         <span class="comment">/* num */</span></div>
-<div class="line"><a name="l03276"></a><span class="lineno"> 3276</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a2121914a1858618e9216fa2daf0a42a2">buf</a>[4] = 0x00;                                                                        <span class="comment">/* 0x00 */</span></div>
-<div class="line"><a name="l03277"></a><span class="lineno"> 3277</span>&#160;                memcpy(&amp;handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a2121914a1858618e9216fa2daf0a42a2">buf</a>[5], data, 256);                                                           <span class="comment">/* copy data */</span></div>
-<div class="line"><a name="l03278"></a><span class="lineno"> 3278</span>&#160;                res = a_w25qxx_spi_write_read(handle, (uint8_t *)handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a2121914a1858618e9216fa2daf0a42a2">buf</a>, 261, NULL, 0);                  <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l03279"></a><span class="lineno"> 3279</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                                 <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l03280"></a><span class="lineno"> 3280</span>&#160;                {</div>
-<div class="line"><a name="l03281"></a><span class="lineno"> 3281</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: program security register failed.\n&quot;</span>);                       <span class="comment">/* program security register failed */</span></div>
-<div class="line"><a name="l03282"></a><span class="lineno"> 3282</span>&#160;                   </div>
-<div class="line"><a name="l03283"></a><span class="lineno"> 3283</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                                 <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l03284"></a><span class="lineno"> 3284</span>&#160;                }</div>
-<div class="line"><a name="l03285"></a><span class="lineno"> 3285</span>&#160;            }</div>
-<div class="line"><a name="l03286"></a><span class="lineno"> 3286</span>&#160;            <span class="keywordflow">else</span></div>
-<div class="line"><a name="l03287"></a><span class="lineno"> 3287</span>&#160;            {</div>
-<div class="line"><a name="l03288"></a><span class="lineno"> 3288</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: address mode is invalid.\n&quot;</span>);                                    <span class="comment">/* address mode is invalid */</span></div>
-<div class="line"><a name="l03289"></a><span class="lineno"> 3289</span>&#160;               </div>
-<div class="line"><a name="l03290"></a><span class="lineno"> 3290</span>&#160;                <span class="keywordflow">return</span> 4;                                                                                     <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l03291"></a><span class="lineno"> 3291</span>&#160;            }</div>
-<div class="line"><a name="l03292"></a><span class="lineno"> 3292</span>&#160;            </div>
-<div class="line"><a name="l03293"></a><span class="lineno"> 3293</span>&#160;            timeout = 3 * 100;                                                                                <span class="comment">/* max 3 ms */</span></div>
-<div class="line"><a name="l03294"></a><span class="lineno"> 3294</span>&#160;            <span class="keywordflow">while</span> (timeout != 0)                                                                              <span class="comment">/* check timeout */</span></div>
-<div class="line"><a name="l03295"></a><span class="lineno"> 3295</span>&#160;            {</div>
-<div class="line"><a name="l03296"></a><span class="lineno"> 3296</span>&#160;                buf[0] = <a class="code" href="driver__w25qxx_8c.html#adf682969c34f4b31a87dd92dd18ccea3">W25QXX_COMMAND_READ_STATUS_REG1</a>;                                                     <span class="comment">/* read status1 command */</span></div>
-<div class="line"><a name="l03297"></a><span class="lineno"> 3297</span>&#160;                res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 1, (uint8_t *)&amp;status, 1);              <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l03298"></a><span class="lineno"> 3298</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                                 <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l03299"></a><span class="lineno"> 3299</span>&#160;                {</div>
-<div class="line"><a name="l03300"></a><span class="lineno"> 3300</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: get status1 failed.\n&quot;</span>);                                     <span class="comment">/* get status1 failed */</span></div>
-<div class="line"><a name="l03301"></a><span class="lineno"> 3301</span>&#160;                   </div>
-<div class="line"><a name="l03302"></a><span class="lineno"> 3302</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                                 <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l03303"></a><span class="lineno"> 3303</span>&#160;                }</div>
-<div class="line"><a name="l03304"></a><span class="lineno"> 3304</span>&#160;                <span class="keywordflow">if</span> ((status &amp; 0x01) == 0x00)                                                                  <span class="comment">/* check status */</span></div>
-<div class="line"><a name="l03305"></a><span class="lineno"> 3305</span>&#160;                {</div>
-<div class="line"><a name="l03306"></a><span class="lineno"> 3306</span>&#160;                    <span class="keywordflow">break</span>;                                                                                    <span class="comment">/* break */</span></div>
-<div class="line"><a name="l03307"></a><span class="lineno"> 3307</span>&#160;                }</div>
-<div class="line"><a name="l03308"></a><span class="lineno"> 3308</span>&#160;                timeout--;                                                                                    <span class="comment">/* timeout-- */</span></div>
-<div class="line"><a name="l03309"></a><span class="lineno"> 3309</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a97ffc4fce945527bd6ab25a3596caef7">delay_us</a>(10);                                                                         <span class="comment">/* delay 10 us */</span></div>
-<div class="line"><a name="l03310"></a><span class="lineno"> 3310</span>&#160;            }</div>
-<div class="line"><a name="l03311"></a><span class="lineno"> 3311</span>&#160;            <span class="keywordflow">if</span> (timeout == 0)</div>
-<div class="line"><a name="l03312"></a><span class="lineno"> 3312</span>&#160;            {</div>
-<div class="line"><a name="l03313"></a><span class="lineno"> 3313</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: program security register timeout.\n&quot;</span>);                          <span class="comment">/* program security register timeout */</span></div>
-<div class="line"><a name="l03314"></a><span class="lineno"> 3314</span>&#160;               </div>
-<div class="line"><a name="l03315"></a><span class="lineno"> 3315</span>&#160;                <span class="keywordflow">return</span> 6;                                                                                     <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l03316"></a><span class="lineno"> 3316</span>&#160;            }</div>
-<div class="line"><a name="l03317"></a><span class="lineno"> 3317</span>&#160;        }</div>
-<div class="line"><a name="l03318"></a><span class="lineno"> 3318</span>&#160;    }</div>
-<div class="line"><a name="l03319"></a><span class="lineno"> 3319</span>&#160;    <span class="keywordflow">else</span>                                                                                                      <span class="comment">/* qspi interface */</span></div>
-<div class="line"><a name="l03320"></a><span class="lineno"> 3320</span>&#160;    {</div>
-<div class="line"><a name="l03321"></a><span class="lineno"> 3321</span>&#160;        handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: qspi can&#39;t use this function.\n&quot;</span>);                                       <span class="comment">/* qspi can&#39;t use this function */</span></div>
-<div class="line"><a name="l03322"></a><span class="lineno"> 3322</span>&#160;       </div>
-<div class="line"><a name="l03323"></a><span class="lineno"> 3323</span>&#160;        <span class="keywordflow">return</span> 5;                                                                                             <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l03324"></a><span class="lineno"> 3324</span>&#160;    }</div>
-<div class="line"><a name="l03325"></a><span class="lineno"> 3325</span>&#160;    </div>
-<div class="line"><a name="l03326"></a><span class="lineno"> 3326</span>&#160;    <span class="keywordflow">return</span> 0;                                                                                                 <span class="comment">/* success return 0 */</span></div>
-<div class="line"><a name="l03327"></a><span class="lineno"> 3327</span>&#160;}</div>
-<div class="line"><a name="l03328"></a><span class="lineno"> 3328</span>&#160; </div>
-<div class="line"><a name="l03344"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#ga4c65debc4947bd9a61e0073105164b9c"> 3344</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__advance__driver.html#ga4c65debc4947bd9a61e0073105164b9c">w25qxx_read_security_register</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, <a class="code" href="group__w25qxx__advance__driver.html#ga81ddc7d4b9f4f124163beea19cc33c7e">w25qxx_security_register_t</a> num, uint8_t data[256])</div>
-<div class="line"><a name="l03345"></a><span class="lineno"> 3345</span>&#160;{</div>
-<div class="line"><a name="l03346"></a><span class="lineno"> 3346</span>&#160;    uint8_t res;</div>
-<div class="line"><a name="l03347"></a><span class="lineno"> 3347</span>&#160;    uint8_t buf[6];</div>
-<div class="line"><a name="l03348"></a><span class="lineno"> 3348</span>&#160;    </div>
-<div class="line"><a name="l03349"></a><span class="lineno"> 3349</span>&#160;    <span class="keywordflow">if</span> (handle == NULL)                                                                                       <span class="comment">/* check handle */</span></div>
-<div class="line"><a name="l03350"></a><span class="lineno"> 3350</span>&#160;    {</div>
-<div class="line"><a name="l03351"></a><span class="lineno"> 3351</span>&#160;        <span class="keywordflow">return</span> 2;                                                                                             <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l03352"></a><span class="lineno"> 3352</span>&#160;    }   </div>
-<div class="line"><a name="l03353"></a><span class="lineno"> 3353</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">inited</a> != 1)                                                                                  <span class="comment">/* check handle initialization */</span></div>
-<div class="line"><a name="l03354"></a><span class="lineno"> 3354</span>&#160;    {</div>
-<div class="line"><a name="l03355"></a><span class="lineno"> 3355</span>&#160;        <span class="keywordflow">return</span> 3;                                                                                             <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l03356"></a><span class="lineno"> 3356</span>&#160;    }</div>
-<div class="line"><a name="l03357"></a><span class="lineno"> 3357</span>&#160;    </div>
-<div class="line"><a name="l03358"></a><span class="lineno"> 3358</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>)                                                             <span class="comment">/* spi interface */</span></div>
-<div class="line"><a name="l03359"></a><span class="lineno"> 3359</span>&#160;    {</div>
-<div class="line"><a name="l03360"></a><span class="lineno"> 3360</span>&#160;        <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">dual_quad_spi_enable</a> != 0)                                                                <span class="comment">/* enable dual quad spi */</span></div>
-<div class="line"><a name="l03361"></a><span class="lineno"> 3361</span>&#160;        {</div>
-<div class="line"><a name="l03362"></a><span class="lineno"> 3362</span>&#160;            <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                           <span class="comment">/* 3 address mode */</span></div>
-<div class="line"><a name="l03363"></a><span class="lineno"> 3363</span>&#160;            {</div>
-<div class="line"><a name="l03364"></a><span class="lineno"> 3364</span>&#160;                res = a_w25qxx_qspi_write_read(handle,</div>
-<div class="line"><a name="l03365"></a><span class="lineno"> 3365</span>&#160;                                               <a class="code" href="driver__w25qxx_8c.html#a4dc5fb2c3c15ef86df56b534b874a919">W25QXX_COMMAND_READ_SECURITY_REGISTER</a>, 1,</div>
-<div class="line"><a name="l03366"></a><span class="lineno"> 3366</span>&#160;                                               num &lt;&lt; 8, 1, 3,</div>
-<div class="line"><a name="l03367"></a><span class="lineno"> 3367</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l03368"></a><span class="lineno"> 3368</span>&#160;                                               8, NULL, 0x00,</div>
-<div class="line"><a name="l03369"></a><span class="lineno"> 3369</span>&#160;                                               data, 256, 1);                                                 <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l03370"></a><span class="lineno"> 3370</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                                 <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l03371"></a><span class="lineno"> 3371</span>&#160;                {</div>
-<div class="line"><a name="l03372"></a><span class="lineno"> 3372</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: read security register failed.\n&quot;</span>);                          <span class="comment">/* read security register failed */</span></div>
-<div class="line"><a name="l03373"></a><span class="lineno"> 3373</span>&#160;                   </div>
-<div class="line"><a name="l03374"></a><span class="lineno"> 3374</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                                 <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l03375"></a><span class="lineno"> 3375</span>&#160;                }</div>
-<div class="line"><a name="l03376"></a><span class="lineno"> 3376</span>&#160;            }</div>
-<div class="line"><a name="l03377"></a><span class="lineno"> 3377</span>&#160;            <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>) &amp;&amp; (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>))       <span class="comment">/* 4 address mode */</span></div>
-<div class="line"><a name="l03378"></a><span class="lineno"> 3378</span>&#160;            {</div>
-<div class="line"><a name="l03379"></a><span class="lineno"> 3379</span>&#160;                res = a_w25qxx_qspi_write_read(handle,</div>
-<div class="line"><a name="l03380"></a><span class="lineno"> 3380</span>&#160;                                               <a class="code" href="driver__w25qxx_8c.html#a4dc5fb2c3c15ef86df56b534b874a919">W25QXX_COMMAND_READ_SECURITY_REGISTER</a>, 1,</div>
-<div class="line"><a name="l03381"></a><span class="lineno"> 3381</span>&#160;                                               num &lt;&lt; 8, 1, 4,</div>
-<div class="line"><a name="l03382"></a><span class="lineno"> 3382</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l03383"></a><span class="lineno"> 3383</span>&#160;                                               8, NULL, 0x00,</div>
-<div class="line"><a name="l03384"></a><span class="lineno"> 3384</span>&#160;                                               data, 256, 1);                                                 <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l03385"></a><span class="lineno"> 3385</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                                 <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l03386"></a><span class="lineno"> 3386</span>&#160;                {</div>
-<div class="line"><a name="l03387"></a><span class="lineno"> 3387</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: read security register failed.\n&quot;</span>);                          <span class="comment">/* read security register failed */</span></div>
-<div class="line"><a name="l03388"></a><span class="lineno"> 3388</span>&#160;                   </div>
-<div class="line"><a name="l03389"></a><span class="lineno"> 3389</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                                 <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l03390"></a><span class="lineno"> 3390</span>&#160;                }</div>
-<div class="line"><a name="l03391"></a><span class="lineno"> 3391</span>&#160;            }</div>
-<div class="line"><a name="l03392"></a><span class="lineno"> 3392</span>&#160;            <span class="keywordflow">else</span></div>
-<div class="line"><a name="l03393"></a><span class="lineno"> 3393</span>&#160;            {</div>
-<div class="line"><a name="l03394"></a><span class="lineno"> 3394</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: address mode is invalid.\n&quot;</span>);                                    <span class="comment">/* address mode is invalid */</span></div>
-<div class="line"><a name="l03395"></a><span class="lineno"> 3395</span>&#160;               </div>
-<div class="line"><a name="l03396"></a><span class="lineno"> 3396</span>&#160;                <span class="keywordflow">return</span> 4;                                                                                     <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l03397"></a><span class="lineno"> 3397</span>&#160;            }</div>
-<div class="line"><a name="l03398"></a><span class="lineno"> 3398</span>&#160;        }</div>
-<div class="line"><a name="l03399"></a><span class="lineno"> 3399</span>&#160;        <span class="keywordflow">else</span>                                                                                                  <span class="comment">/* single spi */</span></div>
-<div class="line"><a name="l03400"></a><span class="lineno"> 3400</span>&#160;        {</div>
-<div class="line"><a name="l03401"></a><span class="lineno"> 3401</span>&#160;            <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                           <span class="comment">/* 3 address mode */</span></div>
-<div class="line"><a name="l03402"></a><span class="lineno"> 3402</span>&#160;            {</div>
-<div class="line"><a name="l03403"></a><span class="lineno"> 3403</span>&#160;                buf[0] = <a class="code" href="driver__w25qxx_8c.html#a4dc5fb2c3c15ef86df56b534b874a919">W25QXX_COMMAND_READ_SECURITY_REGISTER</a>;                                               <span class="comment">/* read security register command */</span></div>
-<div class="line"><a name="l03404"></a><span class="lineno"> 3404</span>&#160;                buf[1] = 0x00;                                                                                <span class="comment">/* 0x00 */</span></div>
-<div class="line"><a name="l03405"></a><span class="lineno"> 3405</span>&#160;                buf[2] = num;                                                                                 <span class="comment">/* num */</span></div>
-<div class="line"><a name="l03406"></a><span class="lineno"> 3406</span>&#160;                buf[3] = 0x00;                                                                                <span class="comment">/* 0x00 */</span></div>
-<div class="line"><a name="l03407"></a><span class="lineno"> 3407</span>&#160;                buf[4] = 0x00;                                                                                <span class="comment">/* dummy */</span></div>
-<div class="line"><a name="l03408"></a><span class="lineno"> 3408</span>&#160;                res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 5, data, 256);                          <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l03409"></a><span class="lineno"> 3409</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                                 <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l03410"></a><span class="lineno"> 3410</span>&#160;                {</div>
-<div class="line"><a name="l03411"></a><span class="lineno"> 3411</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: read security register failed.\n&quot;</span>);                          <span class="comment">/* read security register failed */</span></div>
-<div class="line"><a name="l03412"></a><span class="lineno"> 3412</span>&#160;                   </div>
-<div class="line"><a name="l03413"></a><span class="lineno"> 3413</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                                 <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l03414"></a><span class="lineno"> 3414</span>&#160;                }</div>
-<div class="line"><a name="l03415"></a><span class="lineno"> 3415</span>&#160;            }</div>
-<div class="line"><a name="l03416"></a><span class="lineno"> 3416</span>&#160;            <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>) &amp;&amp; (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>))</div>
-<div class="line"><a name="l03417"></a><span class="lineno"> 3417</span>&#160;            {</div>
-<div class="line"><a name="l03418"></a><span class="lineno"> 3418</span>&#160;                buf[0] = <a class="code" href="driver__w25qxx_8c.html#a4dc5fb2c3c15ef86df56b534b874a919">W25QXX_COMMAND_READ_SECURITY_REGISTER</a>;                                               <span class="comment">/* read security register command */</span></div>
-<div class="line"><a name="l03419"></a><span class="lineno"> 3419</span>&#160;                buf[1] = 0x00;                                                                                <span class="comment">/* 0x00 */</span></div>
-<div class="line"><a name="l03420"></a><span class="lineno"> 3420</span>&#160;                buf[2] = 0x00;                                                                                <span class="comment">/* 0x00 */</span></div>
-<div class="line"><a name="l03421"></a><span class="lineno"> 3421</span>&#160;                buf[3] = num;                                                                                 <span class="comment">/* num */</span></div>
-<div class="line"><a name="l03422"></a><span class="lineno"> 3422</span>&#160;                buf[4] = 0x00;                                                                                <span class="comment">/* 0x00 */</span></div>
-<div class="line"><a name="l03423"></a><span class="lineno"> 3423</span>&#160;                buf[5] = 0x00;                                                                                <span class="comment">/* dummy */</span></div>
-<div class="line"><a name="l03424"></a><span class="lineno"> 3424</span>&#160;                res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 6, data, 256);                          <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l03425"></a><span class="lineno"> 3425</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                                 <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l03426"></a><span class="lineno"> 3426</span>&#160;                {</div>
-<div class="line"><a name="l03427"></a><span class="lineno"> 3427</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: read security register failed.\n&quot;</span>);                          <span class="comment">/* read security register failed */</span></div>
-<div class="line"><a name="l03428"></a><span class="lineno"> 3428</span>&#160;                   </div>
-<div class="line"><a name="l03429"></a><span class="lineno"> 3429</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                                 <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l03430"></a><span class="lineno"> 3430</span>&#160;                }</div>
-<div class="line"><a name="l03431"></a><span class="lineno"> 3431</span>&#160;            }</div>
-<div class="line"><a name="l03432"></a><span class="lineno"> 3432</span>&#160;            <span class="keywordflow">else</span></div>
-<div class="line"><a name="l03433"></a><span class="lineno"> 3433</span>&#160;            {</div>
-<div class="line"><a name="l03434"></a><span class="lineno"> 3434</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: address mode is invalid.\n&quot;</span>);                                    <span class="comment">/* address mode is invalid */</span></div>
-<div class="line"><a name="l03435"></a><span class="lineno"> 3435</span>&#160;               </div>
-<div class="line"><a name="l03436"></a><span class="lineno"> 3436</span>&#160;                <span class="keywordflow">return</span> 4;                                                                                     <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l03437"></a><span class="lineno"> 3437</span>&#160;            }</div>
-<div class="line"><a name="l03438"></a><span class="lineno"> 3438</span>&#160;        }</div>
-<div class="line"><a name="l03439"></a><span class="lineno"> 3439</span>&#160;    }</div>
-<div class="line"><a name="l03440"></a><span class="lineno"> 3440</span>&#160;    <span class="keywordflow">else</span>                                                                                                      <span class="comment">/* qspi interface */</span></div>
-<div class="line"><a name="l03441"></a><span class="lineno"> 3441</span>&#160;    {</div>
-<div class="line"><a name="l03442"></a><span class="lineno"> 3442</span>&#160;        handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: qspi can&#39;t use this function.\n&quot;</span>);                                       <span class="comment">/* qspi can&#39;t use this function */</span></div>
-<div class="line"><a name="l03443"></a><span class="lineno"> 3443</span>&#160;       </div>
-<div class="line"><a name="l03444"></a><span class="lineno"> 3444</span>&#160;        <span class="keywordflow">return</span> 5;                                                                                             <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l03445"></a><span class="lineno"> 3445</span>&#160;    }</div>
-<div class="line"><a name="l03446"></a><span class="lineno"> 3446</span>&#160;    </div>
-<div class="line"><a name="l03447"></a><span class="lineno"> 3447</span>&#160;    <span class="keywordflow">return</span> 0;                                                                                                 <span class="comment">/* success return 0 */</span></div>
-<div class="line"><a name="l03448"></a><span class="lineno"> 3448</span>&#160;}</div>
-<div class="line"><a name="l03449"></a><span class="lineno"> 3449</span>&#160; </div>
-<div class="line"><a name="l03465"></a><span class="lineno"><a class="line" href="group__w25qxx__basic__driver.html#ga1e9ebf198137d23558dbf6470213c472"> 3465</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__basic__driver.html#ga1e9ebf198137d23558dbf6470213c472">w25qxx_only_spi_read</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint32_t len)</div>
-<div class="line"><a name="l03466"></a><span class="lineno"> 3466</span>&#160;{</div>
-<div class="line"><a name="l03467"></a><span class="lineno"> 3467</span>&#160;    uint8_t res;</div>
-<div class="line"><a name="l03468"></a><span class="lineno"> 3468</span>&#160;    uint8_t buf[5];</div>
-<div class="line"><a name="l03469"></a><span class="lineno"> 3469</span>&#160;    </div>
-<div class="line"><a name="l03470"></a><span class="lineno"> 3470</span>&#160;    <span class="keywordflow">if</span> (handle == NULL)                                                                                   <span class="comment">/* check handle */</span></div>
-<div class="line"><a name="l03471"></a><span class="lineno"> 3471</span>&#160;    {</div>
-<div class="line"><a name="l03472"></a><span class="lineno"> 3472</span>&#160;        <span class="keywordflow">return</span> 2;                                                                                         <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l03473"></a><span class="lineno"> 3473</span>&#160;    }   </div>
-<div class="line"><a name="l03474"></a><span class="lineno"> 3474</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">inited</a> != 1)                                                                              <span class="comment">/* check handle initialization */</span></div>
-<div class="line"><a name="l03475"></a><span class="lineno"> 3475</span>&#160;    {</div>
-<div class="line"><a name="l03476"></a><span class="lineno"> 3476</span>&#160;        <span class="keywordflow">return</span> 3;                                                                                         <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l03477"></a><span class="lineno"> 3477</span>&#160;    }</div>
-<div class="line"><a name="l03478"></a><span class="lineno"> 3478</span>&#160;    </div>
-<div class="line"><a name="l03479"></a><span class="lineno"> 3479</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>)                                                         <span class="comment">/* spi interface */</span></div>
-<div class="line"><a name="l03480"></a><span class="lineno"> 3480</span>&#160;    {</div>
-<div class="line"><a name="l03481"></a><span class="lineno"> 3481</span>&#160;        <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">dual_quad_spi_enable</a> != 0)                                                            <span class="comment">/* enable dual quad spi */</span></div>
-<div class="line"><a name="l03482"></a><span class="lineno"> 3482</span>&#160;        {</div>
-<div class="line"><a name="l03483"></a><span class="lineno"> 3483</span>&#160;            <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                       <span class="comment">/* 3 address mode */</span></div>
-<div class="line"><a name="l03484"></a><span class="lineno"> 3484</span>&#160;            {</div>
-<div class="line"><a name="l03485"></a><span class="lineno"> 3485</span>&#160;                <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)                                                              <span class="comment">/* &gt;128Mb */</span></div>
-<div class="line"><a name="l03486"></a><span class="lineno"> 3486</span>&#160;                {</div>
-<div class="line"><a name="l03487"></a><span class="lineno"> 3487</span>&#160;                    res = a_w25qxx_qspi_write_read(handle,</div>
-<div class="line"><a name="l03488"></a><span class="lineno"> 3488</span>&#160;                                                   <a class="code" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>, 1,</div>
-<div class="line"><a name="l03489"></a><span class="lineno"> 3489</span>&#160;                                                   0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l03490"></a><span class="lineno"> 3490</span>&#160;                                                   0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l03491"></a><span class="lineno"> 3491</span>&#160;                                                   0x00, NULL, 0x00,</div>
-<div class="line"><a name="l03492"></a><span class="lineno"> 3492</span>&#160;                                                   NULL, 0x00, 0x00);                                     <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l03493"></a><span class="lineno"> 3493</span>&#160;                    <span class="keywordflow">if</span> (res != 0)                                                                         <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l03494"></a><span class="lineno"> 3494</span>&#160;                    {</div>
-<div class="line"><a name="l03495"></a><span class="lineno"> 3495</span>&#160;                        handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                            <span class="comment">/* write enable failed */</span></div>
-<div class="line"><a name="l03496"></a><span class="lineno"> 3496</span>&#160;                       </div>
-<div class="line"><a name="l03497"></a><span class="lineno"> 3497</span>&#160;                        <span class="keywordflow">return</span> 1;                                                                         <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l03498"></a><span class="lineno"> 3498</span>&#160;                    }</div>
-<div class="line"><a name="l03499"></a><span class="lineno"> 3499</span>&#160;                    buf[0] = (addr &gt;&gt; 24) &amp; 0xFF;                                                         <span class="comment">/* 31 - 24 bits */</span></div>
-<div class="line"><a name="l03500"></a><span class="lineno"> 3500</span>&#160;                    res = a_w25qxx_qspi_write_read(handle,</div>
-<div class="line"><a name="l03501"></a><span class="lineno"> 3501</span>&#160;                                                   0xC5, 1,</div>
-<div class="line"><a name="l03502"></a><span class="lineno"> 3502</span>&#160;                                                   0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l03503"></a><span class="lineno"> 3503</span>&#160;                                                   0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l03504"></a><span class="lineno"> 3504</span>&#160;                                                   0x00, (uint8_t *)buf, 1,</div>
-<div class="line"><a name="l03505"></a><span class="lineno"> 3505</span>&#160;                                                   NULL, 0x00, 1);                                        <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l03506"></a><span class="lineno"> 3506</span>&#160;                    <span class="keywordflow">if</span> (res != 0)                                                                         <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l03507"></a><span class="lineno"> 3507</span>&#160;                    {</div>
-<div class="line"><a name="l03508"></a><span class="lineno"> 3508</span>&#160;                        handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write extended addr register failed.\n&quot;</span>);            <span class="comment">/* write extended addr register failed */</span></div>
-<div class="line"><a name="l03509"></a><span class="lineno"> 3509</span>&#160;                       </div>
-<div class="line"><a name="l03510"></a><span class="lineno"> 3510</span>&#160;                        <span class="keywordflow">return</span> 1;                                                                         <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l03511"></a><span class="lineno"> 3511</span>&#160;                    }</div>
-<div class="line"><a name="l03512"></a><span class="lineno"> 3512</span>&#160;                    </div>
-<div class="line"><a name="l03513"></a><span class="lineno"> 3513</span>&#160;                }</div>
-<div class="line"><a name="l03514"></a><span class="lineno"> 3514</span>&#160;                res = a_w25qxx_qspi_write_read(handle,</div>
-<div class="line"><a name="l03515"></a><span class="lineno"> 3515</span>&#160;                                               <a class="code" href="driver__w25qxx_8c.html#a23fcd6d9b067580d534d626c43b7cff3">W25QXX_COMMAND_READ_DATA</a>, 1,</div>
-<div class="line"><a name="l03516"></a><span class="lineno"> 3516</span>&#160;                                               addr, 1, 3,</div>
-<div class="line"><a name="l03517"></a><span class="lineno"> 3517</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l03518"></a><span class="lineno"> 3518</span>&#160;                                               0x00, NULL, 0x00,</div>
-<div class="line"><a name="l03519"></a><span class="lineno"> 3519</span>&#160;                                               data, len, 1);                                             <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l03520"></a><span class="lineno"> 3520</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                             <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l03521"></a><span class="lineno"> 3521</span>&#160;                {</div>
-<div class="line"><a name="l03522"></a><span class="lineno"> 3522</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: only spi read failed.\n&quot;</span>);                               <span class="comment">/* only spi read failed */</span></div>
-<div class="line"><a name="l03523"></a><span class="lineno"> 3523</span>&#160;                   </div>
-<div class="line"><a name="l03524"></a><span class="lineno"> 3524</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                             <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l03525"></a><span class="lineno"> 3525</span>&#160;                }</div>
-<div class="line"><a name="l03526"></a><span class="lineno"> 3526</span>&#160;            }</div>
-<div class="line"><a name="l03527"></a><span class="lineno"> 3527</span>&#160;            <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>) &amp;&amp; </div>
-<div class="line"><a name="l03528"></a><span class="lineno"> 3528</span>&#160;                     (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>))                                                           <span class="comment">/* check address mode */</span></div>
-<div class="line"><a name="l03529"></a><span class="lineno"> 3529</span>&#160;            {</div>
-<div class="line"><a name="l03530"></a><span class="lineno"> 3530</span>&#160;                res = a_w25qxx_qspi_write_read(handle,</div>
-<div class="line"><a name="l03531"></a><span class="lineno"> 3531</span>&#160;                                               <a class="code" href="driver__w25qxx_8c.html#a23fcd6d9b067580d534d626c43b7cff3">W25QXX_COMMAND_READ_DATA</a>, 1,</div>
-<div class="line"><a name="l03532"></a><span class="lineno"> 3532</span>&#160;                                               addr, 1, 4,</div>
-<div class="line"><a name="l03533"></a><span class="lineno"> 3533</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l03534"></a><span class="lineno"> 3534</span>&#160;                                               0x00, NULL, 0x00,</div>
-<div class="line"><a name="l03535"></a><span class="lineno"> 3535</span>&#160;                                               data, len, 1);                                             <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l03536"></a><span class="lineno"> 3536</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                             <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l03537"></a><span class="lineno"> 3537</span>&#160;                {</div>
-<div class="line"><a name="l03538"></a><span class="lineno"> 3538</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: only spi read failed.\n&quot;</span>);                               <span class="comment">/* only spi read failed */</span></div>
-<div class="line"><a name="l03539"></a><span class="lineno"> 3539</span>&#160;                   </div>
-<div class="line"><a name="l03540"></a><span class="lineno"> 3540</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                             <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l03541"></a><span class="lineno"> 3541</span>&#160;                }</div>
-<div class="line"><a name="l03542"></a><span class="lineno"> 3542</span>&#160;            }</div>
-<div class="line"><a name="l03543"></a><span class="lineno"> 3543</span>&#160;            <span class="keywordflow">else</span></div>
-<div class="line"><a name="l03544"></a><span class="lineno"> 3544</span>&#160;            {</div>
-<div class="line"><a name="l03545"></a><span class="lineno"> 3545</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: address mode is invalid.\n&quot;</span>);                                <span class="comment">/* address mode is invalid */</span></div>
-<div class="line"><a name="l03546"></a><span class="lineno"> 3546</span>&#160;               </div>
-<div class="line"><a name="l03547"></a><span class="lineno"> 3547</span>&#160;                <span class="keywordflow">return</span> 4;                                                                                 <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l03548"></a><span class="lineno"> 3548</span>&#160;            }</div>
-<div class="line"><a name="l03549"></a><span class="lineno"> 3549</span>&#160;        }</div>
-<div class="line"><a name="l03550"></a><span class="lineno"> 3550</span>&#160;        <span class="keywordflow">else</span>                                                                                              <span class="comment">/* single spi */</span></div>
-<div class="line"><a name="l03551"></a><span class="lineno"> 3551</span>&#160;        {</div>
-<div class="line"><a name="l03552"></a><span class="lineno"> 3552</span>&#160;            <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                       <span class="comment">/* 3 address mode */</span></div>
-<div class="line"><a name="l03553"></a><span class="lineno"> 3553</span>&#160;            {</div>
-<div class="line"><a name="l03554"></a><span class="lineno"> 3554</span>&#160;                <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)                                                              <span class="comment">/* &gt;128Mb */</span></div>
-<div class="line"><a name="l03555"></a><span class="lineno"> 3555</span>&#160;                {</div>
-<div class="line"><a name="l03556"></a><span class="lineno"> 3556</span>&#160;                    buf[0] = <a class="code" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>;                                                 <span class="comment">/* write enable command */</span></div>
-<div class="line"><a name="l03557"></a><span class="lineno"> 3557</span>&#160;                    res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 1, NULL, 0);                    <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l03558"></a><span class="lineno"> 3558</span>&#160;                    <span class="keywordflow">if</span> (res != 0)                                                                         <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l03559"></a><span class="lineno"> 3559</span>&#160;                    {</div>
-<div class="line"><a name="l03560"></a><span class="lineno"> 3560</span>&#160;                        handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                            <span class="comment">/* write enable failed */</span></div>
-<div class="line"><a name="l03561"></a><span class="lineno"> 3561</span>&#160;                       </div>
-<div class="line"><a name="l03562"></a><span class="lineno"> 3562</span>&#160;                        <span class="keywordflow">return</span> 1;                                                                         <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l03563"></a><span class="lineno"> 3563</span>&#160;                    }</div>
-<div class="line"><a name="l03564"></a><span class="lineno"> 3564</span>&#160;                    buf[0] = 0xC5;                                                                        <span class="comment">/* write extended addr register command */</span></div>
-<div class="line"><a name="l03565"></a><span class="lineno"> 3565</span>&#160;                    buf[1] = (addr &gt;&gt; 24) &amp; 0xFF;                                                         <span class="comment">/* 31 - 24 bits */</span></div>
-<div class="line"><a name="l03566"></a><span class="lineno"> 3566</span>&#160;                    res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 2, NULL, 0);                    <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l03567"></a><span class="lineno"> 3567</span>&#160;                    <span class="keywordflow">if</span> (res != 0)                                                                         <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l03568"></a><span class="lineno"> 3568</span>&#160;                    {</div>
-<div class="line"><a name="l03569"></a><span class="lineno"> 3569</span>&#160;                        handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write extended addr register failed.\n&quot;</span>);            <span class="comment">/* write extended addr register failed */</span></div>
-<div class="line"><a name="l03570"></a><span class="lineno"> 3570</span>&#160;                       </div>
-<div class="line"><a name="l03571"></a><span class="lineno"> 3571</span>&#160;                        <span class="keywordflow">return</span> 1;                                                                         <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l03572"></a><span class="lineno"> 3572</span>&#160;                    }</div>
-<div class="line"><a name="l03573"></a><span class="lineno"> 3573</span>&#160;                }</div>
-<div class="line"><a name="l03574"></a><span class="lineno"> 3574</span>&#160;                buf[0] = <a class="code" href="driver__w25qxx_8c.html#a23fcd6d9b067580d534d626c43b7cff3">W25QXX_COMMAND_READ_DATA</a>;                                                        <span class="comment">/* only spi read command */</span></div>
-<div class="line"><a name="l03575"></a><span class="lineno"> 3575</span>&#160;                buf[1] = (addr &gt;&gt; 16) &amp; 0xFF;                                                             <span class="comment">/* 23 - 16 bits */</span></div>
-<div class="line"><a name="l03576"></a><span class="lineno"> 3576</span>&#160;                buf[2] = (addr &gt;&gt; 8) &amp; 0xFF;                                                              <span class="comment">/* 15 - 8  bits */</span></div>
-<div class="line"><a name="l03577"></a><span class="lineno"> 3577</span>&#160;                buf[3] = (addr &gt;&gt; 0) &amp; 0xFF;                                                              <span class="comment">/* 7 - 0 bits */</span></div>
-<div class="line"><a name="l03578"></a><span class="lineno"> 3578</span>&#160;                res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 4, (uint8_t *)data, (uint32_t)len); <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l03579"></a><span class="lineno"> 3579</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                             <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l03580"></a><span class="lineno"> 3580</span>&#160;                {</div>
-<div class="line"><a name="l03581"></a><span class="lineno"> 3581</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: only spi read failed.\n&quot;</span>);                               <span class="comment">/* only spi read failed */</span></div>
-<div class="line"><a name="l03582"></a><span class="lineno"> 3582</span>&#160;                   </div>
-<div class="line"><a name="l03583"></a><span class="lineno"> 3583</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                             <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l03584"></a><span class="lineno"> 3584</span>&#160;                }</div>
-<div class="line"><a name="l03585"></a><span class="lineno"> 3585</span>&#160;            }</div>
-<div class="line"><a name="l03586"></a><span class="lineno"> 3586</span>&#160;            <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>) &amp;&amp; </div>
-<div class="line"><a name="l03587"></a><span class="lineno"> 3587</span>&#160;                     (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>))                                                           <span class="comment">/* check address mode */</span></div>
-<div class="line"><a name="l03588"></a><span class="lineno"> 3588</span>&#160;            {</div>
-<div class="line"><a name="l03589"></a><span class="lineno"> 3589</span>&#160;                buf[0] = <a class="code" href="driver__w25qxx_8c.html#a23fcd6d9b067580d534d626c43b7cff3">W25QXX_COMMAND_READ_DATA</a>;                                                        <span class="comment">/* only spi read command */</span></div>
-<div class="line"><a name="l03590"></a><span class="lineno"> 3590</span>&#160;                buf[1] = (addr &gt;&gt; 24) &amp; 0xFF;                                                             <span class="comment">/* 31 - 24 bits */</span></div>
-<div class="line"><a name="l03591"></a><span class="lineno"> 3591</span>&#160;                buf[2] = (addr &gt;&gt; 16) &amp; 0xFF;                                                             <span class="comment">/* 23 - 16 bits */</span></div>
-<div class="line"><a name="l03592"></a><span class="lineno"> 3592</span>&#160;                buf[3] = (addr &gt;&gt; 8) &amp; 0xFF;                                                              <span class="comment">/* 15 - 8  bits */</span></div>
-<div class="line"><a name="l03593"></a><span class="lineno"> 3593</span>&#160;                buf[4] = (addr &gt;&gt; 0) &amp; 0xFF;                                                              <span class="comment">/* 7 - 0 bits */</span></div>
-<div class="line"><a name="l03594"></a><span class="lineno"> 3594</span>&#160;                res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 5, (uint8_t *)data, (uint32_t)len); <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l03595"></a><span class="lineno"> 3595</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                             <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l03596"></a><span class="lineno"> 3596</span>&#160;                {</div>
-<div class="line"><a name="l03597"></a><span class="lineno"> 3597</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: only spi read failed.\n&quot;</span>);                               <span class="comment">/* only spi read failed */</span></div>
-<div class="line"><a name="l03598"></a><span class="lineno"> 3598</span>&#160;                   </div>
-<div class="line"><a name="l03599"></a><span class="lineno"> 3599</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                             <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l03600"></a><span class="lineno"> 3600</span>&#160;                }</div>
-<div class="line"><a name="l03601"></a><span class="lineno"> 3601</span>&#160;            }</div>
-<div class="line"><a name="l03602"></a><span class="lineno"> 3602</span>&#160;            <span class="keywordflow">else</span></div>
-<div class="line"><a name="l03603"></a><span class="lineno"> 3603</span>&#160;            {</div>
-<div class="line"><a name="l03604"></a><span class="lineno"> 3604</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: address mode is invalid.\n&quot;</span>);                                <span class="comment">/* address mode is invalid */</span></div>
-<div class="line"><a name="l03605"></a><span class="lineno"> 3605</span>&#160;               </div>
-<div class="line"><a name="l03606"></a><span class="lineno"> 3606</span>&#160;                <span class="keywordflow">return</span> 4;                                                                                 <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l03607"></a><span class="lineno"> 3607</span>&#160;            }</div>
-<div class="line"><a name="l03608"></a><span class="lineno"> 3608</span>&#160;        }</div>
-<div class="line"><a name="l03609"></a><span class="lineno"> 3609</span>&#160;    }</div>
-<div class="line"><a name="l03610"></a><span class="lineno"> 3610</span>&#160;    <span class="keywordflow">else</span></div>
-<div class="line"><a name="l03611"></a><span class="lineno"> 3611</span>&#160;    {</div>
-<div class="line"><a name="l03612"></a><span class="lineno"> 3612</span>&#160;        handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: only spi interface can use this function.\n&quot;</span>);                       <span class="comment">/* only spi interface can use this function */</span></div>
-<div class="line"><a name="l03613"></a><span class="lineno"> 3613</span>&#160;       </div>
-<div class="line"><a name="l03614"></a><span class="lineno"> 3614</span>&#160;        <span class="keywordflow">return</span> 5;                                                                                         <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l03615"></a><span class="lineno"> 3615</span>&#160;    }</div>
-<div class="line"><a name="l03616"></a><span class="lineno"> 3616</span>&#160;    </div>
-<div class="line"><a name="l03617"></a><span class="lineno"> 3617</span>&#160;    <span class="keywordflow">return</span> 0;                                                                                             <span class="comment">/* success return 0 */</span></div>
-<div class="line"><a name="l03618"></a><span class="lineno"> 3618</span>&#160;}</div>
-<div class="line"><a name="l03619"></a><span class="lineno"> 3619</span>&#160; </div>
-<div class="line"><a name="l03634"></a><span class="lineno"><a class="line" href="group__w25qxx__basic__driver.html#gac345ba10af5ad355578fa97697487123"> 3634</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__basic__driver.html#gac345ba10af5ad355578fa97697487123">w25qxx_fast_read</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint32_t len)</div>
-<div class="line"><a name="l03635"></a><span class="lineno"> 3635</span>&#160;{</div>
-<div class="line"><a name="l03636"></a><span class="lineno"> 3636</span>&#160;    uint8_t res;</div>
-<div class="line"><a name="l03637"></a><span class="lineno"> 3637</span>&#160;    uint8_t buf[6];</div>
-<div class="line"><a name="l03638"></a><span class="lineno"> 3638</span>&#160;    </div>
-<div class="line"><a name="l03639"></a><span class="lineno"> 3639</span>&#160;    <span class="keywordflow">if</span> (handle == NULL)                                                                                   <span class="comment">/* check handle */</span></div>
-<div class="line"><a name="l03640"></a><span class="lineno"> 3640</span>&#160;    {</div>
-<div class="line"><a name="l03641"></a><span class="lineno"> 3641</span>&#160;        <span class="keywordflow">return</span> 2;                                                                                         <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l03642"></a><span class="lineno"> 3642</span>&#160;    }   </div>
-<div class="line"><a name="l03643"></a><span class="lineno"> 3643</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">inited</a> != 1)                                                                              <span class="comment">/* check handle initialization */</span></div>
-<div class="line"><a name="l03644"></a><span class="lineno"> 3644</span>&#160;    {</div>
-<div class="line"><a name="l03645"></a><span class="lineno"> 3645</span>&#160;        <span class="keywordflow">return</span> 3;                                                                                         <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l03646"></a><span class="lineno"> 3646</span>&#160;    }</div>
-<div class="line"><a name="l03647"></a><span class="lineno"> 3647</span>&#160;    </div>
-<div class="line"><a name="l03648"></a><span class="lineno"> 3648</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>)                                                         <span class="comment">/* spi interface */</span></div>
-<div class="line"><a name="l03649"></a><span class="lineno"> 3649</span>&#160;    {</div>
-<div class="line"><a name="l03650"></a><span class="lineno"> 3650</span>&#160;        <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">dual_quad_spi_enable</a> != 0)                                                            <span class="comment">/* enable dual quad spi */</span></div>
-<div class="line"><a name="l03651"></a><span class="lineno"> 3651</span>&#160;        {</div>
-<div class="line"><a name="l03652"></a><span class="lineno"> 3652</span>&#160;            <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                       <span class="comment">/* 3 address mode */</span></div>
-<div class="line"><a name="l03653"></a><span class="lineno"> 3653</span>&#160;            {</div>
-<div class="line"><a name="l03654"></a><span class="lineno"> 3654</span>&#160;                <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)                                                              <span class="comment">/* &gt;128Mb */</span></div>
-<div class="line"><a name="l03655"></a><span class="lineno"> 3655</span>&#160;                {</div>
-<div class="line"><a name="l03656"></a><span class="lineno"> 3656</span>&#160;                    res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>, 1,</div>
-<div class="line"><a name="l03657"></a><span class="lineno"> 3657</span>&#160;                                                   0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l03658"></a><span class="lineno"> 3658</span>&#160;                                                   0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l03659"></a><span class="lineno"> 3659</span>&#160;                                                   0x00, NULL, 0x00,</div>
-<div class="line"><a name="l03660"></a><span class="lineno"> 3660</span>&#160;                                                   NULL, 0x00, 0x00);                                     <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l03661"></a><span class="lineno"> 3661</span>&#160;                    <span class="keywordflow">if</span> (res != 0)                                                                         <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l03662"></a><span class="lineno"> 3662</span>&#160;                    {</div>
-<div class="line"><a name="l03663"></a><span class="lineno"> 3663</span>&#160;                        handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                            <span class="comment">/* write enable failed */</span></div>
-<div class="line"><a name="l03664"></a><span class="lineno"> 3664</span>&#160;                       </div>
-<div class="line"><a name="l03665"></a><span class="lineno"> 3665</span>&#160;                        <span class="keywordflow">return</span> 1;                                                                         <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l03666"></a><span class="lineno"> 3666</span>&#160;                    }</div>
-<div class="line"><a name="l03667"></a><span class="lineno"> 3667</span>&#160;                    buf[0] = (addr &gt;&gt; 24) &amp; 0xFF;                                                         <span class="comment">/* 31 - 24 bits */</span></div>
-<div class="line"><a name="l03668"></a><span class="lineno"> 3668</span>&#160;                    res = a_w25qxx_qspi_write_read(handle, 0xC5, 1,</div>
-<div class="line"><a name="l03669"></a><span class="lineno"> 3669</span>&#160;                                                   0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l03670"></a><span class="lineno"> 3670</span>&#160;                                                   0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l03671"></a><span class="lineno"> 3671</span>&#160;                                                   0, (uint8_t *)buf, 0x01,</div>
-<div class="line"><a name="l03672"></a><span class="lineno"> 3672</span>&#160;                                                   NULL, 0x00, 1);                                        <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l03673"></a><span class="lineno"> 3673</span>&#160;                    <span class="keywordflow">if</span> (res != 0)                                                                         <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l03674"></a><span class="lineno"> 3674</span>&#160;                    {</div>
-<div class="line"><a name="l03675"></a><span class="lineno"> 3675</span>&#160;                        handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write extended addr register failed.\n&quot;</span>);            <span class="comment">/* write extended addr register failed */</span></div>
-<div class="line"><a name="l03676"></a><span class="lineno"> 3676</span>&#160;                       </div>
-<div class="line"><a name="l03677"></a><span class="lineno"> 3677</span>&#160;                        <span class="keywordflow">return</span> 1;                                                                         <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l03678"></a><span class="lineno"> 3678</span>&#160;                    }</div>
-<div class="line"><a name="l03679"></a><span class="lineno"> 3679</span>&#160;                }</div>
-<div class="line"><a name="l03680"></a><span class="lineno"> 3680</span>&#160;                res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#ac957b31a68db8c14f88a196a98b0aa18">W25QXX_COMMAND_FAST_READ</a>, 1,</div>
-<div class="line"><a name="l03681"></a><span class="lineno"> 3681</span>&#160;                                               addr, 1, 3,</div>
-<div class="line"><a name="l03682"></a><span class="lineno"> 3682</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l03683"></a><span class="lineno"> 3683</span>&#160;                                               8, NULL, 0x00,</div>
-<div class="line"><a name="l03684"></a><span class="lineno"> 3684</span>&#160;                                               data, len, 1);                                             <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l03685"></a><span class="lineno"> 3685</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                             <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l03686"></a><span class="lineno"> 3686</span>&#160;                {</div>
-<div class="line"><a name="l03687"></a><span class="lineno"> 3687</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read failed.\n&quot;</span>);                                   <span class="comment">/* fast read failed */</span></div>
-<div class="line"><a name="l03688"></a><span class="lineno"> 3688</span>&#160;                   </div>
-<div class="line"><a name="l03689"></a><span class="lineno"> 3689</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                             <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l03690"></a><span class="lineno"> 3690</span>&#160;                }</div>
-<div class="line"><a name="l03691"></a><span class="lineno"> 3691</span>&#160;            }</div>
-<div class="line"><a name="l03692"></a><span class="lineno"> 3692</span>&#160;            <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>) &amp;&amp; (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>))</div>
-<div class="line"><a name="l03693"></a><span class="lineno"> 3693</span>&#160;            {</div>
-<div class="line"><a name="l03694"></a><span class="lineno"> 3694</span>&#160;                res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#ac957b31a68db8c14f88a196a98b0aa18">W25QXX_COMMAND_FAST_READ</a>, 1,</div>
-<div class="line"><a name="l03695"></a><span class="lineno"> 3695</span>&#160;                                               addr, 1, 4,</div>
-<div class="line"><a name="l03696"></a><span class="lineno"> 3696</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l03697"></a><span class="lineno"> 3697</span>&#160;                                               8, NULL, 0x00,</div>
-<div class="line"><a name="l03698"></a><span class="lineno"> 3698</span>&#160;                                               data, len, 1);                                             <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l03699"></a><span class="lineno"> 3699</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                             <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l03700"></a><span class="lineno"> 3700</span>&#160;                {</div>
-<div class="line"><a name="l03701"></a><span class="lineno"> 3701</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read failed.\n&quot;</span>);                                   <span class="comment">/* fast read failed */</span></div>
-<div class="line"><a name="l03702"></a><span class="lineno"> 3702</span>&#160;                   </div>
-<div class="line"><a name="l03703"></a><span class="lineno"> 3703</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                             <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l03704"></a><span class="lineno"> 3704</span>&#160;                }</div>
-<div class="line"><a name="l03705"></a><span class="lineno"> 3705</span>&#160;            }</div>
-<div class="line"><a name="l03706"></a><span class="lineno"> 3706</span>&#160;            <span class="keywordflow">else</span></div>
-<div class="line"><a name="l03707"></a><span class="lineno"> 3707</span>&#160;            {</div>
-<div class="line"><a name="l03708"></a><span class="lineno"> 3708</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: address mode is invalid.\n&quot;</span>);                                <span class="comment">/* address mode is invalid */</span></div>
-<div class="line"><a name="l03709"></a><span class="lineno"> 3709</span>&#160;               </div>
-<div class="line"><a name="l03710"></a><span class="lineno"> 3710</span>&#160;                <span class="keywordflow">return</span> 4;                                                                                 <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l03711"></a><span class="lineno"> 3711</span>&#160;            }</div>
-<div class="line"><a name="l03712"></a><span class="lineno"> 3712</span>&#160;        }</div>
-<div class="line"><a name="l03713"></a><span class="lineno"> 3713</span>&#160;        <span class="keywordflow">else</span>                                                                                              <span class="comment">/* single spi */</span></div>
-<div class="line"><a name="l03714"></a><span class="lineno"> 3714</span>&#160;        {</div>
-<div class="line"><a name="l03715"></a><span class="lineno"> 3715</span>&#160;            <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                       <span class="comment">/* 3 address mode */</span></div>
-<div class="line"><a name="l03716"></a><span class="lineno"> 3716</span>&#160;            {</div>
-<div class="line"><a name="l03717"></a><span class="lineno"> 3717</span>&#160;                <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)                                                              <span class="comment">/* &gt;128Mb */</span></div>
-<div class="line"><a name="l03718"></a><span class="lineno"> 3718</span>&#160;                {</div>
-<div class="line"><a name="l03719"></a><span class="lineno"> 3719</span>&#160;                    buf[0] = <a class="code" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>;                                                 <span class="comment">/* write enable command */</span></div>
-<div class="line"><a name="l03720"></a><span class="lineno"> 3720</span>&#160;                    res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 1, NULL, 0);                    <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l03721"></a><span class="lineno"> 3721</span>&#160;                    <span class="keywordflow">if</span> (res != 0)                                                                         <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l03722"></a><span class="lineno"> 3722</span>&#160;                    {</div>
-<div class="line"><a name="l03723"></a><span class="lineno"> 3723</span>&#160;                        handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                            <span class="comment">/* write enable failed */</span></div>
-<div class="line"><a name="l03724"></a><span class="lineno"> 3724</span>&#160;                       </div>
-<div class="line"><a name="l03725"></a><span class="lineno"> 3725</span>&#160;                        <span class="keywordflow">return</span> 1;                                                                         <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l03726"></a><span class="lineno"> 3726</span>&#160;                    }</div>
-<div class="line"><a name="l03727"></a><span class="lineno"> 3727</span>&#160;                    buf[0] = 0xC5;                                                                        <span class="comment">/* write extended addr register command */</span></div>
-<div class="line"><a name="l03728"></a><span class="lineno"> 3728</span>&#160;                    buf[1] = (addr &gt;&gt; 24) &amp; 0xFF;                                                         <span class="comment">/* 31 - 24 bits */</span></div>
-<div class="line"><a name="l03729"></a><span class="lineno"> 3729</span>&#160;                    res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 2, NULL, 0);                    <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l03730"></a><span class="lineno"> 3730</span>&#160;                    <span class="keywordflow">if</span> (res != 0)                                                                         <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l03731"></a><span class="lineno"> 3731</span>&#160;                    {</div>
-<div class="line"><a name="l03732"></a><span class="lineno"> 3732</span>&#160;                        handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write extended addr register failed.\n&quot;</span>);            <span class="comment">/* write extended addr register failed */</span></div>
-<div class="line"><a name="l03733"></a><span class="lineno"> 3733</span>&#160;                       </div>
-<div class="line"><a name="l03734"></a><span class="lineno"> 3734</span>&#160;                        <span class="keywordflow">return</span> 1;                                                                         <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l03735"></a><span class="lineno"> 3735</span>&#160;                    }</div>
-<div class="line"><a name="l03736"></a><span class="lineno"> 3736</span>&#160;                }</div>
-<div class="line"><a name="l03737"></a><span class="lineno"> 3737</span>&#160;                buf[0] = <a class="code" href="driver__w25qxx_8c.html#ac957b31a68db8c14f88a196a98b0aa18">W25QXX_COMMAND_FAST_READ</a>;                                                        <span class="comment">/* fast read command */</span></div>
-<div class="line"><a name="l03738"></a><span class="lineno"> 3738</span>&#160;                buf[1] = (addr &gt;&gt; 16) &amp; 0xFF;                                                             <span class="comment">/* 23 - 16 bits */</span></div>
-<div class="line"><a name="l03739"></a><span class="lineno"> 3739</span>&#160;                buf[2] = (addr &gt;&gt; 8) &amp; 0xFF;                                                              <span class="comment">/* 15 - 8  bits */</span></div>
-<div class="line"><a name="l03740"></a><span class="lineno"> 3740</span>&#160;                buf[3] = (addr &gt;&gt; 0) &amp; 0xFF;                                                              <span class="comment">/* 7 - 0 bits */</span></div>
-<div class="line"><a name="l03741"></a><span class="lineno"> 3741</span>&#160;                buf[4] = 0x00;                                                                            <span class="comment">/* dummy */</span></div>
-<div class="line"><a name="l03742"></a><span class="lineno"> 3742</span>&#160;                res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 5, (uint8_t *)data, (uint32_t)len); <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l03743"></a><span class="lineno"> 3743</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                             <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l03744"></a><span class="lineno"> 3744</span>&#160;                {</div>
-<div class="line"><a name="l03745"></a><span class="lineno"> 3745</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read failed.\n&quot;</span>);                                   <span class="comment">/* fast read failed */</span></div>
-<div class="line"><a name="l03746"></a><span class="lineno"> 3746</span>&#160;                   </div>
-<div class="line"><a name="l03747"></a><span class="lineno"> 3747</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                             <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l03748"></a><span class="lineno"> 3748</span>&#160;                }</div>
-<div class="line"><a name="l03749"></a><span class="lineno"> 3749</span>&#160;            }</div>
-<div class="line"><a name="l03750"></a><span class="lineno"> 3750</span>&#160;            <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>)</div>
-<div class="line"><a name="l03751"></a><span class="lineno"> 3751</span>&#160;                     &amp;&amp; (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>))                                                        <span class="comment">/* check address mode */</span></div>
-<div class="line"><a name="l03752"></a><span class="lineno"> 3752</span>&#160;            {</div>
-<div class="line"><a name="l03753"></a><span class="lineno"> 3753</span>&#160;                buf[0] = <a class="code" href="driver__w25qxx_8c.html#ac957b31a68db8c14f88a196a98b0aa18">W25QXX_COMMAND_FAST_READ</a>;                                                        <span class="comment">/* fast read command */</span></div>
-<div class="line"><a name="l03754"></a><span class="lineno"> 3754</span>&#160;                buf[1] = (addr &gt;&gt; 24) &amp; 0xFF;                                                             <span class="comment">/* 31 - 24 bits */</span></div>
-<div class="line"><a name="l03755"></a><span class="lineno"> 3755</span>&#160;                buf[2] = (addr &gt;&gt; 16) &amp; 0xFF;                                                             <span class="comment">/* 23 - 16 bits */</span></div>
-<div class="line"><a name="l03756"></a><span class="lineno"> 3756</span>&#160;                buf[3] = (addr &gt;&gt; 8) &amp; 0xFF;                                                              <span class="comment">/* 15 - 8  bits */</span></div>
-<div class="line"><a name="l03757"></a><span class="lineno"> 3757</span>&#160;                buf[4] = (addr &gt;&gt; 0) &amp; 0xFF;                                                              <span class="comment">/* 7 - 0 bits */</span></div>
-<div class="line"><a name="l03758"></a><span class="lineno"> 3758</span>&#160;                buf[5] = 0x00;                                                                            <span class="comment">/* dummy */</span></div>
-<div class="line"><a name="l03759"></a><span class="lineno"> 3759</span>&#160;                res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 6, (uint8_t *)data, (uint32_t)len); <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l03760"></a><span class="lineno"> 3760</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                             <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l03761"></a><span class="lineno"> 3761</span>&#160;                {</div>
-<div class="line"><a name="l03762"></a><span class="lineno"> 3762</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read failed.\n&quot;</span>);                                   <span class="comment">/* fast read failed */</span></div>
-<div class="line"><a name="l03763"></a><span class="lineno"> 3763</span>&#160;                   </div>
-<div class="line"><a name="l03764"></a><span class="lineno"> 3764</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                             <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l03765"></a><span class="lineno"> 3765</span>&#160;                }</div>
-<div class="line"><a name="l03766"></a><span class="lineno"> 3766</span>&#160;            }</div>
-<div class="line"><a name="l03767"></a><span class="lineno"> 3767</span>&#160;            <span class="keywordflow">else</span></div>
-<div class="line"><a name="l03768"></a><span class="lineno"> 3768</span>&#160;            {</div>
-<div class="line"><a name="l03769"></a><span class="lineno"> 3769</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: address mode is invalid.\n&quot;</span>);                                <span class="comment">/* address mode is invalid */</span></div>
-<div class="line"><a name="l03770"></a><span class="lineno"> 3770</span>&#160;               </div>
-<div class="line"><a name="l03771"></a><span class="lineno"> 3771</span>&#160;                <span class="keywordflow">return</span> 4;                                                                                 <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l03772"></a><span class="lineno"> 3772</span>&#160;            }</div>
-<div class="line"><a name="l03773"></a><span class="lineno"> 3773</span>&#160;        }</div>
-<div class="line"><a name="l03774"></a><span class="lineno"> 3774</span>&#160;    }</div>
-<div class="line"><a name="l03775"></a><span class="lineno"> 3775</span>&#160;    <span class="keywordflow">else</span>                                                                                                  <span class="comment">/* qspi interface */</span></div>
-<div class="line"><a name="l03776"></a><span class="lineno"> 3776</span>&#160;    {</div>
-<div class="line"><a name="l03777"></a><span class="lineno"> 3777</span>&#160;        <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                           <span class="comment">/* 3 address mode */</span></div>
-<div class="line"><a name="l03778"></a><span class="lineno"> 3778</span>&#160;        {</div>
-<div class="line"><a name="l03779"></a><span class="lineno"> 3779</span>&#160;            <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)                                                                  <span class="comment">/* &gt;128Mb */</span></div>
-<div class="line"><a name="l03780"></a><span class="lineno"> 3780</span>&#160;            {</div>
-<div class="line"><a name="l03781"></a><span class="lineno"> 3781</span>&#160;                res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>, 4,</div>
-<div class="line"><a name="l03782"></a><span class="lineno"> 3782</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l03783"></a><span class="lineno"> 3783</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l03784"></a><span class="lineno"> 3784</span>&#160;                                               0x00, NULL, 0x00,</div>
-<div class="line"><a name="l03785"></a><span class="lineno"> 3785</span>&#160;                                               NULL, 0x00, 0x00);                                         <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l03786"></a><span class="lineno"> 3786</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                             <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l03787"></a><span class="lineno"> 3787</span>&#160;                {</div>
-<div class="line"><a name="l03788"></a><span class="lineno"> 3788</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                                <span class="comment">/* write enable failed */</span></div>
-<div class="line"><a name="l03789"></a><span class="lineno"> 3789</span>&#160;                   </div>
-<div class="line"><a name="l03790"></a><span class="lineno"> 3790</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                             <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l03791"></a><span class="lineno"> 3791</span>&#160;                }</div>
-<div class="line"><a name="l03792"></a><span class="lineno"> 3792</span>&#160;                buf[0] = (addr &gt;&gt; 24) &amp; 0xFF;                                                             <span class="comment">/* 31 - 24 bits */</span></div>
-<div class="line"><a name="l03793"></a><span class="lineno"> 3793</span>&#160;                res = a_w25qxx_qspi_write_read(handle, 0xC5, 4,</div>
-<div class="line"><a name="l03794"></a><span class="lineno"> 3794</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l03795"></a><span class="lineno"> 3795</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l03796"></a><span class="lineno"> 3796</span>&#160;                                               0, (uint8_t *)buf, 0x01,</div>
-<div class="line"><a name="l03797"></a><span class="lineno"> 3797</span>&#160;                                               NULL, 0x00, 4);                                            <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l03798"></a><span class="lineno"> 3798</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                             <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l03799"></a><span class="lineno"> 3799</span>&#160;                {</div>
-<div class="line"><a name="l03800"></a><span class="lineno"> 3800</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write extended addr register failed.\n&quot;</span>);                <span class="comment">/* write extended addr register failed */</span></div>
-<div class="line"><a name="l03801"></a><span class="lineno"> 3801</span>&#160;                   </div>
-<div class="line"><a name="l03802"></a><span class="lineno"> 3802</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                             <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l03803"></a><span class="lineno"> 3803</span>&#160;                }</div>
-<div class="line"><a name="l03804"></a><span class="lineno"> 3804</span>&#160;            }</div>
-<div class="line"><a name="l03805"></a><span class="lineno"> 3805</span>&#160;            res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#ac957b31a68db8c14f88a196a98b0aa18">W25QXX_COMMAND_FAST_READ</a>, 4,</div>
-<div class="line"><a name="l03806"></a><span class="lineno"> 3806</span>&#160;                                           addr, 4, 3,</div>
-<div class="line"><a name="l03807"></a><span class="lineno"> 3807</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l03808"></a><span class="lineno"> 3808</span>&#160;                                           handle-&gt;<a class="code" href="structw25qxx__handle__s.html#aff7b59f569ec689a7580bd6911daafd5">dummy</a>, NULL, 0x00,</div>
-<div class="line"><a name="l03809"></a><span class="lineno"> 3809</span>&#160;                                           data, len, 4);                                                 <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l03810"></a><span class="lineno"> 3810</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                                 <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l03811"></a><span class="lineno"> 3811</span>&#160;            {</div>
-<div class="line"><a name="l03812"></a><span class="lineno"> 3812</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read failed.\n&quot;</span>);                                       <span class="comment">/* fast read failed */</span></div>
-<div class="line"><a name="l03813"></a><span class="lineno"> 3813</span>&#160;               </div>
-<div class="line"><a name="l03814"></a><span class="lineno"> 3814</span>&#160;                <span class="keywordflow">return</span> 1;                                                                                 <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l03815"></a><span class="lineno"> 3815</span>&#160;            }</div>
-<div class="line"><a name="l03816"></a><span class="lineno"> 3816</span>&#160;        }</div>
-<div class="line"><a name="l03817"></a><span class="lineno"> 3817</span>&#160;        <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>) &amp;&amp; (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>))</div>
-<div class="line"><a name="l03818"></a><span class="lineno"> 3818</span>&#160;        {</div>
-<div class="line"><a name="l03819"></a><span class="lineno"> 3819</span>&#160;            res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#ac957b31a68db8c14f88a196a98b0aa18">W25QXX_COMMAND_FAST_READ</a>, 4,</div>
-<div class="line"><a name="l03820"></a><span class="lineno"> 3820</span>&#160;                                           addr, 4, 4,</div>
-<div class="line"><a name="l03821"></a><span class="lineno"> 3821</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l03822"></a><span class="lineno"> 3822</span>&#160;                                           handle-&gt;<a class="code" href="structw25qxx__handle__s.html#aff7b59f569ec689a7580bd6911daafd5">dummy</a>, NULL, 0x00,                                     <span class="comment">/* spi write */</span></div>
-<div class="line"><a name="l03823"></a><span class="lineno"> 3823</span>&#160;                                           data, len, 4);                                                 <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l03824"></a><span class="lineno"> 3824</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                                 <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l03825"></a><span class="lineno"> 3825</span>&#160;            {</div>
-<div class="line"><a name="l03826"></a><span class="lineno"> 3826</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read failed.\n&quot;</span>);                                       <span class="comment">/* fast read failed */</span></div>
-<div class="line"><a name="l03827"></a><span class="lineno"> 3827</span>&#160;               </div>
-<div class="line"><a name="l03828"></a><span class="lineno"> 3828</span>&#160;                <span class="keywordflow">return</span> 1;                                                                                 <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l03829"></a><span class="lineno"> 3829</span>&#160;            }</div>
-<div class="line"><a name="l03830"></a><span class="lineno"> 3830</span>&#160;        }</div>
-<div class="line"><a name="l03831"></a><span class="lineno"> 3831</span>&#160;        <span class="keywordflow">else</span></div>
-<div class="line"><a name="l03832"></a><span class="lineno"> 3832</span>&#160;        {</div>
-<div class="line"><a name="l03833"></a><span class="lineno"> 3833</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: address mode is invalid.\n&quot;</span>);                                    <span class="comment">/* address mode is invalid */</span></div>
-<div class="line"><a name="l03834"></a><span class="lineno"> 3834</span>&#160;           </div>
-<div class="line"><a name="l03835"></a><span class="lineno"> 3835</span>&#160;            <span class="keywordflow">return</span> 4;                                                                                     <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l03836"></a><span class="lineno"> 3836</span>&#160;        }</div>
-<div class="line"><a name="l03837"></a><span class="lineno"> 3837</span>&#160;    }</div>
-<div class="line"><a name="l03838"></a><span class="lineno"> 3838</span>&#160;    </div>
-<div class="line"><a name="l03839"></a><span class="lineno"> 3839</span>&#160;    <span class="keywordflow">return</span> 0;                                                                                             <span class="comment">/* success return 0 */</span></div>
-<div class="line"><a name="l03840"></a><span class="lineno"> 3840</span>&#160;}</div>
-<div class="line"><a name="l03841"></a><span class="lineno"> 3841</span>&#160; </div>
-<div class="line"><a name="l03858"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#ga7a19230ca3916816ea8fb7421483d293"> 3858</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__advance__driver.html#ga7a19230ca3916816ea8fb7421483d293">w25qxx_fast_read_dual_output</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint32_t len)</div>
-<div class="line"><a name="l03859"></a><span class="lineno"> 3859</span>&#160;{</div>
-<div class="line"><a name="l03860"></a><span class="lineno"> 3860</span>&#160;    uint8_t res;</div>
-<div class="line"><a name="l03861"></a><span class="lineno"> 3861</span>&#160;    uint8_t buf[1];</div>
-<div class="line"><a name="l03862"></a><span class="lineno"> 3862</span>&#160;    </div>
-<div class="line"><a name="l03863"></a><span class="lineno"> 3863</span>&#160;    <span class="keywordflow">if</span> (handle == NULL)                                                                                   <span class="comment">/* check handle */</span></div>
-<div class="line"><a name="l03864"></a><span class="lineno"> 3864</span>&#160;    {</div>
-<div class="line"><a name="l03865"></a><span class="lineno"> 3865</span>&#160;        <span class="keywordflow">return</span> 2;                                                                                         <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l03866"></a><span class="lineno"> 3866</span>&#160;    }   </div>
-<div class="line"><a name="l03867"></a><span class="lineno"> 3867</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">inited</a> != 1)                                                                              <span class="comment">/* check handle initialization */</span></div>
-<div class="line"><a name="l03868"></a><span class="lineno"> 3868</span>&#160;    {</div>
-<div class="line"><a name="l03869"></a><span class="lineno"> 3869</span>&#160;        <span class="keywordflow">return</span> 3;                                                                                         <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l03870"></a><span class="lineno"> 3870</span>&#160;    }</div>
-<div class="line"><a name="l03871"></a><span class="lineno"> 3871</span>&#160;    </div>
-<div class="line"><a name="l03872"></a><span class="lineno"> 3872</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>)                                                         <span class="comment">/* spi interface */</span></div>
-<div class="line"><a name="l03873"></a><span class="lineno"> 3873</span>&#160;    {</div>
-<div class="line"><a name="l03874"></a><span class="lineno"> 3874</span>&#160;        <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">dual_quad_spi_enable</a> == 0)                                                            <span class="comment">/* check spi */</span></div>
-<div class="line"><a name="l03875"></a><span class="lineno"> 3875</span>&#160;        {</div>
-<div class="line"><a name="l03876"></a><span class="lineno"> 3876</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: standard spi can&#39;t use this function failed.\n&quot;</span>);                <span class="comment">/* standard spi can&#39;t use this function failed */</span></div>
-<div class="line"><a name="l03877"></a><span class="lineno"> 3877</span>&#160;           </div>
-<div class="line"><a name="l03878"></a><span class="lineno"> 3878</span>&#160;            <span class="keywordflow">return</span> 6;                                                                                     <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l03879"></a><span class="lineno"> 3879</span>&#160;        }</div>
-<div class="line"><a name="l03880"></a><span class="lineno"> 3880</span>&#160;        <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                           <span class="comment">/* 3 address mode */</span></div>
-<div class="line"><a name="l03881"></a><span class="lineno"> 3881</span>&#160;        {</div>
-<div class="line"><a name="l03882"></a><span class="lineno"> 3882</span>&#160;            <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)                                                                  <span class="comment">/* &gt;128Mb */</span></div>
-<div class="line"><a name="l03883"></a><span class="lineno"> 3883</span>&#160;            {</div>
-<div class="line"><a name="l03884"></a><span class="lineno"> 3884</span>&#160;                res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>, 1,</div>
-<div class="line"><a name="l03885"></a><span class="lineno"> 3885</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l03886"></a><span class="lineno"> 3886</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l03887"></a><span class="lineno"> 3887</span>&#160;                                               0x00, NULL, 0x00,</div>
-<div class="line"><a name="l03888"></a><span class="lineno"> 3888</span>&#160;                                               NULL, 0x00, 0x00);                                         <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l03889"></a><span class="lineno"> 3889</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                             <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l03890"></a><span class="lineno"> 3890</span>&#160;                {</div>
-<div class="line"><a name="l03891"></a><span class="lineno"> 3891</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                                <span class="comment">/* write enable failed */</span></div>
-<div class="line"><a name="l03892"></a><span class="lineno"> 3892</span>&#160;                   </div>
-<div class="line"><a name="l03893"></a><span class="lineno"> 3893</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                             <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l03894"></a><span class="lineno"> 3894</span>&#160;                }</div>
-<div class="line"><a name="l03895"></a><span class="lineno"> 3895</span>&#160;                buf[0] = (addr &gt;&gt; 24) &amp; 0xFF;                                                             <span class="comment">/* 31 - 24 bits */</span></div>
-<div class="line"><a name="l03896"></a><span class="lineno"> 3896</span>&#160;                res = a_w25qxx_qspi_write_read(handle, 0xC5, 1,</div>
-<div class="line"><a name="l03897"></a><span class="lineno"> 3897</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l03898"></a><span class="lineno"> 3898</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l03899"></a><span class="lineno"> 3899</span>&#160;                                               0, (uint8_t *)buf, 0x01,</div>
-<div class="line"><a name="l03900"></a><span class="lineno"> 3900</span>&#160;                                               NULL, 0x00, 1);                                            <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l03901"></a><span class="lineno"> 3901</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                             <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l03902"></a><span class="lineno"> 3902</span>&#160;                {</div>
-<div class="line"><a name="l03903"></a><span class="lineno"> 3903</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write extended addr register failed.\n&quot;</span>);                <span class="comment">/* write extended addr register failed */</span></div>
-<div class="line"><a name="l03904"></a><span class="lineno"> 3904</span>&#160;                   </div>
-<div class="line"><a name="l03905"></a><span class="lineno"> 3905</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                             <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l03906"></a><span class="lineno"> 3906</span>&#160;                }</div>
-<div class="line"><a name="l03907"></a><span class="lineno"> 3907</span>&#160;            }</div>
-<div class="line"><a name="l03908"></a><span class="lineno"> 3908</span>&#160;            res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#a8d49efa8b978ae8fd3eb18d0e5ae73e8">W25QXX_COMMAND_FAST_READ_DUAL_OUTPUT</a>, 1,</div>
-<div class="line"><a name="l03909"></a><span class="lineno"> 3909</span>&#160;                                           addr, 1, 3,</div>
-<div class="line"><a name="l03910"></a><span class="lineno"> 3910</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l03911"></a><span class="lineno"> 3911</span>&#160;                                           8, NULL, 0x00,                                                 <span class="comment">/* spi write */</span></div>
-<div class="line"><a name="l03912"></a><span class="lineno"> 3912</span>&#160;                                           data, len, 2);                                                 <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l03913"></a><span class="lineno"> 3913</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                                 <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l03914"></a><span class="lineno"> 3914</span>&#160;            {</div>
-<div class="line"><a name="l03915"></a><span class="lineno"> 3915</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read dual output failed.\n&quot;</span>);                           <span class="comment">/* fast read dual output failed */</span></div>
-<div class="line"><a name="l03916"></a><span class="lineno"> 3916</span>&#160;               </div>
-<div class="line"><a name="l03917"></a><span class="lineno"> 3917</span>&#160;                <span class="keywordflow">return</span> 1;                                                                                 <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l03918"></a><span class="lineno"> 3918</span>&#160;            }</div>
-<div class="line"><a name="l03919"></a><span class="lineno"> 3919</span>&#160;        }</div>
-<div class="line"><a name="l03920"></a><span class="lineno"> 3920</span>&#160;        <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>) &amp;&amp; (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>))</div>
-<div class="line"><a name="l03921"></a><span class="lineno"> 3921</span>&#160;        {</div>
-<div class="line"><a name="l03922"></a><span class="lineno"> 3922</span>&#160;            res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#a8d49efa8b978ae8fd3eb18d0e5ae73e8">W25QXX_COMMAND_FAST_READ_DUAL_OUTPUT</a>, 1,</div>
-<div class="line"><a name="l03923"></a><span class="lineno"> 3923</span>&#160;                                           addr, 1, 4,</div>
-<div class="line"><a name="l03924"></a><span class="lineno"> 3924</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l03925"></a><span class="lineno"> 3925</span>&#160;                                           8, NULL, 0x00,                                                 <span class="comment">/* spi write */</span></div>
-<div class="line"><a name="l03926"></a><span class="lineno"> 3926</span>&#160;                                           data, len, 2);                                                 <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l03927"></a><span class="lineno"> 3927</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                                 <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l03928"></a><span class="lineno"> 3928</span>&#160;            {</div>
-<div class="line"><a name="l03929"></a><span class="lineno"> 3929</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read dual output failed.\n&quot;</span>);                           <span class="comment">/* fast read dual output failed */</span></div>
-<div class="line"><a name="l03930"></a><span class="lineno"> 3930</span>&#160;               </div>
-<div class="line"><a name="l03931"></a><span class="lineno"> 3931</span>&#160;                <span class="keywordflow">return</span> 1;                                                                                 <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l03932"></a><span class="lineno"> 3932</span>&#160;            }</div>
-<div class="line"><a name="l03933"></a><span class="lineno"> 3933</span>&#160;        }</div>
-<div class="line"><a name="l03934"></a><span class="lineno"> 3934</span>&#160;        <span class="keywordflow">else</span></div>
-<div class="line"><a name="l03935"></a><span class="lineno"> 3935</span>&#160;        {</div>
-<div class="line"><a name="l03936"></a><span class="lineno"> 3936</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: address mode is invalid.\n&quot;</span>);                                    <span class="comment">/* address mode is invalid */</span></div>
-<div class="line"><a name="l03937"></a><span class="lineno"> 3937</span>&#160;           </div>
-<div class="line"><a name="l03938"></a><span class="lineno"> 3938</span>&#160;            <span class="keywordflow">return</span> 4;                                                                                     <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l03939"></a><span class="lineno"> 3939</span>&#160;        }</div>
-<div class="line"><a name="l03940"></a><span class="lineno"> 3940</span>&#160;    }</div>
-<div class="line"><a name="l03941"></a><span class="lineno"> 3941</span>&#160;    <span class="keywordflow">else</span></div>
-<div class="line"><a name="l03942"></a><span class="lineno"> 3942</span>&#160;    {</div>
-<div class="line"><a name="l03943"></a><span class="lineno"> 3943</span>&#160;        handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: qspi can&#39;t use this function.\n&quot;</span>);                                   <span class="comment">/* qspi can&#39;t use this function */</span></div>
-<div class="line"><a name="l03944"></a><span class="lineno"> 3944</span>&#160;       </div>
-<div class="line"><a name="l03945"></a><span class="lineno"> 3945</span>&#160;        <span class="keywordflow">return</span> 5;                                                                                         <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l03946"></a><span class="lineno"> 3946</span>&#160;    }</div>
-<div class="line"><a name="l03947"></a><span class="lineno"> 3947</span>&#160;    </div>
-<div class="line"><a name="l03948"></a><span class="lineno"> 3948</span>&#160;    <span class="keywordflow">return</span> 0;                                                                                             <span class="comment">/* success return 0 */</span></div>
-<div class="line"><a name="l03949"></a><span class="lineno"> 3949</span>&#160;}</div>
-<div class="line"><a name="l03950"></a><span class="lineno"> 3950</span>&#160; </div>
-<div class="line"><a name="l03967"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#gaf4bfafd1f80aa0316a4b1a15183dcd50"> 3967</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__advance__driver.html#gaf4bfafd1f80aa0316a4b1a15183dcd50">w25qxx_fast_read_quad_output</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint32_t len)</div>
-<div class="line"><a name="l03968"></a><span class="lineno"> 3968</span>&#160;{</div>
-<div class="line"><a name="l03969"></a><span class="lineno"> 3969</span>&#160;    uint8_t res;</div>
-<div class="line"><a name="l03970"></a><span class="lineno"> 3970</span>&#160;    uint8_t buf[1];</div>
-<div class="line"><a name="l03971"></a><span class="lineno"> 3971</span>&#160;    </div>
-<div class="line"><a name="l03972"></a><span class="lineno"> 3972</span>&#160;    <span class="keywordflow">if</span> (handle == NULL)                                                                                   <span class="comment">/* check handle */</span></div>
-<div class="line"><a name="l03973"></a><span class="lineno"> 3973</span>&#160;    {</div>
-<div class="line"><a name="l03974"></a><span class="lineno"> 3974</span>&#160;        <span class="keywordflow">return</span> 2;                                                                                         <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l03975"></a><span class="lineno"> 3975</span>&#160;    }   </div>
-<div class="line"><a name="l03976"></a><span class="lineno"> 3976</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">inited</a> != 1)                                                                              <span class="comment">/* check handle initialization */</span></div>
-<div class="line"><a name="l03977"></a><span class="lineno"> 3977</span>&#160;    {</div>
-<div class="line"><a name="l03978"></a><span class="lineno"> 3978</span>&#160;        <span class="keywordflow">return</span> 3;                                                                                         <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l03979"></a><span class="lineno"> 3979</span>&#160;    }</div>
-<div class="line"><a name="l03980"></a><span class="lineno"> 3980</span>&#160;    </div>
-<div class="line"><a name="l03981"></a><span class="lineno"> 3981</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>)                                                         <span class="comment">/* spi interface */</span></div>
-<div class="line"><a name="l03982"></a><span class="lineno"> 3982</span>&#160;    {</div>
-<div class="line"><a name="l03983"></a><span class="lineno"> 3983</span>&#160;        <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">dual_quad_spi_enable</a> == 0)                                                            <span class="comment">/* check spi */</span></div>
-<div class="line"><a name="l03984"></a><span class="lineno"> 3984</span>&#160;        {</div>
-<div class="line"><a name="l03985"></a><span class="lineno"> 3985</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: standard spi can&#39;t use this function failed.\n&quot;</span>);                <span class="comment">/* standard spi can&#39;t use this function failed */</span></div>
-<div class="line"><a name="l03986"></a><span class="lineno"> 3986</span>&#160;           </div>
-<div class="line"><a name="l03987"></a><span class="lineno"> 3987</span>&#160;            <span class="keywordflow">return</span> 6;                                                                                     <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l03988"></a><span class="lineno"> 3988</span>&#160;        }</div>
-<div class="line"><a name="l03989"></a><span class="lineno"> 3989</span>&#160;        <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                           <span class="comment">/* 3 address mode */</span></div>
-<div class="line"><a name="l03990"></a><span class="lineno"> 3990</span>&#160;        {</div>
-<div class="line"><a name="l03991"></a><span class="lineno"> 3991</span>&#160;            <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)                                                                  <span class="comment">/* &gt;128Mb */</span></div>
-<div class="line"><a name="l03992"></a><span class="lineno"> 3992</span>&#160;            {</div>
-<div class="line"><a name="l03993"></a><span class="lineno"> 3993</span>&#160;                res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>, 1,</div>
-<div class="line"><a name="l03994"></a><span class="lineno"> 3994</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l03995"></a><span class="lineno"> 3995</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l03996"></a><span class="lineno"> 3996</span>&#160;                                               0x00, NULL, 0x00,</div>
-<div class="line"><a name="l03997"></a><span class="lineno"> 3997</span>&#160;                                               NULL, 0x00, 0x00);                                         <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l03998"></a><span class="lineno"> 3998</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                             <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l03999"></a><span class="lineno"> 3999</span>&#160;                {</div>
-<div class="line"><a name="l04000"></a><span class="lineno"> 4000</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                                <span class="comment">/* write enable failed */</span></div>
-<div class="line"><a name="l04001"></a><span class="lineno"> 4001</span>&#160;                   </div>
-<div class="line"><a name="l04002"></a><span class="lineno"> 4002</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                             <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l04003"></a><span class="lineno"> 4003</span>&#160;                }</div>
-<div class="line"><a name="l04004"></a><span class="lineno"> 4004</span>&#160;                buf[0] = (addr &gt;&gt; 24) &amp; 0xFF;                                                             <span class="comment">/* 31 - 24 bits */</span></div>
-<div class="line"><a name="l04005"></a><span class="lineno"> 4005</span>&#160;                res = a_w25qxx_qspi_write_read(handle, 0xC5, 1,</div>
-<div class="line"><a name="l04006"></a><span class="lineno"> 4006</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l04007"></a><span class="lineno"> 4007</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l04008"></a><span class="lineno"> 4008</span>&#160;                                               0, (uint8_t *)buf, 0x01,</div>
-<div class="line"><a name="l04009"></a><span class="lineno"> 4009</span>&#160;                                               NULL, 0x00, 1);                                            <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l04010"></a><span class="lineno"> 4010</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                             <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l04011"></a><span class="lineno"> 4011</span>&#160;                {</div>
-<div class="line"><a name="l04012"></a><span class="lineno"> 4012</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write extended addr register failed.\n&quot;</span>);                <span class="comment">/* write extended addr register failed */</span></div>
-<div class="line"><a name="l04013"></a><span class="lineno"> 4013</span>&#160;                   </div>
-<div class="line"><a name="l04014"></a><span class="lineno"> 4014</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                             <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l04015"></a><span class="lineno"> 4015</span>&#160;                }</div>
-<div class="line"><a name="l04016"></a><span class="lineno"> 4016</span>&#160;            }</div>
-<div class="line"><a name="l04017"></a><span class="lineno"> 4017</span>&#160;            res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#a54ddb3d948c4bb95cc62199676c817b2">W25QXX_COMMAND_FAST_READ_QUAD_OUTPUT</a>, 1,</div>
-<div class="line"><a name="l04018"></a><span class="lineno"> 4018</span>&#160;                                           addr, 1, 3,</div>
-<div class="line"><a name="l04019"></a><span class="lineno"> 4019</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l04020"></a><span class="lineno"> 4020</span>&#160;                                           8, NULL, 0x00,                                                 <span class="comment">/* spi write */</span></div>
-<div class="line"><a name="l04021"></a><span class="lineno"> 4021</span>&#160;                                           data, len, 4);                                                 <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l04022"></a><span class="lineno"> 4022</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                                 <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l04023"></a><span class="lineno"> 4023</span>&#160;            {</div>
-<div class="line"><a name="l04024"></a><span class="lineno"> 4024</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read quad output failed.\n&quot;</span>);                           <span class="comment">/* fast read quad output failed */</span></div>
-<div class="line"><a name="l04025"></a><span class="lineno"> 4025</span>&#160;               </div>
-<div class="line"><a name="l04026"></a><span class="lineno"> 4026</span>&#160;                <span class="keywordflow">return</span> 1;                                                                                 <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l04027"></a><span class="lineno"> 4027</span>&#160;            }</div>
-<div class="line"><a name="l04028"></a><span class="lineno"> 4028</span>&#160;        }</div>
-<div class="line"><a name="l04029"></a><span class="lineno"> 4029</span>&#160;        <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>) &amp;&amp; (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>))</div>
-<div class="line"><a name="l04030"></a><span class="lineno"> 4030</span>&#160;        {</div>
-<div class="line"><a name="l04031"></a><span class="lineno"> 4031</span>&#160;            res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#a54ddb3d948c4bb95cc62199676c817b2">W25QXX_COMMAND_FAST_READ_QUAD_OUTPUT</a>, 1,</div>
-<div class="line"><a name="l04032"></a><span class="lineno"> 4032</span>&#160;                                           addr, 1, 4,</div>
-<div class="line"><a name="l04033"></a><span class="lineno"> 4033</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l04034"></a><span class="lineno"> 4034</span>&#160;                                           8, NULL, 0x00,                                                 <span class="comment">/* spi write */</span></div>
-<div class="line"><a name="l04035"></a><span class="lineno"> 4035</span>&#160;                                           data, len, 4);                                                 <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l04036"></a><span class="lineno"> 4036</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                                 <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l04037"></a><span class="lineno"> 4037</span>&#160;            {</div>
-<div class="line"><a name="l04038"></a><span class="lineno"> 4038</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read quad output failed.\n&quot;</span>);                           <span class="comment">/* fast read quad output failed */</span></div>
-<div class="line"><a name="l04039"></a><span class="lineno"> 4039</span>&#160;               </div>
-<div class="line"><a name="l04040"></a><span class="lineno"> 4040</span>&#160;                <span class="keywordflow">return</span> 1;                                                                                 <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l04041"></a><span class="lineno"> 4041</span>&#160;            }</div>
-<div class="line"><a name="l04042"></a><span class="lineno"> 4042</span>&#160;        }</div>
-<div class="line"><a name="l04043"></a><span class="lineno"> 4043</span>&#160;        <span class="keywordflow">else</span></div>
-<div class="line"><a name="l04044"></a><span class="lineno"> 4044</span>&#160;        {</div>
-<div class="line"><a name="l04045"></a><span class="lineno"> 4045</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: address mode is invalid.\n&quot;</span>);                                    <span class="comment">/* address mode is invalid */</span></div>
-<div class="line"><a name="l04046"></a><span class="lineno"> 4046</span>&#160;           </div>
-<div class="line"><a name="l04047"></a><span class="lineno"> 4047</span>&#160;            <span class="keywordflow">return</span> 4;                                                                                     <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l04048"></a><span class="lineno"> 4048</span>&#160;        }</div>
-<div class="line"><a name="l04049"></a><span class="lineno"> 4049</span>&#160;    }</div>
-<div class="line"><a name="l04050"></a><span class="lineno"> 4050</span>&#160;    <span class="keywordflow">else</span></div>
-<div class="line"><a name="l04051"></a><span class="lineno"> 4051</span>&#160;    {</div>
-<div class="line"><a name="l04052"></a><span class="lineno"> 4052</span>&#160;        handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: qspi can&#39;t use this function.\n&quot;</span>);                                   <span class="comment">/* qspi can&#39;t use this function */</span></div>
-<div class="line"><a name="l04053"></a><span class="lineno"> 4053</span>&#160;       </div>
-<div class="line"><a name="l04054"></a><span class="lineno"> 4054</span>&#160;        <span class="keywordflow">return</span> 5;                                                                                         <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l04055"></a><span class="lineno"> 4055</span>&#160;    }</div>
-<div class="line"><a name="l04056"></a><span class="lineno"> 4056</span>&#160;    </div>
-<div class="line"><a name="l04057"></a><span class="lineno"> 4057</span>&#160;    <span class="keywordflow">return</span> 0;                                                                                             <span class="comment">/* success return 0 */</span></div>
-<div class="line"><a name="l04058"></a><span class="lineno"> 4058</span>&#160;}</div>
-<div class="line"><a name="l04059"></a><span class="lineno"> 4059</span>&#160; </div>
-<div class="line"><a name="l04076"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#gac894f4650905cba10dd3a31284de6d5e"> 4076</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__advance__driver.html#gac894f4650905cba10dd3a31284de6d5e">w25qxx_fast_read_dual_io</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint32_t len)</div>
-<div class="line"><a name="l04077"></a><span class="lineno"> 4077</span>&#160;{</div>
-<div class="line"><a name="l04078"></a><span class="lineno"> 4078</span>&#160;    uint8_t res;</div>
-<div class="line"><a name="l04079"></a><span class="lineno"> 4079</span>&#160;    uint8_t buf[1];</div>
-<div class="line"><a name="l04080"></a><span class="lineno"> 4080</span>&#160;    </div>
-<div class="line"><a name="l04081"></a><span class="lineno"> 4081</span>&#160;    <span class="keywordflow">if</span> (handle == NULL)                                                                                   <span class="comment">/* check handle */</span></div>
-<div class="line"><a name="l04082"></a><span class="lineno"> 4082</span>&#160;    {</div>
-<div class="line"><a name="l04083"></a><span class="lineno"> 4083</span>&#160;        <span class="keywordflow">return</span> 2;                                                                                         <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l04084"></a><span class="lineno"> 4084</span>&#160;    }   </div>
-<div class="line"><a name="l04085"></a><span class="lineno"> 4085</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">inited</a> != 1)                                                                              <span class="comment">/* check handle initialization */</span></div>
-<div class="line"><a name="l04086"></a><span class="lineno"> 4086</span>&#160;    {</div>
-<div class="line"><a name="l04087"></a><span class="lineno"> 4087</span>&#160;        <span class="keywordflow">return</span> 3;                                                                                         <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l04088"></a><span class="lineno"> 4088</span>&#160;    }</div>
-<div class="line"><a name="l04089"></a><span class="lineno"> 4089</span>&#160;    </div>
-<div class="line"><a name="l04090"></a><span class="lineno"> 4090</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>)                                                         <span class="comment">/* spi interface */</span></div>
-<div class="line"><a name="l04091"></a><span class="lineno"> 4091</span>&#160;    {</div>
-<div class="line"><a name="l04092"></a><span class="lineno"> 4092</span>&#160;        <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">dual_quad_spi_enable</a> == 0)                                                            <span class="comment">/* check spi */</span></div>
-<div class="line"><a name="l04093"></a><span class="lineno"> 4093</span>&#160;        {</div>
-<div class="line"><a name="l04094"></a><span class="lineno"> 4094</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: standard spi can&#39;t use this function failed.\n&quot;</span>);                <span class="comment">/* standard spi can&#39;t use this function failed */</span></div>
-<div class="line"><a name="l04095"></a><span class="lineno"> 4095</span>&#160;           </div>
-<div class="line"><a name="l04096"></a><span class="lineno"> 4096</span>&#160;            <span class="keywordflow">return</span> 6;                                                                                     <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l04097"></a><span class="lineno"> 4097</span>&#160;        }</div>
-<div class="line"><a name="l04098"></a><span class="lineno"> 4098</span>&#160;        <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                           <span class="comment">/* 3 address mode */</span></div>
-<div class="line"><a name="l04099"></a><span class="lineno"> 4099</span>&#160;        {</div>
-<div class="line"><a name="l04100"></a><span class="lineno"> 4100</span>&#160;            <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)                                                                  <span class="comment">/* &gt;128Mb */</span></div>
-<div class="line"><a name="l04101"></a><span class="lineno"> 4101</span>&#160;            {</div>
-<div class="line"><a name="l04102"></a><span class="lineno"> 4102</span>&#160;                res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>, 1,</div>
-<div class="line"><a name="l04103"></a><span class="lineno"> 4103</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l04104"></a><span class="lineno"> 4104</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l04105"></a><span class="lineno"> 4105</span>&#160;                                               0x00, NULL, 0x00,</div>
-<div class="line"><a name="l04106"></a><span class="lineno"> 4106</span>&#160;                                               NULL, 0x00, 0x00);                                         <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l04107"></a><span class="lineno"> 4107</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                             <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l04108"></a><span class="lineno"> 4108</span>&#160;                {</div>
-<div class="line"><a name="l04109"></a><span class="lineno"> 4109</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                                <span class="comment">/* write enable failed */</span></div>
-<div class="line"><a name="l04110"></a><span class="lineno"> 4110</span>&#160;                   </div>
-<div class="line"><a name="l04111"></a><span class="lineno"> 4111</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                             <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l04112"></a><span class="lineno"> 4112</span>&#160;                }</div>
-<div class="line"><a name="l04113"></a><span class="lineno"> 4113</span>&#160;                buf[0] = (addr &gt;&gt; 24) &amp; 0xFF;                                                             <span class="comment">/* 31 - 24 bits */</span></div>
-<div class="line"><a name="l04114"></a><span class="lineno"> 4114</span>&#160;                res = a_w25qxx_qspi_write_read(handle, 0xC5, 1,</div>
-<div class="line"><a name="l04115"></a><span class="lineno"> 4115</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l04116"></a><span class="lineno"> 4116</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l04117"></a><span class="lineno"> 4117</span>&#160;                                               0, (uint8_t *)buf, 0x01,</div>
-<div class="line"><a name="l04118"></a><span class="lineno"> 4118</span>&#160;                                               NULL, 0x00, 1);                                            <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l04119"></a><span class="lineno"> 4119</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                             <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l04120"></a><span class="lineno"> 4120</span>&#160;                {</div>
-<div class="line"><a name="l04121"></a><span class="lineno"> 4121</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write extended addr register failed.\n&quot;</span>);                <span class="comment">/* write extended addr register failed */</span></div>
-<div class="line"><a name="l04122"></a><span class="lineno"> 4122</span>&#160;                   </div>
-<div class="line"><a name="l04123"></a><span class="lineno"> 4123</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                             <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l04124"></a><span class="lineno"> 4124</span>&#160;                }</div>
-<div class="line"><a name="l04125"></a><span class="lineno"> 4125</span>&#160;            }</div>
-<div class="line"><a name="l04126"></a><span class="lineno"> 4126</span>&#160;            res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#a2232ada3558228c2902d654989ca65f1">W25QXX_COMMAND_FAST_READ_DUAL_IO</a>, 1,</div>
-<div class="line"><a name="l04127"></a><span class="lineno"> 4127</span>&#160;                                           addr, 2, 3,</div>
-<div class="line"><a name="l04128"></a><span class="lineno"> 4128</span>&#160;                                           0x000000FF, 2, 1,</div>
-<div class="line"><a name="l04129"></a><span class="lineno"> 4129</span>&#160;                                           0, NULL, 0x00,                                                 <span class="comment">/* spi write */</span></div>
-<div class="line"><a name="l04130"></a><span class="lineno"> 4130</span>&#160;                                           data, len, 2);                                                 <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l04131"></a><span class="lineno"> 4131</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                                 <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l04132"></a><span class="lineno"> 4132</span>&#160;            {</div>
-<div class="line"><a name="l04133"></a><span class="lineno"> 4133</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read dual io failed.\n&quot;</span>);                               <span class="comment">/* fast read dual io failed */</span></div>
-<div class="line"><a name="l04134"></a><span class="lineno"> 4134</span>&#160;               </div>
-<div class="line"><a name="l04135"></a><span class="lineno"> 4135</span>&#160;                <span class="keywordflow">return</span> 1;                                                                                 <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l04136"></a><span class="lineno"> 4136</span>&#160;            }</div>
-<div class="line"><a name="l04137"></a><span class="lineno"> 4137</span>&#160;        }</div>
-<div class="line"><a name="l04138"></a><span class="lineno"> 4138</span>&#160;        <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>) &amp;&amp; (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>))</div>
-<div class="line"><a name="l04139"></a><span class="lineno"> 4139</span>&#160;        {</div>
-<div class="line"><a name="l04140"></a><span class="lineno"> 4140</span>&#160;            res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#a2232ada3558228c2902d654989ca65f1">W25QXX_COMMAND_FAST_READ_DUAL_IO</a>, 1,</div>
-<div class="line"><a name="l04141"></a><span class="lineno"> 4141</span>&#160;                                           addr, 2, 4,</div>
-<div class="line"><a name="l04142"></a><span class="lineno"> 4142</span>&#160;                                           0x000000FF, 2, 1,</div>
-<div class="line"><a name="l04143"></a><span class="lineno"> 4143</span>&#160;                                           0, NULL, 0x00,                                                 <span class="comment">/* spi write */</span></div>
-<div class="line"><a name="l04144"></a><span class="lineno"> 4144</span>&#160;                                           data, len, 2);                                                 <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l04145"></a><span class="lineno"> 4145</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                                 <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l04146"></a><span class="lineno"> 4146</span>&#160;            {</div>
-<div class="line"><a name="l04147"></a><span class="lineno"> 4147</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read dual io failed.\n&quot;</span>);                               <span class="comment">/* fast read io output failed */</span></div>
-<div class="line"><a name="l04148"></a><span class="lineno"> 4148</span>&#160;               </div>
-<div class="line"><a name="l04149"></a><span class="lineno"> 4149</span>&#160;                <span class="keywordflow">return</span> 1;                                                                                 <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l04150"></a><span class="lineno"> 4150</span>&#160;            }</div>
-<div class="line"><a name="l04151"></a><span class="lineno"> 4151</span>&#160;        }</div>
-<div class="line"><a name="l04152"></a><span class="lineno"> 4152</span>&#160;        <span class="keywordflow">else</span></div>
-<div class="line"><a name="l04153"></a><span class="lineno"> 4153</span>&#160;        {</div>
-<div class="line"><a name="l04154"></a><span class="lineno"> 4154</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: address mode is invalid.\n&quot;</span>);                                    <span class="comment">/* address mode is invalid */</span></div>
-<div class="line"><a name="l04155"></a><span class="lineno"> 4155</span>&#160;           </div>
-<div class="line"><a name="l04156"></a><span class="lineno"> 4156</span>&#160;            <span class="keywordflow">return</span> 4;                                                                                     <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l04157"></a><span class="lineno"> 4157</span>&#160;        }</div>
-<div class="line"><a name="l04158"></a><span class="lineno"> 4158</span>&#160;    }</div>
-<div class="line"><a name="l04159"></a><span class="lineno"> 4159</span>&#160;    <span class="keywordflow">else</span></div>
-<div class="line"><a name="l04160"></a><span class="lineno"> 4160</span>&#160;    {</div>
-<div class="line"><a name="l04161"></a><span class="lineno"> 4161</span>&#160;        handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: qspi can&#39;t use this function.\n&quot;</span>);                                   <span class="comment">/* qspi can&#39;t use this function */</span></div>
-<div class="line"><a name="l04162"></a><span class="lineno"> 4162</span>&#160;       </div>
-<div class="line"><a name="l04163"></a><span class="lineno"> 4163</span>&#160;        <span class="keywordflow">return</span> 5;                                                                                         <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l04164"></a><span class="lineno"> 4164</span>&#160;    }</div>
-<div class="line"><a name="l04165"></a><span class="lineno"> 4165</span>&#160;    </div>
-<div class="line"><a name="l04166"></a><span class="lineno"> 4166</span>&#160;    <span class="keywordflow">return</span> 0;                                                                                             <span class="comment">/* success return 0 */</span></div>
-<div class="line"><a name="l04167"></a><span class="lineno"> 4167</span>&#160;}</div>
-<div class="line"><a name="l04168"></a><span class="lineno"> 4168</span>&#160; </div>
-<div class="line"><a name="l04184"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#gab97a64bd3776874518f60381d921ae41"> 4184</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__advance__driver.html#gab97a64bd3776874518f60381d921ae41">w25qxx_fast_read_quad_io</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint32_t len)</div>
-<div class="line"><a name="l04185"></a><span class="lineno"> 4185</span>&#160;{</div>
-<div class="line"><a name="l04186"></a><span class="lineno"> 4186</span>&#160;    uint8_t res;</div>
-<div class="line"><a name="l04187"></a><span class="lineno"> 4187</span>&#160;    uint8_t buf[1];</div>
-<div class="line"><a name="l04188"></a><span class="lineno"> 4188</span>&#160;    </div>
-<div class="line"><a name="l04189"></a><span class="lineno"> 4189</span>&#160;    <span class="keywordflow">if</span> (handle == NULL)                                                                                   <span class="comment">/* check handle */</span></div>
-<div class="line"><a name="l04190"></a><span class="lineno"> 4190</span>&#160;    {</div>
-<div class="line"><a name="l04191"></a><span class="lineno"> 4191</span>&#160;        <span class="keywordflow">return</span> 2;                                                                                         <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l04192"></a><span class="lineno"> 4192</span>&#160;    }   </div>
-<div class="line"><a name="l04193"></a><span class="lineno"> 4193</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">inited</a> != 1)                                                                              <span class="comment">/* check handle initialization */</span></div>
-<div class="line"><a name="l04194"></a><span class="lineno"> 4194</span>&#160;    {</div>
-<div class="line"><a name="l04195"></a><span class="lineno"> 4195</span>&#160;        <span class="keywordflow">return</span> 3;                                                                                         <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l04196"></a><span class="lineno"> 4196</span>&#160;    }</div>
-<div class="line"><a name="l04197"></a><span class="lineno"> 4197</span>&#160;    </div>
-<div class="line"><a name="l04198"></a><span class="lineno"> 4198</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>)                                                         <span class="comment">/* spi interface */</span></div>
-<div class="line"><a name="l04199"></a><span class="lineno"> 4199</span>&#160;    {</div>
-<div class="line"><a name="l04200"></a><span class="lineno"> 4200</span>&#160;        <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">dual_quad_spi_enable</a> == 0)                                                            <span class="comment">/* check spi */</span></div>
-<div class="line"><a name="l04201"></a><span class="lineno"> 4201</span>&#160;        {</div>
-<div class="line"><a name="l04202"></a><span class="lineno"> 4202</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: standard spi can&#39;t use this function failed.\n&quot;</span>);                <span class="comment">/* standard spi can&#39;t use this function failed */</span></div>
-<div class="line"><a name="l04203"></a><span class="lineno"> 4203</span>&#160;           </div>
-<div class="line"><a name="l04204"></a><span class="lineno"> 4204</span>&#160;            <span class="keywordflow">return</span> 6;                                                                                     <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l04205"></a><span class="lineno"> 4205</span>&#160;        }</div>
-<div class="line"><a name="l04206"></a><span class="lineno"> 4206</span>&#160;        <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                           <span class="comment">/* 3 address mode */</span></div>
-<div class="line"><a name="l04207"></a><span class="lineno"> 4207</span>&#160;        {</div>
-<div class="line"><a name="l04208"></a><span class="lineno"> 4208</span>&#160;            <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)                                                                  <span class="comment">/* &gt;128Mb */</span></div>
-<div class="line"><a name="l04209"></a><span class="lineno"> 4209</span>&#160;            {</div>
-<div class="line"><a name="l04210"></a><span class="lineno"> 4210</span>&#160;                res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>, 1,</div>
-<div class="line"><a name="l04211"></a><span class="lineno"> 4211</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l04212"></a><span class="lineno"> 4212</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l04213"></a><span class="lineno"> 4213</span>&#160;                                               0x00, NULL, 0x00,</div>
-<div class="line"><a name="l04214"></a><span class="lineno"> 4214</span>&#160;                                               NULL, 0x00, 0x00);                                         <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l04215"></a><span class="lineno"> 4215</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                             <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l04216"></a><span class="lineno"> 4216</span>&#160;                {</div>
-<div class="line"><a name="l04217"></a><span class="lineno"> 4217</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                                <span class="comment">/* write enable failed */</span></div>
-<div class="line"><a name="l04218"></a><span class="lineno"> 4218</span>&#160;                   </div>
-<div class="line"><a name="l04219"></a><span class="lineno"> 4219</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                             <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l04220"></a><span class="lineno"> 4220</span>&#160;                }</div>
-<div class="line"><a name="l04221"></a><span class="lineno"> 4221</span>&#160;                buf[0] = (addr &gt;&gt; 24) &amp; 0xFF;                                                             <span class="comment">/* 31 - 24 bits */</span></div>
-<div class="line"><a name="l04222"></a><span class="lineno"> 4222</span>&#160;                res = a_w25qxx_qspi_write_read(handle, 0xC5, 1,</div>
-<div class="line"><a name="l04223"></a><span class="lineno"> 4223</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l04224"></a><span class="lineno"> 4224</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l04225"></a><span class="lineno"> 4225</span>&#160;                                               0, (uint8_t *)buf, 0x01,</div>
-<div class="line"><a name="l04226"></a><span class="lineno"> 4226</span>&#160;                                               NULL, 0x00, 1);                                            <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l04227"></a><span class="lineno"> 4227</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                             <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l04228"></a><span class="lineno"> 4228</span>&#160;                {</div>
-<div class="line"><a name="l04229"></a><span class="lineno"> 4229</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write extended addr register failed.\n&quot;</span>);                <span class="comment">/* write extended addr register failed */</span></div>
-<div class="line"><a name="l04230"></a><span class="lineno"> 4230</span>&#160;                   </div>
-<div class="line"><a name="l04231"></a><span class="lineno"> 4231</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                             <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l04232"></a><span class="lineno"> 4232</span>&#160;                }</div>
-<div class="line"><a name="l04233"></a><span class="lineno"> 4233</span>&#160;            }</div>
-<div class="line"><a name="l04234"></a><span class="lineno"> 4234</span>&#160;            res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#a80d19998d9d1218d0fa69e7d4d6b0ecb">W25QXX_COMMAND_FAST_READ_QUAD_IO</a>, 1,</div>
-<div class="line"><a name="l04235"></a><span class="lineno"> 4235</span>&#160;                                           addr, 4, 3,</div>
-<div class="line"><a name="l04236"></a><span class="lineno"> 4236</span>&#160;                                           0x000000FF, 4, 1,</div>
-<div class="line"><a name="l04237"></a><span class="lineno"> 4237</span>&#160;                                           4, NULL, 0x00,                                                 <span class="comment">/* spi write */</span></div>
-<div class="line"><a name="l04238"></a><span class="lineno"> 4238</span>&#160;                                           data, len, 4);                                                 <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l04239"></a><span class="lineno"> 4239</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                                 <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l04240"></a><span class="lineno"> 4240</span>&#160;            {</div>
-<div class="line"><a name="l04241"></a><span class="lineno"> 4241</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read quad io failed.\n&quot;</span>);                               <span class="comment">/* fast read quad io failed */</span></div>
-<div class="line"><a name="l04242"></a><span class="lineno"> 4242</span>&#160;               </div>
-<div class="line"><a name="l04243"></a><span class="lineno"> 4243</span>&#160;                <span class="keywordflow">return</span> 1;                                                                                 <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l04244"></a><span class="lineno"> 4244</span>&#160;            }</div>
-<div class="line"><a name="l04245"></a><span class="lineno"> 4245</span>&#160;        }</div>
-<div class="line"><a name="l04246"></a><span class="lineno"> 4246</span>&#160;        <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>) &amp;&amp; (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>))</div>
-<div class="line"><a name="l04247"></a><span class="lineno"> 4247</span>&#160;        {</div>
-<div class="line"><a name="l04248"></a><span class="lineno"> 4248</span>&#160;            res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#a80d19998d9d1218d0fa69e7d4d6b0ecb">W25QXX_COMMAND_FAST_READ_QUAD_IO</a>, 1,</div>
-<div class="line"><a name="l04249"></a><span class="lineno"> 4249</span>&#160;                                           addr, 4, 4,</div>
-<div class="line"><a name="l04250"></a><span class="lineno"> 4250</span>&#160;                                           0x000000FF, 4, 1,</div>
-<div class="line"><a name="l04251"></a><span class="lineno"> 4251</span>&#160;                                           4, NULL, 0x00,                                                 <span class="comment">/* spi write */</span></div>
-<div class="line"><a name="l04252"></a><span class="lineno"> 4252</span>&#160;                                           data, len, 4);                                                 <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l04253"></a><span class="lineno"> 4253</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                                 <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l04254"></a><span class="lineno"> 4254</span>&#160;            {</div>
-<div class="line"><a name="l04255"></a><span class="lineno"> 4255</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read quad io failed.\n&quot;</span>);                               <span class="comment">/* fast quad io output failed */</span></div>
-<div class="line"><a name="l04256"></a><span class="lineno"> 4256</span>&#160;               </div>
-<div class="line"><a name="l04257"></a><span class="lineno"> 4257</span>&#160;                <span class="keywordflow">return</span> 1;                                                                                 <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l04258"></a><span class="lineno"> 4258</span>&#160;            }</div>
-<div class="line"><a name="l04259"></a><span class="lineno"> 4259</span>&#160;        }</div>
-<div class="line"><a name="l04260"></a><span class="lineno"> 4260</span>&#160;        <span class="keywordflow">else</span></div>
-<div class="line"><a name="l04261"></a><span class="lineno"> 4261</span>&#160;        {</div>
-<div class="line"><a name="l04262"></a><span class="lineno"> 4262</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: address mode is invalid.\n&quot;</span>);                                    <span class="comment">/* address mode is invalid */</span></div>
-<div class="line"><a name="l04263"></a><span class="lineno"> 4263</span>&#160;           </div>
-<div class="line"><a name="l04264"></a><span class="lineno"> 4264</span>&#160;            <span class="keywordflow">return</span> 4;                                                                                     <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l04265"></a><span class="lineno"> 4265</span>&#160;        }</div>
-<div class="line"><a name="l04266"></a><span class="lineno"> 4266</span>&#160;    }</div>
-<div class="line"><a name="l04267"></a><span class="lineno"> 4267</span>&#160;    <span class="keywordflow">else</span></div>
-<div class="line"><a name="l04268"></a><span class="lineno"> 4268</span>&#160;    {</div>
-<div class="line"><a name="l04269"></a><span class="lineno"> 4269</span>&#160;        <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                           <span class="comment">/* 3 address mode */</span></div>
-<div class="line"><a name="l04270"></a><span class="lineno"> 4270</span>&#160;        {</div>
-<div class="line"><a name="l04271"></a><span class="lineno"> 4271</span>&#160;            <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)                                                                  <span class="comment">/* &gt;128Mb */</span></div>
-<div class="line"><a name="l04272"></a><span class="lineno"> 4272</span>&#160;            {</div>
-<div class="line"><a name="l04273"></a><span class="lineno"> 4273</span>&#160;                res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>, 4,</div>
-<div class="line"><a name="l04274"></a><span class="lineno"> 4274</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l04275"></a><span class="lineno"> 4275</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l04276"></a><span class="lineno"> 4276</span>&#160;                                               0x00, NULL, 0x00,</div>
-<div class="line"><a name="l04277"></a><span class="lineno"> 4277</span>&#160;                                               NULL, 0x00, 0x00);                                         <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l04278"></a><span class="lineno"> 4278</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                             <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l04279"></a><span class="lineno"> 4279</span>&#160;                {</div>
-<div class="line"><a name="l04280"></a><span class="lineno"> 4280</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                                <span class="comment">/* write enable failed */</span></div>
-<div class="line"><a name="l04281"></a><span class="lineno"> 4281</span>&#160;                   </div>
-<div class="line"><a name="l04282"></a><span class="lineno"> 4282</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                             <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l04283"></a><span class="lineno"> 4283</span>&#160;                }</div>
-<div class="line"><a name="l04284"></a><span class="lineno"> 4284</span>&#160;                buf[0] = (addr &gt;&gt; 24) &amp; 0xFF;                                                             <span class="comment">/* 31 - 24 bits */</span></div>
-<div class="line"><a name="l04285"></a><span class="lineno"> 4285</span>&#160;                res = a_w25qxx_qspi_write_read(handle, 0xC5, 4,</div>
-<div class="line"><a name="l04286"></a><span class="lineno"> 4286</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l04287"></a><span class="lineno"> 4287</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l04288"></a><span class="lineno"> 4288</span>&#160;                                               0, (uint8_t *)buf, 0x01,</div>
-<div class="line"><a name="l04289"></a><span class="lineno"> 4289</span>&#160;                                               NULL, 0x00, 4);                                            <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l04290"></a><span class="lineno"> 4290</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                             <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l04291"></a><span class="lineno"> 4291</span>&#160;                {</div>
-<div class="line"><a name="l04292"></a><span class="lineno"> 4292</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write extended addr register failed.\n&quot;</span>);                <span class="comment">/* write extended addr register failed */</span></div>
-<div class="line"><a name="l04293"></a><span class="lineno"> 4293</span>&#160;                   </div>
-<div class="line"><a name="l04294"></a><span class="lineno"> 4294</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                             <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l04295"></a><span class="lineno"> 4295</span>&#160;                }</div>
-<div class="line"><a name="l04296"></a><span class="lineno"> 4296</span>&#160;            }</div>
-<div class="line"><a name="l04297"></a><span class="lineno"> 4297</span>&#160;            res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#a80d19998d9d1218d0fa69e7d4d6b0ecb">W25QXX_COMMAND_FAST_READ_QUAD_IO</a>, 4,</div>
-<div class="line"><a name="l04298"></a><span class="lineno"> 4298</span>&#160;                                           addr, 4, 3,</div>
-<div class="line"><a name="l04299"></a><span class="lineno"> 4299</span>&#160;                                           0x000000FF, 4, 1,</div>
-<div class="line"><a name="l04300"></a><span class="lineno"> 4300</span>&#160;                                           handle-&gt;<a class="code" href="structw25qxx__handle__s.html#aff7b59f569ec689a7580bd6911daafd5">dummy</a>, NULL, 0x00,</div>
-<div class="line"><a name="l04301"></a><span class="lineno"> 4301</span>&#160;                                           data, len, 4);                                                 <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l04302"></a><span class="lineno"> 4302</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                                 <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l04303"></a><span class="lineno"> 4303</span>&#160;            {</div>
-<div class="line"><a name="l04304"></a><span class="lineno"> 4304</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read quad io failed.\n&quot;</span>);                               <span class="comment">/* fast read quad io failed */</span></div>
-<div class="line"><a name="l04305"></a><span class="lineno"> 4305</span>&#160;               </div>
-<div class="line"><a name="l04306"></a><span class="lineno"> 4306</span>&#160;                <span class="keywordflow">return</span> 1;                                                                                 <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l04307"></a><span class="lineno"> 4307</span>&#160;            }</div>
-<div class="line"><a name="l04308"></a><span class="lineno"> 4308</span>&#160;        }</div>
-<div class="line"><a name="l04309"></a><span class="lineno"> 4309</span>&#160;        <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>) &amp;&amp; (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>))</div>
-<div class="line"><a name="l04310"></a><span class="lineno"> 4310</span>&#160;        {</div>
-<div class="line"><a name="l04311"></a><span class="lineno"> 4311</span>&#160;            res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#a80d19998d9d1218d0fa69e7d4d6b0ecb">W25QXX_COMMAND_FAST_READ_QUAD_IO</a>, 4,</div>
-<div class="line"><a name="l04312"></a><span class="lineno"> 4312</span>&#160;                                           addr, 4, 4,</div>
-<div class="line"><a name="l04313"></a><span class="lineno"> 4313</span>&#160;                                           0x000000FF, 4, 1,</div>
-<div class="line"><a name="l04314"></a><span class="lineno"> 4314</span>&#160;                                           handle-&gt;<a class="code" href="structw25qxx__handle__s.html#aff7b59f569ec689a7580bd6911daafd5">dummy</a>, NULL, 0x00,</div>
-<div class="line"><a name="l04315"></a><span class="lineno"> 4315</span>&#160;                                           data, len, 4);                                                 <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l04316"></a><span class="lineno"> 4316</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                                 <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l04317"></a><span class="lineno"> 4317</span>&#160;            {</div>
-<div class="line"><a name="l04318"></a><span class="lineno"> 4318</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read quad io failed.\n&quot;</span>);                               <span class="comment">/* fast quad io output failed */</span></div>
-<div class="line"><a name="l04319"></a><span class="lineno"> 4319</span>&#160;               </div>
-<div class="line"><a name="l04320"></a><span class="lineno"> 4320</span>&#160;                <span class="keywordflow">return</span> 1;                                                                                 <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l04321"></a><span class="lineno"> 4321</span>&#160;            }</div>
-<div class="line"><a name="l04322"></a><span class="lineno"> 4322</span>&#160;        }</div>
-<div class="line"><a name="l04323"></a><span class="lineno"> 4323</span>&#160;        <span class="keywordflow">else</span></div>
-<div class="line"><a name="l04324"></a><span class="lineno"> 4324</span>&#160;        {</div>
-<div class="line"><a name="l04325"></a><span class="lineno"> 4325</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: address mode is invalid.\n&quot;</span>);                                    <span class="comment">/* address mode is invalid */</span></div>
-<div class="line"><a name="l04326"></a><span class="lineno"> 4326</span>&#160;           </div>
-<div class="line"><a name="l04327"></a><span class="lineno"> 4327</span>&#160;            <span class="keywordflow">return</span> 4;                                                                                     <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l04328"></a><span class="lineno"> 4328</span>&#160;        }</div>
-<div class="line"><a name="l04329"></a><span class="lineno"> 4329</span>&#160;    }</div>
-<div class="line"><a name="l04330"></a><span class="lineno"> 4330</span>&#160;    </div>
-<div class="line"><a name="l04331"></a><span class="lineno"> 4331</span>&#160;    <span class="keywordflow">return</span> 0;                                                                                             <span class="comment">/* success return 0 */</span></div>
-<div class="line"><a name="l04332"></a><span class="lineno"> 4332</span>&#160;}</div>
-<div class="line"><a name="l04333"></a><span class="lineno"> 4333</span>&#160; </div>
-<div class="line"><a name="l04350"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#gad97d7e410dd77c49334097a0fd332660"> 4350</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__advance__driver.html#gad97d7e410dd77c49334097a0fd332660">w25qxx_word_read_quad_io</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint32_t len)</div>
-<div class="line"><a name="l04351"></a><span class="lineno"> 4351</span>&#160;{</div>
-<div class="line"><a name="l04352"></a><span class="lineno"> 4352</span>&#160;    uint8_t res;</div>
-<div class="line"><a name="l04353"></a><span class="lineno"> 4353</span>&#160;    uint8_t buf[1];</div>
-<div class="line"><a name="l04354"></a><span class="lineno"> 4354</span>&#160;    </div>
-<div class="line"><a name="l04355"></a><span class="lineno"> 4355</span>&#160;    <span class="keywordflow">if</span> (handle == NULL)                                                                                   <span class="comment">/* check handle */</span></div>
-<div class="line"><a name="l04356"></a><span class="lineno"> 4356</span>&#160;    {</div>
-<div class="line"><a name="l04357"></a><span class="lineno"> 4357</span>&#160;        <span class="keywordflow">return</span> 2;                                                                                         <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l04358"></a><span class="lineno"> 4358</span>&#160;    }   </div>
-<div class="line"><a name="l04359"></a><span class="lineno"> 4359</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">inited</a> != 1)                                                                              <span class="comment">/* check handle initialization */</span></div>
-<div class="line"><a name="l04360"></a><span class="lineno"> 4360</span>&#160;    {</div>
-<div class="line"><a name="l04361"></a><span class="lineno"> 4361</span>&#160;        <span class="keywordflow">return</span> 3;                                                                                         <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l04362"></a><span class="lineno"> 4362</span>&#160;    }</div>
-<div class="line"><a name="l04363"></a><span class="lineno"> 4363</span>&#160;    </div>
-<div class="line"><a name="l04364"></a><span class="lineno"> 4364</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>)                                                         <span class="comment">/* spi interface */</span></div>
-<div class="line"><a name="l04365"></a><span class="lineno"> 4365</span>&#160;    {</div>
-<div class="line"><a name="l04366"></a><span class="lineno"> 4366</span>&#160;        <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">dual_quad_spi_enable</a> == 0)                                                            <span class="comment">/* check spi */</span></div>
-<div class="line"><a name="l04367"></a><span class="lineno"> 4367</span>&#160;        {</div>
-<div class="line"><a name="l04368"></a><span class="lineno"> 4368</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: standard spi can&#39;t use this function failed.\n&quot;</span>);                <span class="comment">/* standard spi can&#39;t use this function failed */</span></div>
-<div class="line"><a name="l04369"></a><span class="lineno"> 4369</span>&#160;           </div>
-<div class="line"><a name="l04370"></a><span class="lineno"> 4370</span>&#160;            <span class="keywordflow">return</span> 6;                                                                                     <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l04371"></a><span class="lineno"> 4371</span>&#160;        }</div>
-<div class="line"><a name="l04372"></a><span class="lineno"> 4372</span>&#160;        <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                           <span class="comment">/* 3 address mode */</span></div>
-<div class="line"><a name="l04373"></a><span class="lineno"> 4373</span>&#160;        {</div>
-<div class="line"><a name="l04374"></a><span class="lineno"> 4374</span>&#160;            <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)                                                                  <span class="comment">/* &gt;128Mb */</span></div>
-<div class="line"><a name="l04375"></a><span class="lineno"> 4375</span>&#160;            {</div>
-<div class="line"><a name="l04376"></a><span class="lineno"> 4376</span>&#160;                res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>, 1,</div>
-<div class="line"><a name="l04377"></a><span class="lineno"> 4377</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l04378"></a><span class="lineno"> 4378</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l04379"></a><span class="lineno"> 4379</span>&#160;                                               0x00, NULL, 0x00,</div>
-<div class="line"><a name="l04380"></a><span class="lineno"> 4380</span>&#160;                                               NULL, 0x00, 0x00);                                         <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l04381"></a><span class="lineno"> 4381</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                             <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l04382"></a><span class="lineno"> 4382</span>&#160;                {</div>
-<div class="line"><a name="l04383"></a><span class="lineno"> 4383</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                                <span class="comment">/* write enable failed */</span></div>
-<div class="line"><a name="l04384"></a><span class="lineno"> 4384</span>&#160;                   </div>
-<div class="line"><a name="l04385"></a><span class="lineno"> 4385</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                             <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l04386"></a><span class="lineno"> 4386</span>&#160;                }</div>
-<div class="line"><a name="l04387"></a><span class="lineno"> 4387</span>&#160;                buf[0] = (addr &gt;&gt; 24) &amp; 0xFF;                                                             <span class="comment">/* 31 - 24 bits */</span></div>
-<div class="line"><a name="l04388"></a><span class="lineno"> 4388</span>&#160;                res = a_w25qxx_qspi_write_read(handle, 0xC5, 1,</div>
-<div class="line"><a name="l04389"></a><span class="lineno"> 4389</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l04390"></a><span class="lineno"> 4390</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l04391"></a><span class="lineno"> 4391</span>&#160;                                               0, (uint8_t *)buf, 0x01,</div>
-<div class="line"><a name="l04392"></a><span class="lineno"> 4392</span>&#160;                                               NULL, 0x00, 1);                                            <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l04393"></a><span class="lineno"> 4393</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                             <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l04394"></a><span class="lineno"> 4394</span>&#160;                {</div>
-<div class="line"><a name="l04395"></a><span class="lineno"> 4395</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write extended addr register failed.\n&quot;</span>);                <span class="comment">/* write extended addr register failed */</span></div>
-<div class="line"><a name="l04396"></a><span class="lineno"> 4396</span>&#160;                   </div>
-<div class="line"><a name="l04397"></a><span class="lineno"> 4397</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                             <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l04398"></a><span class="lineno"> 4398</span>&#160;                }</div>
-<div class="line"><a name="l04399"></a><span class="lineno"> 4399</span>&#160;            }</div>
-<div class="line"><a name="l04400"></a><span class="lineno"> 4400</span>&#160;            res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#a947382a74ac06eb8a2ff8f5bcb1b744d">W25QXX_COMMAND_WORD_READ_QUAD_IO</a>, 1,</div>
-<div class="line"><a name="l04401"></a><span class="lineno"> 4401</span>&#160;                                           addr, 4, 3,</div>
-<div class="line"><a name="l04402"></a><span class="lineno"> 4402</span>&#160;                                           0x000000FF, 4, 1,</div>
-<div class="line"><a name="l04403"></a><span class="lineno"> 4403</span>&#160;                                           2, NULL, 0x00,                                                 <span class="comment">/* spi write */</span></div>
-<div class="line"><a name="l04404"></a><span class="lineno"> 4404</span>&#160;                                           data, len, 4);                                                 <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l04405"></a><span class="lineno"> 4405</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                                 <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l04406"></a><span class="lineno"> 4406</span>&#160;            {</div>
-<div class="line"><a name="l04407"></a><span class="lineno"> 4407</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: word read quad io failed.\n&quot;</span>);                               <span class="comment">/* word read quad io failed */</span></div>
-<div class="line"><a name="l04408"></a><span class="lineno"> 4408</span>&#160;               </div>
-<div class="line"><a name="l04409"></a><span class="lineno"> 4409</span>&#160;                <span class="keywordflow">return</span> 1;                                                                                 <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l04410"></a><span class="lineno"> 4410</span>&#160;            }</div>
-<div class="line"><a name="l04411"></a><span class="lineno"> 4411</span>&#160;        }</div>
-<div class="line"><a name="l04412"></a><span class="lineno"> 4412</span>&#160;        <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>) &amp;&amp; (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>))</div>
-<div class="line"><a name="l04413"></a><span class="lineno"> 4413</span>&#160;        {</div>
-<div class="line"><a name="l04414"></a><span class="lineno"> 4414</span>&#160;            res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#a947382a74ac06eb8a2ff8f5bcb1b744d">W25QXX_COMMAND_WORD_READ_QUAD_IO</a>, 1,</div>
-<div class="line"><a name="l04415"></a><span class="lineno"> 4415</span>&#160;                                           addr, 4, 4,</div>
-<div class="line"><a name="l04416"></a><span class="lineno"> 4416</span>&#160;                                           0x000000FF, 4, 1,</div>
-<div class="line"><a name="l04417"></a><span class="lineno"> 4417</span>&#160;                                           2, NULL, 0x00,                                                 <span class="comment">/* spi write */</span></div>
-<div class="line"><a name="l04418"></a><span class="lineno"> 4418</span>&#160;                                           data, len, 4);                                                 <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l04419"></a><span class="lineno"> 4419</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                                 <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l04420"></a><span class="lineno"> 4420</span>&#160;            {</div>
-<div class="line"><a name="l04421"></a><span class="lineno"> 4421</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: word read quad io failed.\n&quot;</span>);                               <span class="comment">/* word read quad io failed */</span></div>
-<div class="line"><a name="l04422"></a><span class="lineno"> 4422</span>&#160;               </div>
-<div class="line"><a name="l04423"></a><span class="lineno"> 4423</span>&#160;                <span class="keywordflow">return</span> 1;                                                                                 <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l04424"></a><span class="lineno"> 4424</span>&#160;            }</div>
-<div class="line"><a name="l04425"></a><span class="lineno"> 4425</span>&#160;        }</div>
-<div class="line"><a name="l04426"></a><span class="lineno"> 4426</span>&#160;        <span class="keywordflow">else</span></div>
-<div class="line"><a name="l04427"></a><span class="lineno"> 4427</span>&#160;        {</div>
-<div class="line"><a name="l04428"></a><span class="lineno"> 4428</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: address mode is invalid.\n&quot;</span>);                                    <span class="comment">/* address mode is invalid */</span></div>
-<div class="line"><a name="l04429"></a><span class="lineno"> 4429</span>&#160;           </div>
-<div class="line"><a name="l04430"></a><span class="lineno"> 4430</span>&#160;            <span class="keywordflow">return</span> 4;                                                                                     <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l04431"></a><span class="lineno"> 4431</span>&#160;        }</div>
-<div class="line"><a name="l04432"></a><span class="lineno"> 4432</span>&#160;    }</div>
-<div class="line"><a name="l04433"></a><span class="lineno"> 4433</span>&#160;    <span class="keywordflow">else</span></div>
-<div class="line"><a name="l04434"></a><span class="lineno"> 4434</span>&#160;    {</div>
-<div class="line"><a name="l04435"></a><span class="lineno"> 4435</span>&#160;        handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: qspi can&#39;t use this function.\n&quot;</span>);                                   <span class="comment">/* qspi can&#39;t use this function */</span></div>
-<div class="line"><a name="l04436"></a><span class="lineno"> 4436</span>&#160;       </div>
-<div class="line"><a name="l04437"></a><span class="lineno"> 4437</span>&#160;        <span class="keywordflow">return</span> 5;                                                                                         <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l04438"></a><span class="lineno"> 4438</span>&#160;    }</div>
-<div class="line"><a name="l04439"></a><span class="lineno"> 4439</span>&#160;    </div>
-<div class="line"><a name="l04440"></a><span class="lineno"> 4440</span>&#160;    <span class="keywordflow">return</span> 0;                                                                                             <span class="comment">/* success return 0 */</span></div>
-<div class="line"><a name="l04441"></a><span class="lineno"> 4441</span>&#160;}</div>
-<div class="line"><a name="l04442"></a><span class="lineno"> 4442</span>&#160; </div>
-<div class="line"><a name="l04459"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#ga88a62ec42e86db821ff3f0d3ab541dbb"> 4459</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__advance__driver.html#ga88a62ec42e86db821ff3f0d3ab541dbb">w25qxx_octal_word_read_quad_io</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint32_t len)</div>
-<div class="line"><a name="l04460"></a><span class="lineno"> 4460</span>&#160;{</div>
-<div class="line"><a name="l04461"></a><span class="lineno"> 4461</span>&#160;    uint8_t res;</div>
-<div class="line"><a name="l04462"></a><span class="lineno"> 4462</span>&#160;    uint8_t buf[1];</div>
-<div class="line"><a name="l04463"></a><span class="lineno"> 4463</span>&#160;    </div>
-<div class="line"><a name="l04464"></a><span class="lineno"> 4464</span>&#160;    <span class="keywordflow">if</span> (handle == NULL)                                                                                   <span class="comment">/* check handle */</span></div>
-<div class="line"><a name="l04465"></a><span class="lineno"> 4465</span>&#160;    {</div>
-<div class="line"><a name="l04466"></a><span class="lineno"> 4466</span>&#160;        <span class="keywordflow">return</span> 2;                                                                                         <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l04467"></a><span class="lineno"> 4467</span>&#160;    }   </div>
-<div class="line"><a name="l04468"></a><span class="lineno"> 4468</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">inited</a> != 1)                                                                              <span class="comment">/* check handle initialization */</span></div>
-<div class="line"><a name="l04469"></a><span class="lineno"> 4469</span>&#160;    {</div>
-<div class="line"><a name="l04470"></a><span class="lineno"> 4470</span>&#160;        <span class="keywordflow">return</span> 3;                                                                                         <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l04471"></a><span class="lineno"> 4471</span>&#160;    }</div>
-<div class="line"><a name="l04472"></a><span class="lineno"> 4472</span>&#160;    </div>
-<div class="line"><a name="l04473"></a><span class="lineno"> 4473</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>)                                                         <span class="comment">/* spi interface */</span></div>
-<div class="line"><a name="l04474"></a><span class="lineno"> 4474</span>&#160;    {</div>
-<div class="line"><a name="l04475"></a><span class="lineno"> 4475</span>&#160;        <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">dual_quad_spi_enable</a> == 0)                                                            <span class="comment">/* check spi */</span></div>
-<div class="line"><a name="l04476"></a><span class="lineno"> 4476</span>&#160;        {</div>
-<div class="line"><a name="l04477"></a><span class="lineno"> 4477</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: standard spi can&#39;t use this function failed.\n&quot;</span>);                <span class="comment">/* standard spi can&#39;t use this function failed */</span></div>
-<div class="line"><a name="l04478"></a><span class="lineno"> 4478</span>&#160;           </div>
-<div class="line"><a name="l04479"></a><span class="lineno"> 4479</span>&#160;            <span class="keywordflow">return</span> 6;                                                                                     <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l04480"></a><span class="lineno"> 4480</span>&#160;        }</div>
-<div class="line"><a name="l04481"></a><span class="lineno"> 4481</span>&#160;        <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                           <span class="comment">/* 3 address mode */</span></div>
-<div class="line"><a name="l04482"></a><span class="lineno"> 4482</span>&#160;        {</div>
-<div class="line"><a name="l04483"></a><span class="lineno"> 4483</span>&#160;            <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)                                                                  <span class="comment">/* &gt;128Mb */</span></div>
-<div class="line"><a name="l04484"></a><span class="lineno"> 4484</span>&#160;            {</div>
-<div class="line"><a name="l04485"></a><span class="lineno"> 4485</span>&#160;                res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>, 1,</div>
-<div class="line"><a name="l04486"></a><span class="lineno"> 4486</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l04487"></a><span class="lineno"> 4487</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l04488"></a><span class="lineno"> 4488</span>&#160;                                               0x00, NULL, 0x00,</div>
-<div class="line"><a name="l04489"></a><span class="lineno"> 4489</span>&#160;                                               NULL, 0x00, 0x00);                                         <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l04490"></a><span class="lineno"> 4490</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                             <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l04491"></a><span class="lineno"> 4491</span>&#160;                {</div>
-<div class="line"><a name="l04492"></a><span class="lineno"> 4492</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                                <span class="comment">/* write enable failed */</span></div>
-<div class="line"><a name="l04493"></a><span class="lineno"> 4493</span>&#160;                   </div>
-<div class="line"><a name="l04494"></a><span class="lineno"> 4494</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                             <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l04495"></a><span class="lineno"> 4495</span>&#160;                }</div>
-<div class="line"><a name="l04496"></a><span class="lineno"> 4496</span>&#160;                buf[0] = (addr &gt;&gt; 24) &amp; 0xFF;                                                             <span class="comment">/* 31 - 24 bits */</span></div>
-<div class="line"><a name="l04497"></a><span class="lineno"> 4497</span>&#160;                res = a_w25qxx_qspi_write_read(handle, 0xC5, 1,</div>
-<div class="line"><a name="l04498"></a><span class="lineno"> 4498</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l04499"></a><span class="lineno"> 4499</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l04500"></a><span class="lineno"> 4500</span>&#160;                                               0, (uint8_t *)buf, 0x01,</div>
-<div class="line"><a name="l04501"></a><span class="lineno"> 4501</span>&#160;                                               NULL, 0x00, 1);                                            <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l04502"></a><span class="lineno"> 4502</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                             <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l04503"></a><span class="lineno"> 4503</span>&#160;                {</div>
-<div class="line"><a name="l04504"></a><span class="lineno"> 4504</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write extended addr register failed.\n&quot;</span>);                <span class="comment">/* write extended addr register failed */</span></div>
-<div class="line"><a name="l04505"></a><span class="lineno"> 4505</span>&#160;                   </div>
-<div class="line"><a name="l04506"></a><span class="lineno"> 4506</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                             <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l04507"></a><span class="lineno"> 4507</span>&#160;                }</div>
-<div class="line"><a name="l04508"></a><span class="lineno"> 4508</span>&#160;            }</div>
-<div class="line"><a name="l04509"></a><span class="lineno"> 4509</span>&#160;            res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#acb7f8599b26c29356651690ec9b25e66">W25QXX_COMMAND_OCTAL_WORD_READ_QUAD_IO</a>, 1,</div>
-<div class="line"><a name="l04510"></a><span class="lineno"> 4510</span>&#160;                                           addr, 4, 3,</div>
-<div class="line"><a name="l04511"></a><span class="lineno"> 4511</span>&#160;                                           0x000000FF, 4, 1,</div>
-<div class="line"><a name="l04512"></a><span class="lineno"> 4512</span>&#160;                                           0, NULL, 0x00,                                                 <span class="comment">/* spi write */</span></div>
-<div class="line"><a name="l04513"></a><span class="lineno"> 4513</span>&#160;                                           data, len, 4);                                                 <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l04514"></a><span class="lineno"> 4514</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                                 <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l04515"></a><span class="lineno"> 4515</span>&#160;            {</div>
-<div class="line"><a name="l04516"></a><span class="lineno"> 4516</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: octal word read quad io failed.\n&quot;</span>);                         <span class="comment">/* octal word read quad io failed */</span></div>
-<div class="line"><a name="l04517"></a><span class="lineno"> 4517</span>&#160;               </div>
-<div class="line"><a name="l04518"></a><span class="lineno"> 4518</span>&#160;                <span class="keywordflow">return</span> 1;                                                                                 <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l04519"></a><span class="lineno"> 4519</span>&#160;            }</div>
-<div class="line"><a name="l04520"></a><span class="lineno"> 4520</span>&#160;        }</div>
-<div class="line"><a name="l04521"></a><span class="lineno"> 4521</span>&#160;        <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>) &amp;&amp; (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>))</div>
-<div class="line"><a name="l04522"></a><span class="lineno"> 4522</span>&#160;        {</div>
-<div class="line"><a name="l04523"></a><span class="lineno"> 4523</span>&#160;            res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#acb7f8599b26c29356651690ec9b25e66">W25QXX_COMMAND_OCTAL_WORD_READ_QUAD_IO</a>, 1,</div>
-<div class="line"><a name="l04524"></a><span class="lineno"> 4524</span>&#160;                                           addr, 4, 4,</div>
-<div class="line"><a name="l04525"></a><span class="lineno"> 4525</span>&#160;                                           0x000000FF, 4, 1,</div>
-<div class="line"><a name="l04526"></a><span class="lineno"> 4526</span>&#160;                                           0, NULL, 0x00,                                                 <span class="comment">/* spi write */</span></div>
-<div class="line"><a name="l04527"></a><span class="lineno"> 4527</span>&#160;                                           data, len, 4);                                                 <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l04528"></a><span class="lineno"> 4528</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                                 <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l04529"></a><span class="lineno"> 4529</span>&#160;            {</div>
-<div class="line"><a name="l04530"></a><span class="lineno"> 4530</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: octal word read quad io failed.\n&quot;</span>);                         <span class="comment">/* octal word read quad io failed */</span></div>
-<div class="line"><a name="l04531"></a><span class="lineno"> 4531</span>&#160;               </div>
-<div class="line"><a name="l04532"></a><span class="lineno"> 4532</span>&#160;                <span class="keywordflow">return</span> 1;                                                                                 <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l04533"></a><span class="lineno"> 4533</span>&#160;            }</div>
-<div class="line"><a name="l04534"></a><span class="lineno"> 4534</span>&#160;        }</div>
-<div class="line"><a name="l04535"></a><span class="lineno"> 4535</span>&#160;        <span class="keywordflow">else</span></div>
-<div class="line"><a name="l04536"></a><span class="lineno"> 4536</span>&#160;        {</div>
-<div class="line"><a name="l04537"></a><span class="lineno"> 4537</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: address mode is invalid.\n&quot;</span>);                                    <span class="comment">/* address mode is invalid */</span></div>
-<div class="line"><a name="l04538"></a><span class="lineno"> 4538</span>&#160;           </div>
-<div class="line"><a name="l04539"></a><span class="lineno"> 4539</span>&#160;            <span class="keywordflow">return</span> 4;                                                                                     <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l04540"></a><span class="lineno"> 4540</span>&#160;        }</div>
-<div class="line"><a name="l04541"></a><span class="lineno"> 4541</span>&#160;    }</div>
-<div class="line"><a name="l04542"></a><span class="lineno"> 4542</span>&#160;    <span class="keywordflow">else</span></div>
-<div class="line"><a name="l04543"></a><span class="lineno"> 4543</span>&#160;    {</div>
-<div class="line"><a name="l04544"></a><span class="lineno"> 4544</span>&#160;        handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: qspi can&#39;t use this function.\n&quot;</span>);                                   <span class="comment">/* qspi can&#39;t use this function */</span></div>
-<div class="line"><a name="l04545"></a><span class="lineno"> 4545</span>&#160;       </div>
-<div class="line"><a name="l04546"></a><span class="lineno"> 4546</span>&#160;        <span class="keywordflow">return</span> 5;                                                                                         <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l04547"></a><span class="lineno"> 4547</span>&#160;    }</div>
-<div class="line"><a name="l04548"></a><span class="lineno"> 4548</span>&#160;    </div>
-<div class="line"><a name="l04549"></a><span class="lineno"> 4549</span>&#160;    <span class="keywordflow">return</span> 0;                                                                                             <span class="comment">/* success return 0 */</span></div>
-<div class="line"><a name="l04550"></a><span class="lineno"> 4550</span>&#160;}</div>
-<div class="line"><a name="l04551"></a><span class="lineno"> 4551</span>&#160; </div>
-<div class="line"><a name="l04569"></a><span class="lineno"><a class="line" href="group__w25qxx__basic__driver.html#ga6280e7e4ab26306436e2c210617a28b3"> 4569</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__basic__driver.html#ga6280e7e4ab26306436e2c210617a28b3">w25qxx_page_program</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint16_t len)</div>
-<div class="line"><a name="l04570"></a><span class="lineno"> 4570</span>&#160;{</div>
-<div class="line"><a name="l04571"></a><span class="lineno"> 4571</span>&#160;    uint8_t res;</div>
-<div class="line"><a name="l04572"></a><span class="lineno"> 4572</span>&#160;    uint8_t status;</div>
-<div class="line"><a name="l04573"></a><span class="lineno"> 4573</span>&#160;    uint32_t timeout;</div>
-<div class="line"><a name="l04574"></a><span class="lineno"> 4574</span>&#160;    uint8_t buf[2];</div>
-<div class="line"><a name="l04575"></a><span class="lineno"> 4575</span>&#160;    </div>
-<div class="line"><a name="l04576"></a><span class="lineno"> 4576</span>&#160;    <span class="keywordflow">if</span> (handle == NULL)                                                                                     <span class="comment">/* check handle */</span></div>
-<div class="line"><a name="l04577"></a><span class="lineno"> 4577</span>&#160;    {</div>
-<div class="line"><a name="l04578"></a><span class="lineno"> 4578</span>&#160;        <span class="keywordflow">return</span> 2;                                                                                           <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l04579"></a><span class="lineno"> 4579</span>&#160;    }   </div>
-<div class="line"><a name="l04580"></a><span class="lineno"> 4580</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">inited</a> != 1)                                                                                <span class="comment">/* check handle initialization */</span></div>
-<div class="line"><a name="l04581"></a><span class="lineno"> 4581</span>&#160;    {</div>
-<div class="line"><a name="l04582"></a><span class="lineno"> 4582</span>&#160;        <span class="keywordflow">return</span> 3;                                                                                           <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l04583"></a><span class="lineno"> 4583</span>&#160;    }</div>
-<div class="line"><a name="l04584"></a><span class="lineno"> 4584</span>&#160;    <span class="keywordflow">if</span> ((addr % 256) != 0)                                                                                  <span class="comment">/* check address */</span></div>
-<div class="line"><a name="l04585"></a><span class="lineno"> 4585</span>&#160;    {</div>
-<div class="line"><a name="l04586"></a><span class="lineno"> 4586</span>&#160;        handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: addr is invalid.\n&quot;</span>);                                                  <span class="comment">/* addr is invalid */</span></div>
-<div class="line"><a name="l04587"></a><span class="lineno"> 4587</span>&#160;       </div>
-<div class="line"><a name="l04588"></a><span class="lineno"> 4588</span>&#160;        <span class="keywordflow">return</span> 4;                                                                                           <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l04589"></a><span class="lineno"> 4589</span>&#160;    }</div>
-<div class="line"><a name="l04590"></a><span class="lineno"> 4590</span>&#160;    <span class="keywordflow">if</span> (len &gt; 256)                                                                                          <span class="comment">/* check address */</span></div>
-<div class="line"><a name="l04591"></a><span class="lineno"> 4591</span>&#160;    {</div>
-<div class="line"><a name="l04592"></a><span class="lineno"> 4592</span>&#160;        handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: length is over 256.\n&quot;</span>);                                               <span class="comment">/* length is over 256 */</span></div>
-<div class="line"><a name="l04593"></a><span class="lineno"> 4593</span>&#160;       </div>
-<div class="line"><a name="l04594"></a><span class="lineno"> 4594</span>&#160;        <span class="keywordflow">return</span> 7;                                                                                           <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l04595"></a><span class="lineno"> 4595</span>&#160;    }</div>
-<div class="line"><a name="l04596"></a><span class="lineno"> 4596</span>&#160;    </div>
-<div class="line"><a name="l04597"></a><span class="lineno"> 4597</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>)                                                           <span class="comment">/* spi interface */</span></div>
-<div class="line"><a name="l04598"></a><span class="lineno"> 4598</span>&#160;    {</div>
-<div class="line"><a name="l04599"></a><span class="lineno"> 4599</span>&#160;        <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">dual_quad_spi_enable</a> != 0)                                                              <span class="comment">/* enable dual quad spi */</span></div>
-<div class="line"><a name="l04600"></a><span class="lineno"> 4600</span>&#160;        {</div>
-<div class="line"><a name="l04601"></a><span class="lineno"> 4601</span>&#160;            res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>, 1,</div>
-<div class="line"><a name="l04602"></a><span class="lineno"> 4602</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l04603"></a><span class="lineno"> 4603</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l04604"></a><span class="lineno"> 4604</span>&#160;                                           0x00, NULL, 0x00,</div>
-<div class="line"><a name="l04605"></a><span class="lineno"> 4605</span>&#160;                                           NULL, 0x00, 0x00);                                               <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l04606"></a><span class="lineno"> 4606</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                                   <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l04607"></a><span class="lineno"> 4607</span>&#160;            {</div>
-<div class="line"><a name="l04608"></a><span class="lineno"> 4608</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                                      <span class="comment">/* write enable failed */</span></div>
-<div class="line"><a name="l04609"></a><span class="lineno"> 4609</span>&#160;               </div>
-<div class="line"><a name="l04610"></a><span class="lineno"> 4610</span>&#160;                <span class="keywordflow">return</span> 1;                                                                                   <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l04611"></a><span class="lineno"> 4611</span>&#160;            }</div>
-<div class="line"><a name="l04612"></a><span class="lineno"> 4612</span>&#160;            <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                         <span class="comment">/* 3 address mode */</span></div>
-<div class="line"><a name="l04613"></a><span class="lineno"> 4613</span>&#160;            {</div>
-<div class="line"><a name="l04614"></a><span class="lineno"> 4614</span>&#160;                <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)                                                                <span class="comment">/* &gt;128Mb */</span></div>
-<div class="line"><a name="l04615"></a><span class="lineno"> 4615</span>&#160;                {</div>
-<div class="line"><a name="l04616"></a><span class="lineno"> 4616</span>&#160;                    buf[0] = (addr &gt;&gt; 24) &amp; 0xFF;                                                           <span class="comment">/* 31 - 24 bits */</span></div>
-<div class="line"><a name="l04617"></a><span class="lineno"> 4617</span>&#160;                    res = a_w25qxx_qspi_write_read(handle, 0xC5, 1,</div>
-<div class="line"><a name="l04618"></a><span class="lineno"> 4618</span>&#160;                                                   0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l04619"></a><span class="lineno"> 4619</span>&#160;                                                   0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l04620"></a><span class="lineno"> 4620</span>&#160;                                                   0, (uint8_t *)buf, 0x01,</div>
-<div class="line"><a name="l04621"></a><span class="lineno"> 4621</span>&#160;                                                   NULL, 0x00, 1);                                          <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l04622"></a><span class="lineno"> 4622</span>&#160;                    <span class="keywordflow">if</span> (res != 0)                                                                           <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l04623"></a><span class="lineno"> 4623</span>&#160;                    {</div>
-<div class="line"><a name="l04624"></a><span class="lineno"> 4624</span>&#160;                        handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write extended addr register failed.\n&quot;</span>);              <span class="comment">/* write extended addr register failed */</span></div>
-<div class="line"><a name="l04625"></a><span class="lineno"> 4625</span>&#160;                       </div>
-<div class="line"><a name="l04626"></a><span class="lineno"> 4626</span>&#160;                        <span class="keywordflow">return</span> 1;                                                                           <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l04627"></a><span class="lineno"> 4627</span>&#160;                    }</div>
-<div class="line"><a name="l04628"></a><span class="lineno"> 4628</span>&#160;                    res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>, 1,</div>
-<div class="line"><a name="l04629"></a><span class="lineno"> 4629</span>&#160;                                                   0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l04630"></a><span class="lineno"> 4630</span>&#160;                                                   0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l04631"></a><span class="lineno"> 4631</span>&#160;                                                   0x00, NULL, 0x00,</div>
-<div class="line"><a name="l04632"></a><span class="lineno"> 4632</span>&#160;                                                   NULL, 0x00, 0x00);                                       <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l04633"></a><span class="lineno"> 4633</span>&#160;                    <span class="keywordflow">if</span> (res != 0)                                                                           <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l04634"></a><span class="lineno"> 4634</span>&#160;                    {</div>
-<div class="line"><a name="l04635"></a><span class="lineno"> 4635</span>&#160;                        handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                              <span class="comment">/* write enable failed */</span></div>
-<div class="line"><a name="l04636"></a><span class="lineno"> 4636</span>&#160;                       </div>
-<div class="line"><a name="l04637"></a><span class="lineno"> 4637</span>&#160;                        <span class="keywordflow">return</span> 1;                                                                           <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l04638"></a><span class="lineno"> 4638</span>&#160;                    }</div>
-<div class="line"><a name="l04639"></a><span class="lineno"> 4639</span>&#160;                }</div>
-<div class="line"><a name="l04640"></a><span class="lineno"> 4640</span>&#160;                res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#aebca01f1f7fd279523d29e579998574a">W25QXX_COMMAND_PAGE_PROGRAM</a>, 1,</div>
-<div class="line"><a name="l04641"></a><span class="lineno"> 4641</span>&#160;                                               addr, 1, 3,</div>
-<div class="line"><a name="l04642"></a><span class="lineno"> 4642</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l04643"></a><span class="lineno"> 4643</span>&#160;                                               0, data, len,</div>
-<div class="line"><a name="l04644"></a><span class="lineno"> 4644</span>&#160;                                               NULL, 0x00, 1);                                              <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l04645"></a><span class="lineno"> 4645</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l04646"></a><span class="lineno"> 4646</span>&#160;                {</div>
-<div class="line"><a name="l04647"></a><span class="lineno"> 4647</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: page program failed.\n&quot;</span>);                                  <span class="comment">/* page program failed */</span></div>
-<div class="line"><a name="l04648"></a><span class="lineno"> 4648</span>&#160;                   </div>
-<div class="line"><a name="l04649"></a><span class="lineno"> 4649</span>&#160;                      <span class="keywordflow">return</span> 1;                                                                             <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l04650"></a><span class="lineno"> 4650</span>&#160;                }</div>
-<div class="line"><a name="l04651"></a><span class="lineno"> 4651</span>&#160;            }</div>
-<div class="line"><a name="l04652"></a><span class="lineno"> 4652</span>&#160;            <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>) &amp;&amp; (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>))</div>
-<div class="line"><a name="l04653"></a><span class="lineno"> 4653</span>&#160;            {</div>
-<div class="line"><a name="l04654"></a><span class="lineno"> 4654</span>&#160;                res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#aebca01f1f7fd279523d29e579998574a">W25QXX_COMMAND_PAGE_PROGRAM</a>, 1,</div>
-<div class="line"><a name="l04655"></a><span class="lineno"> 4655</span>&#160;                                               addr, 1, 4,</div>
-<div class="line"><a name="l04656"></a><span class="lineno"> 4656</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l04657"></a><span class="lineno"> 4657</span>&#160;                                               0, data, len,</div>
-<div class="line"><a name="l04658"></a><span class="lineno"> 4658</span>&#160;                                               NULL, 0x00, 1);                                              <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l04659"></a><span class="lineno"> 4659</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l04660"></a><span class="lineno"> 4660</span>&#160;                {</div>
-<div class="line"><a name="l04661"></a><span class="lineno"> 4661</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: page program failed.\n&quot;</span>);                                  <span class="comment">/* page program failed */</span></div>
-<div class="line"><a name="l04662"></a><span class="lineno"> 4662</span>&#160;                   </div>
-<div class="line"><a name="l04663"></a><span class="lineno"> 4663</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l04664"></a><span class="lineno"> 4664</span>&#160;                }</div>
-<div class="line"><a name="l04665"></a><span class="lineno"> 4665</span>&#160;            }</div>
-<div class="line"><a name="l04666"></a><span class="lineno"> 4666</span>&#160;            <span class="keywordflow">else</span></div>
-<div class="line"><a name="l04667"></a><span class="lineno"> 4667</span>&#160;            {</div>
-<div class="line"><a name="l04668"></a><span class="lineno"> 4668</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: address mode is invalid.\n&quot;</span>);                                  <span class="comment">/* address mode is invalid */</span></div>
-<div class="line"><a name="l04669"></a><span class="lineno"> 4669</span>&#160;               </div>
-<div class="line"><a name="l04670"></a><span class="lineno"> 4670</span>&#160;                <span class="keywordflow">return</span> 5;                                                                                   <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l04671"></a><span class="lineno"> 4671</span>&#160;            }</div>
-<div class="line"><a name="l04672"></a><span class="lineno"> 4672</span>&#160;            </div>
-<div class="line"><a name="l04673"></a><span class="lineno"> 4673</span>&#160;            timeout = 3 * 100;                                                                              <span class="comment">/* max 3 ms */</span></div>
-<div class="line"><a name="l04674"></a><span class="lineno"> 4674</span>&#160;            <span class="keywordflow">while</span> (timeout != 0)                                                                            <span class="comment">/* check timeout */</span></div>
-<div class="line"><a name="l04675"></a><span class="lineno"> 4675</span>&#160;            {</div>
-<div class="line"><a name="l04676"></a><span class="lineno"> 4676</span>&#160;                res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#adf682969c34f4b31a87dd92dd18ccea3">W25QXX_COMMAND_READ_STATUS_REG1</a>, 1,</div>
-<div class="line"><a name="l04677"></a><span class="lineno"> 4677</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l04678"></a><span class="lineno"> 4678</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l04679"></a><span class="lineno"> 4679</span>&#160;                                               0, NULL, 0,</div>
-<div class="line"><a name="l04680"></a><span class="lineno"> 4680</span>&#160;                                              (uint8_t *)&amp;status, 1, 1);                                    <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l04681"></a><span class="lineno"> 4681</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l04682"></a><span class="lineno"> 4682</span>&#160;                {</div>
-<div class="line"><a name="l04683"></a><span class="lineno"> 4683</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: page program failed.\n&quot;</span>);                                  <span class="comment">/* page program failed */</span></div>
-<div class="line"><a name="l04684"></a><span class="lineno"> 4684</span>&#160;                   </div>
-<div class="line"><a name="l04685"></a><span class="lineno"> 4685</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l04686"></a><span class="lineno"> 4686</span>&#160;                }</div>
-<div class="line"><a name="l04687"></a><span class="lineno"> 4687</span>&#160;                <span class="keywordflow">if</span> ((status &amp; 0x01) == 0x00)                                                                <span class="comment">/* check status */</span></div>
-<div class="line"><a name="l04688"></a><span class="lineno"> 4688</span>&#160;                {</div>
-<div class="line"><a name="l04689"></a><span class="lineno"> 4689</span>&#160;                    <span class="keywordflow">break</span>;                                                                                  <span class="comment">/* break */</span></div>
-<div class="line"><a name="l04690"></a><span class="lineno"> 4690</span>&#160;                }</div>
-<div class="line"><a name="l04691"></a><span class="lineno"> 4691</span>&#160;                timeout--;                                                                                  <span class="comment">/* timeout-- */</span></div>
-<div class="line"><a name="l04692"></a><span class="lineno"> 4692</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a97ffc4fce945527bd6ab25a3596caef7">delay_us</a>(10);                                                                       <span class="comment">/* delay 10 us */</span></div>
-<div class="line"><a name="l04693"></a><span class="lineno"> 4693</span>&#160;            }</div>
-<div class="line"><a name="l04694"></a><span class="lineno"> 4694</span>&#160;            <span class="keywordflow">if</span> (timeout == 0)</div>
-<div class="line"><a name="l04695"></a><span class="lineno"> 4695</span>&#160;            {</div>
-<div class="line"><a name="l04696"></a><span class="lineno"> 4696</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: page program timeout.\n&quot;</span>);                                     <span class="comment">/* page program timeout */</span></div>
-<div class="line"><a name="l04697"></a><span class="lineno"> 4697</span>&#160;               </div>
-<div class="line"><a name="l04698"></a><span class="lineno"> 4698</span>&#160;                <span class="keywordflow">return</span> 6;                                                                                   <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l04699"></a><span class="lineno"> 4699</span>&#160;            }</div>
-<div class="line"><a name="l04700"></a><span class="lineno"> 4700</span>&#160;        }</div>
-<div class="line"><a name="l04701"></a><span class="lineno"> 4701</span>&#160;        <span class="keywordflow">else</span>                                                                                                <span class="comment">/* single spi */</span></div>
-<div class="line"><a name="l04702"></a><span class="lineno"> 4702</span>&#160;        {</div>
-<div class="line"><a name="l04703"></a><span class="lineno"> 4703</span>&#160;            buf[0] = <a class="code" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>;                                                           <span class="comment">/* write enable command */</span></div>
-<div class="line"><a name="l04704"></a><span class="lineno"> 4704</span>&#160;            res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 1, NULL, 0);                              <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l04705"></a><span class="lineno"> 4705</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                                   <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l04706"></a><span class="lineno"> 4706</span>&#160;            {</div>
-<div class="line"><a name="l04707"></a><span class="lineno"> 4707</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                                      <span class="comment">/* write enable failed */</span></div>
-<div class="line"><a name="l04708"></a><span class="lineno"> 4708</span>&#160;               </div>
-<div class="line"><a name="l04709"></a><span class="lineno"> 4709</span>&#160;                <span class="keywordflow">return</span> 1;                                                                                   <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l04710"></a><span class="lineno"> 4710</span>&#160;            }</div>
-<div class="line"><a name="l04711"></a><span class="lineno"> 4711</span>&#160;            <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                         <span class="comment">/* 3 address mode */</span></div>
-<div class="line"><a name="l04712"></a><span class="lineno"> 4712</span>&#160;            {</div>
-<div class="line"><a name="l04713"></a><span class="lineno"> 4713</span>&#160;                <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)                                                                <span class="comment">/* &gt;128Mb */</span></div>
-<div class="line"><a name="l04714"></a><span class="lineno"> 4714</span>&#160;                {</div>
-<div class="line"><a name="l04715"></a><span class="lineno"> 4715</span>&#160;                    buf[0] = 0xC5;                                                                          <span class="comment">/* write extended addr register command */</span></div>
-<div class="line"><a name="l04716"></a><span class="lineno"> 4716</span>&#160;                    buf[1] = (addr &gt;&gt; 24) &amp; 0xFF;                                                           <span class="comment">/* 31 - 24 bits */</span></div>
-<div class="line"><a name="l04717"></a><span class="lineno"> 4717</span>&#160;                    res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 2, NULL, 0);                      <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l04718"></a><span class="lineno"> 4718</span>&#160;                    <span class="keywordflow">if</span> (res != 0)                                                                           <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l04719"></a><span class="lineno"> 4719</span>&#160;                    {</div>
-<div class="line"><a name="l04720"></a><span class="lineno"> 4720</span>&#160;                        handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write extended addr register failed.\n&quot;</span>);              <span class="comment">/* write extended addr register failed */</span></div>
-<div class="line"><a name="l04721"></a><span class="lineno"> 4721</span>&#160;                       </div>
-<div class="line"><a name="l04722"></a><span class="lineno"> 4722</span>&#160;                        <span class="keywordflow">return</span> 1;                                                                           <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l04723"></a><span class="lineno"> 4723</span>&#160;                    }</div>
-<div class="line"><a name="l04724"></a><span class="lineno"> 4724</span>&#160;                    buf[0] = <a class="code" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>;                                                   <span class="comment">/* write enable command */</span></div>
-<div class="line"><a name="l04725"></a><span class="lineno"> 4725</span>&#160;                    res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 1, NULL, 0);                      <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l04726"></a><span class="lineno"> 4726</span>&#160;                    <span class="keywordflow">if</span> (res != 0)                                                                           <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l04727"></a><span class="lineno"> 4727</span>&#160;                    {</div>
-<div class="line"><a name="l04728"></a><span class="lineno"> 4728</span>&#160;                        handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                              <span class="comment">/* write enable failed */</span></div>
-<div class="line"><a name="l04729"></a><span class="lineno"> 4729</span>&#160;                       </div>
-<div class="line"><a name="l04730"></a><span class="lineno"> 4730</span>&#160;                        <span class="keywordflow">return</span> 1;                                                                           <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l04731"></a><span class="lineno"> 4731</span>&#160;                    }</div>
-<div class="line"><a name="l04732"></a><span class="lineno"> 4732</span>&#160;                }</div>
-<div class="line"><a name="l04733"></a><span class="lineno"> 4733</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a2121914a1858618e9216fa2daf0a42a2">buf</a>[0] = <a class="code" href="driver__w25qxx_8c.html#aebca01f1f7fd279523d29e579998574a">W25QXX_COMMAND_PAGE_PROGRAM</a>;                                               <span class="comment">/* page program command */</span></div>
-<div class="line"><a name="l04734"></a><span class="lineno"> 4734</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a2121914a1858618e9216fa2daf0a42a2">buf</a>[1] = (addr &gt;&gt; 16) &amp; 0xFF;                                                       <span class="comment">/* 23 - 16 bits */</span></div>
-<div class="line"><a name="l04735"></a><span class="lineno"> 4735</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a2121914a1858618e9216fa2daf0a42a2">buf</a>[2] = (addr &gt;&gt; 8) &amp; 0xFF;                                                        <span class="comment">/* 15 - 8  bits */</span></div>
-<div class="line"><a name="l04736"></a><span class="lineno"> 4736</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a2121914a1858618e9216fa2daf0a42a2">buf</a>[3] = (addr &gt;&gt; 0) &amp; 0xFF;                                                        <span class="comment">/* 7 - 0 bits */</span></div>
-<div class="line"><a name="l04737"></a><span class="lineno"> 4737</span>&#160;                memcpy(&amp;handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a2121914a1858618e9216fa2daf0a42a2">buf</a>[4], data, len);                                                         <span class="comment">/* copy data */</span></div>
-<div class="line"><a name="l04738"></a><span class="lineno"> 4738</span>&#160;                res = a_w25qxx_spi_write_read(handle, (uint8_t *)handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a2121914a1858618e9216fa2daf0a42a2">buf</a>, 4 + len, NULL, 0);            <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l04739"></a><span class="lineno"> 4739</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l04740"></a><span class="lineno"> 4740</span>&#160;                {</div>
-<div class="line"><a name="l04741"></a><span class="lineno"> 4741</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: page program failed.\n&quot;</span>);                                  <span class="comment">/* page program failed */</span></div>
-<div class="line"><a name="l04742"></a><span class="lineno"> 4742</span>&#160;                   </div>
-<div class="line"><a name="l04743"></a><span class="lineno"> 4743</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l04744"></a><span class="lineno"> 4744</span>&#160;                }</div>
-<div class="line"><a name="l04745"></a><span class="lineno"> 4745</span>&#160;            }</div>
-<div class="line"><a name="l04746"></a><span class="lineno"> 4746</span>&#160;            <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>)</div>
-<div class="line"><a name="l04747"></a><span class="lineno"> 4747</span>&#160;                     &amp;&amp; (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>))                                                          <span class="comment">/* 4 address mode */</span></div>
-<div class="line"><a name="l04748"></a><span class="lineno"> 4748</span>&#160;            {</div>
-<div class="line"><a name="l04749"></a><span class="lineno"> 4749</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a2121914a1858618e9216fa2daf0a42a2">buf</a>[0] = <a class="code" href="driver__w25qxx_8c.html#aebca01f1f7fd279523d29e579998574a">W25QXX_COMMAND_PAGE_PROGRAM</a>;                                               <span class="comment">/* page program command */</span></div>
-<div class="line"><a name="l04750"></a><span class="lineno"> 4750</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a2121914a1858618e9216fa2daf0a42a2">buf</a>[1] = (addr &gt;&gt; 24) &amp; 0xFF;                                                       <span class="comment">/* 31 - 24 bits */</span></div>
-<div class="line"><a name="l04751"></a><span class="lineno"> 4751</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a2121914a1858618e9216fa2daf0a42a2">buf</a>[2] = (addr &gt;&gt; 16) &amp; 0xFF;                                                       <span class="comment">/* 23 - 16 bits */</span></div>
-<div class="line"><a name="l04752"></a><span class="lineno"> 4752</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a2121914a1858618e9216fa2daf0a42a2">buf</a>[3] = (addr &gt;&gt; 8) &amp; 0xFF;                                                        <span class="comment">/* 15 - 8  bits */</span></div>
-<div class="line"><a name="l04753"></a><span class="lineno"> 4753</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a2121914a1858618e9216fa2daf0a42a2">buf</a>[4] = (addr &gt;&gt; 0) &amp; 0xFF;                                                        <span class="comment">/* 7 - 0 bits */</span></div>
-<div class="line"><a name="l04754"></a><span class="lineno"> 4754</span>&#160;                memcpy(&amp;handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a2121914a1858618e9216fa2daf0a42a2">buf</a>[5], data, len);                                                         <span class="comment">/* copy data */</span></div>
-<div class="line"><a name="l04755"></a><span class="lineno"> 4755</span>&#160;                res = a_w25qxx_spi_write_read(handle, (uint8_t *)handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a2121914a1858618e9216fa2daf0a42a2">buf</a>, 5 + len, NULL, 0);            <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l04756"></a><span class="lineno"> 4756</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l04757"></a><span class="lineno"> 4757</span>&#160;                {</div>
-<div class="line"><a name="l04758"></a><span class="lineno"> 4758</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: page program failed.\n&quot;</span>);                                  <span class="comment">/* page program failed */</span></div>
-<div class="line"><a name="l04759"></a><span class="lineno"> 4759</span>&#160;                   </div>
-<div class="line"><a name="l04760"></a><span class="lineno"> 4760</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l04761"></a><span class="lineno"> 4761</span>&#160;                }</div>
-<div class="line"><a name="l04762"></a><span class="lineno"> 4762</span>&#160;            }</div>
-<div class="line"><a name="l04763"></a><span class="lineno"> 4763</span>&#160;            <span class="keywordflow">else</span></div>
-<div class="line"><a name="l04764"></a><span class="lineno"> 4764</span>&#160;            {</div>
-<div class="line"><a name="l04765"></a><span class="lineno"> 4765</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: address mode is invalid.\n&quot;</span>);                                  <span class="comment">/* address mode is invalid */</span></div>
-<div class="line"><a name="l04766"></a><span class="lineno"> 4766</span>&#160;               </div>
-<div class="line"><a name="l04767"></a><span class="lineno"> 4767</span>&#160;                <span class="keywordflow">return</span> 5;                                                                                   <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l04768"></a><span class="lineno"> 4768</span>&#160;            }</div>
-<div class="line"><a name="l04769"></a><span class="lineno"> 4769</span>&#160;            </div>
-<div class="line"><a name="l04770"></a><span class="lineno"> 4770</span>&#160;            timeout = 3 * 100;                                                                              <span class="comment">/* max 3 ms */</span></div>
-<div class="line"><a name="l04771"></a><span class="lineno"> 4771</span>&#160;            <span class="keywordflow">while</span> (timeout != 0)                                                                            <span class="comment">/* check timeout */</span></div>
-<div class="line"><a name="l04772"></a><span class="lineno"> 4772</span>&#160;            {</div>
-<div class="line"><a name="l04773"></a><span class="lineno"> 4773</span>&#160;                buf[0] = <a class="code" href="driver__w25qxx_8c.html#adf682969c34f4b31a87dd92dd18ccea3">W25QXX_COMMAND_READ_STATUS_REG1</a>;                                                   <span class="comment">/* read status1 command */</span></div>
-<div class="line"><a name="l04774"></a><span class="lineno"> 4774</span>&#160;                res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 1, (uint8_t *)&amp;status, 1);            <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l04775"></a><span class="lineno"> 4775</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l04776"></a><span class="lineno"> 4776</span>&#160;                {</div>
-<div class="line"><a name="l04777"></a><span class="lineno"> 4777</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: get status1 failed.\n&quot;</span>);                                   <span class="comment">/* get status1 failed */</span></div>
-<div class="line"><a name="l04778"></a><span class="lineno"> 4778</span>&#160;                   </div>
-<div class="line"><a name="l04779"></a><span class="lineno"> 4779</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l04780"></a><span class="lineno"> 4780</span>&#160;                }</div>
-<div class="line"><a name="l04781"></a><span class="lineno"> 4781</span>&#160;                <span class="keywordflow">if</span> ((status &amp; 0x01) == 0x00)                                                                <span class="comment">/* check status */</span></div>
-<div class="line"><a name="l04782"></a><span class="lineno"> 4782</span>&#160;                {</div>
-<div class="line"><a name="l04783"></a><span class="lineno"> 4783</span>&#160;                    <span class="keywordflow">break</span>;                                                                                  <span class="comment">/* break */</span></div>
-<div class="line"><a name="l04784"></a><span class="lineno"> 4784</span>&#160;                }</div>
-<div class="line"><a name="l04785"></a><span class="lineno"> 4785</span>&#160;                timeout--;                                                                                  <span class="comment">/* timeout-- */</span></div>
-<div class="line"><a name="l04786"></a><span class="lineno"> 4786</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a97ffc4fce945527bd6ab25a3596caef7">delay_us</a>(10);                                                                       <span class="comment">/* delay 10 us */</span></div>
-<div class="line"><a name="l04787"></a><span class="lineno"> 4787</span>&#160;            }</div>
-<div class="line"><a name="l04788"></a><span class="lineno"> 4788</span>&#160;            <span class="keywordflow">if</span> (timeout == 0)</div>
-<div class="line"><a name="l04789"></a><span class="lineno"> 4789</span>&#160;            {</div>
-<div class="line"><a name="l04790"></a><span class="lineno"> 4790</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: page program timeout.\n&quot;</span>);                                     <span class="comment">/* page program timeout */</span></div>
-<div class="line"><a name="l04791"></a><span class="lineno"> 4791</span>&#160;               </div>
-<div class="line"><a name="l04792"></a><span class="lineno"> 4792</span>&#160;                <span class="keywordflow">return</span> 6;                                                                                   <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l04793"></a><span class="lineno"> 4793</span>&#160;            }</div>
-<div class="line"><a name="l04794"></a><span class="lineno"> 4794</span>&#160;        }</div>
-<div class="line"><a name="l04795"></a><span class="lineno"> 4795</span>&#160;    }</div>
-<div class="line"><a name="l04796"></a><span class="lineno"> 4796</span>&#160;    <span class="keywordflow">else</span></div>
-<div class="line"><a name="l04797"></a><span class="lineno"> 4797</span>&#160;    {</div>
-<div class="line"><a name="l04798"></a><span class="lineno"> 4798</span>&#160;        res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>, 4,</div>
-<div class="line"><a name="l04799"></a><span class="lineno"> 4799</span>&#160;                                       0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l04800"></a><span class="lineno"> 4800</span>&#160;                                       0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l04801"></a><span class="lineno"> 4801</span>&#160;                                       0x00, NULL, 0x00,</div>
-<div class="line"><a name="l04802"></a><span class="lineno"> 4802</span>&#160;                                       NULL, 0x00, 0x00);                                                   <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l04803"></a><span class="lineno"> 4803</span>&#160;        <span class="keywordflow">if</span> (res != 0)                                                                                       <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l04804"></a><span class="lineno"> 4804</span>&#160;        {</div>
-<div class="line"><a name="l04805"></a><span class="lineno"> 4805</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                                          <span class="comment">/* write enable failed */</span></div>
-<div class="line"><a name="l04806"></a><span class="lineno"> 4806</span>&#160;           </div>
-<div class="line"><a name="l04807"></a><span class="lineno"> 4807</span>&#160;            <span class="keywordflow">return</span> 1;                                                                                       <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l04808"></a><span class="lineno"> 4808</span>&#160;        }</div>
-<div class="line"><a name="l04809"></a><span class="lineno"> 4809</span>&#160;        <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                             <span class="comment">/* 3 address mode */</span></div>
-<div class="line"><a name="l04810"></a><span class="lineno"> 4810</span>&#160;        {</div>
-<div class="line"><a name="l04811"></a><span class="lineno"> 4811</span>&#160;            <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)                                                                    <span class="comment">/* &gt;128Mb */</span></div>
-<div class="line"><a name="l04812"></a><span class="lineno"> 4812</span>&#160;            {</div>
-<div class="line"><a name="l04813"></a><span class="lineno"> 4813</span>&#160;                buf[0] = (addr &gt;&gt; 24) &amp; 0xFF;                                                               <span class="comment">/* 31 - 24 bits */</span></div>
-<div class="line"><a name="l04814"></a><span class="lineno"> 4814</span>&#160;                res = a_w25qxx_qspi_write_read(handle, 0xC5, 4,</div>
-<div class="line"><a name="l04815"></a><span class="lineno"> 4815</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l04816"></a><span class="lineno"> 4816</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l04817"></a><span class="lineno"> 4817</span>&#160;                                               0, (uint8_t *)buf, 0x01,</div>
-<div class="line"><a name="l04818"></a><span class="lineno"> 4818</span>&#160;                                               NULL, 0x00, 4);                                              <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l04819"></a><span class="lineno"> 4819</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l04820"></a><span class="lineno"> 4820</span>&#160;                {</div>
-<div class="line"><a name="l04821"></a><span class="lineno"> 4821</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write extended addr register failed.\n&quot;</span>);                  <span class="comment">/* write extended addr register failed */</span></div>
-<div class="line"><a name="l04822"></a><span class="lineno"> 4822</span>&#160;                   </div>
-<div class="line"><a name="l04823"></a><span class="lineno"> 4823</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l04824"></a><span class="lineno"> 4824</span>&#160;                }</div>
-<div class="line"><a name="l04825"></a><span class="lineno"> 4825</span>&#160;                res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>, 4,</div>
-<div class="line"><a name="l04826"></a><span class="lineno"> 4826</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l04827"></a><span class="lineno"> 4827</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l04828"></a><span class="lineno"> 4828</span>&#160;                                               0x00, NULL, 0x00,</div>
-<div class="line"><a name="l04829"></a><span class="lineno"> 4829</span>&#160;                                               NULL, 0x00, 0x00);                                           <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l04830"></a><span class="lineno"> 4830</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l04831"></a><span class="lineno"> 4831</span>&#160;                {</div>
-<div class="line"><a name="l04832"></a><span class="lineno"> 4832</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                                  <span class="comment">/* write enable failed */</span></div>
-<div class="line"><a name="l04833"></a><span class="lineno"> 4833</span>&#160;                   </div>
-<div class="line"><a name="l04834"></a><span class="lineno"> 4834</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l04835"></a><span class="lineno"> 4835</span>&#160;                }</div>
-<div class="line"><a name="l04836"></a><span class="lineno"> 4836</span>&#160;            }</div>
-<div class="line"><a name="l04837"></a><span class="lineno"> 4837</span>&#160;            res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#aebca01f1f7fd279523d29e579998574a">W25QXX_COMMAND_PAGE_PROGRAM</a>, 4,</div>
-<div class="line"><a name="l04838"></a><span class="lineno"> 4838</span>&#160;                                           addr, 4, 3,</div>
-<div class="line"><a name="l04839"></a><span class="lineno"> 4839</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l04840"></a><span class="lineno"> 4840</span>&#160;                                           0, data, len,</div>
-<div class="line"><a name="l04841"></a><span class="lineno"> 4841</span>&#160;                                           NULL, 0x00, 4);                                                  <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l04842"></a><span class="lineno"> 4842</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                                   <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l04843"></a><span class="lineno"> 4843</span>&#160;            {</div>
-<div class="line"><a name="l04844"></a><span class="lineno"> 4844</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: page program failed.\n&quot;</span>);                                      <span class="comment">/* page program failed */</span></div>
-<div class="line"><a name="l04845"></a><span class="lineno"> 4845</span>&#160;               </div>
-<div class="line"><a name="l04846"></a><span class="lineno"> 4846</span>&#160;                <span class="keywordflow">return</span> 1;                                                                                   <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l04847"></a><span class="lineno"> 4847</span>&#160;            }</div>
-<div class="line"><a name="l04848"></a><span class="lineno"> 4848</span>&#160;        }</div>
-<div class="line"><a name="l04849"></a><span class="lineno"> 4849</span>&#160;        <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>) &amp;&amp; (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>))</div>
-<div class="line"><a name="l04850"></a><span class="lineno"> 4850</span>&#160;        {</div>
-<div class="line"><a name="l04851"></a><span class="lineno"> 4851</span>&#160;            res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#aebca01f1f7fd279523d29e579998574a">W25QXX_COMMAND_PAGE_PROGRAM</a>, 4,</div>
-<div class="line"><a name="l04852"></a><span class="lineno"> 4852</span>&#160;                                           addr, 4, 4,</div>
-<div class="line"><a name="l04853"></a><span class="lineno"> 4853</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l04854"></a><span class="lineno"> 4854</span>&#160;                                           0, data, len,</div>
-<div class="line"><a name="l04855"></a><span class="lineno"> 4855</span>&#160;                                           NULL, 0x00, 4);                                                  <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l04856"></a><span class="lineno"> 4856</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                                   <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l04857"></a><span class="lineno"> 4857</span>&#160;            {</div>
-<div class="line"><a name="l04858"></a><span class="lineno"> 4858</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: page program failed.\n&quot;</span>);                                      <span class="comment">/* page program failed */</span></div>
-<div class="line"><a name="l04859"></a><span class="lineno"> 4859</span>&#160;               </div>
-<div class="line"><a name="l04860"></a><span class="lineno"> 4860</span>&#160;                <span class="keywordflow">return</span> 1;                                                                                   <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l04861"></a><span class="lineno"> 4861</span>&#160;            }</div>
-<div class="line"><a name="l04862"></a><span class="lineno"> 4862</span>&#160;        }</div>
-<div class="line"><a name="l04863"></a><span class="lineno"> 4863</span>&#160;        <span class="keywordflow">else</span></div>
-<div class="line"><a name="l04864"></a><span class="lineno"> 4864</span>&#160;        {</div>
-<div class="line"><a name="l04865"></a><span class="lineno"> 4865</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: address mode is invalid.\n&quot;</span>);                                      <span class="comment">/* address mode is invalid */</span></div>
-<div class="line"><a name="l04866"></a><span class="lineno"> 4866</span>&#160;           </div>
-<div class="line"><a name="l04867"></a><span class="lineno"> 4867</span>&#160;            <span class="keywordflow">return</span> 5;                                                                                       <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l04868"></a><span class="lineno"> 4868</span>&#160;        }</div>
-<div class="line"><a name="l04869"></a><span class="lineno"> 4869</span>&#160;        </div>
-<div class="line"><a name="l04870"></a><span class="lineno"> 4870</span>&#160;        timeout = 3 * 100;                                                                                  <span class="comment">/* max 3 ms */</span></div>
-<div class="line"><a name="l04871"></a><span class="lineno"> 4871</span>&#160;        <span class="keywordflow">while</span> (timeout != 0)                                                                                <span class="comment">/* check timeout */</span></div>
-<div class="line"><a name="l04872"></a><span class="lineno"> 4872</span>&#160;        {</div>
-<div class="line"><a name="l04873"></a><span class="lineno"> 4873</span>&#160;            res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#adf682969c34f4b31a87dd92dd18ccea3">W25QXX_COMMAND_READ_STATUS_REG1</a>, 4,</div>
-<div class="line"><a name="l04874"></a><span class="lineno"> 4874</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l04875"></a><span class="lineno"> 4875</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l04876"></a><span class="lineno"> 4876</span>&#160;                                           0, NULL, 0,</div>
-<div class="line"><a name="l04877"></a><span class="lineno"> 4877</span>&#160;                                          (uint8_t *)&amp;status, 1, 4);                                        <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l04878"></a><span class="lineno"> 4878</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                                   <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l04879"></a><span class="lineno"> 4879</span>&#160;            {</div>
-<div class="line"><a name="l04880"></a><span class="lineno"> 4880</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: page program failed.\n&quot;</span>);                                      <span class="comment">/* page program failed */</span></div>
-<div class="line"><a name="l04881"></a><span class="lineno"> 4881</span>&#160;               </div>
-<div class="line"><a name="l04882"></a><span class="lineno"> 4882</span>&#160;                <span class="keywordflow">return</span> 1;                                                                                   <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l04883"></a><span class="lineno"> 4883</span>&#160;            }</div>
-<div class="line"><a name="l04884"></a><span class="lineno"> 4884</span>&#160;            <span class="keywordflow">if</span> ((status &amp; 0x01) == 0x00)                                                                    <span class="comment">/* check status */</span></div>
-<div class="line"><a name="l04885"></a><span class="lineno"> 4885</span>&#160;            {</div>
-<div class="line"><a name="l04886"></a><span class="lineno"> 4886</span>&#160;                <span class="keywordflow">break</span>;                                                                                      <span class="comment">/* break */</span></div>
-<div class="line"><a name="l04887"></a><span class="lineno"> 4887</span>&#160;            }</div>
-<div class="line"><a name="l04888"></a><span class="lineno"> 4888</span>&#160;            timeout--;                                                                                      <span class="comment">/* timeout-- */</span></div>
-<div class="line"><a name="l04889"></a><span class="lineno"> 4889</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a97ffc4fce945527bd6ab25a3596caef7">delay_us</a>(10);                                                                           <span class="comment">/* delay 10 us */</span></div>
-<div class="line"><a name="l04890"></a><span class="lineno"> 4890</span>&#160;        }</div>
-<div class="line"><a name="l04891"></a><span class="lineno"> 4891</span>&#160;        <span class="keywordflow">if</span> (timeout == 0)</div>
-<div class="line"><a name="l04892"></a><span class="lineno"> 4892</span>&#160;        {</div>
-<div class="line"><a name="l04893"></a><span class="lineno"> 4893</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: page program timeout.\n&quot;</span>);                                         <span class="comment">/* page program timeout */</span></div>
-<div class="line"><a name="l04894"></a><span class="lineno"> 4894</span>&#160;           </div>
-<div class="line"><a name="l04895"></a><span class="lineno"> 4895</span>&#160;            <span class="keywordflow">return</span> 6;                                                                                       <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l04896"></a><span class="lineno"> 4896</span>&#160;        }</div>
-<div class="line"><a name="l04897"></a><span class="lineno"> 4897</span>&#160;    }</div>
-<div class="line"><a name="l04898"></a><span class="lineno"> 4898</span>&#160;    </div>
-<div class="line"><a name="l04899"></a><span class="lineno"> 4899</span>&#160;    <span class="keywordflow">return</span> 0;                                                                                               <span class="comment">/* success return 0 */</span></div>
-<div class="line"><a name="l04900"></a><span class="lineno"> 4900</span>&#160;}</div>
-<div class="line"><a name="l04901"></a><span class="lineno"> 4901</span>&#160; </div>
-<div class="line"><a name="l04920"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#ga1f80bbbaaa852eecfffb87737889363d"> 4920</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__advance__driver.html#ga1f80bbbaaa852eecfffb87737889363d">w25qxx_page_program_quad_input</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint16_t len)</div>
-<div class="line"><a name="l04921"></a><span class="lineno"> 4921</span>&#160;{</div>
-<div class="line"><a name="l04922"></a><span class="lineno"> 4922</span>&#160;    uint8_t res;</div>
-<div class="line"><a name="l04923"></a><span class="lineno"> 4923</span>&#160;    uint8_t status;</div>
-<div class="line"><a name="l04924"></a><span class="lineno"> 4924</span>&#160;    uint32_t timeout;</div>
-<div class="line"><a name="l04925"></a><span class="lineno"> 4925</span>&#160;    uint8_t buf[2];</div>
-<div class="line"><a name="l04926"></a><span class="lineno"> 4926</span>&#160;    </div>
-<div class="line"><a name="l04927"></a><span class="lineno"> 4927</span>&#160;    <span class="keywordflow">if</span> (handle == NULL)                                                                                     <span class="comment">/* check handle */</span></div>
-<div class="line"><a name="l04928"></a><span class="lineno"> 4928</span>&#160;    {</div>
-<div class="line"><a name="l04929"></a><span class="lineno"> 4929</span>&#160;        <span class="keywordflow">return</span> 2;                                                                                           <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l04930"></a><span class="lineno"> 4930</span>&#160;    }   </div>
-<div class="line"><a name="l04931"></a><span class="lineno"> 4931</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">inited</a> != 1)                                                                                <span class="comment">/* check handle initialization */</span></div>
-<div class="line"><a name="l04932"></a><span class="lineno"> 4932</span>&#160;    {</div>
-<div class="line"><a name="l04933"></a><span class="lineno"> 4933</span>&#160;        <span class="keywordflow">return</span> 3;                                                                                           <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l04934"></a><span class="lineno"> 4934</span>&#160;    }</div>
-<div class="line"><a name="l04935"></a><span class="lineno"> 4935</span>&#160;    <span class="keywordflow">if</span> ((addr % 256) != 0)                                                                                  <span class="comment">/* check address */</span></div>
-<div class="line"><a name="l04936"></a><span class="lineno"> 4936</span>&#160;    {</div>
-<div class="line"><a name="l04937"></a><span class="lineno"> 4937</span>&#160;        handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: addr is invalid.\n&quot;</span>);                                                  <span class="comment">/* addr is invalid */</span></div>
-<div class="line"><a name="l04938"></a><span class="lineno"> 4938</span>&#160;       </div>
-<div class="line"><a name="l04939"></a><span class="lineno"> 4939</span>&#160;        <span class="keywordflow">return</span> 4;                                                                                           <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l04940"></a><span class="lineno"> 4940</span>&#160;    }</div>
-<div class="line"><a name="l04941"></a><span class="lineno"> 4941</span>&#160;    <span class="keywordflow">if</span> (len &gt; 256)                                                                                          <span class="comment">/* check address */</span></div>
-<div class="line"><a name="l04942"></a><span class="lineno"> 4942</span>&#160;    {</div>
-<div class="line"><a name="l04943"></a><span class="lineno"> 4943</span>&#160;        handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: length is over 256.\n&quot;</span>);                                               <span class="comment">/* length is over 256 */</span></div>
-<div class="line"><a name="l04944"></a><span class="lineno"> 4944</span>&#160;       </div>
-<div class="line"><a name="l04945"></a><span class="lineno"> 4945</span>&#160;        <span class="keywordflow">return</span> 7;                                                                                           <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l04946"></a><span class="lineno"> 4946</span>&#160;    }</div>
-<div class="line"><a name="l04947"></a><span class="lineno"> 4947</span>&#160;    </div>
-<div class="line"><a name="l04948"></a><span class="lineno"> 4948</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2fea895dcb5c91da89fad1c12161ffd2d5d4">W25QXX_INTERFACE_QSPI</a>)                                                          <span class="comment">/* qspi interface */</span></div>
-<div class="line"><a name="l04949"></a><span class="lineno"> 4949</span>&#160;    {</div>
-<div class="line"><a name="l04950"></a><span class="lineno"> 4950</span>&#160;        handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: qspi can&#39;t use this function.\n&quot;</span>);                                     <span class="comment">/* qspi can&#39;t use this function */</span></div>
-<div class="line"><a name="l04951"></a><span class="lineno"> 4951</span>&#160;       </div>
-<div class="line"><a name="l04952"></a><span class="lineno"> 4952</span>&#160;        <span class="keywordflow">return</span> 5;                                                                                           <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l04953"></a><span class="lineno"> 4953</span>&#160;    }</div>
-<div class="line"><a name="l04954"></a><span class="lineno"> 4954</span>&#160;    <span class="keywordflow">else</span></div>
-<div class="line"><a name="l04955"></a><span class="lineno"> 4955</span>&#160;    {</div>
-<div class="line"><a name="l04956"></a><span class="lineno"> 4956</span>&#160;        <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">dual_quad_spi_enable</a> == 0)                                                              <span class="comment">/* check spi */</span></div>
-<div class="line"><a name="l04957"></a><span class="lineno"> 4957</span>&#160;        {</div>
-<div class="line"><a name="l04958"></a><span class="lineno"> 4958</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: standard spi can&#39;t use this function failed.\n&quot;</span>);                  <span class="comment">/* standard spi can&#39;t use this function failed */</span></div>
-<div class="line"><a name="l04959"></a><span class="lineno"> 4959</span>&#160;           </div>
-<div class="line"><a name="l04960"></a><span class="lineno"> 4960</span>&#160;            <span class="keywordflow">return</span> 8;                                                                                       <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l04961"></a><span class="lineno"> 4961</span>&#160;        }</div>
-<div class="line"><a name="l04962"></a><span class="lineno"> 4962</span>&#160;        res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>, 1,</div>
-<div class="line"><a name="l04963"></a><span class="lineno"> 4963</span>&#160;                                       0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l04964"></a><span class="lineno"> 4964</span>&#160;                                       0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l04965"></a><span class="lineno"> 4965</span>&#160;                                       0x00, NULL, 0x00,</div>
-<div class="line"><a name="l04966"></a><span class="lineno"> 4966</span>&#160;                                       NULL, 0x00, 0x00);                                                   <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l04967"></a><span class="lineno"> 4967</span>&#160;        <span class="keywordflow">if</span> (res != 0)                                                                                       <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l04968"></a><span class="lineno"> 4968</span>&#160;        {</div>
-<div class="line"><a name="l04969"></a><span class="lineno"> 4969</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                                          <span class="comment">/* write enable failed */</span></div>
-<div class="line"><a name="l04970"></a><span class="lineno"> 4970</span>&#160;           </div>
-<div class="line"><a name="l04971"></a><span class="lineno"> 4971</span>&#160;            <span class="keywordflow">return</span> 1;                                                                                       <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l04972"></a><span class="lineno"> 4972</span>&#160;        }</div>
-<div class="line"><a name="l04973"></a><span class="lineno"> 4973</span>&#160;        <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                             <span class="comment">/* 3 address mode */</span></div>
-<div class="line"><a name="l04974"></a><span class="lineno"> 4974</span>&#160;        {</div>
-<div class="line"><a name="l04975"></a><span class="lineno"> 4975</span>&#160;            <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)                                                                    <span class="comment">/* &gt;128Mb */</span></div>
-<div class="line"><a name="l04976"></a><span class="lineno"> 4976</span>&#160;            {</div>
-<div class="line"><a name="l04977"></a><span class="lineno"> 4977</span>&#160;                buf[0] = (addr &gt;&gt; 24) &amp; 0xFF;                                                               <span class="comment">/* 31 - 24 bits */</span></div>
-<div class="line"><a name="l04978"></a><span class="lineno"> 4978</span>&#160;                res = a_w25qxx_qspi_write_read(handle, 0xC5, 1,</div>
-<div class="line"><a name="l04979"></a><span class="lineno"> 4979</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l04980"></a><span class="lineno"> 4980</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l04981"></a><span class="lineno"> 4981</span>&#160;                                               0, (uint8_t *)buf, 0x01,</div>
-<div class="line"><a name="l04982"></a><span class="lineno"> 4982</span>&#160;                                               NULL, 0x00, 1);                                              <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l04983"></a><span class="lineno"> 4983</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l04984"></a><span class="lineno"> 4984</span>&#160;                {</div>
-<div class="line"><a name="l04985"></a><span class="lineno"> 4985</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write extended addr register failed.\n&quot;</span>);                  <span class="comment">/* write extended addr register failed */</span></div>
-<div class="line"><a name="l04986"></a><span class="lineno"> 4986</span>&#160;                   </div>
-<div class="line"><a name="l04987"></a><span class="lineno"> 4987</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l04988"></a><span class="lineno"> 4988</span>&#160;                }</div>
-<div class="line"><a name="l04989"></a><span class="lineno"> 4989</span>&#160;                res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>, 1,</div>
-<div class="line"><a name="l04990"></a><span class="lineno"> 4990</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l04991"></a><span class="lineno"> 4991</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l04992"></a><span class="lineno"> 4992</span>&#160;                                               0x00, NULL, 0x00,</div>
-<div class="line"><a name="l04993"></a><span class="lineno"> 4993</span>&#160;                                               NULL, 0x00, 0x00);                                           <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l04994"></a><span class="lineno"> 4994</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l04995"></a><span class="lineno"> 4995</span>&#160;                {</div>
-<div class="line"><a name="l04996"></a><span class="lineno"> 4996</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                                  <span class="comment">/* write enable failed */</span></div>
-<div class="line"><a name="l04997"></a><span class="lineno"> 4997</span>&#160;                   </div>
-<div class="line"><a name="l04998"></a><span class="lineno"> 4998</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l04999"></a><span class="lineno"> 4999</span>&#160;                }</div>
-<div class="line"><a name="l05000"></a><span class="lineno"> 5000</span>&#160;            }</div>
-<div class="line"><a name="l05001"></a><span class="lineno"> 5001</span>&#160;            res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#a8212fac3d1e43024621b6b560a8dddfe">W25QXX_COMMAND_QUAD_PAGE_PROGRAM</a>, 1,</div>
-<div class="line"><a name="l05002"></a><span class="lineno"> 5002</span>&#160;                                           addr, 1, 3,</div>
-<div class="line"><a name="l05003"></a><span class="lineno"> 5003</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l05004"></a><span class="lineno"> 5004</span>&#160;                                           0, data, len,</div>
-<div class="line"><a name="l05005"></a><span class="lineno"> 5005</span>&#160;                                           NULL, 0x00, 4);                                                  <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l05006"></a><span class="lineno"> 5006</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                                   <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l05007"></a><span class="lineno"> 5007</span>&#160;            {</div>
-<div class="line"><a name="l05008"></a><span class="lineno"> 5008</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: quad page program failed.\n&quot;</span>);                                 <span class="comment">/* quad page program failed */</span></div>
-<div class="line"><a name="l05009"></a><span class="lineno"> 5009</span>&#160;               </div>
-<div class="line"><a name="l05010"></a><span class="lineno"> 5010</span>&#160;                  <span class="keywordflow">return</span> 1;                                                                                 <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l05011"></a><span class="lineno"> 5011</span>&#160;            }</div>
-<div class="line"><a name="l05012"></a><span class="lineno"> 5012</span>&#160;        }</div>
-<div class="line"><a name="l05013"></a><span class="lineno"> 5013</span>&#160;        <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>) &amp;&amp; (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>))</div>
-<div class="line"><a name="l05014"></a><span class="lineno"> 5014</span>&#160;        {</div>
-<div class="line"><a name="l05015"></a><span class="lineno"> 5015</span>&#160;            res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#a8212fac3d1e43024621b6b560a8dddfe">W25QXX_COMMAND_QUAD_PAGE_PROGRAM</a>, 1,</div>
-<div class="line"><a name="l05016"></a><span class="lineno"> 5016</span>&#160;                                           addr, 1, 4,</div>
-<div class="line"><a name="l05017"></a><span class="lineno"> 5017</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l05018"></a><span class="lineno"> 5018</span>&#160;                                           0, data, len,</div>
-<div class="line"><a name="l05019"></a><span class="lineno"> 5019</span>&#160;                                           NULL, 0x00, 4);                                                  <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l05020"></a><span class="lineno"> 5020</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                                   <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l05021"></a><span class="lineno"> 5021</span>&#160;            {</div>
-<div class="line"><a name="l05022"></a><span class="lineno"> 5022</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: quad page program failed.\n&quot;</span>);                                 <span class="comment">/* quad page program failed */</span></div>
-<div class="line"><a name="l05023"></a><span class="lineno"> 5023</span>&#160;               </div>
-<div class="line"><a name="l05024"></a><span class="lineno"> 5024</span>&#160;                <span class="keywordflow">return</span> 1;                                                                                   <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l05025"></a><span class="lineno"> 5025</span>&#160;            }</div>
-<div class="line"><a name="l05026"></a><span class="lineno"> 5026</span>&#160;        }</div>
-<div class="line"><a name="l05027"></a><span class="lineno"> 5027</span>&#160;        <span class="keywordflow">else</span></div>
-<div class="line"><a name="l05028"></a><span class="lineno"> 5028</span>&#160;        {</div>
-<div class="line"><a name="l05029"></a><span class="lineno"> 5029</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: address mode is invalid.\n&quot;</span>);                                      <span class="comment">/* address mode is invalid */</span></div>
-<div class="line"><a name="l05030"></a><span class="lineno"> 5030</span>&#160;           </div>
-<div class="line"><a name="l05031"></a><span class="lineno"> 5031</span>&#160;            <span class="keywordflow">return</span> 5;                                                                                       <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l05032"></a><span class="lineno"> 5032</span>&#160;        }</div>
-<div class="line"><a name="l05033"></a><span class="lineno"> 5033</span>&#160;        </div>
-<div class="line"><a name="l05034"></a><span class="lineno"> 5034</span>&#160;        timeout = 3 * 100;                                                                                  <span class="comment">/* max 3 ms */</span></div>
-<div class="line"><a name="l05035"></a><span class="lineno"> 5035</span>&#160;        <span class="keywordflow">while</span> (timeout != 0)                                                                                <span class="comment">/* check timeout */</span></div>
-<div class="line"><a name="l05036"></a><span class="lineno"> 5036</span>&#160;        {</div>
-<div class="line"><a name="l05037"></a><span class="lineno"> 5037</span>&#160;            res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#adf682969c34f4b31a87dd92dd18ccea3">W25QXX_COMMAND_READ_STATUS_REG1</a>, 1,</div>
-<div class="line"><a name="l05038"></a><span class="lineno"> 5038</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l05039"></a><span class="lineno"> 5039</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l05040"></a><span class="lineno"> 5040</span>&#160;                                           0, NULL, 0,</div>
-<div class="line"><a name="l05041"></a><span class="lineno"> 5041</span>&#160;                                          (uint8_t *)&amp;status, 1, 1);                                        <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l05042"></a><span class="lineno"> 5042</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                                   <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l05043"></a><span class="lineno"> 5043</span>&#160;            {</div>
-<div class="line"><a name="l05044"></a><span class="lineno"> 5044</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: get status1 failed.\n&quot;</span>);                                       <span class="comment">/* get status1 failed */</span></div>
-<div class="line"><a name="l05045"></a><span class="lineno"> 5045</span>&#160;               </div>
-<div class="line"><a name="l05046"></a><span class="lineno"> 5046</span>&#160;                <span class="keywordflow">return</span> 1;                                                                                   <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l05047"></a><span class="lineno"> 5047</span>&#160;            }</div>
-<div class="line"><a name="l05048"></a><span class="lineno"> 5048</span>&#160;            <span class="keywordflow">if</span> ((status &amp; 0x01) == 0x00)                                                                    <span class="comment">/* check status */</span></div>
-<div class="line"><a name="l05049"></a><span class="lineno"> 5049</span>&#160;            {</div>
-<div class="line"><a name="l05050"></a><span class="lineno"> 5050</span>&#160;                <span class="keywordflow">break</span>;                                                                                      <span class="comment">/* break */</span></div>
-<div class="line"><a name="l05051"></a><span class="lineno"> 5051</span>&#160;            }</div>
-<div class="line"><a name="l05052"></a><span class="lineno"> 5052</span>&#160;            timeout--;                                                                                      <span class="comment">/* timeout-- */</span></div>
-<div class="line"><a name="l05053"></a><span class="lineno"> 5053</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a97ffc4fce945527bd6ab25a3596caef7">delay_us</a>(10);                                                                           <span class="comment">/* delay 10 us */</span></div>
-<div class="line"><a name="l05054"></a><span class="lineno"> 5054</span>&#160;        }</div>
-<div class="line"><a name="l05055"></a><span class="lineno"> 5055</span>&#160;        <span class="keywordflow">if</span> (timeout == 0)</div>
-<div class="line"><a name="l05056"></a><span class="lineno"> 5056</span>&#160;        {</div>
-<div class="line"><a name="l05057"></a><span class="lineno"> 5057</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: quad page program timeout.\n&quot;</span>);                                    <span class="comment">/* quad page program timeout */</span></div>
-<div class="line"><a name="l05058"></a><span class="lineno"> 5058</span>&#160;           </div>
-<div class="line"><a name="l05059"></a><span class="lineno"> 5059</span>&#160;            <span class="keywordflow">return</span> 6;                                                                                       <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l05060"></a><span class="lineno"> 5060</span>&#160;        }</div>
-<div class="line"><a name="l05061"></a><span class="lineno"> 5061</span>&#160;    }</div>
-<div class="line"><a name="l05062"></a><span class="lineno"> 5062</span>&#160;    </div>
-<div class="line"><a name="l05063"></a><span class="lineno"> 5063</span>&#160;    <span class="keywordflow">return</span> 0;                                                                                               <span class="comment">/* success return 0 */</span></div>
-<div class="line"><a name="l05064"></a><span class="lineno"> 5064</span>&#160;}</div>
-<div class="line"><a name="l05065"></a><span class="lineno"> 5065</span>&#160; </div>
-<div class="line"><a name="l05080"></a><span class="lineno"><a class="line" href="group__w25qxx__basic__driver.html#ga9a03c51b4c84655350c15fbfce0a6b40"> 5080</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__basic__driver.html#ga9a03c51b4c84655350c15fbfce0a6b40">w25qxx_sector_erase_4k</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint32_t addr)</div>
-<div class="line"><a name="l05081"></a><span class="lineno"> 5081</span>&#160;{</div>
-<div class="line"><a name="l05082"></a><span class="lineno"> 5082</span>&#160;    uint8_t res;</div>
-<div class="line"><a name="l05083"></a><span class="lineno"> 5083</span>&#160;    uint8_t status;</div>
-<div class="line"><a name="l05084"></a><span class="lineno"> 5084</span>&#160;    uint32_t timeout;</div>
-<div class="line"><a name="l05085"></a><span class="lineno"> 5085</span>&#160;    uint8_t buf[5];</div>
-<div class="line"><a name="l05086"></a><span class="lineno"> 5086</span>&#160;    </div>
-<div class="line"><a name="l05087"></a><span class="lineno"> 5087</span>&#160;    <span class="keywordflow">if</span> (handle == NULL)                                                                                     <span class="comment">/* check handle */</span></div>
-<div class="line"><a name="l05088"></a><span class="lineno"> 5088</span>&#160;    {</div>
-<div class="line"><a name="l05089"></a><span class="lineno"> 5089</span>&#160;        <span class="keywordflow">return</span> 2;                                                                                           <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l05090"></a><span class="lineno"> 5090</span>&#160;    }   </div>
-<div class="line"><a name="l05091"></a><span class="lineno"> 5091</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">inited</a> != 1)                                                                                <span class="comment">/* check handle initialization */</span></div>
-<div class="line"><a name="l05092"></a><span class="lineno"> 5092</span>&#160;    {</div>
-<div class="line"><a name="l05093"></a><span class="lineno"> 5093</span>&#160;        <span class="keywordflow">return</span> 3;                                                                                           <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l05094"></a><span class="lineno"> 5094</span>&#160;    }</div>
-<div class="line"><a name="l05095"></a><span class="lineno"> 5095</span>&#160;    <span class="keywordflow">if</span> ((addr % 4096) != 0)                                                                                 <span class="comment">/* check address */</span></div>
-<div class="line"><a name="l05096"></a><span class="lineno"> 5096</span>&#160;    {</div>
-<div class="line"><a name="l05097"></a><span class="lineno"> 5097</span>&#160;        handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: addr is invalid.\n&quot;</span>);                                                  <span class="comment">/* addr is invalid */</span></div>
-<div class="line"><a name="l05098"></a><span class="lineno"> 5098</span>&#160;       </div>
-<div class="line"><a name="l05099"></a><span class="lineno"> 5099</span>&#160;        <span class="keywordflow">return</span> 4;                                                                                           <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l05100"></a><span class="lineno"> 5100</span>&#160;    }</div>
-<div class="line"><a name="l05101"></a><span class="lineno"> 5101</span>&#160;    </div>
-<div class="line"><a name="l05102"></a><span class="lineno"> 5102</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>)                                                           <span class="comment">/* spi interface */</span></div>
-<div class="line"><a name="l05103"></a><span class="lineno"> 5103</span>&#160;    {</div>
-<div class="line"><a name="l05104"></a><span class="lineno"> 5104</span>&#160;        <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">dual_quad_spi_enable</a> != 0)                                                              <span class="comment">/* enable dual quad spi */</span></div>
-<div class="line"><a name="l05105"></a><span class="lineno"> 5105</span>&#160;        {</div>
-<div class="line"><a name="l05106"></a><span class="lineno"> 5106</span>&#160;            res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>, 1,</div>
-<div class="line"><a name="l05107"></a><span class="lineno"> 5107</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l05108"></a><span class="lineno"> 5108</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l05109"></a><span class="lineno"> 5109</span>&#160;                                           0x00, NULL, 0x00,</div>
-<div class="line"><a name="l05110"></a><span class="lineno"> 5110</span>&#160;                                           NULL, 0x00, 0x00);                                               <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l05111"></a><span class="lineno"> 5111</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                                   <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l05112"></a><span class="lineno"> 5112</span>&#160;            {</div>
-<div class="line"><a name="l05113"></a><span class="lineno"> 5113</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                                      <span class="comment">/* write enable failed */</span></div>
-<div class="line"><a name="l05114"></a><span class="lineno"> 5114</span>&#160;               </div>
-<div class="line"><a name="l05115"></a><span class="lineno"> 5115</span>&#160;                <span class="keywordflow">return</span> 1;                                                                                   <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l05116"></a><span class="lineno"> 5116</span>&#160;            }</div>
-<div class="line"><a name="l05117"></a><span class="lineno"> 5117</span>&#160;            <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                         <span class="comment">/* 3 address mode */</span></div>
-<div class="line"><a name="l05118"></a><span class="lineno"> 5118</span>&#160;            {</div>
-<div class="line"><a name="l05119"></a><span class="lineno"> 5119</span>&#160;                <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)                                                                <span class="comment">/* &gt;128Mb */</span></div>
-<div class="line"><a name="l05120"></a><span class="lineno"> 5120</span>&#160;                {</div>
-<div class="line"><a name="l05121"></a><span class="lineno"> 5121</span>&#160;                    buf[0] = (addr &gt;&gt; 24) &amp; 0xFF;                                                           <span class="comment">/* 31 - 24 bits */</span></div>
-<div class="line"><a name="l05122"></a><span class="lineno"> 5122</span>&#160;                    res = a_w25qxx_qspi_write_read(handle, 0xC5, 1,</div>
-<div class="line"><a name="l05123"></a><span class="lineno"> 5123</span>&#160;                                                   0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l05124"></a><span class="lineno"> 5124</span>&#160;                                                   0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l05125"></a><span class="lineno"> 5125</span>&#160;                                                   0, (uint8_t *)buf, 0x01,</div>
-<div class="line"><a name="l05126"></a><span class="lineno"> 5126</span>&#160;                                                   NULL, 0x00, 1);                                          <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l05127"></a><span class="lineno"> 5127</span>&#160;                    <span class="keywordflow">if</span> (res != 0)                                                                           <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l05128"></a><span class="lineno"> 5128</span>&#160;                    {</div>
-<div class="line"><a name="l05129"></a><span class="lineno"> 5129</span>&#160;                        handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write extended addr register failed.\n&quot;</span>);              <span class="comment">/* write extended addr register failed */</span></div>
-<div class="line"><a name="l05130"></a><span class="lineno"> 5130</span>&#160;                       </div>
-<div class="line"><a name="l05131"></a><span class="lineno"> 5131</span>&#160;                        <span class="keywordflow">return</span> 1;                                                                           <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l05132"></a><span class="lineno"> 5132</span>&#160;                    }</div>
-<div class="line"><a name="l05133"></a><span class="lineno"> 5133</span>&#160;                    res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>, 1,</div>
-<div class="line"><a name="l05134"></a><span class="lineno"> 5134</span>&#160;                                                   0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l05135"></a><span class="lineno"> 5135</span>&#160;                                                   0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l05136"></a><span class="lineno"> 5136</span>&#160;                                                   0x00, NULL, 0x00,</div>
-<div class="line"><a name="l05137"></a><span class="lineno"> 5137</span>&#160;                                                   NULL, 0x00, 0x00);                                       <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l05138"></a><span class="lineno"> 5138</span>&#160;                    <span class="keywordflow">if</span> (res != 0)                                                                           <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l05139"></a><span class="lineno"> 5139</span>&#160;                    {</div>
-<div class="line"><a name="l05140"></a><span class="lineno"> 5140</span>&#160;                        handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                              <span class="comment">/* write enable failed */</span></div>
-<div class="line"><a name="l05141"></a><span class="lineno"> 5141</span>&#160;                       </div>
-<div class="line"><a name="l05142"></a><span class="lineno"> 5142</span>&#160;                        <span class="keywordflow">return</span> 1;                                                                           <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l05143"></a><span class="lineno"> 5143</span>&#160;                    }</div>
-<div class="line"><a name="l05144"></a><span class="lineno"> 5144</span>&#160;                }</div>
-<div class="line"><a name="l05145"></a><span class="lineno"> 5145</span>&#160;                res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#a6e7cd159f91e23930450725fd6910f9c">W25QXX_COMMAND_SECTOR_ERASE_4K</a>, 1,</div>
-<div class="line"><a name="l05146"></a><span class="lineno"> 5146</span>&#160;                                               addr, 1, 3,</div>
-<div class="line"><a name="l05147"></a><span class="lineno"> 5147</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l05148"></a><span class="lineno"> 5148</span>&#160;                                               0, NULL, 0x00,</div>
-<div class="line"><a name="l05149"></a><span class="lineno"> 5149</span>&#160;                                               NULL, 0x00, 0x00);                                           <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l05150"></a><span class="lineno"> 5150</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l05151"></a><span class="lineno"> 5151</span>&#160;                {</div>
-<div class="line"><a name="l05152"></a><span class="lineno"> 5152</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: sector erase 4k failed.\n&quot;</span>);                               <span class="comment">/* sector erase 4k failed */</span></div>
-<div class="line"><a name="l05153"></a><span class="lineno"> 5153</span>&#160;                   </div>
-<div class="line"><a name="l05154"></a><span class="lineno"> 5154</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l05155"></a><span class="lineno"> 5155</span>&#160;                }</div>
-<div class="line"><a name="l05156"></a><span class="lineno"> 5156</span>&#160;            }</div>
-<div class="line"><a name="l05157"></a><span class="lineno"> 5157</span>&#160;            <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>) &amp;&amp; (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>))</div>
-<div class="line"><a name="l05158"></a><span class="lineno"> 5158</span>&#160;            {</div>
-<div class="line"><a name="l05159"></a><span class="lineno"> 5159</span>&#160;                res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#a6e7cd159f91e23930450725fd6910f9c">W25QXX_COMMAND_SECTOR_ERASE_4K</a>, 1,</div>
-<div class="line"><a name="l05160"></a><span class="lineno"> 5160</span>&#160;                                               addr, 1, 4,</div>
-<div class="line"><a name="l05161"></a><span class="lineno"> 5161</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l05162"></a><span class="lineno"> 5162</span>&#160;                                               0, NULL, 0x00,</div>
-<div class="line"><a name="l05163"></a><span class="lineno"> 5163</span>&#160;                                               NULL, 0x00, 0x00);                                           <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l05164"></a><span class="lineno"> 5164</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l05165"></a><span class="lineno"> 5165</span>&#160;                {</div>
-<div class="line"><a name="l05166"></a><span class="lineno"> 5166</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: sector erase 4k failed.\n&quot;</span>);                               <span class="comment">/* sector erase 4k failed */</span></div>
-<div class="line"><a name="l05167"></a><span class="lineno"> 5167</span>&#160;                   </div>
-<div class="line"><a name="l05168"></a><span class="lineno"> 5168</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l05169"></a><span class="lineno"> 5169</span>&#160;                }</div>
-<div class="line"><a name="l05170"></a><span class="lineno"> 5170</span>&#160;            }</div>
-<div class="line"><a name="l05171"></a><span class="lineno"> 5171</span>&#160;            <span class="keywordflow">else</span></div>
-<div class="line"><a name="l05172"></a><span class="lineno"> 5172</span>&#160;            {</div>
-<div class="line"><a name="l05173"></a><span class="lineno"> 5173</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: address mode is invalid.\n&quot;</span>);                                  <span class="comment">/* address mode is invalid */</span></div>
-<div class="line"><a name="l05174"></a><span class="lineno"> 5174</span>&#160;               </div>
-<div class="line"><a name="l05175"></a><span class="lineno"> 5175</span>&#160;                <span class="keywordflow">return</span> 5;                                                                                   <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l05176"></a><span class="lineno"> 5176</span>&#160;            }</div>
-<div class="line"><a name="l05177"></a><span class="lineno"> 5177</span>&#160;            </div>
-<div class="line"><a name="l05178"></a><span class="lineno"> 5178</span>&#160;            timeout = 400;                                                                                  <span class="comment">/* max 400 ms */</span></div>
-<div class="line"><a name="l05179"></a><span class="lineno"> 5179</span>&#160;            <span class="keywordflow">while</span> (timeout != 0)                                                                            <span class="comment">/* check timeout */</span></div>
-<div class="line"><a name="l05180"></a><span class="lineno"> 5180</span>&#160;            {</div>
-<div class="line"><a name="l05181"></a><span class="lineno"> 5181</span>&#160;                res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#adf682969c34f4b31a87dd92dd18ccea3">W25QXX_COMMAND_READ_STATUS_REG1</a>, 1,</div>
-<div class="line"><a name="l05182"></a><span class="lineno"> 5182</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l05183"></a><span class="lineno"> 5183</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l05184"></a><span class="lineno"> 5184</span>&#160;                                               0, NULL, 0,</div>
-<div class="line"><a name="l05185"></a><span class="lineno"> 5185</span>&#160;                                              (uint8_t *)&amp;status, 1, 1);                                    <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l05186"></a><span class="lineno"> 5186</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l05187"></a><span class="lineno"> 5187</span>&#160;                {</div>
-<div class="line"><a name="l05188"></a><span class="lineno"> 5188</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: get status1 failed.\n&quot;</span>);                                   <span class="comment">/* get status1 failed */</span></div>
-<div class="line"><a name="l05189"></a><span class="lineno"> 5189</span>&#160;                   </div>
-<div class="line"><a name="l05190"></a><span class="lineno"> 5190</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l05191"></a><span class="lineno"> 5191</span>&#160;                }</div>
-<div class="line"><a name="l05192"></a><span class="lineno"> 5192</span>&#160;                <span class="keywordflow">if</span> ((status &amp; 0x01) == 0x00)                                                                <span class="comment">/* check status */</span></div>
-<div class="line"><a name="l05193"></a><span class="lineno"> 5193</span>&#160;                {</div>
-<div class="line"><a name="l05194"></a><span class="lineno"> 5194</span>&#160;                    <span class="keywordflow">break</span>;                                                                                  <span class="comment">/* break */</span></div>
-<div class="line"><a name="l05195"></a><span class="lineno"> 5195</span>&#160;                }</div>
-<div class="line"><a name="l05196"></a><span class="lineno"> 5196</span>&#160;                timeout--;                                                                                  <span class="comment">/* timeout-- */</span></div>
-<div class="line"><a name="l05197"></a><span class="lineno"> 5197</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a406c9433252b7366de417b7a60915c81">delay_ms</a>(1);                                                                        <span class="comment">/* delay 1 ms */</span></div>
-<div class="line"><a name="l05198"></a><span class="lineno"> 5198</span>&#160;            }</div>
-<div class="line"><a name="l05199"></a><span class="lineno"> 5199</span>&#160;            <span class="keywordflow">if</span> (timeout == 0)</div>
-<div class="line"><a name="l05200"></a><span class="lineno"> 5200</span>&#160;            {</div>
-<div class="line"><a name="l05201"></a><span class="lineno"> 5201</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: sector erase 4k timeout.\n&quot;</span>);                                  <span class="comment">/* sector erase 4k timeout */</span></div>
-<div class="line"><a name="l05202"></a><span class="lineno"> 5202</span>&#160;               </div>
-<div class="line"><a name="l05203"></a><span class="lineno"> 5203</span>&#160;                <span class="keywordflow">return</span> 6;                                                                                   <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l05204"></a><span class="lineno"> 5204</span>&#160;            }</div>
-<div class="line"><a name="l05205"></a><span class="lineno"> 5205</span>&#160;        }</div>
-<div class="line"><a name="l05206"></a><span class="lineno"> 5206</span>&#160;        <span class="keywordflow">else</span>                                                                                                <span class="comment">/* single spi */</span></div>
-<div class="line"><a name="l05207"></a><span class="lineno"> 5207</span>&#160;        {</div>
-<div class="line"><a name="l05208"></a><span class="lineno"> 5208</span>&#160;            buf[0] = <a class="code" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>;                                                           <span class="comment">/* write enable command */</span></div>
-<div class="line"><a name="l05209"></a><span class="lineno"> 5209</span>&#160;            res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 1, NULL, 0);                              <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l05210"></a><span class="lineno"> 5210</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                                   <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l05211"></a><span class="lineno"> 5211</span>&#160;            {</div>
-<div class="line"><a name="l05212"></a><span class="lineno"> 5212</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                                      <span class="comment">/* write enable failed */</span></div>
-<div class="line"><a name="l05213"></a><span class="lineno"> 5213</span>&#160;               </div>
-<div class="line"><a name="l05214"></a><span class="lineno"> 5214</span>&#160;                <span class="keywordflow">return</span> 1;                                                                                   <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l05215"></a><span class="lineno"> 5215</span>&#160;            }</div>
-<div class="line"><a name="l05216"></a><span class="lineno"> 5216</span>&#160;            <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                         <span class="comment">/* 3 address mode */</span></div>
-<div class="line"><a name="l05217"></a><span class="lineno"> 5217</span>&#160;            {</div>
-<div class="line"><a name="l05218"></a><span class="lineno"> 5218</span>&#160;                <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)                                                                <span class="comment">/* &gt;128Mb */</span></div>
-<div class="line"><a name="l05219"></a><span class="lineno"> 5219</span>&#160;                {</div>
-<div class="line"><a name="l05220"></a><span class="lineno"> 5220</span>&#160;                    buf[0] = 0xC5;                                                                          <span class="comment">/* write extended addr register command */</span></div>
-<div class="line"><a name="l05221"></a><span class="lineno"> 5221</span>&#160;                    buf[1] = (addr &gt;&gt; 24) &amp; 0xFF;                                                           <span class="comment">/* 31 - 24 bits */</span></div>
-<div class="line"><a name="l05222"></a><span class="lineno"> 5222</span>&#160;                    res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 2, NULL, 0);                      <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l05223"></a><span class="lineno"> 5223</span>&#160;                    <span class="keywordflow">if</span> (res != 0)                                                                           <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l05224"></a><span class="lineno"> 5224</span>&#160;                    {</div>
-<div class="line"><a name="l05225"></a><span class="lineno"> 5225</span>&#160;                        handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write extended addr register failed.\n&quot;</span>);              <span class="comment">/* write extended addr register failed */</span></div>
-<div class="line"><a name="l05226"></a><span class="lineno"> 5226</span>&#160;                       </div>
-<div class="line"><a name="l05227"></a><span class="lineno"> 5227</span>&#160;                        <span class="keywordflow">return</span> 1;                                                                           <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l05228"></a><span class="lineno"> 5228</span>&#160;                    }</div>
-<div class="line"><a name="l05229"></a><span class="lineno"> 5229</span>&#160;                    buf[0] = <a class="code" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>;                                                   <span class="comment">/* write enable command */</span></div>
-<div class="line"><a name="l05230"></a><span class="lineno"> 5230</span>&#160;                    res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 1, NULL, 0);                      <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l05231"></a><span class="lineno"> 5231</span>&#160;                    <span class="keywordflow">if</span> (res != 0)                                                                           <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l05232"></a><span class="lineno"> 5232</span>&#160;                    {</div>
-<div class="line"><a name="l05233"></a><span class="lineno"> 5233</span>&#160;                        handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                              <span class="comment">/* write enable failed */</span></div>
-<div class="line"><a name="l05234"></a><span class="lineno"> 5234</span>&#160;                       </div>
-<div class="line"><a name="l05235"></a><span class="lineno"> 5235</span>&#160;                        <span class="keywordflow">return</span> 1;                                                                           <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l05236"></a><span class="lineno"> 5236</span>&#160;                    }</div>
-<div class="line"><a name="l05237"></a><span class="lineno"> 5237</span>&#160;                }</div>
-<div class="line"><a name="l05238"></a><span class="lineno"> 5238</span>&#160;                buf[0] = <a class="code" href="driver__w25qxx_8c.html#a6e7cd159f91e23930450725fd6910f9c">W25QXX_COMMAND_SECTOR_ERASE_4K</a>;                                                    <span class="comment">/* sector erase 4k command */</span></div>
-<div class="line"><a name="l05239"></a><span class="lineno"> 5239</span>&#160;                buf[1] = (addr &gt;&gt; 16) &amp; 0xFF;                                                               <span class="comment">/* 23 - 16 bits */</span></div>
-<div class="line"><a name="l05240"></a><span class="lineno"> 5240</span>&#160;                buf[2] = (addr &gt;&gt; 8) &amp; 0xFF;                                                                <span class="comment">/* 15 - 8  bits */</span></div>
-<div class="line"><a name="l05241"></a><span class="lineno"> 5241</span>&#160;                buf[3] = (addr &gt;&gt; 0) &amp; 0xFF;                                                                <span class="comment">/* 7 - 0 bits */</span></div>
-<div class="line"><a name="l05242"></a><span class="lineno"> 5242</span>&#160;                res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 4, NULL, 0);                          <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l05243"></a><span class="lineno"> 5243</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l05244"></a><span class="lineno"> 5244</span>&#160;                {</div>
-<div class="line"><a name="l05245"></a><span class="lineno"> 5245</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: sector erase 4k failed.\n&quot;</span>);                               <span class="comment">/* sector erase 4k failed */</span></div>
-<div class="line"><a name="l05246"></a><span class="lineno"> 5246</span>&#160;                   </div>
-<div class="line"><a name="l05247"></a><span class="lineno"> 5247</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l05248"></a><span class="lineno"> 5248</span>&#160;                }</div>
-<div class="line"><a name="l05249"></a><span class="lineno"> 5249</span>&#160;            }</div>
-<div class="line"><a name="l05250"></a><span class="lineno"> 5250</span>&#160;            <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>)</div>
-<div class="line"><a name="l05251"></a><span class="lineno"> 5251</span>&#160;                     &amp;&amp; (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>))</div>
-<div class="line"><a name="l05252"></a><span class="lineno"> 5252</span>&#160;            {</div>
-<div class="line"><a name="l05253"></a><span class="lineno"> 5253</span>&#160;                buf[0] = <a class="code" href="driver__w25qxx_8c.html#a6e7cd159f91e23930450725fd6910f9c">W25QXX_COMMAND_SECTOR_ERASE_4K</a>;                                                    <span class="comment">/* sector erase 4k command */</span></div>
-<div class="line"><a name="l05254"></a><span class="lineno"> 5254</span>&#160;                buf[1] = (addr &gt;&gt; 24) &amp; 0xFF;                                                               <span class="comment">/* 31 - 24 bits */</span></div>
-<div class="line"><a name="l05255"></a><span class="lineno"> 5255</span>&#160;                buf[2] = (addr &gt;&gt; 16) &amp; 0xFF;                                                               <span class="comment">/* 23 - 16 bits */</span></div>
-<div class="line"><a name="l05256"></a><span class="lineno"> 5256</span>&#160;                buf[3] = (addr &gt;&gt; 8) &amp; 0xFF;                                                                <span class="comment">/* 15 - 8  bits */</span></div>
-<div class="line"><a name="l05257"></a><span class="lineno"> 5257</span>&#160;                buf[4] = (addr &gt;&gt; 0) &amp; 0xFF;                                                                <span class="comment">/* 7 - 0 bits */</span></div>
-<div class="line"><a name="l05258"></a><span class="lineno"> 5258</span>&#160;                res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 5, NULL, 0);                          <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l05259"></a><span class="lineno"> 5259</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l05260"></a><span class="lineno"> 5260</span>&#160;                {</div>
-<div class="line"><a name="l05261"></a><span class="lineno"> 5261</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: sector erase 4k failed.\n&quot;</span>);                               <span class="comment">/* sector erase 4k failed */</span></div>
-<div class="line"><a name="l05262"></a><span class="lineno"> 5262</span>&#160;                   </div>
-<div class="line"><a name="l05263"></a><span class="lineno"> 5263</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l05264"></a><span class="lineno"> 5264</span>&#160;                }</div>
-<div class="line"><a name="l05265"></a><span class="lineno"> 5265</span>&#160;            }</div>
-<div class="line"><a name="l05266"></a><span class="lineno"> 5266</span>&#160;            <span class="keywordflow">else</span></div>
-<div class="line"><a name="l05267"></a><span class="lineno"> 5267</span>&#160;            {</div>
-<div class="line"><a name="l05268"></a><span class="lineno"> 5268</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: address mode is invalid.\n&quot;</span>);                                  <span class="comment">/* address mode is invalid */</span></div>
-<div class="line"><a name="l05269"></a><span class="lineno"> 5269</span>&#160;               </div>
-<div class="line"><a name="l05270"></a><span class="lineno"> 5270</span>&#160;                <span class="keywordflow">return</span> 5;                                                                                   <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l05271"></a><span class="lineno"> 5271</span>&#160;            }</div>
-<div class="line"><a name="l05272"></a><span class="lineno"> 5272</span>&#160;            </div>
-<div class="line"><a name="l05273"></a><span class="lineno"> 5273</span>&#160;            timeout = 400;                                                                                  <span class="comment">/* max 400 ms */</span></div>
-<div class="line"><a name="l05274"></a><span class="lineno"> 5274</span>&#160;            <span class="keywordflow">while</span> (timeout != 0)                                                                            <span class="comment">/* check timeout */</span></div>
-<div class="line"><a name="l05275"></a><span class="lineno"> 5275</span>&#160;            {</div>
-<div class="line"><a name="l05276"></a><span class="lineno"> 5276</span>&#160;                buf[0] = <a class="code" href="driver__w25qxx_8c.html#adf682969c34f4b31a87dd92dd18ccea3">W25QXX_COMMAND_READ_STATUS_REG1</a>;                                                   <span class="comment">/* read status1 command */</span></div>
-<div class="line"><a name="l05277"></a><span class="lineno"> 5277</span>&#160;                res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 1, (uint8_t *)&amp;status, 1);            <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l05278"></a><span class="lineno"> 5278</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l05279"></a><span class="lineno"> 5279</span>&#160;                {</div>
-<div class="line"><a name="l05280"></a><span class="lineno"> 5280</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: get status1 failed.\n&quot;</span>);                                   <span class="comment">/* get status1 failed */</span></div>
-<div class="line"><a name="l05281"></a><span class="lineno"> 5281</span>&#160;                   </div>
-<div class="line"><a name="l05282"></a><span class="lineno"> 5282</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l05283"></a><span class="lineno"> 5283</span>&#160;                }</div>
-<div class="line"><a name="l05284"></a><span class="lineno"> 5284</span>&#160;                <span class="keywordflow">if</span> ((status &amp; 0x01) == 0x00)                                                                <span class="comment">/* check status */</span></div>
-<div class="line"><a name="l05285"></a><span class="lineno"> 5285</span>&#160;                {</div>
-<div class="line"><a name="l05286"></a><span class="lineno"> 5286</span>&#160;                    <span class="keywordflow">break</span>;                                                                                  <span class="comment">/* break */</span></div>
-<div class="line"><a name="l05287"></a><span class="lineno"> 5287</span>&#160;                }</div>
-<div class="line"><a name="l05288"></a><span class="lineno"> 5288</span>&#160;                timeout--;                                                                                  <span class="comment">/* timeout-- */</span></div>
-<div class="line"><a name="l05289"></a><span class="lineno"> 5289</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a406c9433252b7366de417b7a60915c81">delay_ms</a>(1);                                                                        <span class="comment">/* delay 1 ms */</span></div>
-<div class="line"><a name="l05290"></a><span class="lineno"> 5290</span>&#160;            }</div>
-<div class="line"><a name="l05291"></a><span class="lineno"> 5291</span>&#160;            <span class="keywordflow">if</span> (timeout == 0)</div>
-<div class="line"><a name="l05292"></a><span class="lineno"> 5292</span>&#160;            {</div>
-<div class="line"><a name="l05293"></a><span class="lineno"> 5293</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: sector erase 4k timeout.\n&quot;</span>);                                  <span class="comment">/* sector erase 4k timeout */</span></div>
-<div class="line"><a name="l05294"></a><span class="lineno"> 5294</span>&#160;               </div>
-<div class="line"><a name="l05295"></a><span class="lineno"> 5295</span>&#160;                <span class="keywordflow">return</span> 6;                                                                                   <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l05296"></a><span class="lineno"> 5296</span>&#160;            }</div>
-<div class="line"><a name="l05297"></a><span class="lineno"> 5297</span>&#160;        }</div>
-<div class="line"><a name="l05298"></a><span class="lineno"> 5298</span>&#160;    }</div>
-<div class="line"><a name="l05299"></a><span class="lineno"> 5299</span>&#160;    <span class="keywordflow">else</span></div>
-<div class="line"><a name="l05300"></a><span class="lineno"> 5300</span>&#160;    {</div>
-<div class="line"><a name="l05301"></a><span class="lineno"> 5301</span>&#160;        res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>, 4,</div>
-<div class="line"><a name="l05302"></a><span class="lineno"> 5302</span>&#160;                                       0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l05303"></a><span class="lineno"> 5303</span>&#160;                                       0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l05304"></a><span class="lineno"> 5304</span>&#160;                                       0x00, NULL, 0x00,</div>
-<div class="line"><a name="l05305"></a><span class="lineno"> 5305</span>&#160;                                       NULL, 0x00, 0x00);                                                   <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l05306"></a><span class="lineno"> 5306</span>&#160;        <span class="keywordflow">if</span> (res != 0)                                                                                       <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l05307"></a><span class="lineno"> 5307</span>&#160;        {</div>
-<div class="line"><a name="l05308"></a><span class="lineno"> 5308</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                                          <span class="comment">/* write enable failed */</span></div>
-<div class="line"><a name="l05309"></a><span class="lineno"> 5309</span>&#160;           </div>
-<div class="line"><a name="l05310"></a><span class="lineno"> 5310</span>&#160;            <span class="keywordflow">return</span> 1;                                                                                       <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l05311"></a><span class="lineno"> 5311</span>&#160;        }</div>
-<div class="line"><a name="l05312"></a><span class="lineno"> 5312</span>&#160;        <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                             <span class="comment">/* 3 address mode */</span></div>
-<div class="line"><a name="l05313"></a><span class="lineno"> 5313</span>&#160;        {</div>
-<div class="line"><a name="l05314"></a><span class="lineno"> 5314</span>&#160;            <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)                                                                    <span class="comment">/* &gt;128Mb */</span></div>
-<div class="line"><a name="l05315"></a><span class="lineno"> 5315</span>&#160;            {</div>
-<div class="line"><a name="l05316"></a><span class="lineno"> 5316</span>&#160;                buf[0] = (addr &gt;&gt; 24) &amp; 0xFF;                                                               <span class="comment">/* 31 - 24 bits */</span></div>
-<div class="line"><a name="l05317"></a><span class="lineno"> 5317</span>&#160;                res = a_w25qxx_qspi_write_read(handle, 0xC5, 4,</div>
-<div class="line"><a name="l05318"></a><span class="lineno"> 5318</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l05319"></a><span class="lineno"> 5319</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l05320"></a><span class="lineno"> 5320</span>&#160;                                               0, (uint8_t *)buf, 0x01,</div>
-<div class="line"><a name="l05321"></a><span class="lineno"> 5321</span>&#160;                                               NULL, 0x00, 4);                                              <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l05322"></a><span class="lineno"> 5322</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l05323"></a><span class="lineno"> 5323</span>&#160;                {</div>
-<div class="line"><a name="l05324"></a><span class="lineno"> 5324</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write extended addr register failed.\n&quot;</span>);                  <span class="comment">/* write extended addr register failed */</span></div>
-<div class="line"><a name="l05325"></a><span class="lineno"> 5325</span>&#160;                   </div>
-<div class="line"><a name="l05326"></a><span class="lineno"> 5326</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l05327"></a><span class="lineno"> 5327</span>&#160;                }</div>
-<div class="line"><a name="l05328"></a><span class="lineno"> 5328</span>&#160;                res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>, 4,</div>
-<div class="line"><a name="l05329"></a><span class="lineno"> 5329</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l05330"></a><span class="lineno"> 5330</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l05331"></a><span class="lineno"> 5331</span>&#160;                                               0x00, NULL, 0x00,</div>
-<div class="line"><a name="l05332"></a><span class="lineno"> 5332</span>&#160;                                               NULL, 0x00, 0x00);                                           <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l05333"></a><span class="lineno"> 5333</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l05334"></a><span class="lineno"> 5334</span>&#160;                {</div>
-<div class="line"><a name="l05335"></a><span class="lineno"> 5335</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                                  <span class="comment">/* write enable failed */</span></div>
-<div class="line"><a name="l05336"></a><span class="lineno"> 5336</span>&#160;                   </div>
-<div class="line"><a name="l05337"></a><span class="lineno"> 5337</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l05338"></a><span class="lineno"> 5338</span>&#160;                }</div>
-<div class="line"><a name="l05339"></a><span class="lineno"> 5339</span>&#160;            }</div>
-<div class="line"><a name="l05340"></a><span class="lineno"> 5340</span>&#160;            res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#a6e7cd159f91e23930450725fd6910f9c">W25QXX_COMMAND_SECTOR_ERASE_4K</a>, 4,</div>
-<div class="line"><a name="l05341"></a><span class="lineno"> 5341</span>&#160;                                           addr, 4, 3,</div>
-<div class="line"><a name="l05342"></a><span class="lineno"> 5342</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l05343"></a><span class="lineno"> 5343</span>&#160;                                           0, NULL, 0x00,</div>
-<div class="line"><a name="l05344"></a><span class="lineno"> 5344</span>&#160;                                           NULL, 0x00, 0x00);                                               <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l05345"></a><span class="lineno"> 5345</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                                   <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l05346"></a><span class="lineno"> 5346</span>&#160;            {</div>
-<div class="line"><a name="l05347"></a><span class="lineno"> 5347</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: sector erase 4k failed.\n&quot;</span>);                                   <span class="comment">/* sector erase 4k failed */</span></div>
-<div class="line"><a name="l05348"></a><span class="lineno"> 5348</span>&#160;               </div>
-<div class="line"><a name="l05349"></a><span class="lineno"> 5349</span>&#160;                <span class="keywordflow">return</span> 1;                                                                                   <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l05350"></a><span class="lineno"> 5350</span>&#160;            }</div>
-<div class="line"><a name="l05351"></a><span class="lineno"> 5351</span>&#160;        }</div>
-<div class="line"><a name="l05352"></a><span class="lineno"> 5352</span>&#160;        <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>) &amp;&amp; (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>))</div>
-<div class="line"><a name="l05353"></a><span class="lineno"> 5353</span>&#160;        {</div>
-<div class="line"><a name="l05354"></a><span class="lineno"> 5354</span>&#160;            res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#a6e7cd159f91e23930450725fd6910f9c">W25QXX_COMMAND_SECTOR_ERASE_4K</a>, 4,</div>
-<div class="line"><a name="l05355"></a><span class="lineno"> 5355</span>&#160;                                           addr, 4, 4,</div>
-<div class="line"><a name="l05356"></a><span class="lineno"> 5356</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l05357"></a><span class="lineno"> 5357</span>&#160;                                           0, NULL, 0x00,</div>
-<div class="line"><a name="l05358"></a><span class="lineno"> 5358</span>&#160;                                           NULL, 0x00, 0x00);                                               <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l05359"></a><span class="lineno"> 5359</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                                   <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l05360"></a><span class="lineno"> 5360</span>&#160;            {</div>
-<div class="line"><a name="l05361"></a><span class="lineno"> 5361</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: sector erase 4k failed.\n&quot;</span>);                                   <span class="comment">/* sector erase 4k failed */</span></div>
-<div class="line"><a name="l05362"></a><span class="lineno"> 5362</span>&#160;               </div>
-<div class="line"><a name="l05363"></a><span class="lineno"> 5363</span>&#160;                <span class="keywordflow">return</span> 1;                                                                                   <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l05364"></a><span class="lineno"> 5364</span>&#160;            }</div>
-<div class="line"><a name="l05365"></a><span class="lineno"> 5365</span>&#160;        }</div>
-<div class="line"><a name="l05366"></a><span class="lineno"> 5366</span>&#160;        <span class="keywordflow">else</span></div>
-<div class="line"><a name="l05367"></a><span class="lineno"> 5367</span>&#160;        {</div>
-<div class="line"><a name="l05368"></a><span class="lineno"> 5368</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: address mode is invalid.\n&quot;</span>);                                      <span class="comment">/* address mode is invalid */</span></div>
-<div class="line"><a name="l05369"></a><span class="lineno"> 5369</span>&#160;           </div>
-<div class="line"><a name="l05370"></a><span class="lineno"> 5370</span>&#160;            <span class="keywordflow">return</span> 5;                                                                                       <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l05371"></a><span class="lineno"> 5371</span>&#160;        }</div>
-<div class="line"><a name="l05372"></a><span class="lineno"> 5372</span>&#160;        </div>
-<div class="line"><a name="l05373"></a><span class="lineno"> 5373</span>&#160;        timeout = 400;                                                                                      <span class="comment">/* max 400 ms */</span></div>
-<div class="line"><a name="l05374"></a><span class="lineno"> 5374</span>&#160;        <span class="keywordflow">while</span> (timeout != 0)                                                                                <span class="comment">/* check timeout */</span></div>
-<div class="line"><a name="l05375"></a><span class="lineno"> 5375</span>&#160;        {</div>
-<div class="line"><a name="l05376"></a><span class="lineno"> 5376</span>&#160;            res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#adf682969c34f4b31a87dd92dd18ccea3">W25QXX_COMMAND_READ_STATUS_REG1</a>, 4,</div>
-<div class="line"><a name="l05377"></a><span class="lineno"> 5377</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l05378"></a><span class="lineno"> 5378</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l05379"></a><span class="lineno"> 5379</span>&#160;                                           0, NULL, 0,</div>
-<div class="line"><a name="l05380"></a><span class="lineno"> 5380</span>&#160;                                          (uint8_t *)&amp;status, 1, 4);                                        <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l05381"></a><span class="lineno"> 5381</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                                   <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l05382"></a><span class="lineno"> 5382</span>&#160;            {</div>
-<div class="line"><a name="l05383"></a><span class="lineno"> 5383</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: get status1 failed.\n&quot;</span>);                                       <span class="comment">/* get status1 failed */</span></div>
-<div class="line"><a name="l05384"></a><span class="lineno"> 5384</span>&#160;               </div>
-<div class="line"><a name="l05385"></a><span class="lineno"> 5385</span>&#160;                <span class="keywordflow">return</span> 1;                                                                                   <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l05386"></a><span class="lineno"> 5386</span>&#160;            }</div>
-<div class="line"><a name="l05387"></a><span class="lineno"> 5387</span>&#160;            <span class="keywordflow">if</span> ((status &amp; 0x01) == 0x00)                                                                    <span class="comment">/* check status */</span></div>
-<div class="line"><a name="l05388"></a><span class="lineno"> 5388</span>&#160;            {</div>
-<div class="line"><a name="l05389"></a><span class="lineno"> 5389</span>&#160;                <span class="keywordflow">break</span>;                                                                                      <span class="comment">/* break */</span></div>
-<div class="line"><a name="l05390"></a><span class="lineno"> 5390</span>&#160;            }</div>
-<div class="line"><a name="l05391"></a><span class="lineno"> 5391</span>&#160;            timeout--;                                                                                      <span class="comment">/* timeout-- */</span></div>
-<div class="line"><a name="l05392"></a><span class="lineno"> 5392</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a406c9433252b7366de417b7a60915c81">delay_ms</a>(1);                                                                            <span class="comment">/* delay 1 ms */</span></div>
-<div class="line"><a name="l05393"></a><span class="lineno"> 5393</span>&#160;        }</div>
-<div class="line"><a name="l05394"></a><span class="lineno"> 5394</span>&#160;        <span class="keywordflow">if</span> (timeout == 0)</div>
-<div class="line"><a name="l05395"></a><span class="lineno"> 5395</span>&#160;        {</div>
-<div class="line"><a name="l05396"></a><span class="lineno"> 5396</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: sector erase 4k timeout.\n&quot;</span>);                                      <span class="comment">/* sector erase 4k timeout */</span></div>
-<div class="line"><a name="l05397"></a><span class="lineno"> 5397</span>&#160;           </div>
-<div class="line"><a name="l05398"></a><span class="lineno"> 5398</span>&#160;            <span class="keywordflow">return</span> 6;                                                                                       <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l05399"></a><span class="lineno"> 5399</span>&#160;        }</div>
-<div class="line"><a name="l05400"></a><span class="lineno"> 5400</span>&#160;    }</div>
-<div class="line"><a name="l05401"></a><span class="lineno"> 5401</span>&#160;    </div>
-<div class="line"><a name="l05402"></a><span class="lineno"> 5402</span>&#160;    <span class="keywordflow">return</span> 0;                                                                                               <span class="comment">/* success return 0 */</span></div>
-<div class="line"><a name="l05403"></a><span class="lineno"> 5403</span>&#160;}</div>
-<div class="line"><a name="l05404"></a><span class="lineno"> 5404</span>&#160; </div>
-<div class="line"><a name="l05419"></a><span class="lineno"><a class="line" href="group__w25qxx__basic__driver.html#ga39c8fb382e8c3e4d57232dfa79af781c"> 5419</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__basic__driver.html#ga39c8fb382e8c3e4d57232dfa79af781c">w25qxx_block_erase_32k</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint32_t addr)</div>
-<div class="line"><a name="l05420"></a><span class="lineno"> 5420</span>&#160;{</div>
-<div class="line"><a name="l05421"></a><span class="lineno"> 5421</span>&#160;    uint8_t res;</div>
-<div class="line"><a name="l05422"></a><span class="lineno"> 5422</span>&#160;    uint8_t status;</div>
-<div class="line"><a name="l05423"></a><span class="lineno"> 5423</span>&#160;    uint32_t timeout;</div>
-<div class="line"><a name="l05424"></a><span class="lineno"> 5424</span>&#160;    uint8_t buf[5];</div>
-<div class="line"><a name="l05425"></a><span class="lineno"> 5425</span>&#160;    </div>
-<div class="line"><a name="l05426"></a><span class="lineno"> 5426</span>&#160;    <span class="keywordflow">if</span> (handle == NULL)                                                                                     <span class="comment">/* check handle */</span></div>
-<div class="line"><a name="l05427"></a><span class="lineno"> 5427</span>&#160;    {</div>
-<div class="line"><a name="l05428"></a><span class="lineno"> 5428</span>&#160;        <span class="keywordflow">return</span> 2;                                                                                           <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l05429"></a><span class="lineno"> 5429</span>&#160;    }   </div>
-<div class="line"><a name="l05430"></a><span class="lineno"> 5430</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">inited</a> != 1)                                                                                <span class="comment">/* check handle initialization */</span></div>
-<div class="line"><a name="l05431"></a><span class="lineno"> 5431</span>&#160;    {</div>
-<div class="line"><a name="l05432"></a><span class="lineno"> 5432</span>&#160;        <span class="keywordflow">return</span> 3;                                                                                           <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l05433"></a><span class="lineno"> 5433</span>&#160;    }</div>
-<div class="line"><a name="l05434"></a><span class="lineno"> 5434</span>&#160;    <span class="keywordflow">if</span> ((addr % (32 * 1024)) != 0)                                                                          <span class="comment">/* check address */</span></div>
-<div class="line"><a name="l05435"></a><span class="lineno"> 5435</span>&#160;    {</div>
-<div class="line"><a name="l05436"></a><span class="lineno"> 5436</span>&#160;        handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: addr is invalid.\n&quot;</span>);                                                  <span class="comment">/* addr is invalid */</span></div>
-<div class="line"><a name="l05437"></a><span class="lineno"> 5437</span>&#160;       </div>
-<div class="line"><a name="l05438"></a><span class="lineno"> 5438</span>&#160;        <span class="keywordflow">return</span> 4;                                                                                           <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l05439"></a><span class="lineno"> 5439</span>&#160;    }</div>
-<div class="line"><a name="l05440"></a><span class="lineno"> 5440</span>&#160;    </div>
-<div class="line"><a name="l05441"></a><span class="lineno"> 5441</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>)                                                           <span class="comment">/* spi interface */</span></div>
-<div class="line"><a name="l05442"></a><span class="lineno"> 5442</span>&#160;    {</div>
-<div class="line"><a name="l05443"></a><span class="lineno"> 5443</span>&#160;        <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">dual_quad_spi_enable</a> != 0)                                                              <span class="comment">/* enable dual quad spi */</span></div>
-<div class="line"><a name="l05444"></a><span class="lineno"> 5444</span>&#160;        {</div>
-<div class="line"><a name="l05445"></a><span class="lineno"> 5445</span>&#160;            res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>, 1,</div>
-<div class="line"><a name="l05446"></a><span class="lineno"> 5446</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l05447"></a><span class="lineno"> 5447</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l05448"></a><span class="lineno"> 5448</span>&#160;                                           0x00, NULL, 0x00,</div>
-<div class="line"><a name="l05449"></a><span class="lineno"> 5449</span>&#160;                                           NULL, 0x00, 0x00);                                               <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l05450"></a><span class="lineno"> 5450</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                                   <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l05451"></a><span class="lineno"> 5451</span>&#160;            {</div>
-<div class="line"><a name="l05452"></a><span class="lineno"> 5452</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                                      <span class="comment">/* write enable failed */</span></div>
-<div class="line"><a name="l05453"></a><span class="lineno"> 5453</span>&#160;               </div>
-<div class="line"><a name="l05454"></a><span class="lineno"> 5454</span>&#160;                <span class="keywordflow">return</span> 1;                                                                                   <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l05455"></a><span class="lineno"> 5455</span>&#160;            }</div>
-<div class="line"><a name="l05456"></a><span class="lineno"> 5456</span>&#160;            <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                         <span class="comment">/* 3 address mode */</span></div>
-<div class="line"><a name="l05457"></a><span class="lineno"> 5457</span>&#160;            {</div>
-<div class="line"><a name="l05458"></a><span class="lineno"> 5458</span>&#160;                <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)                                                                <span class="comment">/* &gt;128Mb */</span></div>
-<div class="line"><a name="l05459"></a><span class="lineno"> 5459</span>&#160;                {</div>
-<div class="line"><a name="l05460"></a><span class="lineno"> 5460</span>&#160;                    buf[0] = (addr &gt;&gt; 24) &amp; 0xFF;                                                           <span class="comment">/* 31 - 24 bits */</span></div>
-<div class="line"><a name="l05461"></a><span class="lineno"> 5461</span>&#160;                    res = a_w25qxx_qspi_write_read(handle, 0xC5, 1,</div>
-<div class="line"><a name="l05462"></a><span class="lineno"> 5462</span>&#160;                                                   0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l05463"></a><span class="lineno"> 5463</span>&#160;                                                   0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l05464"></a><span class="lineno"> 5464</span>&#160;                                                   0, (uint8_t *)buf, 0x01,</div>
-<div class="line"><a name="l05465"></a><span class="lineno"> 5465</span>&#160;                                                   NULL, 0x00, 1);                                          <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l05466"></a><span class="lineno"> 5466</span>&#160;                    <span class="keywordflow">if</span> (res != 0)                                                                           <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l05467"></a><span class="lineno"> 5467</span>&#160;                    {</div>
-<div class="line"><a name="l05468"></a><span class="lineno"> 5468</span>&#160;                        handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write extended addr register failed.\n&quot;</span>);              <span class="comment">/* write extended addr register failed */</span></div>
-<div class="line"><a name="l05469"></a><span class="lineno"> 5469</span>&#160;                       </div>
-<div class="line"><a name="l05470"></a><span class="lineno"> 5470</span>&#160;                        <span class="keywordflow">return</span> 1;                                                                           <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l05471"></a><span class="lineno"> 5471</span>&#160;                    }</div>
-<div class="line"><a name="l05472"></a><span class="lineno"> 5472</span>&#160;                    res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>, 1,</div>
-<div class="line"><a name="l05473"></a><span class="lineno"> 5473</span>&#160;                                                   0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l05474"></a><span class="lineno"> 5474</span>&#160;                                                   0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l05475"></a><span class="lineno"> 5475</span>&#160;                                                   0x00, NULL, 0x00,</div>
-<div class="line"><a name="l05476"></a><span class="lineno"> 5476</span>&#160;                                                   NULL, 0x00, 0x00);                                       <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l05477"></a><span class="lineno"> 5477</span>&#160;                    <span class="keywordflow">if</span> (res != 0)                                                                           <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l05478"></a><span class="lineno"> 5478</span>&#160;                    {</div>
-<div class="line"><a name="l05479"></a><span class="lineno"> 5479</span>&#160;                        handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                              <span class="comment">/* write enable failed */</span></div>
-<div class="line"><a name="l05480"></a><span class="lineno"> 5480</span>&#160;                       </div>
-<div class="line"><a name="l05481"></a><span class="lineno"> 5481</span>&#160;                        <span class="keywordflow">return</span> 1;                                                                           <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l05482"></a><span class="lineno"> 5482</span>&#160;                    }</div>
-<div class="line"><a name="l05483"></a><span class="lineno"> 5483</span>&#160;                }</div>
-<div class="line"><a name="l05484"></a><span class="lineno"> 5484</span>&#160;                res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#a8bfb4e869985f5fa21ea7d1d262f90ad">W25QXX_COMMAND_BLOCK_ERASE_32K</a>, 1,</div>
-<div class="line"><a name="l05485"></a><span class="lineno"> 5485</span>&#160;                                               addr, 1, 3,</div>
-<div class="line"><a name="l05486"></a><span class="lineno"> 5486</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l05487"></a><span class="lineno"> 5487</span>&#160;                                               0, NULL, 0x00,</div>
-<div class="line"><a name="l05488"></a><span class="lineno"> 5488</span>&#160;                                               NULL, 0x00, 0x00);                                           <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l05489"></a><span class="lineno"> 5489</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l05490"></a><span class="lineno"> 5490</span>&#160;                {</div>
-<div class="line"><a name="l05491"></a><span class="lineno"> 5491</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: block erase 32k failed.\n&quot;</span>);                               <span class="comment">/* block erase 32k failed */</span></div>
-<div class="line"><a name="l05492"></a><span class="lineno"> 5492</span>&#160;                   </div>
-<div class="line"><a name="l05493"></a><span class="lineno"> 5493</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l05494"></a><span class="lineno"> 5494</span>&#160;                }</div>
-<div class="line"><a name="l05495"></a><span class="lineno"> 5495</span>&#160;            }</div>
-<div class="line"><a name="l05496"></a><span class="lineno"> 5496</span>&#160;            <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>) &amp;&amp; (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>))</div>
-<div class="line"><a name="l05497"></a><span class="lineno"> 5497</span>&#160;            {</div>
-<div class="line"><a name="l05498"></a><span class="lineno"> 5498</span>&#160;                res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#a8bfb4e869985f5fa21ea7d1d262f90ad">W25QXX_COMMAND_BLOCK_ERASE_32K</a>, 1,</div>
-<div class="line"><a name="l05499"></a><span class="lineno"> 5499</span>&#160;                                               addr, 1, 4,</div>
-<div class="line"><a name="l05500"></a><span class="lineno"> 5500</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l05501"></a><span class="lineno"> 5501</span>&#160;                                               0, NULL, 0x00,</div>
-<div class="line"><a name="l05502"></a><span class="lineno"> 5502</span>&#160;                                               NULL, 0x00, 0x00);                                           <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l05503"></a><span class="lineno"> 5503</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l05504"></a><span class="lineno"> 5504</span>&#160;                {</div>
-<div class="line"><a name="l05505"></a><span class="lineno"> 5505</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: block erase 32k failed.\n&quot;</span>);                               <span class="comment">/* block erase 32k failed */</span></div>
-<div class="line"><a name="l05506"></a><span class="lineno"> 5506</span>&#160;                   </div>
-<div class="line"><a name="l05507"></a><span class="lineno"> 5507</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l05508"></a><span class="lineno"> 5508</span>&#160;                }</div>
-<div class="line"><a name="l05509"></a><span class="lineno"> 5509</span>&#160;            }</div>
-<div class="line"><a name="l05510"></a><span class="lineno"> 5510</span>&#160;            <span class="keywordflow">else</span></div>
-<div class="line"><a name="l05511"></a><span class="lineno"> 5511</span>&#160;            {</div>
-<div class="line"><a name="l05512"></a><span class="lineno"> 5512</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: address mode is invalid.\n&quot;</span>);                                  <span class="comment">/* address mode is invalid */</span></div>
-<div class="line"><a name="l05513"></a><span class="lineno"> 5513</span>&#160;               </div>
-<div class="line"><a name="l05514"></a><span class="lineno"> 5514</span>&#160;                <span class="keywordflow">return</span> 5;                                                                                   <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l05515"></a><span class="lineno"> 5515</span>&#160;            }</div>
-<div class="line"><a name="l05516"></a><span class="lineno"> 5516</span>&#160;            </div>
-<div class="line"><a name="l05517"></a><span class="lineno"> 5517</span>&#160;            timeout = 1600;                                                                                 <span class="comment">/* max 1600 ms */</span></div>
-<div class="line"><a name="l05518"></a><span class="lineno"> 5518</span>&#160;            <span class="keywordflow">while</span> (timeout != 0)                                                                            <span class="comment">/* check timeout */</span></div>
-<div class="line"><a name="l05519"></a><span class="lineno"> 5519</span>&#160;            {</div>
-<div class="line"><a name="l05520"></a><span class="lineno"> 5520</span>&#160;                res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#adf682969c34f4b31a87dd92dd18ccea3">W25QXX_COMMAND_READ_STATUS_REG1</a>, 1,</div>
-<div class="line"><a name="l05521"></a><span class="lineno"> 5521</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l05522"></a><span class="lineno"> 5522</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l05523"></a><span class="lineno"> 5523</span>&#160;                                               0, NULL, 0,</div>
-<div class="line"><a name="l05524"></a><span class="lineno"> 5524</span>&#160;                                              (uint8_t *)&amp;status, 1, 1);                                    <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l05525"></a><span class="lineno"> 5525</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l05526"></a><span class="lineno"> 5526</span>&#160;                {</div>
-<div class="line"><a name="l05527"></a><span class="lineno"> 5527</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: get status1 failed.\n&quot;</span>);                                   <span class="comment">/* get status1 failed */</span></div>
-<div class="line"><a name="l05528"></a><span class="lineno"> 5528</span>&#160;                   </div>
-<div class="line"><a name="l05529"></a><span class="lineno"> 5529</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l05530"></a><span class="lineno"> 5530</span>&#160;                }</div>
-<div class="line"><a name="l05531"></a><span class="lineno"> 5531</span>&#160;                <span class="keywordflow">if</span> ((status &amp; 0x01) == 0x00)                                                                <span class="comment">/* check status */</span></div>
-<div class="line"><a name="l05532"></a><span class="lineno"> 5532</span>&#160;                {</div>
-<div class="line"><a name="l05533"></a><span class="lineno"> 5533</span>&#160;                    <span class="keywordflow">break</span>;                                                                                  <span class="comment">/* break */</span></div>
-<div class="line"><a name="l05534"></a><span class="lineno"> 5534</span>&#160;                }</div>
-<div class="line"><a name="l05535"></a><span class="lineno"> 5535</span>&#160;                timeout--;                                                                                  <span class="comment">/* timeout-- */</span></div>
-<div class="line"><a name="l05536"></a><span class="lineno"> 5536</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a406c9433252b7366de417b7a60915c81">delay_ms</a>(1);                                                                        <span class="comment">/* delay 1 ms */</span></div>
-<div class="line"><a name="l05537"></a><span class="lineno"> 5537</span>&#160;            }</div>
-<div class="line"><a name="l05538"></a><span class="lineno"> 5538</span>&#160;            <span class="keywordflow">if</span> (timeout == 0)</div>
-<div class="line"><a name="l05539"></a><span class="lineno"> 5539</span>&#160;            {</div>
-<div class="line"><a name="l05540"></a><span class="lineno"> 5540</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: block erase 32k timeout.\n&quot;</span>);                                  <span class="comment">/* block erase 32k timeout */</span></div>
-<div class="line"><a name="l05541"></a><span class="lineno"> 5541</span>&#160;               </div>
-<div class="line"><a name="l05542"></a><span class="lineno"> 5542</span>&#160;                <span class="keywordflow">return</span> 6;                                                                                   <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l05543"></a><span class="lineno"> 5543</span>&#160;            }</div>
-<div class="line"><a name="l05544"></a><span class="lineno"> 5544</span>&#160;        }</div>
-<div class="line"><a name="l05545"></a><span class="lineno"> 5545</span>&#160;        <span class="keywordflow">else</span>                                                                                                <span class="comment">/* single spi */</span></div>
-<div class="line"><a name="l05546"></a><span class="lineno"> 5546</span>&#160;        {</div>
-<div class="line"><a name="l05547"></a><span class="lineno"> 5547</span>&#160;            buf[0] = <a class="code" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>;                                                           <span class="comment">/* write enable command */</span></div>
-<div class="line"><a name="l05548"></a><span class="lineno"> 5548</span>&#160;            res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 1, NULL, 0);                              <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l05549"></a><span class="lineno"> 5549</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                                   <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l05550"></a><span class="lineno"> 5550</span>&#160;            {</div>
-<div class="line"><a name="l05551"></a><span class="lineno"> 5551</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                                      <span class="comment">/* write enable failed */</span></div>
-<div class="line"><a name="l05552"></a><span class="lineno"> 5552</span>&#160;               </div>
-<div class="line"><a name="l05553"></a><span class="lineno"> 5553</span>&#160;                <span class="keywordflow">return</span> 1;                                                                                   <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l05554"></a><span class="lineno"> 5554</span>&#160;            }</div>
-<div class="line"><a name="l05555"></a><span class="lineno"> 5555</span>&#160;            <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                         <span class="comment">/* 3 address mode */</span></div>
-<div class="line"><a name="l05556"></a><span class="lineno"> 5556</span>&#160;            {</div>
-<div class="line"><a name="l05557"></a><span class="lineno"> 5557</span>&#160;                <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)                                                                <span class="comment">/* &gt;128Mb */</span></div>
-<div class="line"><a name="l05558"></a><span class="lineno"> 5558</span>&#160;                {</div>
-<div class="line"><a name="l05559"></a><span class="lineno"> 5559</span>&#160;                    buf[0] = 0xC5;                                                                          <span class="comment">/* write extended addr register command */</span></div>
-<div class="line"><a name="l05560"></a><span class="lineno"> 5560</span>&#160;                    buf[1] = (addr &gt;&gt; 24) &amp; 0xFF;                                                           <span class="comment">/* 31 - 24 bits */</span></div>
-<div class="line"><a name="l05561"></a><span class="lineno"> 5561</span>&#160;                    res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 2, NULL, 0);                      <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l05562"></a><span class="lineno"> 5562</span>&#160;                    <span class="keywordflow">if</span> (res != 0)                                                                           <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l05563"></a><span class="lineno"> 5563</span>&#160;                    {</div>
-<div class="line"><a name="l05564"></a><span class="lineno"> 5564</span>&#160;                        handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write extended addr register failed.\n&quot;</span>);              <span class="comment">/* write extended addr register failed */</span></div>
-<div class="line"><a name="l05565"></a><span class="lineno"> 5565</span>&#160;                       </div>
-<div class="line"><a name="l05566"></a><span class="lineno"> 5566</span>&#160;                        <span class="keywordflow">return</span> 1;                                                                           <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l05567"></a><span class="lineno"> 5567</span>&#160;                    }</div>
-<div class="line"><a name="l05568"></a><span class="lineno"> 5568</span>&#160;                    buf[0] = <a class="code" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>;                                                   <span class="comment">/* write enable command */</span></div>
-<div class="line"><a name="l05569"></a><span class="lineno"> 5569</span>&#160;                    res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 1, NULL, 0);                      <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l05570"></a><span class="lineno"> 5570</span>&#160;                    <span class="keywordflow">if</span> (res != 0)                                                                           <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l05571"></a><span class="lineno"> 5571</span>&#160;                    {</div>
-<div class="line"><a name="l05572"></a><span class="lineno"> 5572</span>&#160;                        handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                              <span class="comment">/* write enable failed */</span></div>
-<div class="line"><a name="l05573"></a><span class="lineno"> 5573</span>&#160;                       </div>
-<div class="line"><a name="l05574"></a><span class="lineno"> 5574</span>&#160;                        <span class="keywordflow">return</span> 1;                                                                           <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l05575"></a><span class="lineno"> 5575</span>&#160;                    }</div>
-<div class="line"><a name="l05576"></a><span class="lineno"> 5576</span>&#160;                }</div>
-<div class="line"><a name="l05577"></a><span class="lineno"> 5577</span>&#160;                buf[0] = <a class="code" href="driver__w25qxx_8c.html#a8bfb4e869985f5fa21ea7d1d262f90ad">W25QXX_COMMAND_BLOCK_ERASE_32K</a>;                                                    <span class="comment">/* block erase 32k command */</span></div>
-<div class="line"><a name="l05578"></a><span class="lineno"> 5578</span>&#160;                buf[1] = (addr &gt;&gt; 16) &amp; 0xFF;                                                               <span class="comment">/* 23 - 16 bits */</span></div>
-<div class="line"><a name="l05579"></a><span class="lineno"> 5579</span>&#160;                buf[2] = (addr &gt;&gt; 8) &amp; 0xFF;                                                                <span class="comment">/* 15 - 8  bits */</span></div>
-<div class="line"><a name="l05580"></a><span class="lineno"> 5580</span>&#160;                buf[3] = (addr &gt;&gt; 0) &amp; 0xFF;                                                                <span class="comment">/* 7 - 0 bits */</span></div>
-<div class="line"><a name="l05581"></a><span class="lineno"> 5581</span>&#160;                res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 4, NULL, 0);                          <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l05582"></a><span class="lineno"> 5582</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l05583"></a><span class="lineno"> 5583</span>&#160;                {</div>
-<div class="line"><a name="l05584"></a><span class="lineno"> 5584</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: block erase 32k failed.\n&quot;</span>);                               <span class="comment">/* block erase 32k failed */</span></div>
-<div class="line"><a name="l05585"></a><span class="lineno"> 5585</span>&#160;                   </div>
-<div class="line"><a name="l05586"></a><span class="lineno"> 5586</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l05587"></a><span class="lineno"> 5587</span>&#160;                }</div>
-<div class="line"><a name="l05588"></a><span class="lineno"> 5588</span>&#160;            }</div>
-<div class="line"><a name="l05589"></a><span class="lineno"> 5589</span>&#160;            <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>)</div>
-<div class="line"><a name="l05590"></a><span class="lineno"> 5590</span>&#160;                     &amp;&amp; (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>))</div>
-<div class="line"><a name="l05591"></a><span class="lineno"> 5591</span>&#160;            {</div>
-<div class="line"><a name="l05592"></a><span class="lineno"> 5592</span>&#160;                buf[0] = <a class="code" href="driver__w25qxx_8c.html#a8bfb4e869985f5fa21ea7d1d262f90ad">W25QXX_COMMAND_BLOCK_ERASE_32K</a>;                                                    <span class="comment">/* block erase 32k command */</span></div>
-<div class="line"><a name="l05593"></a><span class="lineno"> 5593</span>&#160;                buf[1] = (addr &gt;&gt; 24) &amp; 0xFF;                                                               <span class="comment">/* 31 - 24 bits */</span></div>
-<div class="line"><a name="l05594"></a><span class="lineno"> 5594</span>&#160;                buf[2] = (addr &gt;&gt; 16) &amp; 0xFF;                                                               <span class="comment">/* 23 - 16 bits */</span></div>
-<div class="line"><a name="l05595"></a><span class="lineno"> 5595</span>&#160;                buf[3] = (addr &gt;&gt; 8) &amp; 0xFF;                                                                <span class="comment">/* 15 - 8  bits */</span></div>
-<div class="line"><a name="l05596"></a><span class="lineno"> 5596</span>&#160;                buf[4] = (addr &gt;&gt; 0) &amp; 0xFF;                                                                <span class="comment">/* 7 - 0 bits */</span></div>
-<div class="line"><a name="l05597"></a><span class="lineno"> 5597</span>&#160;                res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 5, NULL, 0);                          <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l05598"></a><span class="lineno"> 5598</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l05599"></a><span class="lineno"> 5599</span>&#160;                {</div>
-<div class="line"><a name="l05600"></a><span class="lineno"> 5600</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: block erase 32k failed.\n&quot;</span>);                               <span class="comment">/* block erase 32k failed */</span></div>
-<div class="line"><a name="l05601"></a><span class="lineno"> 5601</span>&#160;                   </div>
-<div class="line"><a name="l05602"></a><span class="lineno"> 5602</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l05603"></a><span class="lineno"> 5603</span>&#160;                }</div>
-<div class="line"><a name="l05604"></a><span class="lineno"> 5604</span>&#160;            }</div>
-<div class="line"><a name="l05605"></a><span class="lineno"> 5605</span>&#160;            <span class="keywordflow">else</span></div>
-<div class="line"><a name="l05606"></a><span class="lineno"> 5606</span>&#160;            {</div>
-<div class="line"><a name="l05607"></a><span class="lineno"> 5607</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: address mode is invalid.\n&quot;</span>);                                  <span class="comment">/* address mode is invalid */</span></div>
-<div class="line"><a name="l05608"></a><span class="lineno"> 5608</span>&#160;               </div>
-<div class="line"><a name="l05609"></a><span class="lineno"> 5609</span>&#160;                <span class="keywordflow">return</span> 5;                                                                                   <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l05610"></a><span class="lineno"> 5610</span>&#160;            }</div>
-<div class="line"><a name="l05611"></a><span class="lineno"> 5611</span>&#160;            </div>
-<div class="line"><a name="l05612"></a><span class="lineno"> 5612</span>&#160;            timeout = 1600;                                                                                 <span class="comment">/* max 1600 ms */</span></div>
-<div class="line"><a name="l05613"></a><span class="lineno"> 5613</span>&#160;            <span class="keywordflow">while</span> (timeout != 0)                                                                            <span class="comment">/* check timeout */</span></div>
-<div class="line"><a name="l05614"></a><span class="lineno"> 5614</span>&#160;            {</div>
-<div class="line"><a name="l05615"></a><span class="lineno"> 5615</span>&#160;                buf[0] = <a class="code" href="driver__w25qxx_8c.html#adf682969c34f4b31a87dd92dd18ccea3">W25QXX_COMMAND_READ_STATUS_REG1</a>;                                                   <span class="comment">/* read status1 command */</span></div>
-<div class="line"><a name="l05616"></a><span class="lineno"> 5616</span>&#160;                res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 1, (uint8_t *)&amp;status, 1);            <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l05617"></a><span class="lineno"> 5617</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l05618"></a><span class="lineno"> 5618</span>&#160;                {</div>
-<div class="line"><a name="l05619"></a><span class="lineno"> 5619</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: get status1 failed.\n&quot;</span>);                                   <span class="comment">/* get status1 failed */</span></div>
-<div class="line"><a name="l05620"></a><span class="lineno"> 5620</span>&#160;                   </div>
-<div class="line"><a name="l05621"></a><span class="lineno"> 5621</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l05622"></a><span class="lineno"> 5622</span>&#160;                }</div>
-<div class="line"><a name="l05623"></a><span class="lineno"> 5623</span>&#160;                <span class="keywordflow">if</span> ((status &amp; 0x01) == 0x00)                                                                <span class="comment">/* check status */</span></div>
-<div class="line"><a name="l05624"></a><span class="lineno"> 5624</span>&#160;                {</div>
-<div class="line"><a name="l05625"></a><span class="lineno"> 5625</span>&#160;                    <span class="keywordflow">break</span>;                                                                                  <span class="comment">/* break */</span></div>
-<div class="line"><a name="l05626"></a><span class="lineno"> 5626</span>&#160;                }</div>
-<div class="line"><a name="l05627"></a><span class="lineno"> 5627</span>&#160;                timeout--;                                                                                  <span class="comment">/* timeout-- */</span></div>
-<div class="line"><a name="l05628"></a><span class="lineno"> 5628</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a406c9433252b7366de417b7a60915c81">delay_ms</a>(1);                                                                        <span class="comment">/* delay 1 ms */</span></div>
-<div class="line"><a name="l05629"></a><span class="lineno"> 5629</span>&#160;            }</div>
-<div class="line"><a name="l05630"></a><span class="lineno"> 5630</span>&#160;            <span class="keywordflow">if</span> (timeout == 0)</div>
-<div class="line"><a name="l05631"></a><span class="lineno"> 5631</span>&#160;            {</div>
-<div class="line"><a name="l05632"></a><span class="lineno"> 5632</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: block erase 32k timeout.\n&quot;</span>);                                  <span class="comment">/* block erase 32k timeout */</span></div>
-<div class="line"><a name="l05633"></a><span class="lineno"> 5633</span>&#160;               </div>
-<div class="line"><a name="l05634"></a><span class="lineno"> 5634</span>&#160;                <span class="keywordflow">return</span> 6;                                                                                   <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l05635"></a><span class="lineno"> 5635</span>&#160;            }</div>
-<div class="line"><a name="l05636"></a><span class="lineno"> 5636</span>&#160;        }</div>
-<div class="line"><a name="l05637"></a><span class="lineno"> 5637</span>&#160;    }</div>
-<div class="line"><a name="l05638"></a><span class="lineno"> 5638</span>&#160;    <span class="keywordflow">else</span></div>
-<div class="line"><a name="l05639"></a><span class="lineno"> 5639</span>&#160;    {</div>
-<div class="line"><a name="l05640"></a><span class="lineno"> 5640</span>&#160;        res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>, 4,</div>
-<div class="line"><a name="l05641"></a><span class="lineno"> 5641</span>&#160;                                       0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l05642"></a><span class="lineno"> 5642</span>&#160;                                       0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l05643"></a><span class="lineno"> 5643</span>&#160;                                       0x00, NULL, 0x00,</div>
-<div class="line"><a name="l05644"></a><span class="lineno"> 5644</span>&#160;                                       NULL, 0x00, 0x00);                                                   <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l05645"></a><span class="lineno"> 5645</span>&#160;        <span class="keywordflow">if</span> (res != 0)                                                                                       <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l05646"></a><span class="lineno"> 5646</span>&#160;        {</div>
-<div class="line"><a name="l05647"></a><span class="lineno"> 5647</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                                          <span class="comment">/* write enable failed */</span></div>
-<div class="line"><a name="l05648"></a><span class="lineno"> 5648</span>&#160;           </div>
-<div class="line"><a name="l05649"></a><span class="lineno"> 5649</span>&#160;            <span class="keywordflow">return</span> 1;                                                                                       <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l05650"></a><span class="lineno"> 5650</span>&#160;        }</div>
-<div class="line"><a name="l05651"></a><span class="lineno"> 5651</span>&#160;        <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                             <span class="comment">/* 3 address mode */</span></div>
-<div class="line"><a name="l05652"></a><span class="lineno"> 5652</span>&#160;        {</div>
-<div class="line"><a name="l05653"></a><span class="lineno"> 5653</span>&#160;            <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)                                                                    <span class="comment">/* &gt;128Mb */</span></div>
-<div class="line"><a name="l05654"></a><span class="lineno"> 5654</span>&#160;            {</div>
-<div class="line"><a name="l05655"></a><span class="lineno"> 5655</span>&#160;                buf[0] = (addr &gt;&gt; 24) &amp; 0xFF;                                                               <span class="comment">/* 31 - 24 bits */</span></div>
-<div class="line"><a name="l05656"></a><span class="lineno"> 5656</span>&#160;                res = a_w25qxx_qspi_write_read(handle, 0xC5, 4,</div>
-<div class="line"><a name="l05657"></a><span class="lineno"> 5657</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l05658"></a><span class="lineno"> 5658</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l05659"></a><span class="lineno"> 5659</span>&#160;                                               0, (uint8_t *)buf, 0x01,</div>
-<div class="line"><a name="l05660"></a><span class="lineno"> 5660</span>&#160;                                               NULL, 0x00, 4);                                              <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l05661"></a><span class="lineno"> 5661</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l05662"></a><span class="lineno"> 5662</span>&#160;                {</div>
-<div class="line"><a name="l05663"></a><span class="lineno"> 5663</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write extended addr register failed.\n&quot;</span>);                  <span class="comment">/* write extended addr register failed */</span></div>
-<div class="line"><a name="l05664"></a><span class="lineno"> 5664</span>&#160;                   </div>
-<div class="line"><a name="l05665"></a><span class="lineno"> 5665</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l05666"></a><span class="lineno"> 5666</span>&#160;                }</div>
-<div class="line"><a name="l05667"></a><span class="lineno"> 5667</span>&#160;                res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>, 4,</div>
-<div class="line"><a name="l05668"></a><span class="lineno"> 5668</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l05669"></a><span class="lineno"> 5669</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l05670"></a><span class="lineno"> 5670</span>&#160;                                               0x00, NULL, 0x00,</div>
-<div class="line"><a name="l05671"></a><span class="lineno"> 5671</span>&#160;                                               NULL, 0x00, 0x00);                                           <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l05672"></a><span class="lineno"> 5672</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l05673"></a><span class="lineno"> 5673</span>&#160;                {</div>
-<div class="line"><a name="l05674"></a><span class="lineno"> 5674</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                                  <span class="comment">/* write enable failed */</span></div>
-<div class="line"><a name="l05675"></a><span class="lineno"> 5675</span>&#160;                   </div>
-<div class="line"><a name="l05676"></a><span class="lineno"> 5676</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l05677"></a><span class="lineno"> 5677</span>&#160;                }</div>
-<div class="line"><a name="l05678"></a><span class="lineno"> 5678</span>&#160;            }</div>
-<div class="line"><a name="l05679"></a><span class="lineno"> 5679</span>&#160;            res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#a8bfb4e869985f5fa21ea7d1d262f90ad">W25QXX_COMMAND_BLOCK_ERASE_32K</a>, 4,</div>
-<div class="line"><a name="l05680"></a><span class="lineno"> 5680</span>&#160;                                           addr, 4, 3,</div>
-<div class="line"><a name="l05681"></a><span class="lineno"> 5681</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l05682"></a><span class="lineno"> 5682</span>&#160;                                           0, NULL, 0x00,</div>
-<div class="line"><a name="l05683"></a><span class="lineno"> 5683</span>&#160;                                           NULL, 0x00, 0x00);                                               <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l05684"></a><span class="lineno"> 5684</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                                   <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l05685"></a><span class="lineno"> 5685</span>&#160;            {</div>
-<div class="line"><a name="l05686"></a><span class="lineno"> 5686</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: block erase 32k failed.\n&quot;</span>);                                   <span class="comment">/* block erase 32k failed */</span></div>
-<div class="line"><a name="l05687"></a><span class="lineno"> 5687</span>&#160;               </div>
-<div class="line"><a name="l05688"></a><span class="lineno"> 5688</span>&#160;                <span class="keywordflow">return</span> 1;                                                                                   <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l05689"></a><span class="lineno"> 5689</span>&#160;            }</div>
-<div class="line"><a name="l05690"></a><span class="lineno"> 5690</span>&#160;        }</div>
-<div class="line"><a name="l05691"></a><span class="lineno"> 5691</span>&#160;        <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>) &amp;&amp; (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>))</div>
-<div class="line"><a name="l05692"></a><span class="lineno"> 5692</span>&#160;        {</div>
-<div class="line"><a name="l05693"></a><span class="lineno"> 5693</span>&#160;            res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#a8bfb4e869985f5fa21ea7d1d262f90ad">W25QXX_COMMAND_BLOCK_ERASE_32K</a>, 4,</div>
-<div class="line"><a name="l05694"></a><span class="lineno"> 5694</span>&#160;                                           addr, 4, 4,</div>
-<div class="line"><a name="l05695"></a><span class="lineno"> 5695</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l05696"></a><span class="lineno"> 5696</span>&#160;                                           0, NULL, 0x00,</div>
-<div class="line"><a name="l05697"></a><span class="lineno"> 5697</span>&#160;                                           NULL, 0x00, 0x00);                                               <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l05698"></a><span class="lineno"> 5698</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                                   <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l05699"></a><span class="lineno"> 5699</span>&#160;            {</div>
-<div class="line"><a name="l05700"></a><span class="lineno"> 5700</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: block erase 32k failed.\n&quot;</span>);                                   <span class="comment">/* block erase 32k failed */</span></div>
-<div class="line"><a name="l05701"></a><span class="lineno"> 5701</span>&#160;               </div>
-<div class="line"><a name="l05702"></a><span class="lineno"> 5702</span>&#160;                <span class="keywordflow">return</span> 1;                                                                                   <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l05703"></a><span class="lineno"> 5703</span>&#160;            }</div>
-<div class="line"><a name="l05704"></a><span class="lineno"> 5704</span>&#160;        }</div>
-<div class="line"><a name="l05705"></a><span class="lineno"> 5705</span>&#160;        <span class="keywordflow">else</span></div>
-<div class="line"><a name="l05706"></a><span class="lineno"> 5706</span>&#160;        {</div>
-<div class="line"><a name="l05707"></a><span class="lineno"> 5707</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: address mode is invalid.\n&quot;</span>);                                      <span class="comment">/* address mode is invalid */</span></div>
-<div class="line"><a name="l05708"></a><span class="lineno"> 5708</span>&#160;           </div>
-<div class="line"><a name="l05709"></a><span class="lineno"> 5709</span>&#160;            <span class="keywordflow">return</span> 5;                                                                                       <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l05710"></a><span class="lineno"> 5710</span>&#160;        }</div>
-<div class="line"><a name="l05711"></a><span class="lineno"> 5711</span>&#160;        </div>
-<div class="line"><a name="l05712"></a><span class="lineno"> 5712</span>&#160;        timeout = 1600;                                                                                     <span class="comment">/* max 1600 ms */</span></div>
-<div class="line"><a name="l05713"></a><span class="lineno"> 5713</span>&#160;        <span class="keywordflow">while</span> (timeout != 0)                                                                                <span class="comment">/* check timeout */</span></div>
-<div class="line"><a name="l05714"></a><span class="lineno"> 5714</span>&#160;        {</div>
-<div class="line"><a name="l05715"></a><span class="lineno"> 5715</span>&#160;            res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#adf682969c34f4b31a87dd92dd18ccea3">W25QXX_COMMAND_READ_STATUS_REG1</a>, 4,</div>
-<div class="line"><a name="l05716"></a><span class="lineno"> 5716</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l05717"></a><span class="lineno"> 5717</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l05718"></a><span class="lineno"> 5718</span>&#160;                                           0, NULL, 0,</div>
-<div class="line"><a name="l05719"></a><span class="lineno"> 5719</span>&#160;                                          (uint8_t *)&amp;status, 1, 4);                                        <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l05720"></a><span class="lineno"> 5720</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                                   <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l05721"></a><span class="lineno"> 5721</span>&#160;            {</div>
-<div class="line"><a name="l05722"></a><span class="lineno"> 5722</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: get status1 failed.\n&quot;</span>);                                       <span class="comment">/* get status1 failed */</span></div>
-<div class="line"><a name="l05723"></a><span class="lineno"> 5723</span>&#160;               </div>
-<div class="line"><a name="l05724"></a><span class="lineno"> 5724</span>&#160;                <span class="keywordflow">return</span> 1;                                                                                   <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l05725"></a><span class="lineno"> 5725</span>&#160;            }</div>
-<div class="line"><a name="l05726"></a><span class="lineno"> 5726</span>&#160;            <span class="keywordflow">if</span> ((status &amp; 0x01) == 0x00)                                                                    <span class="comment">/* check status */</span></div>
-<div class="line"><a name="l05727"></a><span class="lineno"> 5727</span>&#160;            {</div>
-<div class="line"><a name="l05728"></a><span class="lineno"> 5728</span>&#160;                <span class="keywordflow">break</span>;                                                                                      <span class="comment">/* break */</span></div>
-<div class="line"><a name="l05729"></a><span class="lineno"> 5729</span>&#160;            }</div>
-<div class="line"><a name="l05730"></a><span class="lineno"> 5730</span>&#160;            timeout--;                                                                                      <span class="comment">/* timeout-- */</span></div>
-<div class="line"><a name="l05731"></a><span class="lineno"> 5731</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a406c9433252b7366de417b7a60915c81">delay_ms</a>(1);                                                                            <span class="comment">/* delay 1 ms */</span></div>
-<div class="line"><a name="l05732"></a><span class="lineno"> 5732</span>&#160;        }</div>
-<div class="line"><a name="l05733"></a><span class="lineno"> 5733</span>&#160;        <span class="keywordflow">if</span> (timeout == 0)</div>
-<div class="line"><a name="l05734"></a><span class="lineno"> 5734</span>&#160;        {</div>
-<div class="line"><a name="l05735"></a><span class="lineno"> 5735</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: block erase 32k timeout.\n&quot;</span>);                                      <span class="comment">/* block erase 32k timeout */</span></div>
-<div class="line"><a name="l05736"></a><span class="lineno"> 5736</span>&#160;           </div>
-<div class="line"><a name="l05737"></a><span class="lineno"> 5737</span>&#160;            <span class="keywordflow">return</span> 6;                                                                                       <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l05738"></a><span class="lineno"> 5738</span>&#160;        }</div>
-<div class="line"><a name="l05739"></a><span class="lineno"> 5739</span>&#160;    }</div>
-<div class="line"><a name="l05740"></a><span class="lineno"> 5740</span>&#160;    </div>
-<div class="line"><a name="l05741"></a><span class="lineno"> 5741</span>&#160;    <span class="keywordflow">return</span> 0;                                                                                               <span class="comment">/* success return 0 */</span></div>
-<div class="line"><a name="l05742"></a><span class="lineno"> 5742</span>&#160;}</div>
-<div class="line"><a name="l05743"></a><span class="lineno"> 5743</span>&#160; </div>
-<div class="line"><a name="l05758"></a><span class="lineno"><a class="line" href="group__w25qxx__basic__driver.html#gaf53bc5f6073482b9b74efd417ec7ac83"> 5758</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__basic__driver.html#gaf53bc5f6073482b9b74efd417ec7ac83">w25qxx_block_erase_64k</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint32_t addr)</div>
-<div class="line"><a name="l05759"></a><span class="lineno"> 5759</span>&#160;{</div>
-<div class="line"><a name="l05760"></a><span class="lineno"> 5760</span>&#160;    uint8_t res;</div>
-<div class="line"><a name="l05761"></a><span class="lineno"> 5761</span>&#160;    uint8_t status;</div>
-<div class="line"><a name="l05762"></a><span class="lineno"> 5762</span>&#160;    uint32_t timeout;</div>
-<div class="line"><a name="l05763"></a><span class="lineno"> 5763</span>&#160;    uint8_t buf[5];</div>
-<div class="line"><a name="l05764"></a><span class="lineno"> 5764</span>&#160;    </div>
-<div class="line"><a name="l05765"></a><span class="lineno"> 5765</span>&#160;    <span class="keywordflow">if</span> (handle == NULL)                                                                                     <span class="comment">/* check handle */</span></div>
-<div class="line"><a name="l05766"></a><span class="lineno"> 5766</span>&#160;    {</div>
-<div class="line"><a name="l05767"></a><span class="lineno"> 5767</span>&#160;        <span class="keywordflow">return</span> 2;                                                                                           <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l05768"></a><span class="lineno"> 5768</span>&#160;    }   </div>
-<div class="line"><a name="l05769"></a><span class="lineno"> 5769</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">inited</a> != 1)                                                                                <span class="comment">/* check handle initialization */</span></div>
-<div class="line"><a name="l05770"></a><span class="lineno"> 5770</span>&#160;    {</div>
-<div class="line"><a name="l05771"></a><span class="lineno"> 5771</span>&#160;        <span class="keywordflow">return</span> 3;                                                                                           <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l05772"></a><span class="lineno"> 5772</span>&#160;    }</div>
-<div class="line"><a name="l05773"></a><span class="lineno"> 5773</span>&#160;    <span class="keywordflow">if</span> ((addr % (64 * 1024)) != 0)                                                                          <span class="comment">/* check address */</span></div>
-<div class="line"><a name="l05774"></a><span class="lineno"> 5774</span>&#160;    {</div>
-<div class="line"><a name="l05775"></a><span class="lineno"> 5775</span>&#160;        handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: addr is invalid.\n&quot;</span>);                                                  <span class="comment">/* addr is invalid */</span></div>
-<div class="line"><a name="l05776"></a><span class="lineno"> 5776</span>&#160;       </div>
-<div class="line"><a name="l05777"></a><span class="lineno"> 5777</span>&#160;        <span class="keywordflow">return</span> 4;                                                                                           <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l05778"></a><span class="lineno"> 5778</span>&#160;    }</div>
-<div class="line"><a name="l05779"></a><span class="lineno"> 5779</span>&#160;    </div>
-<div class="line"><a name="l05780"></a><span class="lineno"> 5780</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>)                                                           <span class="comment">/* spi interface */</span></div>
-<div class="line"><a name="l05781"></a><span class="lineno"> 5781</span>&#160;    {</div>
-<div class="line"><a name="l05782"></a><span class="lineno"> 5782</span>&#160;        <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">dual_quad_spi_enable</a> != 0)                                                              <span class="comment">/* enable dual quad spi */</span></div>
-<div class="line"><a name="l05783"></a><span class="lineno"> 5783</span>&#160;        {</div>
-<div class="line"><a name="l05784"></a><span class="lineno"> 5784</span>&#160;            res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>, 1,</div>
-<div class="line"><a name="l05785"></a><span class="lineno"> 5785</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l05786"></a><span class="lineno"> 5786</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l05787"></a><span class="lineno"> 5787</span>&#160;                                           0x00, NULL, 0x00,</div>
-<div class="line"><a name="l05788"></a><span class="lineno"> 5788</span>&#160;                                           NULL, 0x00, 0x00);                                               <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l05789"></a><span class="lineno"> 5789</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                                   <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l05790"></a><span class="lineno"> 5790</span>&#160;            {</div>
-<div class="line"><a name="l05791"></a><span class="lineno"> 5791</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                                      <span class="comment">/* write enable failed */</span></div>
-<div class="line"><a name="l05792"></a><span class="lineno"> 5792</span>&#160;               </div>
-<div class="line"><a name="l05793"></a><span class="lineno"> 5793</span>&#160;                <span class="keywordflow">return</span> 1;                                                                                   <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l05794"></a><span class="lineno"> 5794</span>&#160;            }</div>
-<div class="line"><a name="l05795"></a><span class="lineno"> 5795</span>&#160;            <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                         <span class="comment">/* 3 address mode */</span></div>
-<div class="line"><a name="l05796"></a><span class="lineno"> 5796</span>&#160;            {</div>
-<div class="line"><a name="l05797"></a><span class="lineno"> 5797</span>&#160;                <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)                                                                <span class="comment">/* &gt;128Mb */</span></div>
-<div class="line"><a name="l05798"></a><span class="lineno"> 5798</span>&#160;                {</div>
-<div class="line"><a name="l05799"></a><span class="lineno"> 5799</span>&#160;                    buf[0] = (addr &gt;&gt; 24) &amp; 0xFF;                                                           <span class="comment">/* 31 - 24 bits */</span></div>
-<div class="line"><a name="l05800"></a><span class="lineno"> 5800</span>&#160;                    res = a_w25qxx_qspi_write_read(handle, 0xC5, 1,</div>
-<div class="line"><a name="l05801"></a><span class="lineno"> 5801</span>&#160;                                                   0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l05802"></a><span class="lineno"> 5802</span>&#160;                                                   0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l05803"></a><span class="lineno"> 5803</span>&#160;                                                   0, (uint8_t *)buf, 0x01,</div>
-<div class="line"><a name="l05804"></a><span class="lineno"> 5804</span>&#160;                                                   NULL, 0x00, 1);                                          <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l05805"></a><span class="lineno"> 5805</span>&#160;                    <span class="keywordflow">if</span> (res != 0)                                                                           <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l05806"></a><span class="lineno"> 5806</span>&#160;                    {</div>
-<div class="line"><a name="l05807"></a><span class="lineno"> 5807</span>&#160;                        handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write extended addr register failed.\n&quot;</span>);              <span class="comment">/* write extended addr register failed */</span></div>
-<div class="line"><a name="l05808"></a><span class="lineno"> 5808</span>&#160;                       </div>
-<div class="line"><a name="l05809"></a><span class="lineno"> 5809</span>&#160;                        <span class="keywordflow">return</span> 1;                                                                           <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l05810"></a><span class="lineno"> 5810</span>&#160;                    }</div>
-<div class="line"><a name="l05811"></a><span class="lineno"> 5811</span>&#160;                    res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>, 1,</div>
-<div class="line"><a name="l05812"></a><span class="lineno"> 5812</span>&#160;                                                   0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l05813"></a><span class="lineno"> 5813</span>&#160;                                                   0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l05814"></a><span class="lineno"> 5814</span>&#160;                                                   0x00, NULL, 0x00,</div>
-<div class="line"><a name="l05815"></a><span class="lineno"> 5815</span>&#160;                                                   NULL, 0x00, 0x00);                                       <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l05816"></a><span class="lineno"> 5816</span>&#160;                    <span class="keywordflow">if</span> (res != 0)                                                                           <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l05817"></a><span class="lineno"> 5817</span>&#160;                    {</div>
-<div class="line"><a name="l05818"></a><span class="lineno"> 5818</span>&#160;                        handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                              <span class="comment">/* write enable failed */</span></div>
-<div class="line"><a name="l05819"></a><span class="lineno"> 5819</span>&#160;                       </div>
-<div class="line"><a name="l05820"></a><span class="lineno"> 5820</span>&#160;                        <span class="keywordflow">return</span> 1;                                                                           <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l05821"></a><span class="lineno"> 5821</span>&#160;                    }</div>
-<div class="line"><a name="l05822"></a><span class="lineno"> 5822</span>&#160;                }</div>
-<div class="line"><a name="l05823"></a><span class="lineno"> 5823</span>&#160;                res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#a4c5a1ed46f4d662a61bc06573ab548a0">W25QXX_COMMAND_BLOCK_ERASE_64K</a>, 1,</div>
-<div class="line"><a name="l05824"></a><span class="lineno"> 5824</span>&#160;                                               addr, 1, 3,</div>
-<div class="line"><a name="l05825"></a><span class="lineno"> 5825</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l05826"></a><span class="lineno"> 5826</span>&#160;                                               0, NULL, 0x00,</div>
-<div class="line"><a name="l05827"></a><span class="lineno"> 5827</span>&#160;                                               NULL, 0x00, 0x00);                                           <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l05828"></a><span class="lineno"> 5828</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l05829"></a><span class="lineno"> 5829</span>&#160;                {</div>
-<div class="line"><a name="l05830"></a><span class="lineno"> 5830</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: block erase 64k failed.\n&quot;</span>);                               <span class="comment">/* block erase 64k failed */</span></div>
-<div class="line"><a name="l05831"></a><span class="lineno"> 5831</span>&#160;                   </div>
-<div class="line"><a name="l05832"></a><span class="lineno"> 5832</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l05833"></a><span class="lineno"> 5833</span>&#160;                }</div>
-<div class="line"><a name="l05834"></a><span class="lineno"> 5834</span>&#160;            }</div>
-<div class="line"><a name="l05835"></a><span class="lineno"> 5835</span>&#160;            <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>) &amp;&amp; (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>))</div>
-<div class="line"><a name="l05836"></a><span class="lineno"> 5836</span>&#160;            {</div>
-<div class="line"><a name="l05837"></a><span class="lineno"> 5837</span>&#160;                res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#a4c5a1ed46f4d662a61bc06573ab548a0">W25QXX_COMMAND_BLOCK_ERASE_64K</a>, 1,</div>
-<div class="line"><a name="l05838"></a><span class="lineno"> 5838</span>&#160;                                               addr, 1, 4,</div>
-<div class="line"><a name="l05839"></a><span class="lineno"> 5839</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l05840"></a><span class="lineno"> 5840</span>&#160;                                               0, NULL, 0x00,</div>
-<div class="line"><a name="l05841"></a><span class="lineno"> 5841</span>&#160;                                               NULL, 0x00, 0x00);                                           <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l05842"></a><span class="lineno"> 5842</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l05843"></a><span class="lineno"> 5843</span>&#160;                {</div>
-<div class="line"><a name="l05844"></a><span class="lineno"> 5844</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: block erase 64k failed.\n&quot;</span>);                               <span class="comment">/* block erase 64k failed */</span></div>
-<div class="line"><a name="l05845"></a><span class="lineno"> 5845</span>&#160;                   </div>
-<div class="line"><a name="l05846"></a><span class="lineno"> 5846</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l05847"></a><span class="lineno"> 5847</span>&#160;                }</div>
-<div class="line"><a name="l05848"></a><span class="lineno"> 5848</span>&#160;            }</div>
-<div class="line"><a name="l05849"></a><span class="lineno"> 5849</span>&#160;            <span class="keywordflow">else</span></div>
-<div class="line"><a name="l05850"></a><span class="lineno"> 5850</span>&#160;            {</div>
-<div class="line"><a name="l05851"></a><span class="lineno"> 5851</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: address mode is invalid.\n&quot;</span>);                                  <span class="comment">/* address mode is invalid */</span></div>
-<div class="line"><a name="l05852"></a><span class="lineno"> 5852</span>&#160;               </div>
-<div class="line"><a name="l05853"></a><span class="lineno"> 5853</span>&#160;                <span class="keywordflow">return</span> 5;                                                                                   <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l05854"></a><span class="lineno"> 5854</span>&#160;            }</div>
-<div class="line"><a name="l05855"></a><span class="lineno"> 5855</span>&#160;            </div>
-<div class="line"><a name="l05856"></a><span class="lineno"> 5856</span>&#160;            timeout = 2000;                                                                                 <span class="comment">/* max 2000 ms */</span></div>
-<div class="line"><a name="l05857"></a><span class="lineno"> 5857</span>&#160;            <span class="keywordflow">while</span> (timeout != 0)                                                                            <span class="comment">/* check timeout */</span></div>
-<div class="line"><a name="l05858"></a><span class="lineno"> 5858</span>&#160;            {</div>
-<div class="line"><a name="l05859"></a><span class="lineno"> 5859</span>&#160;                res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#adf682969c34f4b31a87dd92dd18ccea3">W25QXX_COMMAND_READ_STATUS_REG1</a>, 1,</div>
-<div class="line"><a name="l05860"></a><span class="lineno"> 5860</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l05861"></a><span class="lineno"> 5861</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l05862"></a><span class="lineno"> 5862</span>&#160;                                               0, NULL, 0,</div>
-<div class="line"><a name="l05863"></a><span class="lineno"> 5863</span>&#160;                                              (uint8_t *)&amp;status, 1, 1);                                    <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l05864"></a><span class="lineno"> 5864</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l05865"></a><span class="lineno"> 5865</span>&#160;                {</div>
-<div class="line"><a name="l05866"></a><span class="lineno"> 5866</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: get status1 failed.\n&quot;</span>);                                   <span class="comment">/* get status1 failed */</span></div>
-<div class="line"><a name="l05867"></a><span class="lineno"> 5867</span>&#160;                   </div>
-<div class="line"><a name="l05868"></a><span class="lineno"> 5868</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l05869"></a><span class="lineno"> 5869</span>&#160;                }</div>
-<div class="line"><a name="l05870"></a><span class="lineno"> 5870</span>&#160;                <span class="keywordflow">if</span> ((status &amp; 0x01) == 0x00)                                                                <span class="comment">/* check status */</span></div>
-<div class="line"><a name="l05871"></a><span class="lineno"> 5871</span>&#160;                {</div>
-<div class="line"><a name="l05872"></a><span class="lineno"> 5872</span>&#160;                    <span class="keywordflow">break</span>;                                                                                  <span class="comment">/* break */</span></div>
-<div class="line"><a name="l05873"></a><span class="lineno"> 5873</span>&#160;                }</div>
-<div class="line"><a name="l05874"></a><span class="lineno"> 5874</span>&#160;                timeout--;                                                                                  <span class="comment">/* timeout-- */</span></div>
-<div class="line"><a name="l05875"></a><span class="lineno"> 5875</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a406c9433252b7366de417b7a60915c81">delay_ms</a>(1);                                                                        <span class="comment">/* delay 1 ms */</span></div>
-<div class="line"><a name="l05876"></a><span class="lineno"> 5876</span>&#160;            }</div>
-<div class="line"><a name="l05877"></a><span class="lineno"> 5877</span>&#160;            <span class="keywordflow">if</span> (timeout == 0)</div>
-<div class="line"><a name="l05878"></a><span class="lineno"> 5878</span>&#160;            {</div>
-<div class="line"><a name="l05879"></a><span class="lineno"> 5879</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: block erase 64k timeout.\n&quot;</span>);                                  <span class="comment">/* block erase 64k timeout */</span></div>
-<div class="line"><a name="l05880"></a><span class="lineno"> 5880</span>&#160;               </div>
-<div class="line"><a name="l05881"></a><span class="lineno"> 5881</span>&#160;                <span class="keywordflow">return</span> 6;                                                                                   <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l05882"></a><span class="lineno"> 5882</span>&#160;            }</div>
-<div class="line"><a name="l05883"></a><span class="lineno"> 5883</span>&#160;        }</div>
-<div class="line"><a name="l05884"></a><span class="lineno"> 5884</span>&#160;        <span class="keywordflow">else</span>                                                                                                <span class="comment">/* single spi */</span></div>
-<div class="line"><a name="l05885"></a><span class="lineno"> 5885</span>&#160;        {</div>
-<div class="line"><a name="l05886"></a><span class="lineno"> 5886</span>&#160;            buf[0] = <a class="code" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>;                                                           <span class="comment">/* write enable command */</span></div>
-<div class="line"><a name="l05887"></a><span class="lineno"> 5887</span>&#160;            res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 1, NULL, 0);                              <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l05888"></a><span class="lineno"> 5888</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                                   <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l05889"></a><span class="lineno"> 5889</span>&#160;            {</div>
-<div class="line"><a name="l05890"></a><span class="lineno"> 5890</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                                      <span class="comment">/* write enable failed */</span></div>
-<div class="line"><a name="l05891"></a><span class="lineno"> 5891</span>&#160;               </div>
-<div class="line"><a name="l05892"></a><span class="lineno"> 5892</span>&#160;                <span class="keywordflow">return</span> 1;                                                                                   <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l05893"></a><span class="lineno"> 5893</span>&#160;            }</div>
-<div class="line"><a name="l05894"></a><span class="lineno"> 5894</span>&#160;            <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                         <span class="comment">/* 3 address mode */</span></div>
-<div class="line"><a name="l05895"></a><span class="lineno"> 5895</span>&#160;            {</div>
-<div class="line"><a name="l05896"></a><span class="lineno"> 5896</span>&#160;                <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)                                                                <span class="comment">/* &gt;128Mb */</span></div>
-<div class="line"><a name="l05897"></a><span class="lineno"> 5897</span>&#160;                {</div>
-<div class="line"><a name="l05898"></a><span class="lineno"> 5898</span>&#160;                    buf[0] = 0xC5;                                                                          <span class="comment">/* write extended addr register command */</span></div>
-<div class="line"><a name="l05899"></a><span class="lineno"> 5899</span>&#160;                    buf[1] = (addr &gt;&gt; 24) &amp; 0xFF;                                                           <span class="comment">/* 31 - 24 bits */</span></div>
-<div class="line"><a name="l05900"></a><span class="lineno"> 5900</span>&#160;                    res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 2, NULL, 0);                      <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l05901"></a><span class="lineno"> 5901</span>&#160;                    <span class="keywordflow">if</span> (res != 0)                                                                           <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l05902"></a><span class="lineno"> 5902</span>&#160;                    {</div>
-<div class="line"><a name="l05903"></a><span class="lineno"> 5903</span>&#160;                        handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write extended addr register failed.\n&quot;</span>);              <span class="comment">/* write extended addr register failed */</span></div>
-<div class="line"><a name="l05904"></a><span class="lineno"> 5904</span>&#160;                       </div>
-<div class="line"><a name="l05905"></a><span class="lineno"> 5905</span>&#160;                        <span class="keywordflow">return</span> 1;                                                                           <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l05906"></a><span class="lineno"> 5906</span>&#160;                    }</div>
-<div class="line"><a name="l05907"></a><span class="lineno"> 5907</span>&#160;                    buf[0] = <a class="code" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>;                                                   <span class="comment">/* write enable command */</span></div>
-<div class="line"><a name="l05908"></a><span class="lineno"> 5908</span>&#160;                    res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 1, NULL, 0);                      <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l05909"></a><span class="lineno"> 5909</span>&#160;                    <span class="keywordflow">if</span> (res != 0)                                                                           <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l05910"></a><span class="lineno"> 5910</span>&#160;                    {</div>
-<div class="line"><a name="l05911"></a><span class="lineno"> 5911</span>&#160;                        handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                              <span class="comment">/* write enable failed */</span></div>
-<div class="line"><a name="l05912"></a><span class="lineno"> 5912</span>&#160;                       </div>
-<div class="line"><a name="l05913"></a><span class="lineno"> 5913</span>&#160;                        <span class="keywordflow">return</span> 1;                                                                           <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l05914"></a><span class="lineno"> 5914</span>&#160;                    }</div>
-<div class="line"><a name="l05915"></a><span class="lineno"> 5915</span>&#160;                }</div>
-<div class="line"><a name="l05916"></a><span class="lineno"> 5916</span>&#160;                buf[0] = <a class="code" href="driver__w25qxx_8c.html#a4c5a1ed46f4d662a61bc06573ab548a0">W25QXX_COMMAND_BLOCK_ERASE_64K</a>;                                                    <span class="comment">/* block erase 64k command */</span></div>
-<div class="line"><a name="l05917"></a><span class="lineno"> 5917</span>&#160;                buf[1] = (addr &gt;&gt; 16) &amp; 0xFF;                                                               <span class="comment">/* 23 - 16 bits */</span></div>
-<div class="line"><a name="l05918"></a><span class="lineno"> 5918</span>&#160;                buf[2] = (addr &gt;&gt; 8) &amp; 0xFF;                                                                <span class="comment">/* 15 - 8  bits */</span></div>
-<div class="line"><a name="l05919"></a><span class="lineno"> 5919</span>&#160;                buf[3] = (addr &gt;&gt; 0) &amp; 0xFF;                                                                <span class="comment">/* 7 - 0 bits */</span></div>
-<div class="line"><a name="l05920"></a><span class="lineno"> 5920</span>&#160;                res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 4, NULL, 0);                          <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l05921"></a><span class="lineno"> 5921</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l05922"></a><span class="lineno"> 5922</span>&#160;                {</div>
-<div class="line"><a name="l05923"></a><span class="lineno"> 5923</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: block erase 64k failed.\n&quot;</span>);                               <span class="comment">/* block erase 64k failed */</span></div>
-<div class="line"><a name="l05924"></a><span class="lineno"> 5924</span>&#160;                   </div>
-<div class="line"><a name="l05925"></a><span class="lineno"> 5925</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l05926"></a><span class="lineno"> 5926</span>&#160;                }</div>
-<div class="line"><a name="l05927"></a><span class="lineno"> 5927</span>&#160;            }</div>
-<div class="line"><a name="l05928"></a><span class="lineno"> 5928</span>&#160;            <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>) &amp;&amp; (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>))</div>
-<div class="line"><a name="l05929"></a><span class="lineno"> 5929</span>&#160;            {</div>
-<div class="line"><a name="l05930"></a><span class="lineno"> 5930</span>&#160;                buf[0] = <a class="code" href="driver__w25qxx_8c.html#a4c5a1ed46f4d662a61bc06573ab548a0">W25QXX_COMMAND_BLOCK_ERASE_64K</a>;                                                    <span class="comment">/* block erase 64k command */</span></div>
-<div class="line"><a name="l05931"></a><span class="lineno"> 5931</span>&#160;                buf[1] = (addr &gt;&gt; 24) &amp; 0xFF;                                                               <span class="comment">/* 31 - 24 bits */</span></div>
-<div class="line"><a name="l05932"></a><span class="lineno"> 5932</span>&#160;                buf[2] = (addr &gt;&gt; 16) &amp; 0xFF;                                                               <span class="comment">/* 23 - 16 bits */</span></div>
-<div class="line"><a name="l05933"></a><span class="lineno"> 5933</span>&#160;                buf[3] = (addr &gt;&gt; 8) &amp; 0xFF;                                                                <span class="comment">/* 15 - 8  bits */</span></div>
-<div class="line"><a name="l05934"></a><span class="lineno"> 5934</span>&#160;                buf[4] = (addr &gt;&gt; 0) &amp; 0xFF;                                                                <span class="comment">/* 7 - 0 bits */</span></div>
-<div class="line"><a name="l05935"></a><span class="lineno"> 5935</span>&#160;                res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 5, NULL, 0);                          <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l05936"></a><span class="lineno"> 5936</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l05937"></a><span class="lineno"> 5937</span>&#160;                {</div>
-<div class="line"><a name="l05938"></a><span class="lineno"> 5938</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: block erase 64k failed.\n&quot;</span>);                               <span class="comment">/* block erase 64k failed */</span></div>
-<div class="line"><a name="l05939"></a><span class="lineno"> 5939</span>&#160;                   </div>
-<div class="line"><a name="l05940"></a><span class="lineno"> 5940</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l05941"></a><span class="lineno"> 5941</span>&#160;                }</div>
-<div class="line"><a name="l05942"></a><span class="lineno"> 5942</span>&#160;            }</div>
-<div class="line"><a name="l05943"></a><span class="lineno"> 5943</span>&#160;            <span class="keywordflow">else</span></div>
-<div class="line"><a name="l05944"></a><span class="lineno"> 5944</span>&#160;            {</div>
-<div class="line"><a name="l05945"></a><span class="lineno"> 5945</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: address mode is invalid.\n&quot;</span>);                                  <span class="comment">/* address mode is invalid */</span></div>
-<div class="line"><a name="l05946"></a><span class="lineno"> 5946</span>&#160;               </div>
-<div class="line"><a name="l05947"></a><span class="lineno"> 5947</span>&#160;                <span class="keywordflow">return</span> 5;                                                                                   <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l05948"></a><span class="lineno"> 5948</span>&#160;            }</div>
-<div class="line"><a name="l05949"></a><span class="lineno"> 5949</span>&#160;            </div>
-<div class="line"><a name="l05950"></a><span class="lineno"> 5950</span>&#160;            timeout = 2000;                                                                                 <span class="comment">/* max 2000 ms */</span></div>
-<div class="line"><a name="l05951"></a><span class="lineno"> 5951</span>&#160;            <span class="keywordflow">while</span> (timeout != 0)                                                                            <span class="comment">/* check timeout */</span></div>
-<div class="line"><a name="l05952"></a><span class="lineno"> 5952</span>&#160;            {</div>
-<div class="line"><a name="l05953"></a><span class="lineno"> 5953</span>&#160;                buf[0] = <a class="code" href="driver__w25qxx_8c.html#adf682969c34f4b31a87dd92dd18ccea3">W25QXX_COMMAND_READ_STATUS_REG1</a>;                                                   <span class="comment">/* read status1 command */</span></div>
-<div class="line"><a name="l05954"></a><span class="lineno"> 5954</span>&#160;                res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 1, (uint8_t *)&amp;status, 1);            <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l05955"></a><span class="lineno"> 5955</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l05956"></a><span class="lineno"> 5956</span>&#160;                {</div>
-<div class="line"><a name="l05957"></a><span class="lineno"> 5957</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: get status1 failed.\n&quot;</span>);                                   <span class="comment">/* get status1 failed */</span></div>
-<div class="line"><a name="l05958"></a><span class="lineno"> 5958</span>&#160;                   </div>
-<div class="line"><a name="l05959"></a><span class="lineno"> 5959</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l05960"></a><span class="lineno"> 5960</span>&#160;                }</div>
-<div class="line"><a name="l05961"></a><span class="lineno"> 5961</span>&#160;                <span class="keywordflow">if</span> ((status &amp; 0x01) == 0x00)                                                                <span class="comment">/* check status */</span></div>
-<div class="line"><a name="l05962"></a><span class="lineno"> 5962</span>&#160;                {</div>
-<div class="line"><a name="l05963"></a><span class="lineno"> 5963</span>&#160;                    <span class="keywordflow">break</span>;                                                                                  <span class="comment">/* break */</span></div>
-<div class="line"><a name="l05964"></a><span class="lineno"> 5964</span>&#160;                }</div>
-<div class="line"><a name="l05965"></a><span class="lineno"> 5965</span>&#160;                timeout--;                                                                                  <span class="comment">/* timeout-- */</span></div>
-<div class="line"><a name="l05966"></a><span class="lineno"> 5966</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a406c9433252b7366de417b7a60915c81">delay_ms</a>(1);                                                                        <span class="comment">/* delay 1 ms */</span></div>
-<div class="line"><a name="l05967"></a><span class="lineno"> 5967</span>&#160;            }</div>
-<div class="line"><a name="l05968"></a><span class="lineno"> 5968</span>&#160;            <span class="keywordflow">if</span> (timeout == 0)</div>
-<div class="line"><a name="l05969"></a><span class="lineno"> 5969</span>&#160;            {</div>
-<div class="line"><a name="l05970"></a><span class="lineno"> 5970</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: block erase 64k timeout.\n&quot;</span>);                                  <span class="comment">/* block erase 64k timeout */</span></div>
-<div class="line"><a name="l05971"></a><span class="lineno"> 5971</span>&#160;               </div>
-<div class="line"><a name="l05972"></a><span class="lineno"> 5972</span>&#160;                <span class="keywordflow">return</span> 6;                                                                                   <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l05973"></a><span class="lineno"> 5973</span>&#160;            }</div>
-<div class="line"><a name="l05974"></a><span class="lineno"> 5974</span>&#160;        }</div>
-<div class="line"><a name="l05975"></a><span class="lineno"> 5975</span>&#160;    }</div>
-<div class="line"><a name="l05976"></a><span class="lineno"> 5976</span>&#160;    <span class="keywordflow">else</span></div>
-<div class="line"><a name="l05977"></a><span class="lineno"> 5977</span>&#160;    {</div>
-<div class="line"><a name="l05978"></a><span class="lineno"> 5978</span>&#160;        res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>, 4,</div>
-<div class="line"><a name="l05979"></a><span class="lineno"> 5979</span>&#160;                                       0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l05980"></a><span class="lineno"> 5980</span>&#160;                                       0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l05981"></a><span class="lineno"> 5981</span>&#160;                                       0x00, NULL, 0x00,</div>
-<div class="line"><a name="l05982"></a><span class="lineno"> 5982</span>&#160;                                       NULL, 0x00, 0x00);                                                   <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l05983"></a><span class="lineno"> 5983</span>&#160;        <span class="keywordflow">if</span> (res != 0)                                                                                       <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l05984"></a><span class="lineno"> 5984</span>&#160;        {</div>
-<div class="line"><a name="l05985"></a><span class="lineno"> 5985</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                                          <span class="comment">/* write enable failed */</span></div>
-<div class="line"><a name="l05986"></a><span class="lineno"> 5986</span>&#160;           </div>
-<div class="line"><a name="l05987"></a><span class="lineno"> 5987</span>&#160;            <span class="keywordflow">return</span> 1;                                                                                       <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l05988"></a><span class="lineno"> 5988</span>&#160;        }</div>
-<div class="line"><a name="l05989"></a><span class="lineno"> 5989</span>&#160;        <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                             <span class="comment">/* 3 address mode */</span></div>
-<div class="line"><a name="l05990"></a><span class="lineno"> 5990</span>&#160;        {</div>
-<div class="line"><a name="l05991"></a><span class="lineno"> 5991</span>&#160;            <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)                                                                    <span class="comment">/* &gt;128Mb */</span></div>
-<div class="line"><a name="l05992"></a><span class="lineno"> 5992</span>&#160;            {</div>
-<div class="line"><a name="l05993"></a><span class="lineno"> 5993</span>&#160;                buf[0] = (addr &gt;&gt; 24) &amp; 0xFF;                                                               <span class="comment">/* 31 - 24 bits */</span></div>
-<div class="line"><a name="l05994"></a><span class="lineno"> 5994</span>&#160;                res = a_w25qxx_qspi_write_read(handle, 0xC5, 4,</div>
-<div class="line"><a name="l05995"></a><span class="lineno"> 5995</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l05996"></a><span class="lineno"> 5996</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l05997"></a><span class="lineno"> 5997</span>&#160;                                               0, (uint8_t *)buf, 0x01,</div>
-<div class="line"><a name="l05998"></a><span class="lineno"> 5998</span>&#160;                                               NULL, 0x00, 4);                                              <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l05999"></a><span class="lineno"> 5999</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l06000"></a><span class="lineno"> 6000</span>&#160;                {</div>
-<div class="line"><a name="l06001"></a><span class="lineno"> 6001</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write extended addr register failed.\n&quot;</span>);                  <span class="comment">/* write extended addr register failed */</span></div>
-<div class="line"><a name="l06002"></a><span class="lineno"> 6002</span>&#160;                   </div>
-<div class="line"><a name="l06003"></a><span class="lineno"> 6003</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l06004"></a><span class="lineno"> 6004</span>&#160;                }</div>
-<div class="line"><a name="l06005"></a><span class="lineno"> 6005</span>&#160;                res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>, 4,</div>
-<div class="line"><a name="l06006"></a><span class="lineno"> 6006</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l06007"></a><span class="lineno"> 6007</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l06008"></a><span class="lineno"> 6008</span>&#160;                                               0x00, NULL, 0x00,</div>
-<div class="line"><a name="l06009"></a><span class="lineno"> 6009</span>&#160;                                               NULL, 0x00, 0x00);                                           <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l06010"></a><span class="lineno"> 6010</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l06011"></a><span class="lineno"> 6011</span>&#160;                {</div>
-<div class="line"><a name="l06012"></a><span class="lineno"> 6012</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                                  <span class="comment">/* write enable failed */</span></div>
-<div class="line"><a name="l06013"></a><span class="lineno"> 6013</span>&#160;                   </div>
-<div class="line"><a name="l06014"></a><span class="lineno"> 6014</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l06015"></a><span class="lineno"> 6015</span>&#160;                }</div>
-<div class="line"><a name="l06016"></a><span class="lineno"> 6016</span>&#160;            }</div>
-<div class="line"><a name="l06017"></a><span class="lineno"> 6017</span>&#160;            res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#a4c5a1ed46f4d662a61bc06573ab548a0">W25QXX_COMMAND_BLOCK_ERASE_64K</a>, 4,</div>
-<div class="line"><a name="l06018"></a><span class="lineno"> 6018</span>&#160;                                           addr, 4, 3,</div>
-<div class="line"><a name="l06019"></a><span class="lineno"> 6019</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l06020"></a><span class="lineno"> 6020</span>&#160;                                           0, NULL, 0x00,</div>
-<div class="line"><a name="l06021"></a><span class="lineno"> 6021</span>&#160;                                           NULL, 0x00, 0x00);                                               <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l06022"></a><span class="lineno"> 6022</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                                   <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l06023"></a><span class="lineno"> 6023</span>&#160;            {</div>
-<div class="line"><a name="l06024"></a><span class="lineno"> 6024</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: block erase 64k failed.\n&quot;</span>);                                   <span class="comment">/* block erase 64k failed */</span></div>
-<div class="line"><a name="l06025"></a><span class="lineno"> 6025</span>&#160;               </div>
-<div class="line"><a name="l06026"></a><span class="lineno"> 6026</span>&#160;                <span class="keywordflow">return</span> 1;                                                                                   <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l06027"></a><span class="lineno"> 6027</span>&#160;            }</div>
-<div class="line"><a name="l06028"></a><span class="lineno"> 6028</span>&#160;        }</div>
-<div class="line"><a name="l06029"></a><span class="lineno"> 6029</span>&#160;        <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>) &amp;&amp; (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>))</div>
-<div class="line"><a name="l06030"></a><span class="lineno"> 6030</span>&#160;        {</div>
-<div class="line"><a name="l06031"></a><span class="lineno"> 6031</span>&#160;            res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#a4c5a1ed46f4d662a61bc06573ab548a0">W25QXX_COMMAND_BLOCK_ERASE_64K</a>, 4,</div>
-<div class="line"><a name="l06032"></a><span class="lineno"> 6032</span>&#160;                                           addr, 4, 4,</div>
-<div class="line"><a name="l06033"></a><span class="lineno"> 6033</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l06034"></a><span class="lineno"> 6034</span>&#160;                                           0, NULL, 0x00,</div>
-<div class="line"><a name="l06035"></a><span class="lineno"> 6035</span>&#160;                                           NULL, 0x00, 0x00);                                               <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l06036"></a><span class="lineno"> 6036</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                                   <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l06037"></a><span class="lineno"> 6037</span>&#160;            {</div>
-<div class="line"><a name="l06038"></a><span class="lineno"> 6038</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: block erase 64k failed.\n&quot;</span>);                                   <span class="comment">/* block erase 64k failed */</span></div>
-<div class="line"><a name="l06039"></a><span class="lineno"> 6039</span>&#160;               </div>
-<div class="line"><a name="l06040"></a><span class="lineno"> 6040</span>&#160;                <span class="keywordflow">return</span> 1;                                                                                   <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l06041"></a><span class="lineno"> 6041</span>&#160;            }</div>
-<div class="line"><a name="l06042"></a><span class="lineno"> 6042</span>&#160;        }</div>
-<div class="line"><a name="l06043"></a><span class="lineno"> 6043</span>&#160;        <span class="keywordflow">else</span></div>
-<div class="line"><a name="l06044"></a><span class="lineno"> 6044</span>&#160;        {</div>
-<div class="line"><a name="l06045"></a><span class="lineno"> 6045</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: address mode is invalid.\n&quot;</span>);                                      <span class="comment">/* address mode is invalid */</span></div>
-<div class="line"><a name="l06046"></a><span class="lineno"> 6046</span>&#160;           </div>
-<div class="line"><a name="l06047"></a><span class="lineno"> 6047</span>&#160;            <span class="keywordflow">return</span> 5;                                                                                       <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l06048"></a><span class="lineno"> 6048</span>&#160;        }</div>
-<div class="line"><a name="l06049"></a><span class="lineno"> 6049</span>&#160;        </div>
-<div class="line"><a name="l06050"></a><span class="lineno"> 6050</span>&#160;        timeout = 2000;                                                                                     <span class="comment">/* max 2000 ms */</span></div>
-<div class="line"><a name="l06051"></a><span class="lineno"> 6051</span>&#160;        <span class="keywordflow">while</span> (timeout != 0)                                                                                <span class="comment">/* check timeout */</span></div>
-<div class="line"><a name="l06052"></a><span class="lineno"> 6052</span>&#160;        {</div>
-<div class="line"><a name="l06053"></a><span class="lineno"> 6053</span>&#160;            res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#adf682969c34f4b31a87dd92dd18ccea3">W25QXX_COMMAND_READ_STATUS_REG1</a>, 4,</div>
-<div class="line"><a name="l06054"></a><span class="lineno"> 6054</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l06055"></a><span class="lineno"> 6055</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l06056"></a><span class="lineno"> 6056</span>&#160;                                           0, NULL, 0,</div>
-<div class="line"><a name="l06057"></a><span class="lineno"> 6057</span>&#160;                                          (uint8_t *)&amp;status, 1, 4);                                        <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l06058"></a><span class="lineno"> 6058</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                                   <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l06059"></a><span class="lineno"> 6059</span>&#160;            {</div>
-<div class="line"><a name="l06060"></a><span class="lineno"> 6060</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: get status1 failed.\n&quot;</span>);                                       <span class="comment">/* get status1 failed */</span></div>
-<div class="line"><a name="l06061"></a><span class="lineno"> 6061</span>&#160;               </div>
-<div class="line"><a name="l06062"></a><span class="lineno"> 6062</span>&#160;                <span class="keywordflow">return</span> 1;                                                                                   <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l06063"></a><span class="lineno"> 6063</span>&#160;            }</div>
-<div class="line"><a name="l06064"></a><span class="lineno"> 6064</span>&#160;            <span class="keywordflow">if</span> ((status &amp; 0x01) == 0x00)                                                                    <span class="comment">/* check status */</span></div>
-<div class="line"><a name="l06065"></a><span class="lineno"> 6065</span>&#160;            {</div>
-<div class="line"><a name="l06066"></a><span class="lineno"> 6066</span>&#160;                <span class="keywordflow">break</span>;                                                                                      <span class="comment">/* break */</span></div>
-<div class="line"><a name="l06067"></a><span class="lineno"> 6067</span>&#160;            }</div>
-<div class="line"><a name="l06068"></a><span class="lineno"> 6068</span>&#160;            timeout--;                                                                                      <span class="comment">/* timeout-- */</span></div>
-<div class="line"><a name="l06069"></a><span class="lineno"> 6069</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a406c9433252b7366de417b7a60915c81">delay_ms</a>(1);                                                                            <span class="comment">/* delay 1 ms */</span></div>
-<div class="line"><a name="l06070"></a><span class="lineno"> 6070</span>&#160;        }</div>
-<div class="line"><a name="l06071"></a><span class="lineno"> 6071</span>&#160;        <span class="keywordflow">if</span> (timeout == 0)</div>
-<div class="line"><a name="l06072"></a><span class="lineno"> 6072</span>&#160;        {</div>
-<div class="line"><a name="l06073"></a><span class="lineno"> 6073</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: block erase 64k timeout.\n&quot;</span>);                                      <span class="comment">/* block erase 64k timeout */</span></div>
-<div class="line"><a name="l06074"></a><span class="lineno"> 6074</span>&#160;           </div>
-<div class="line"><a name="l06075"></a><span class="lineno"> 6075</span>&#160;            <span class="keywordflow">return</span> 6;                                                                                       <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l06076"></a><span class="lineno"> 6076</span>&#160;        }</div>
-<div class="line"><a name="l06077"></a><span class="lineno"> 6077</span>&#160;    }</div>
-<div class="line"><a name="l06078"></a><span class="lineno"> 6078</span>&#160;    </div>
-<div class="line"><a name="l06079"></a><span class="lineno"> 6079</span>&#160;    <span class="keywordflow">return</span> 0;                                                                                               <span class="comment">/* success return 0 */</span></div>
-<div class="line"><a name="l06080"></a><span class="lineno"> 6080</span>&#160;}</div>
-<div class="line"><a name="l06081"></a><span class="lineno"> 6081</span>&#160; </div>
-<div class="line"><a name="l06094"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#ga4f00c2c169cb7c3084841c6cd795e76b"> 6094</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__advance__driver.html#ga4f00c2c169cb7c3084841c6cd795e76b">w25qxx_individual_block_lock</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint32_t addr)</div>
-<div class="line"><a name="l06095"></a><span class="lineno"> 6095</span>&#160;{</div>
-<div class="line"><a name="l06096"></a><span class="lineno"> 6096</span>&#160;    uint8_t res;</div>
-<div class="line"><a name="l06097"></a><span class="lineno"> 6097</span>&#160;    uint8_t buf[5];</div>
-<div class="line"><a name="l06098"></a><span class="lineno"> 6098</span>&#160;    </div>
-<div class="line"><a name="l06099"></a><span class="lineno"> 6099</span>&#160;    <span class="keywordflow">if</span> (handle == NULL)                                                                                     <span class="comment">/* check handle */</span></div>
-<div class="line"><a name="l06100"></a><span class="lineno"> 6100</span>&#160;    {</div>
-<div class="line"><a name="l06101"></a><span class="lineno"> 6101</span>&#160;        <span class="keywordflow">return</span> 2;                                                                                           <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l06102"></a><span class="lineno"> 6102</span>&#160;    }   </div>
-<div class="line"><a name="l06103"></a><span class="lineno"> 6103</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">inited</a> != 1)                                                                                <span class="comment">/* check handle initialization */</span></div>
-<div class="line"><a name="l06104"></a><span class="lineno"> 6104</span>&#160;    {</div>
-<div class="line"><a name="l06105"></a><span class="lineno"> 6105</span>&#160;        <span class="keywordflow">return</span> 3;                                                                                           <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l06106"></a><span class="lineno"> 6106</span>&#160;    }</div>
-<div class="line"><a name="l06107"></a><span class="lineno"> 6107</span>&#160;    </div>
-<div class="line"><a name="l06108"></a><span class="lineno"> 6108</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>)                                                           <span class="comment">/* spi interface */</span></div>
-<div class="line"><a name="l06109"></a><span class="lineno"> 6109</span>&#160;    {</div>
-<div class="line"><a name="l06110"></a><span class="lineno"> 6110</span>&#160;        <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">dual_quad_spi_enable</a> != 0)                                                              <span class="comment">/* enable dual quad spi */</span></div>
-<div class="line"><a name="l06111"></a><span class="lineno"> 6111</span>&#160;        {</div>
-<div class="line"><a name="l06112"></a><span class="lineno"> 6112</span>&#160;            <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                         <span class="comment">/* 3 address mode */</span></div>
-<div class="line"><a name="l06113"></a><span class="lineno"> 6113</span>&#160;            {</div>
-<div class="line"><a name="l06114"></a><span class="lineno"> 6114</span>&#160;                <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)                                                                <span class="comment">/* &gt;128Mb */</span></div>
-<div class="line"><a name="l06115"></a><span class="lineno"> 6115</span>&#160;                {</div>
-<div class="line"><a name="l06116"></a><span class="lineno"> 6116</span>&#160;                    res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>, 1,</div>
-<div class="line"><a name="l06117"></a><span class="lineno"> 6117</span>&#160;                                                   0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l06118"></a><span class="lineno"> 6118</span>&#160;                                                   0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l06119"></a><span class="lineno"> 6119</span>&#160;                                                   0x00, NULL, 0x00,</div>
-<div class="line"><a name="l06120"></a><span class="lineno"> 6120</span>&#160;                                                   NULL, 0x00, 0x00);                                       <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l06121"></a><span class="lineno"> 6121</span>&#160;                    <span class="keywordflow">if</span> (res != 0)                                                                           <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l06122"></a><span class="lineno"> 6122</span>&#160;                    {</div>
-<div class="line"><a name="l06123"></a><span class="lineno"> 6123</span>&#160;                        handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                              <span class="comment">/* write enable failed */</span></div>
-<div class="line"><a name="l06124"></a><span class="lineno"> 6124</span>&#160;                       </div>
-<div class="line"><a name="l06125"></a><span class="lineno"> 6125</span>&#160;                        <span class="keywordflow">return</span> 1;                                                                           <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l06126"></a><span class="lineno"> 6126</span>&#160;                    }</div>
-<div class="line"><a name="l06127"></a><span class="lineno"> 6127</span>&#160;                    buf[0] = (addr &gt;&gt; 24) &amp; 0xFF;                                                           <span class="comment">/* 31 - 24 bits */</span></div>
-<div class="line"><a name="l06128"></a><span class="lineno"> 6128</span>&#160;                    res = a_w25qxx_qspi_write_read(handle, 0xC5, 1,</div>
-<div class="line"><a name="l06129"></a><span class="lineno"> 6129</span>&#160;                                                   0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l06130"></a><span class="lineno"> 6130</span>&#160;                                                   0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l06131"></a><span class="lineno"> 6131</span>&#160;                                                   0, (uint8_t *)buf, 0x01,</div>
-<div class="line"><a name="l06132"></a><span class="lineno"> 6132</span>&#160;                                                   NULL, 0x00, 1);                                          <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l06133"></a><span class="lineno"> 6133</span>&#160;                    <span class="keywordflow">if</span> (res != 0)                                                                           <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l06134"></a><span class="lineno"> 6134</span>&#160;                    {</div>
-<div class="line"><a name="l06135"></a><span class="lineno"> 6135</span>&#160;                        handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write extended addr register failed.\n&quot;</span>);              <span class="comment">/* write extended addr register failed */</span></div>
-<div class="line"><a name="l06136"></a><span class="lineno"> 6136</span>&#160;                       </div>
-<div class="line"><a name="l06137"></a><span class="lineno"> 6137</span>&#160;                        <span class="keywordflow">return</span> 1;                                                                           <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l06138"></a><span class="lineno"> 6138</span>&#160;                    }</div>
-<div class="line"><a name="l06139"></a><span class="lineno"> 6139</span>&#160;                }</div>
-<div class="line"><a name="l06140"></a><span class="lineno"> 6140</span>&#160;                res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#a328f6a9635b1ec6868410375de90b0df">W25QXX_COMMAND_INDIVIDUAL_BLOCK_LOCK</a>, 1,</div>
-<div class="line"><a name="l06141"></a><span class="lineno"> 6141</span>&#160;                                               addr, 1, 3,</div>
-<div class="line"><a name="l06142"></a><span class="lineno"> 6142</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l06143"></a><span class="lineno"> 6143</span>&#160;                                               0, NULL, 0x00,</div>
-<div class="line"><a name="l06144"></a><span class="lineno"> 6144</span>&#160;                                               NULL, 0x00, 0x00);                                           <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l06145"></a><span class="lineno"> 6145</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l06146"></a><span class="lineno"> 6146</span>&#160;                {</div>
-<div class="line"><a name="l06147"></a><span class="lineno"> 6147</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: individual block lock failed.\n&quot;</span>);                         <span class="comment">/* individual block lock failed */</span></div>
-<div class="line"><a name="l06148"></a><span class="lineno"> 6148</span>&#160;                   </div>
-<div class="line"><a name="l06149"></a><span class="lineno"> 6149</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l06150"></a><span class="lineno"> 6150</span>&#160;                }</div>
-<div class="line"><a name="l06151"></a><span class="lineno"> 6151</span>&#160;            }</div>
-<div class="line"><a name="l06152"></a><span class="lineno"> 6152</span>&#160;            <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>) &amp;&amp; (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>))</div>
-<div class="line"><a name="l06153"></a><span class="lineno"> 6153</span>&#160;            {</div>
-<div class="line"><a name="l06154"></a><span class="lineno"> 6154</span>&#160;                res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#a328f6a9635b1ec6868410375de90b0df">W25QXX_COMMAND_INDIVIDUAL_BLOCK_LOCK</a>, 1,</div>
-<div class="line"><a name="l06155"></a><span class="lineno"> 6155</span>&#160;                                               addr, 1, 4,</div>
-<div class="line"><a name="l06156"></a><span class="lineno"> 6156</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l06157"></a><span class="lineno"> 6157</span>&#160;                                               0, NULL, 0x00,</div>
-<div class="line"><a name="l06158"></a><span class="lineno"> 6158</span>&#160;                                               NULL, 0x00, 0x00);                                           <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l06159"></a><span class="lineno"> 6159</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l06160"></a><span class="lineno"> 6160</span>&#160;                {</div>
-<div class="line"><a name="l06161"></a><span class="lineno"> 6161</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: individual block lock failed.\n&quot;</span>);                         <span class="comment">/* individual block lock failed */</span></div>
-<div class="line"><a name="l06162"></a><span class="lineno"> 6162</span>&#160;                   </div>
-<div class="line"><a name="l06163"></a><span class="lineno"> 6163</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l06164"></a><span class="lineno"> 6164</span>&#160;                }</div>
-<div class="line"><a name="l06165"></a><span class="lineno"> 6165</span>&#160;            }</div>
-<div class="line"><a name="l06166"></a><span class="lineno"> 6166</span>&#160;            <span class="keywordflow">else</span></div>
-<div class="line"><a name="l06167"></a><span class="lineno"> 6167</span>&#160;            {</div>
-<div class="line"><a name="l06168"></a><span class="lineno"> 6168</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: address mode is invalid.\n&quot;</span>);                                  <span class="comment">/* address mode is invalid */</span></div>
-<div class="line"><a name="l06169"></a><span class="lineno"> 6169</span>&#160;               </div>
-<div class="line"><a name="l06170"></a><span class="lineno"> 6170</span>&#160;                <span class="keywordflow">return</span> 4;                                                                                   <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l06171"></a><span class="lineno"> 6171</span>&#160;            }</div>
-<div class="line"><a name="l06172"></a><span class="lineno"> 6172</span>&#160;        }</div>
-<div class="line"><a name="l06173"></a><span class="lineno"> 6173</span>&#160;        <span class="keywordflow">else</span>                                                                                                <span class="comment">/* single spi */</span></div>
-<div class="line"><a name="l06174"></a><span class="lineno"> 6174</span>&#160;        {</div>
-<div class="line"><a name="l06175"></a><span class="lineno"> 6175</span>&#160;            <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                         <span class="comment">/* 3 address mode */</span></div>
-<div class="line"><a name="l06176"></a><span class="lineno"> 6176</span>&#160;            {</div>
-<div class="line"><a name="l06177"></a><span class="lineno"> 6177</span>&#160;                <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)                                                                <span class="comment">/* &gt;128Mb */</span></div>
-<div class="line"><a name="l06178"></a><span class="lineno"> 6178</span>&#160;                {</div>
-<div class="line"><a name="l06179"></a><span class="lineno"> 6179</span>&#160;                    buf[0] = <a class="code" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>;                                                   <span class="comment">/* write enable command */</span></div>
-<div class="line"><a name="l06180"></a><span class="lineno"> 6180</span>&#160;                    res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 1, NULL, 0);                      <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l06181"></a><span class="lineno"> 6181</span>&#160;                    <span class="keywordflow">if</span> (res != 0)                                                                           <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l06182"></a><span class="lineno"> 6182</span>&#160;                    {</div>
-<div class="line"><a name="l06183"></a><span class="lineno"> 6183</span>&#160;                        handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                              <span class="comment">/* write enable failed */</span></div>
-<div class="line"><a name="l06184"></a><span class="lineno"> 6184</span>&#160;                       </div>
-<div class="line"><a name="l06185"></a><span class="lineno"> 6185</span>&#160;                        <span class="keywordflow">return</span> 1;                                                                           <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l06186"></a><span class="lineno"> 6186</span>&#160;                    }</div>
-<div class="line"><a name="l06187"></a><span class="lineno"> 6187</span>&#160;                    buf[0] = 0xC5;                                                                          <span class="comment">/* write extended addr register command */</span></div>
-<div class="line"><a name="l06188"></a><span class="lineno"> 6188</span>&#160;                    buf[1] = (addr &gt;&gt; 24) &amp; 0xFF;                                                           <span class="comment">/* 31 - 24 bits */</span></div>
-<div class="line"><a name="l06189"></a><span class="lineno"> 6189</span>&#160;                    res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 2, NULL, 0);                      <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l06190"></a><span class="lineno"> 6190</span>&#160;                    <span class="keywordflow">if</span> (res != 0)                                                                           <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l06191"></a><span class="lineno"> 6191</span>&#160;                    {</div>
-<div class="line"><a name="l06192"></a><span class="lineno"> 6192</span>&#160;                        handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write extended addr register failed.\n&quot;</span>);              <span class="comment">/* write extended addr register failed */</span></div>
-<div class="line"><a name="l06193"></a><span class="lineno"> 6193</span>&#160;                       </div>
-<div class="line"><a name="l06194"></a><span class="lineno"> 6194</span>&#160;                        <span class="keywordflow">return</span> 1;                                                                           <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l06195"></a><span class="lineno"> 6195</span>&#160;                    }</div>
-<div class="line"><a name="l06196"></a><span class="lineno"> 6196</span>&#160;                }</div>
-<div class="line"><a name="l06197"></a><span class="lineno"> 6197</span>&#160;                buf[0] = <a class="code" href="driver__w25qxx_8c.html#a328f6a9635b1ec6868410375de90b0df">W25QXX_COMMAND_INDIVIDUAL_BLOCK_LOCK</a>;                                              <span class="comment">/* individual block lock command */</span></div>
-<div class="line"><a name="l06198"></a><span class="lineno"> 6198</span>&#160;                buf[1] = (addr &gt;&gt; 16) &amp; 0xFF;                                                               <span class="comment">/* 23 - 16 bits */</span></div>
-<div class="line"><a name="l06199"></a><span class="lineno"> 6199</span>&#160;                buf[2] = (addr &gt;&gt; 8) &amp; 0xFF;                                                                <span class="comment">/* 15 - 8  bits */</span></div>
-<div class="line"><a name="l06200"></a><span class="lineno"> 6200</span>&#160;                buf[3] = (addr &gt;&gt; 0) &amp; 0xFF;                                                                <span class="comment">/* 7 - 0 bits */</span></div>
-<div class="line"><a name="l06201"></a><span class="lineno"> 6201</span>&#160;                res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 4, NULL, 0);                          <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l06202"></a><span class="lineno"> 6202</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l06203"></a><span class="lineno"> 6203</span>&#160;                {</div>
-<div class="line"><a name="l06204"></a><span class="lineno"> 6204</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: individual block lock failed.\n&quot;</span>);                         <span class="comment">/* individual block lock failed */</span></div>
-<div class="line"><a name="l06205"></a><span class="lineno"> 6205</span>&#160;                   </div>
-<div class="line"><a name="l06206"></a><span class="lineno"> 6206</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l06207"></a><span class="lineno"> 6207</span>&#160;                }</div>
-<div class="line"><a name="l06208"></a><span class="lineno"> 6208</span>&#160;            }</div>
-<div class="line"><a name="l06209"></a><span class="lineno"> 6209</span>&#160;            <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>) &amp;&amp; (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>))</div>
-<div class="line"><a name="l06210"></a><span class="lineno"> 6210</span>&#160;            {</div>
-<div class="line"><a name="l06211"></a><span class="lineno"> 6211</span>&#160;                buf[0] = <a class="code" href="driver__w25qxx_8c.html#a328f6a9635b1ec6868410375de90b0df">W25QXX_COMMAND_INDIVIDUAL_BLOCK_LOCK</a>;                                              <span class="comment">/* individual block lock command */</span></div>
-<div class="line"><a name="l06212"></a><span class="lineno"> 6212</span>&#160;                buf[1] = (addr &gt;&gt; 24) &amp; 0xFF;                                                               <span class="comment">/* 31 - 24 bits */</span></div>
-<div class="line"><a name="l06213"></a><span class="lineno"> 6213</span>&#160;                buf[2] = (addr &gt;&gt; 16) &amp; 0xFF;                                                               <span class="comment">/* 23 - 16 bits */</span></div>
-<div class="line"><a name="l06214"></a><span class="lineno"> 6214</span>&#160;                buf[3] = (addr &gt;&gt; 8) &amp; 0xFF;                                                                <span class="comment">/* 15 - 8  bits */</span></div>
-<div class="line"><a name="l06215"></a><span class="lineno"> 6215</span>&#160;                buf[4] = (addr &gt;&gt; 0) &amp; 0xFF;                                                                <span class="comment">/* 7 - 0 bits */</span></div>
-<div class="line"><a name="l06216"></a><span class="lineno"> 6216</span>&#160;                res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 5, NULL, 0);                          <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l06217"></a><span class="lineno"> 6217</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l06218"></a><span class="lineno"> 6218</span>&#160;                {</div>
-<div class="line"><a name="l06219"></a><span class="lineno"> 6219</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: individual block lock failed.\n&quot;</span>);                         <span class="comment">/* individual block lock failed */</span></div>
-<div class="line"><a name="l06220"></a><span class="lineno"> 6220</span>&#160;                   </div>
-<div class="line"><a name="l06221"></a><span class="lineno"> 6221</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l06222"></a><span class="lineno"> 6222</span>&#160;                }</div>
-<div class="line"><a name="l06223"></a><span class="lineno"> 6223</span>&#160;            }</div>
-<div class="line"><a name="l06224"></a><span class="lineno"> 6224</span>&#160;            <span class="keywordflow">else</span></div>
-<div class="line"><a name="l06225"></a><span class="lineno"> 6225</span>&#160;            {</div>
-<div class="line"><a name="l06226"></a><span class="lineno"> 6226</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: address mode is invalid.\n&quot;</span>);                                  <span class="comment">/* address mode is invalid */</span></div>
-<div class="line"><a name="l06227"></a><span class="lineno"> 6227</span>&#160;               </div>
-<div class="line"><a name="l06228"></a><span class="lineno"> 6228</span>&#160;                <span class="keywordflow">return</span> 4;                                                                                   <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l06229"></a><span class="lineno"> 6229</span>&#160;            }</div>
-<div class="line"><a name="l06230"></a><span class="lineno"> 6230</span>&#160;        }</div>
-<div class="line"><a name="l06231"></a><span class="lineno"> 6231</span>&#160;    }</div>
-<div class="line"><a name="l06232"></a><span class="lineno"> 6232</span>&#160;    <span class="keywordflow">else</span></div>
-<div class="line"><a name="l06233"></a><span class="lineno"> 6233</span>&#160;    {</div>
-<div class="line"><a name="l06234"></a><span class="lineno"> 6234</span>&#160;        <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                             <span class="comment">/* 3 address mode */</span></div>
-<div class="line"><a name="l06235"></a><span class="lineno"> 6235</span>&#160;        {</div>
-<div class="line"><a name="l06236"></a><span class="lineno"> 6236</span>&#160;            <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)                                                                    <span class="comment">/* &gt;128Mb */</span></div>
-<div class="line"><a name="l06237"></a><span class="lineno"> 6237</span>&#160;            {</div>
-<div class="line"><a name="l06238"></a><span class="lineno"> 6238</span>&#160;                res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>, 4,</div>
-<div class="line"><a name="l06239"></a><span class="lineno"> 6239</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l06240"></a><span class="lineno"> 6240</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l06241"></a><span class="lineno"> 6241</span>&#160;                                               0x00, NULL, 0x00,</div>
-<div class="line"><a name="l06242"></a><span class="lineno"> 6242</span>&#160;                                               NULL, 0x00, 0x00);                                           <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l06243"></a><span class="lineno"> 6243</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l06244"></a><span class="lineno"> 6244</span>&#160;                {</div>
-<div class="line"><a name="l06245"></a><span class="lineno"> 6245</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                                  <span class="comment">/* write enable failed */</span></div>
-<div class="line"><a name="l06246"></a><span class="lineno"> 6246</span>&#160;                   </div>
-<div class="line"><a name="l06247"></a><span class="lineno"> 6247</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l06248"></a><span class="lineno"> 6248</span>&#160;                }</div>
-<div class="line"><a name="l06249"></a><span class="lineno"> 6249</span>&#160;                buf[0] = (addr &gt;&gt; 24) &amp; 0xFF;                                                               <span class="comment">/* 31 - 24 bits */</span></div>
-<div class="line"><a name="l06250"></a><span class="lineno"> 6250</span>&#160;                res = a_w25qxx_qspi_write_read(handle, 0xC5, 4,</div>
-<div class="line"><a name="l06251"></a><span class="lineno"> 6251</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l06252"></a><span class="lineno"> 6252</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l06253"></a><span class="lineno"> 6253</span>&#160;                                               0, (uint8_t *)buf, 0x01,</div>
-<div class="line"><a name="l06254"></a><span class="lineno"> 6254</span>&#160;                                               NULL, 0x00, 4);                                              <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l06255"></a><span class="lineno"> 6255</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l06256"></a><span class="lineno"> 6256</span>&#160;                {</div>
-<div class="line"><a name="l06257"></a><span class="lineno"> 6257</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write extended addr register failed.\n&quot;</span>);                  <span class="comment">/* write extended addr register failed */</span></div>
-<div class="line"><a name="l06258"></a><span class="lineno"> 6258</span>&#160;                   </div>
-<div class="line"><a name="l06259"></a><span class="lineno"> 6259</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l06260"></a><span class="lineno"> 6260</span>&#160;                }</div>
-<div class="line"><a name="l06261"></a><span class="lineno"> 6261</span>&#160;            }</div>
-<div class="line"><a name="l06262"></a><span class="lineno"> 6262</span>&#160;            res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#a328f6a9635b1ec6868410375de90b0df">W25QXX_COMMAND_INDIVIDUAL_BLOCK_LOCK</a>, 4,</div>
-<div class="line"><a name="l06263"></a><span class="lineno"> 6263</span>&#160;                                           addr, 4, 3,</div>
-<div class="line"><a name="l06264"></a><span class="lineno"> 6264</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l06265"></a><span class="lineno"> 6265</span>&#160;                                           0, NULL, 0x00,</div>
-<div class="line"><a name="l06266"></a><span class="lineno"> 6266</span>&#160;                                           NULL, 0x00, 0x00);                                               <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l06267"></a><span class="lineno"> 6267</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                                   <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l06268"></a><span class="lineno"> 6268</span>&#160;            {</div>
-<div class="line"><a name="l06269"></a><span class="lineno"> 6269</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: individual block lock failed.\n&quot;</span>);                             <span class="comment">/* individual block lock failed */</span></div>
-<div class="line"><a name="l06270"></a><span class="lineno"> 6270</span>&#160;               </div>
-<div class="line"><a name="l06271"></a><span class="lineno"> 6271</span>&#160;                <span class="keywordflow">return</span> 1;                                                                                   <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l06272"></a><span class="lineno"> 6272</span>&#160;            }</div>
-<div class="line"><a name="l06273"></a><span class="lineno"> 6273</span>&#160;        }</div>
-<div class="line"><a name="l06274"></a><span class="lineno"> 6274</span>&#160;        <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>) &amp;&amp; (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>))</div>
-<div class="line"><a name="l06275"></a><span class="lineno"> 6275</span>&#160;        {</div>
-<div class="line"><a name="l06276"></a><span class="lineno"> 6276</span>&#160;            res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#a328f6a9635b1ec6868410375de90b0df">W25QXX_COMMAND_INDIVIDUAL_BLOCK_LOCK</a>, 4,</div>
-<div class="line"><a name="l06277"></a><span class="lineno"> 6277</span>&#160;                                           addr, 4, 4,</div>
-<div class="line"><a name="l06278"></a><span class="lineno"> 6278</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l06279"></a><span class="lineno"> 6279</span>&#160;                                           0, NULL, 0x00,</div>
-<div class="line"><a name="l06280"></a><span class="lineno"> 6280</span>&#160;                                           NULL, 0x00, 0x00);                                               <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l06281"></a><span class="lineno"> 6281</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                                   <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l06282"></a><span class="lineno"> 6282</span>&#160;            {</div>
-<div class="line"><a name="l06283"></a><span class="lineno"> 6283</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: individual block lock failed.\n&quot;</span>);                             <span class="comment">/* individual block lock failed */</span></div>
-<div class="line"><a name="l06284"></a><span class="lineno"> 6284</span>&#160;               </div>
-<div class="line"><a name="l06285"></a><span class="lineno"> 6285</span>&#160;                <span class="keywordflow">return</span> 1;                                                                                   <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l06286"></a><span class="lineno"> 6286</span>&#160;            }</div>
-<div class="line"><a name="l06287"></a><span class="lineno"> 6287</span>&#160;        }</div>
-<div class="line"><a name="l06288"></a><span class="lineno"> 6288</span>&#160;        <span class="keywordflow">else</span></div>
-<div class="line"><a name="l06289"></a><span class="lineno"> 6289</span>&#160;        {</div>
-<div class="line"><a name="l06290"></a><span class="lineno"> 6290</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: address mode is invalid.\n&quot;</span>);                                      <span class="comment">/* address mode is invalid */</span></div>
-<div class="line"><a name="l06291"></a><span class="lineno"> 6291</span>&#160;           </div>
-<div class="line"><a name="l06292"></a><span class="lineno"> 6292</span>&#160;            <span class="keywordflow">return</span> 4;                                                                                       <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l06293"></a><span class="lineno"> 6293</span>&#160;        }</div>
-<div class="line"><a name="l06294"></a><span class="lineno"> 6294</span>&#160;    }</div>
-<div class="line"><a name="l06295"></a><span class="lineno"> 6295</span>&#160;    </div>
-<div class="line"><a name="l06296"></a><span class="lineno"> 6296</span>&#160;    <span class="keywordflow">return</span> 0;                                                                                               <span class="comment">/* success return 0 */</span></div>
-<div class="line"><a name="l06297"></a><span class="lineno"> 6297</span>&#160;}</div>
-<div class="line"><a name="l06298"></a><span class="lineno"> 6298</span>&#160; </div>
-<div class="line"><a name="l06311"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#ga7f88cedf7619071b3235ba094915b2a7"> 6311</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__advance__driver.html#ga7f88cedf7619071b3235ba094915b2a7">w25qxx_individual_block_unlock</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint32_t addr)</div>
-<div class="line"><a name="l06312"></a><span class="lineno"> 6312</span>&#160;{</div>
-<div class="line"><a name="l06313"></a><span class="lineno"> 6313</span>&#160;    uint8_t res;</div>
-<div class="line"><a name="l06314"></a><span class="lineno"> 6314</span>&#160;    uint8_t buf[5];</div>
-<div class="line"><a name="l06315"></a><span class="lineno"> 6315</span>&#160;    </div>
-<div class="line"><a name="l06316"></a><span class="lineno"> 6316</span>&#160;    <span class="keywordflow">if</span> (handle == NULL)                                                                                     <span class="comment">/* check handle */</span></div>
-<div class="line"><a name="l06317"></a><span class="lineno"> 6317</span>&#160;    {</div>
-<div class="line"><a name="l06318"></a><span class="lineno"> 6318</span>&#160;        <span class="keywordflow">return</span> 2;                                                                                           <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l06319"></a><span class="lineno"> 6319</span>&#160;    }   </div>
-<div class="line"><a name="l06320"></a><span class="lineno"> 6320</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">inited</a> != 1)                                                                                <span class="comment">/* check handle initialization */</span></div>
-<div class="line"><a name="l06321"></a><span class="lineno"> 6321</span>&#160;    {</div>
-<div class="line"><a name="l06322"></a><span class="lineno"> 6322</span>&#160;        <span class="keywordflow">return</span> 3;                                                                                           <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l06323"></a><span class="lineno"> 6323</span>&#160;    }</div>
-<div class="line"><a name="l06324"></a><span class="lineno"> 6324</span>&#160;    </div>
-<div class="line"><a name="l06325"></a><span class="lineno"> 6325</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>)                                                           <span class="comment">/* spi interface */</span></div>
-<div class="line"><a name="l06326"></a><span class="lineno"> 6326</span>&#160;    {</div>
-<div class="line"><a name="l06327"></a><span class="lineno"> 6327</span>&#160;        <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">dual_quad_spi_enable</a> != 0)                                                              <span class="comment">/* enable dual quad spi */</span></div>
-<div class="line"><a name="l06328"></a><span class="lineno"> 6328</span>&#160;        {</div>
-<div class="line"><a name="l06329"></a><span class="lineno"> 6329</span>&#160;            <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                         <span class="comment">/* 3 address mode */</span></div>
-<div class="line"><a name="l06330"></a><span class="lineno"> 6330</span>&#160;            {</div>
-<div class="line"><a name="l06331"></a><span class="lineno"> 6331</span>&#160;                <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)                                                                <span class="comment">/* &gt;128Mb */</span></div>
-<div class="line"><a name="l06332"></a><span class="lineno"> 6332</span>&#160;                {</div>
-<div class="line"><a name="l06333"></a><span class="lineno"> 6333</span>&#160;                    res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>, 1,</div>
-<div class="line"><a name="l06334"></a><span class="lineno"> 6334</span>&#160;                                                   0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l06335"></a><span class="lineno"> 6335</span>&#160;                                                   0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l06336"></a><span class="lineno"> 6336</span>&#160;                                                   0x00, NULL, 0x00,</div>
-<div class="line"><a name="l06337"></a><span class="lineno"> 6337</span>&#160;                                                   NULL, 0x00, 0x00);                                       <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l06338"></a><span class="lineno"> 6338</span>&#160;                    <span class="keywordflow">if</span> (res != 0)                                                                           <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l06339"></a><span class="lineno"> 6339</span>&#160;                    {</div>
-<div class="line"><a name="l06340"></a><span class="lineno"> 6340</span>&#160;                        handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                              <span class="comment">/* write enable failed */</span></div>
-<div class="line"><a name="l06341"></a><span class="lineno"> 6341</span>&#160;                       </div>
-<div class="line"><a name="l06342"></a><span class="lineno"> 6342</span>&#160;                        <span class="keywordflow">return</span> 1;                                                                           <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l06343"></a><span class="lineno"> 6343</span>&#160;                    }</div>
-<div class="line"><a name="l06344"></a><span class="lineno"> 6344</span>&#160;                    buf[0] = (addr &gt;&gt; 24) &amp; 0xFF;                                                           <span class="comment">/* 31 - 24 bits */</span></div>
-<div class="line"><a name="l06345"></a><span class="lineno"> 6345</span>&#160;                    res = a_w25qxx_qspi_write_read(handle, 0xC5, 1,</div>
-<div class="line"><a name="l06346"></a><span class="lineno"> 6346</span>&#160;                                                   0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l06347"></a><span class="lineno"> 6347</span>&#160;                                                   0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l06348"></a><span class="lineno"> 6348</span>&#160;                                                   0, (uint8_t *)buf, 0x01,</div>
-<div class="line"><a name="l06349"></a><span class="lineno"> 6349</span>&#160;                                                   NULL, 0x00, 1);                                          <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l06350"></a><span class="lineno"> 6350</span>&#160;                    <span class="keywordflow">if</span> (res != 0)                                                                           <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l06351"></a><span class="lineno"> 6351</span>&#160;                    {</div>
-<div class="line"><a name="l06352"></a><span class="lineno"> 6352</span>&#160;                        handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write extended addr register failed.\n&quot;</span>);              <span class="comment">/* write extended addr register failed */</span></div>
-<div class="line"><a name="l06353"></a><span class="lineno"> 6353</span>&#160;                       </div>
-<div class="line"><a name="l06354"></a><span class="lineno"> 6354</span>&#160;                        <span class="keywordflow">return</span> 1;                                                                           <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l06355"></a><span class="lineno"> 6355</span>&#160;                    }</div>
-<div class="line"><a name="l06356"></a><span class="lineno"> 6356</span>&#160;                }</div>
-<div class="line"><a name="l06357"></a><span class="lineno"> 6357</span>&#160;                res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#a3cc8b61583b5eb9d7c1ecd6831689718">W25QXX_COMMAND_INDIVIDUAL_BLOCK_UNLOCK</a>, 1,</div>
-<div class="line"><a name="l06358"></a><span class="lineno"> 6358</span>&#160;                                               addr, 1, 3,</div>
-<div class="line"><a name="l06359"></a><span class="lineno"> 6359</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l06360"></a><span class="lineno"> 6360</span>&#160;                                               0, NULL, 0x00,</div>
-<div class="line"><a name="l06361"></a><span class="lineno"> 6361</span>&#160;                                               NULL, 0x00, 0x00);                                           <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l06362"></a><span class="lineno"> 6362</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l06363"></a><span class="lineno"> 6363</span>&#160;                {</div>
-<div class="line"><a name="l06364"></a><span class="lineno"> 6364</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: individual block unlock failed.\n&quot;</span>);                       <span class="comment">/* individual unblock lock failed */</span></div>
-<div class="line"><a name="l06365"></a><span class="lineno"> 6365</span>&#160;                   </div>
-<div class="line"><a name="l06366"></a><span class="lineno"> 6366</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l06367"></a><span class="lineno"> 6367</span>&#160;                }</div>
-<div class="line"><a name="l06368"></a><span class="lineno"> 6368</span>&#160;            }</div>
-<div class="line"><a name="l06369"></a><span class="lineno"> 6369</span>&#160;            <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>) &amp;&amp; (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>))</div>
-<div class="line"><a name="l06370"></a><span class="lineno"> 6370</span>&#160;            {</div>
-<div class="line"><a name="l06371"></a><span class="lineno"> 6371</span>&#160;                res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#a3cc8b61583b5eb9d7c1ecd6831689718">W25QXX_COMMAND_INDIVIDUAL_BLOCK_UNLOCK</a>, 1,</div>
-<div class="line"><a name="l06372"></a><span class="lineno"> 6372</span>&#160;                                               addr, 1, 4,</div>
-<div class="line"><a name="l06373"></a><span class="lineno"> 6373</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l06374"></a><span class="lineno"> 6374</span>&#160;                                               0, NULL, 0x00,</div>
-<div class="line"><a name="l06375"></a><span class="lineno"> 6375</span>&#160;                                               NULL, 0x00, 0x00);                                           <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l06376"></a><span class="lineno"> 6376</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l06377"></a><span class="lineno"> 6377</span>&#160;                {</div>
-<div class="line"><a name="l06378"></a><span class="lineno"> 6378</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: individual block unlock failed.\n&quot;</span>);                       <span class="comment">/* individual block unlock failed */</span></div>
-<div class="line"><a name="l06379"></a><span class="lineno"> 6379</span>&#160;                   </div>
-<div class="line"><a name="l06380"></a><span class="lineno"> 6380</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l06381"></a><span class="lineno"> 6381</span>&#160;                }</div>
-<div class="line"><a name="l06382"></a><span class="lineno"> 6382</span>&#160;            }</div>
-<div class="line"><a name="l06383"></a><span class="lineno"> 6383</span>&#160;            <span class="keywordflow">else</span></div>
-<div class="line"><a name="l06384"></a><span class="lineno"> 6384</span>&#160;            {</div>
-<div class="line"><a name="l06385"></a><span class="lineno"> 6385</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: address mode is invalid.\n&quot;</span>);                                  <span class="comment">/* address mode is invalid */</span></div>
-<div class="line"><a name="l06386"></a><span class="lineno"> 6386</span>&#160;               </div>
-<div class="line"><a name="l06387"></a><span class="lineno"> 6387</span>&#160;                <span class="keywordflow">return</span> 4;                                                                                   <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l06388"></a><span class="lineno"> 6388</span>&#160;            }</div>
-<div class="line"><a name="l06389"></a><span class="lineno"> 6389</span>&#160;        }</div>
-<div class="line"><a name="l06390"></a><span class="lineno"> 6390</span>&#160;        <span class="keywordflow">else</span>                                                                                                <span class="comment">/* single spi */</span></div>
-<div class="line"><a name="l06391"></a><span class="lineno"> 6391</span>&#160;        {</div>
-<div class="line"><a name="l06392"></a><span class="lineno"> 6392</span>&#160;            <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                         <span class="comment">/* 3 address mode */</span></div>
-<div class="line"><a name="l06393"></a><span class="lineno"> 6393</span>&#160;            {</div>
-<div class="line"><a name="l06394"></a><span class="lineno"> 6394</span>&#160;                <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)                                                                <span class="comment">/* &gt;128Mb */</span></div>
-<div class="line"><a name="l06395"></a><span class="lineno"> 6395</span>&#160;                {</div>
-<div class="line"><a name="l06396"></a><span class="lineno"> 6396</span>&#160;                    buf[0] = <a class="code" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>;                                                   <span class="comment">/* write enable command */</span></div>
-<div class="line"><a name="l06397"></a><span class="lineno"> 6397</span>&#160;                    res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 1, NULL, 0);                      <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l06398"></a><span class="lineno"> 6398</span>&#160;                    <span class="keywordflow">if</span> (res != 0)                                                                           <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l06399"></a><span class="lineno"> 6399</span>&#160;                    {</div>
-<div class="line"><a name="l06400"></a><span class="lineno"> 6400</span>&#160;                        handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                              <span class="comment">/* write enable failed */</span></div>
-<div class="line"><a name="l06401"></a><span class="lineno"> 6401</span>&#160;                       </div>
-<div class="line"><a name="l06402"></a><span class="lineno"> 6402</span>&#160;                        <span class="keywordflow">return</span> 1;                                                                           <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l06403"></a><span class="lineno"> 6403</span>&#160;                    }</div>
-<div class="line"><a name="l06404"></a><span class="lineno"> 6404</span>&#160;                    buf[0] = 0xC5;                                                                          <span class="comment">/* write extended addr register command */</span></div>
-<div class="line"><a name="l06405"></a><span class="lineno"> 6405</span>&#160;                    buf[1] = (addr &gt;&gt; 24) &amp; 0xFF;                                                           <span class="comment">/* 31 - 24 bits */</span></div>
-<div class="line"><a name="l06406"></a><span class="lineno"> 6406</span>&#160;                    res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 2, NULL, 0);                      <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l06407"></a><span class="lineno"> 6407</span>&#160;                    <span class="keywordflow">if</span> (res != 0)                                                                           <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l06408"></a><span class="lineno"> 6408</span>&#160;                    {</div>
-<div class="line"><a name="l06409"></a><span class="lineno"> 6409</span>&#160;                        handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write extended addr register failed.\n&quot;</span>);              <span class="comment">/* write extended addr register failed */</span></div>
-<div class="line"><a name="l06410"></a><span class="lineno"> 6410</span>&#160;                       </div>
-<div class="line"><a name="l06411"></a><span class="lineno"> 6411</span>&#160;                        <span class="keywordflow">return</span> 1;                                                                           <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l06412"></a><span class="lineno"> 6412</span>&#160;                    }</div>
-<div class="line"><a name="l06413"></a><span class="lineno"> 6413</span>&#160;                }</div>
-<div class="line"><a name="l06414"></a><span class="lineno"> 6414</span>&#160;                buf[0] = <a class="code" href="driver__w25qxx_8c.html#a3cc8b61583b5eb9d7c1ecd6831689718">W25QXX_COMMAND_INDIVIDUAL_BLOCK_UNLOCK</a>;                                            <span class="comment">/* individual block unlock command */</span></div>
-<div class="line"><a name="l06415"></a><span class="lineno"> 6415</span>&#160;                buf[1] = (addr &gt;&gt; 16) &amp; 0xFF;                                                               <span class="comment">/* 23 - 16 bits */</span></div>
-<div class="line"><a name="l06416"></a><span class="lineno"> 6416</span>&#160;                buf[2] = (addr &gt;&gt; 8) &amp; 0xFF;                                                                <span class="comment">/* 15 - 8  bits */</span></div>
-<div class="line"><a name="l06417"></a><span class="lineno"> 6417</span>&#160;                buf[3] = (addr &gt;&gt; 0) &amp; 0xFF;                                                                <span class="comment">/* 7 - 0 bits */</span></div>
-<div class="line"><a name="l06418"></a><span class="lineno"> 6418</span>&#160;                res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 4, NULL, 0);                          <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l06419"></a><span class="lineno"> 6419</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l06420"></a><span class="lineno"> 6420</span>&#160;                {</div>
-<div class="line"><a name="l06421"></a><span class="lineno"> 6421</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: individual block unlock failed.\n&quot;</span>);                       <span class="comment">/* individual block unlock failed */</span></div>
-<div class="line"><a name="l06422"></a><span class="lineno"> 6422</span>&#160;                   </div>
-<div class="line"><a name="l06423"></a><span class="lineno"> 6423</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l06424"></a><span class="lineno"> 6424</span>&#160;                }</div>
-<div class="line"><a name="l06425"></a><span class="lineno"> 6425</span>&#160;            }</div>
-<div class="line"><a name="l06426"></a><span class="lineno"> 6426</span>&#160;            <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>) &amp;&amp; (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>))</div>
-<div class="line"><a name="l06427"></a><span class="lineno"> 6427</span>&#160;            {</div>
-<div class="line"><a name="l06428"></a><span class="lineno"> 6428</span>&#160;                buf[0] = <a class="code" href="driver__w25qxx_8c.html#a3cc8b61583b5eb9d7c1ecd6831689718">W25QXX_COMMAND_INDIVIDUAL_BLOCK_UNLOCK</a>;                                            <span class="comment">/* individual block unlock command */</span></div>
-<div class="line"><a name="l06429"></a><span class="lineno"> 6429</span>&#160;                buf[1] = (addr &gt;&gt; 24) &amp; 0xFF;                                                               <span class="comment">/* 31 - 24 bits */</span></div>
-<div class="line"><a name="l06430"></a><span class="lineno"> 6430</span>&#160;                buf[2] = (addr &gt;&gt; 16) &amp; 0xFF;                                                               <span class="comment">/* 23 - 16 bits */</span></div>
-<div class="line"><a name="l06431"></a><span class="lineno"> 6431</span>&#160;                buf[3] = (addr &gt;&gt; 8) &amp; 0xFF;                                                                <span class="comment">/* 15 - 8  bits */</span></div>
-<div class="line"><a name="l06432"></a><span class="lineno"> 6432</span>&#160;                buf[4] = (addr &gt;&gt; 0) &amp; 0xFF;                                                                <span class="comment">/* 7 - 0 bits */</span></div>
-<div class="line"><a name="l06433"></a><span class="lineno"> 6433</span>&#160;                res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 5, NULL, 0);                          <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l06434"></a><span class="lineno"> 6434</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l06435"></a><span class="lineno"> 6435</span>&#160;                {</div>
-<div class="line"><a name="l06436"></a><span class="lineno"> 6436</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: individual block unlock failed.\n&quot;</span>);                       <span class="comment">/* individual block unlock failed */</span></div>
-<div class="line"><a name="l06437"></a><span class="lineno"> 6437</span>&#160;                   </div>
-<div class="line"><a name="l06438"></a><span class="lineno"> 6438</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l06439"></a><span class="lineno"> 6439</span>&#160;                }</div>
-<div class="line"><a name="l06440"></a><span class="lineno"> 6440</span>&#160;            }</div>
-<div class="line"><a name="l06441"></a><span class="lineno"> 6441</span>&#160;            <span class="keywordflow">else</span></div>
-<div class="line"><a name="l06442"></a><span class="lineno"> 6442</span>&#160;            {</div>
-<div class="line"><a name="l06443"></a><span class="lineno"> 6443</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: address mode is invalid.\n&quot;</span>);                                  <span class="comment">/* address mode is invalid */</span></div>
-<div class="line"><a name="l06444"></a><span class="lineno"> 6444</span>&#160;               </div>
-<div class="line"><a name="l06445"></a><span class="lineno"> 6445</span>&#160;                <span class="keywordflow">return</span> 4;                                                                                   <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l06446"></a><span class="lineno"> 6446</span>&#160;            }</div>
-<div class="line"><a name="l06447"></a><span class="lineno"> 6447</span>&#160;        }</div>
-<div class="line"><a name="l06448"></a><span class="lineno"> 6448</span>&#160;    }</div>
-<div class="line"><a name="l06449"></a><span class="lineno"> 6449</span>&#160;    <span class="keywordflow">else</span></div>
-<div class="line"><a name="l06450"></a><span class="lineno"> 6450</span>&#160;    {</div>
-<div class="line"><a name="l06451"></a><span class="lineno"> 6451</span>&#160;        <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                             <span class="comment">/* 3 address mode */</span></div>
-<div class="line"><a name="l06452"></a><span class="lineno"> 6452</span>&#160;        {</div>
-<div class="line"><a name="l06453"></a><span class="lineno"> 6453</span>&#160;            <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)                                                                    <span class="comment">/* &gt;128Mb */</span></div>
-<div class="line"><a name="l06454"></a><span class="lineno"> 6454</span>&#160;            {</div>
-<div class="line"><a name="l06455"></a><span class="lineno"> 6455</span>&#160;                res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>, 4,</div>
-<div class="line"><a name="l06456"></a><span class="lineno"> 6456</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l06457"></a><span class="lineno"> 6457</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l06458"></a><span class="lineno"> 6458</span>&#160;                                               0x00, NULL, 0x00,</div>
-<div class="line"><a name="l06459"></a><span class="lineno"> 6459</span>&#160;                                               NULL, 0x00, 0x00);                                           <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l06460"></a><span class="lineno"> 6460</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l06461"></a><span class="lineno"> 6461</span>&#160;                {</div>
-<div class="line"><a name="l06462"></a><span class="lineno"> 6462</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                                  <span class="comment">/* write enable failed */</span></div>
-<div class="line"><a name="l06463"></a><span class="lineno"> 6463</span>&#160;                   </div>
-<div class="line"><a name="l06464"></a><span class="lineno"> 6464</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l06465"></a><span class="lineno"> 6465</span>&#160;                }</div>
-<div class="line"><a name="l06466"></a><span class="lineno"> 6466</span>&#160;                buf[0] = (addr &gt;&gt; 24) &amp; 0xFF;                                                               <span class="comment">/* 31 - 24 bits */</span></div>
-<div class="line"><a name="l06467"></a><span class="lineno"> 6467</span>&#160;                res = a_w25qxx_qspi_write_read(handle, 0xC5, 4,</div>
-<div class="line"><a name="l06468"></a><span class="lineno"> 6468</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l06469"></a><span class="lineno"> 6469</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l06470"></a><span class="lineno"> 6470</span>&#160;                                               0, (uint8_t *)buf, 0x01,</div>
-<div class="line"><a name="l06471"></a><span class="lineno"> 6471</span>&#160;                                               NULL, 0x00, 4);                                              <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l06472"></a><span class="lineno"> 6472</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l06473"></a><span class="lineno"> 6473</span>&#160;                {</div>
-<div class="line"><a name="l06474"></a><span class="lineno"> 6474</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write extended addr register failed.\n&quot;</span>);                  <span class="comment">/* write extended addr register failed */</span></div>
-<div class="line"><a name="l06475"></a><span class="lineno"> 6475</span>&#160;                   </div>
-<div class="line"><a name="l06476"></a><span class="lineno"> 6476</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l06477"></a><span class="lineno"> 6477</span>&#160;                }</div>
-<div class="line"><a name="l06478"></a><span class="lineno"> 6478</span>&#160;            }</div>
-<div class="line"><a name="l06479"></a><span class="lineno"> 6479</span>&#160;            res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#a3cc8b61583b5eb9d7c1ecd6831689718">W25QXX_COMMAND_INDIVIDUAL_BLOCK_UNLOCK</a>, 4,</div>
-<div class="line"><a name="l06480"></a><span class="lineno"> 6480</span>&#160;                                           addr, 4, 3,</div>
-<div class="line"><a name="l06481"></a><span class="lineno"> 6481</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l06482"></a><span class="lineno"> 6482</span>&#160;                                           0, NULL, 0x00,</div>
-<div class="line"><a name="l06483"></a><span class="lineno"> 6483</span>&#160;                                           NULL, 0x00, 0x00);                                               <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l06484"></a><span class="lineno"> 6484</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                                   <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l06485"></a><span class="lineno"> 6485</span>&#160;            {</div>
-<div class="line"><a name="l06486"></a><span class="lineno"> 6486</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: individual block unlock failed.\n&quot;</span>);                           <span class="comment">/* individual unblock lock failed */</span></div>
-<div class="line"><a name="l06487"></a><span class="lineno"> 6487</span>&#160;               </div>
-<div class="line"><a name="l06488"></a><span class="lineno"> 6488</span>&#160;                <span class="keywordflow">return</span> 1;                                                                                   <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l06489"></a><span class="lineno"> 6489</span>&#160;            }</div>
-<div class="line"><a name="l06490"></a><span class="lineno"> 6490</span>&#160;        }</div>
-<div class="line"><a name="l06491"></a><span class="lineno"> 6491</span>&#160;        <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>) &amp;&amp; (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>))</div>
-<div class="line"><a name="l06492"></a><span class="lineno"> 6492</span>&#160;        {</div>
-<div class="line"><a name="l06493"></a><span class="lineno"> 6493</span>&#160;            res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#a3cc8b61583b5eb9d7c1ecd6831689718">W25QXX_COMMAND_INDIVIDUAL_BLOCK_UNLOCK</a>, 4,</div>
-<div class="line"><a name="l06494"></a><span class="lineno"> 6494</span>&#160;                                           addr, 4, 4,</div>
-<div class="line"><a name="l06495"></a><span class="lineno"> 6495</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l06496"></a><span class="lineno"> 6496</span>&#160;                                           0, NULL, 0x00,</div>
-<div class="line"><a name="l06497"></a><span class="lineno"> 6497</span>&#160;                                           NULL, 0x00, 0x00);                                               <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l06498"></a><span class="lineno"> 6498</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                                   <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l06499"></a><span class="lineno"> 6499</span>&#160;            {</div>
-<div class="line"><a name="l06500"></a><span class="lineno"> 6500</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: individual block unlock failed.\n&quot;</span>);                           <span class="comment">/* individual block unlock failed */</span></div>
-<div class="line"><a name="l06501"></a><span class="lineno"> 6501</span>&#160;               </div>
-<div class="line"><a name="l06502"></a><span class="lineno"> 6502</span>&#160;                <span class="keywordflow">return</span> 1;                                                                                   <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l06503"></a><span class="lineno"> 6503</span>&#160;            }</div>
-<div class="line"><a name="l06504"></a><span class="lineno"> 6504</span>&#160;        }</div>
-<div class="line"><a name="l06505"></a><span class="lineno"> 6505</span>&#160;        <span class="keywordflow">else</span></div>
-<div class="line"><a name="l06506"></a><span class="lineno"> 6506</span>&#160;        {</div>
-<div class="line"><a name="l06507"></a><span class="lineno"> 6507</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: address mode is invalid.\n&quot;</span>);                                      <span class="comment">/* address mode is invalid */</span></div>
-<div class="line"><a name="l06508"></a><span class="lineno"> 6508</span>&#160;           </div>
-<div class="line"><a name="l06509"></a><span class="lineno"> 6509</span>&#160;            <span class="keywordflow">return</span> 4;                                                                                       <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l06510"></a><span class="lineno"> 6510</span>&#160;        }</div>
-<div class="line"><a name="l06511"></a><span class="lineno"> 6511</span>&#160;    }</div>
-<div class="line"><a name="l06512"></a><span class="lineno"> 6512</span>&#160;    </div>
-<div class="line"><a name="l06513"></a><span class="lineno"> 6513</span>&#160;    <span class="keywordflow">return</span> 0;                                                                                               <span class="comment">/* success return 0 */</span></div>
-<div class="line"><a name="l06514"></a><span class="lineno"> 6514</span>&#160;}</div>
-<div class="line"><a name="l06515"></a><span class="lineno"> 6515</span>&#160; </div>
-<div class="line"><a name="l06529"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#ga59e655ca78a175037ca810bbc8539a96"> 6529</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__advance__driver.html#ga59e655ca78a175037ca810bbc8539a96">w25qxx_read_block_lock</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *value)</div>
-<div class="line"><a name="l06530"></a><span class="lineno"> 6530</span>&#160;{</div>
-<div class="line"><a name="l06531"></a><span class="lineno"> 6531</span>&#160;    uint8_t res;</div>
-<div class="line"><a name="l06532"></a><span class="lineno"> 6532</span>&#160;    uint8_t buf[5];</div>
-<div class="line"><a name="l06533"></a><span class="lineno"> 6533</span>&#160;    </div>
-<div class="line"><a name="l06534"></a><span class="lineno"> 6534</span>&#160;    <span class="keywordflow">if</span> (handle == NULL)                                                                                     <span class="comment">/* check handle */</span></div>
-<div class="line"><a name="l06535"></a><span class="lineno"> 6535</span>&#160;    {</div>
-<div class="line"><a name="l06536"></a><span class="lineno"> 6536</span>&#160;        <span class="keywordflow">return</span> 2;                                                                                           <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l06537"></a><span class="lineno"> 6537</span>&#160;    }   </div>
-<div class="line"><a name="l06538"></a><span class="lineno"> 6538</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">inited</a> != 1)                                                                                <span class="comment">/* check handle initialization */</span></div>
-<div class="line"><a name="l06539"></a><span class="lineno"> 6539</span>&#160;    {</div>
-<div class="line"><a name="l06540"></a><span class="lineno"> 6540</span>&#160;        <span class="keywordflow">return</span> 3;                                                                                           <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l06541"></a><span class="lineno"> 6541</span>&#160;    }</div>
-<div class="line"><a name="l06542"></a><span class="lineno"> 6542</span>&#160;    </div>
-<div class="line"><a name="l06543"></a><span class="lineno"> 6543</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>)                                                           <span class="comment">/* spi interface */</span></div>
-<div class="line"><a name="l06544"></a><span class="lineno"> 6544</span>&#160;    {</div>
-<div class="line"><a name="l06545"></a><span class="lineno"> 6545</span>&#160;        <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">dual_quad_spi_enable</a> != 0)                                                              <span class="comment">/* enable dual quad spi */</span></div>
-<div class="line"><a name="l06546"></a><span class="lineno"> 6546</span>&#160;        {</div>
-<div class="line"><a name="l06547"></a><span class="lineno"> 6547</span>&#160;            <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                         <span class="comment">/* 3 address mode */</span></div>
-<div class="line"><a name="l06548"></a><span class="lineno"> 6548</span>&#160;            {</div>
-<div class="line"><a name="l06549"></a><span class="lineno"> 6549</span>&#160;                <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)                                                                <span class="comment">/* &gt;128Mb */</span></div>
-<div class="line"><a name="l06550"></a><span class="lineno"> 6550</span>&#160;                {</div>
-<div class="line"><a name="l06551"></a><span class="lineno"> 6551</span>&#160;                    res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>, 1,</div>
-<div class="line"><a name="l06552"></a><span class="lineno"> 6552</span>&#160;                                                   0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l06553"></a><span class="lineno"> 6553</span>&#160;                                                   0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l06554"></a><span class="lineno"> 6554</span>&#160;                                                   0x00, NULL, 0x00,</div>
-<div class="line"><a name="l06555"></a><span class="lineno"> 6555</span>&#160;                                                   NULL, 0x00, 0x00);                                       <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l06556"></a><span class="lineno"> 6556</span>&#160;                    <span class="keywordflow">if</span> (res != 0)                                                                           <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l06557"></a><span class="lineno"> 6557</span>&#160;                    {</div>
-<div class="line"><a name="l06558"></a><span class="lineno"> 6558</span>&#160;                        handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                              <span class="comment">/* write enable failed */</span></div>
-<div class="line"><a name="l06559"></a><span class="lineno"> 6559</span>&#160;                       </div>
-<div class="line"><a name="l06560"></a><span class="lineno"> 6560</span>&#160;                        <span class="keywordflow">return</span> 1;                                                                           <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l06561"></a><span class="lineno"> 6561</span>&#160;                    }</div>
-<div class="line"><a name="l06562"></a><span class="lineno"> 6562</span>&#160;                    buf[0] = (addr &gt;&gt; 24) &amp; 0xFF;                                                           <span class="comment">/* 31 - 24 bits */</span></div>
-<div class="line"><a name="l06563"></a><span class="lineno"> 6563</span>&#160;                    res = a_w25qxx_qspi_write_read(handle, 0xC5, 1,</div>
-<div class="line"><a name="l06564"></a><span class="lineno"> 6564</span>&#160;                                                   0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l06565"></a><span class="lineno"> 6565</span>&#160;                                                   0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l06566"></a><span class="lineno"> 6566</span>&#160;                                                   0, (uint8_t *)buf, 0x01,</div>
-<div class="line"><a name="l06567"></a><span class="lineno"> 6567</span>&#160;                                                   NULL, 0x00, 1);                                          <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l06568"></a><span class="lineno"> 6568</span>&#160;                    <span class="keywordflow">if</span> (res != 0)                                                                           <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l06569"></a><span class="lineno"> 6569</span>&#160;                    {</div>
-<div class="line"><a name="l06570"></a><span class="lineno"> 6570</span>&#160;                        handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write extended addr register failed.\n&quot;</span>);              <span class="comment">/* write extended addr register failed */</span></div>
-<div class="line"><a name="l06571"></a><span class="lineno"> 6571</span>&#160;                       </div>
-<div class="line"><a name="l06572"></a><span class="lineno"> 6572</span>&#160;                        <span class="keywordflow">return</span> 1;                                                                           <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l06573"></a><span class="lineno"> 6573</span>&#160;                    }</div>
-<div class="line"><a name="l06574"></a><span class="lineno"> 6574</span>&#160;                }</div>
-<div class="line"><a name="l06575"></a><span class="lineno"> 6575</span>&#160;                res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#a19e055bec30de0ad30e7f8ab5feea6a8">W25QXX_COMMAND_READ_BLOCK_LOCK</a>, 1,</div>
-<div class="line"><a name="l06576"></a><span class="lineno"> 6576</span>&#160;                                               addr, 1, 3,</div>
-<div class="line"><a name="l06577"></a><span class="lineno"> 6577</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l06578"></a><span class="lineno"> 6578</span>&#160;                                               0, NULL, 0x00,</div>
-<div class="line"><a name="l06579"></a><span class="lineno"> 6579</span>&#160;                                               value, 1, 1);                                                <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l06580"></a><span class="lineno"> 6580</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l06581"></a><span class="lineno"> 6581</span>&#160;                {</div>
-<div class="line"><a name="l06582"></a><span class="lineno"> 6582</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: read block lock failed.\n&quot;</span>);                               <span class="comment">/* read block lock failed */</span></div>
-<div class="line"><a name="l06583"></a><span class="lineno"> 6583</span>&#160;                   </div>
-<div class="line"><a name="l06584"></a><span class="lineno"> 6584</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l06585"></a><span class="lineno"> 6585</span>&#160;                }</div>
-<div class="line"><a name="l06586"></a><span class="lineno"> 6586</span>&#160;            }</div>
-<div class="line"><a name="l06587"></a><span class="lineno"> 6587</span>&#160;            <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>) &amp;&amp; (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>))</div>
-<div class="line"><a name="l06588"></a><span class="lineno"> 6588</span>&#160;            {</div>
-<div class="line"><a name="l06589"></a><span class="lineno"> 6589</span>&#160;                res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#a19e055bec30de0ad30e7f8ab5feea6a8">W25QXX_COMMAND_READ_BLOCK_LOCK</a>, 1,</div>
-<div class="line"><a name="l06590"></a><span class="lineno"> 6590</span>&#160;                                               addr, 1, 4,</div>
-<div class="line"><a name="l06591"></a><span class="lineno"> 6591</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l06592"></a><span class="lineno"> 6592</span>&#160;                                               0, NULL, 0x00,</div>
-<div class="line"><a name="l06593"></a><span class="lineno"> 6593</span>&#160;                                               value, 1, 1);                                                <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l06594"></a><span class="lineno"> 6594</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l06595"></a><span class="lineno"> 6595</span>&#160;                {</div>
-<div class="line"><a name="l06596"></a><span class="lineno"> 6596</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: read block lock failed.\n&quot;</span>);                               <span class="comment">/* read block lock failed */</span></div>
-<div class="line"><a name="l06597"></a><span class="lineno"> 6597</span>&#160;                   </div>
-<div class="line"><a name="l06598"></a><span class="lineno"> 6598</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l06599"></a><span class="lineno"> 6599</span>&#160;                }</div>
-<div class="line"><a name="l06600"></a><span class="lineno"> 6600</span>&#160;            }</div>
-<div class="line"><a name="l06601"></a><span class="lineno"> 6601</span>&#160;            <span class="keywordflow">else</span></div>
-<div class="line"><a name="l06602"></a><span class="lineno"> 6602</span>&#160;            {</div>
-<div class="line"><a name="l06603"></a><span class="lineno"> 6603</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: address mode is invalid.\n&quot;</span>);                                  <span class="comment">/* address mode is invalid */</span></div>
-<div class="line"><a name="l06604"></a><span class="lineno"> 6604</span>&#160;               </div>
-<div class="line"><a name="l06605"></a><span class="lineno"> 6605</span>&#160;                <span class="keywordflow">return</span> 4;                                                                                   <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l06606"></a><span class="lineno"> 6606</span>&#160;            }</div>
-<div class="line"><a name="l06607"></a><span class="lineno"> 6607</span>&#160;        }</div>
-<div class="line"><a name="l06608"></a><span class="lineno"> 6608</span>&#160;        <span class="keywordflow">else</span>                                                                                                <span class="comment">/* single spi */</span></div>
-<div class="line"><a name="l06609"></a><span class="lineno"> 6609</span>&#160;        {</div>
-<div class="line"><a name="l06610"></a><span class="lineno"> 6610</span>&#160;            <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                         <span class="comment">/* 3 address mode */</span></div>
-<div class="line"><a name="l06611"></a><span class="lineno"> 6611</span>&#160;            {</div>
-<div class="line"><a name="l06612"></a><span class="lineno"> 6612</span>&#160;                <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)                                                                <span class="comment">/* &gt;128Mb */</span></div>
-<div class="line"><a name="l06613"></a><span class="lineno"> 6613</span>&#160;                {</div>
-<div class="line"><a name="l06614"></a><span class="lineno"> 6614</span>&#160;                    buf[0] = <a class="code" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>;                                                   <span class="comment">/* write enable command */</span></div>
-<div class="line"><a name="l06615"></a><span class="lineno"> 6615</span>&#160;                    res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 1, NULL, 0);                      <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l06616"></a><span class="lineno"> 6616</span>&#160;                    <span class="keywordflow">if</span> (res != 0)                                                                           <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l06617"></a><span class="lineno"> 6617</span>&#160;                    {</div>
-<div class="line"><a name="l06618"></a><span class="lineno"> 6618</span>&#160;                        handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                              <span class="comment">/* write enable failed */</span></div>
-<div class="line"><a name="l06619"></a><span class="lineno"> 6619</span>&#160;                       </div>
-<div class="line"><a name="l06620"></a><span class="lineno"> 6620</span>&#160;                        <span class="keywordflow">return</span> 1;                                                                           <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l06621"></a><span class="lineno"> 6621</span>&#160;                    }</div>
-<div class="line"><a name="l06622"></a><span class="lineno"> 6622</span>&#160;                    buf[0] = 0xC5;                                                                          <span class="comment">/* write extended addr register command */</span></div>
-<div class="line"><a name="l06623"></a><span class="lineno"> 6623</span>&#160;                    buf[1] = (addr &gt;&gt; 24) &amp; 0xFF;                                                           <span class="comment">/* 31 - 24 bits */</span></div>
-<div class="line"><a name="l06624"></a><span class="lineno"> 6624</span>&#160;                    res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 2, NULL, 0);                      <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l06625"></a><span class="lineno"> 6625</span>&#160;                    <span class="keywordflow">if</span> (res != 0)                                                                           <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l06626"></a><span class="lineno"> 6626</span>&#160;                    {</div>
-<div class="line"><a name="l06627"></a><span class="lineno"> 6627</span>&#160;                        handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write extended addr register failed.\n&quot;</span>);              <span class="comment">/* write extended addr register failed */</span></div>
-<div class="line"><a name="l06628"></a><span class="lineno"> 6628</span>&#160;                       </div>
-<div class="line"><a name="l06629"></a><span class="lineno"> 6629</span>&#160;                        <span class="keywordflow">return</span> 1;                                                                           <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l06630"></a><span class="lineno"> 6630</span>&#160;                    }</div>
-<div class="line"><a name="l06631"></a><span class="lineno"> 6631</span>&#160;                }</div>
-<div class="line"><a name="l06632"></a><span class="lineno"> 6632</span>&#160;                buf[0] = <a class="code" href="driver__w25qxx_8c.html#a19e055bec30de0ad30e7f8ab5feea6a8">W25QXX_COMMAND_READ_BLOCK_LOCK</a>;                                                    <span class="comment">/* read block lock command */</span></div>
-<div class="line"><a name="l06633"></a><span class="lineno"> 6633</span>&#160;                buf[1] = (addr &gt;&gt; 16) &amp; 0xFF;                                                               <span class="comment">/* 23 - 16 bits */</span></div>
-<div class="line"><a name="l06634"></a><span class="lineno"> 6634</span>&#160;                buf[2] = (addr &gt;&gt; 8) &amp; 0xFF;                                                                <span class="comment">/* 15 - 8  bits */</span></div>
-<div class="line"><a name="l06635"></a><span class="lineno"> 6635</span>&#160;                buf[3] = (addr &gt;&gt; 0) &amp; 0xFF;                                                                <span class="comment">/* 7 - 0 bits */</span></div>
-<div class="line"><a name="l06636"></a><span class="lineno"> 6636</span>&#160;                res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 4, value, 1);                         <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l06637"></a><span class="lineno"> 6637</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l06638"></a><span class="lineno"> 6638</span>&#160;                {</div>
-<div class="line"><a name="l06639"></a><span class="lineno"> 6639</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: read block lock failed.\n&quot;</span>);                               <span class="comment">/* read block lock failed */</span></div>
-<div class="line"><a name="l06640"></a><span class="lineno"> 6640</span>&#160;                   </div>
-<div class="line"><a name="l06641"></a><span class="lineno"> 6641</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l06642"></a><span class="lineno"> 6642</span>&#160;                }</div>
-<div class="line"><a name="l06643"></a><span class="lineno"> 6643</span>&#160;            }</div>
-<div class="line"><a name="l06644"></a><span class="lineno"> 6644</span>&#160;            <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>) &amp;&amp; (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>))</div>
-<div class="line"><a name="l06645"></a><span class="lineno"> 6645</span>&#160;            {</div>
-<div class="line"><a name="l06646"></a><span class="lineno"> 6646</span>&#160;                buf[0] = <a class="code" href="driver__w25qxx_8c.html#a19e055bec30de0ad30e7f8ab5feea6a8">W25QXX_COMMAND_READ_BLOCK_LOCK</a>;                                                    <span class="comment">/* read block lock command */</span></div>
-<div class="line"><a name="l06647"></a><span class="lineno"> 6647</span>&#160;                buf[1] = (addr &gt;&gt; 24) &amp; 0xFF;                                                               <span class="comment">/* 31 - 24 bits */</span></div>
-<div class="line"><a name="l06648"></a><span class="lineno"> 6648</span>&#160;                buf[2] = (addr &gt;&gt; 16) &amp; 0xFF;                                                               <span class="comment">/* 23 - 16 bits */</span></div>
-<div class="line"><a name="l06649"></a><span class="lineno"> 6649</span>&#160;                buf[3] = (addr &gt;&gt; 8) &amp; 0xFF;                                                                <span class="comment">/* 15 - 8  bits */</span></div>
-<div class="line"><a name="l06650"></a><span class="lineno"> 6650</span>&#160;                buf[4] = (addr &gt;&gt; 0) &amp; 0xFF;                                                                <span class="comment">/* 7 - 0 bits */</span></div>
-<div class="line"><a name="l06651"></a><span class="lineno"> 6651</span>&#160;                res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 5, value, 1);                         <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l06652"></a><span class="lineno"> 6652</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l06653"></a><span class="lineno"> 6653</span>&#160;                {</div>
-<div class="line"><a name="l06654"></a><span class="lineno"> 6654</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: read block lock failed.\n&quot;</span>);                               <span class="comment">/* read block lock failed */</span></div>
-<div class="line"><a name="l06655"></a><span class="lineno"> 6655</span>&#160;                   </div>
-<div class="line"><a name="l06656"></a><span class="lineno"> 6656</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l06657"></a><span class="lineno"> 6657</span>&#160;                }</div>
-<div class="line"><a name="l06658"></a><span class="lineno"> 6658</span>&#160;            }</div>
-<div class="line"><a name="l06659"></a><span class="lineno"> 6659</span>&#160;            <span class="keywordflow">else</span></div>
-<div class="line"><a name="l06660"></a><span class="lineno"> 6660</span>&#160;            {</div>
-<div class="line"><a name="l06661"></a><span class="lineno"> 6661</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: address mode is invalid.\n&quot;</span>);                                  <span class="comment">/* address mode is invalid */</span></div>
-<div class="line"><a name="l06662"></a><span class="lineno"> 6662</span>&#160;               </div>
-<div class="line"><a name="l06663"></a><span class="lineno"> 6663</span>&#160;                <span class="keywordflow">return</span> 4;                                                                                   <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l06664"></a><span class="lineno"> 6664</span>&#160;            }</div>
-<div class="line"><a name="l06665"></a><span class="lineno"> 6665</span>&#160;        }</div>
-<div class="line"><a name="l06666"></a><span class="lineno"> 6666</span>&#160;    }</div>
-<div class="line"><a name="l06667"></a><span class="lineno"> 6667</span>&#160;    <span class="keywordflow">else</span></div>
-<div class="line"><a name="l06668"></a><span class="lineno"> 6668</span>&#160;    {</div>
-<div class="line"><a name="l06669"></a><span class="lineno"> 6669</span>&#160;        <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                             <span class="comment">/* 3 address mode */</span></div>
-<div class="line"><a name="l06670"></a><span class="lineno"> 6670</span>&#160;        {</div>
-<div class="line"><a name="l06671"></a><span class="lineno"> 6671</span>&#160;            <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)                                                                    <span class="comment">/* &gt;128Mb */</span></div>
-<div class="line"><a name="l06672"></a><span class="lineno"> 6672</span>&#160;            {</div>
-<div class="line"><a name="l06673"></a><span class="lineno"> 6673</span>&#160;                res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>, 4,</div>
-<div class="line"><a name="l06674"></a><span class="lineno"> 6674</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l06675"></a><span class="lineno"> 6675</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l06676"></a><span class="lineno"> 6676</span>&#160;                                               0x00, NULL, 0x00,</div>
-<div class="line"><a name="l06677"></a><span class="lineno"> 6677</span>&#160;                                               NULL, 0x00, 0x00);                                           <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l06678"></a><span class="lineno"> 6678</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l06679"></a><span class="lineno"> 6679</span>&#160;                {</div>
-<div class="line"><a name="l06680"></a><span class="lineno"> 6680</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                                  <span class="comment">/* write enable failed */</span></div>
-<div class="line"><a name="l06681"></a><span class="lineno"> 6681</span>&#160;                   </div>
-<div class="line"><a name="l06682"></a><span class="lineno"> 6682</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l06683"></a><span class="lineno"> 6683</span>&#160;                }</div>
-<div class="line"><a name="l06684"></a><span class="lineno"> 6684</span>&#160;                buf[0] = (addr &gt;&gt; 24) &amp; 0xFF;                                                               <span class="comment">/* 31 - 24 bits */</span></div>
-<div class="line"><a name="l06685"></a><span class="lineno"> 6685</span>&#160;                res = a_w25qxx_qspi_write_read(handle, 0xC5, 4,</div>
-<div class="line"><a name="l06686"></a><span class="lineno"> 6686</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l06687"></a><span class="lineno"> 6687</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l06688"></a><span class="lineno"> 6688</span>&#160;                                               0, (uint8_t *)buf, 0x01,</div>
-<div class="line"><a name="l06689"></a><span class="lineno"> 6689</span>&#160;                                               NULL, 0x00, 4);                                              <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l06690"></a><span class="lineno"> 6690</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l06691"></a><span class="lineno"> 6691</span>&#160;                {</div>
-<div class="line"><a name="l06692"></a><span class="lineno"> 6692</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write extended addr register failed.\n&quot;</span>);                  <span class="comment">/* write extended addr register failed */</span></div>
-<div class="line"><a name="l06693"></a><span class="lineno"> 6693</span>&#160;                   </div>
-<div class="line"><a name="l06694"></a><span class="lineno"> 6694</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l06695"></a><span class="lineno"> 6695</span>&#160;                }</div>
-<div class="line"><a name="l06696"></a><span class="lineno"> 6696</span>&#160;            }</div>
-<div class="line"><a name="l06697"></a><span class="lineno"> 6697</span>&#160;            res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#a19e055bec30de0ad30e7f8ab5feea6a8">W25QXX_COMMAND_READ_BLOCK_LOCK</a>, 4,</div>
-<div class="line"><a name="l06698"></a><span class="lineno"> 6698</span>&#160;                                           addr, 4, 3,</div>
-<div class="line"><a name="l06699"></a><span class="lineno"> 6699</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l06700"></a><span class="lineno"> 6700</span>&#160;                                           0, NULL, 0x00,</div>
-<div class="line"><a name="l06701"></a><span class="lineno"> 6701</span>&#160;                                           value, 1, 4);                                                    <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l06702"></a><span class="lineno"> 6702</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                                   <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l06703"></a><span class="lineno"> 6703</span>&#160;            {</div>
-<div class="line"><a name="l06704"></a><span class="lineno"> 6704</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: read block lock failed.\n&quot;</span>);                                   <span class="comment">/* read block lock failed */</span></div>
-<div class="line"><a name="l06705"></a><span class="lineno"> 6705</span>&#160;               </div>
-<div class="line"><a name="l06706"></a><span class="lineno"> 6706</span>&#160;                <span class="keywordflow">return</span> 1;                                                                                   <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l06707"></a><span class="lineno"> 6707</span>&#160;            }</div>
-<div class="line"><a name="l06708"></a><span class="lineno"> 6708</span>&#160;        }</div>
-<div class="line"><a name="l06709"></a><span class="lineno"> 6709</span>&#160;        <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>) &amp;&amp; (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>))</div>
-<div class="line"><a name="l06710"></a><span class="lineno"> 6710</span>&#160;        {</div>
-<div class="line"><a name="l06711"></a><span class="lineno"> 6711</span>&#160;            res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#a19e055bec30de0ad30e7f8ab5feea6a8">W25QXX_COMMAND_READ_BLOCK_LOCK</a>, 4,</div>
-<div class="line"><a name="l06712"></a><span class="lineno"> 6712</span>&#160;                                           addr, 4, 4,</div>
-<div class="line"><a name="l06713"></a><span class="lineno"> 6713</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l06714"></a><span class="lineno"> 6714</span>&#160;                                           0, NULL, 0x00,</div>
-<div class="line"><a name="l06715"></a><span class="lineno"> 6715</span>&#160;                                           value, 1, 4);                                                    <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l06716"></a><span class="lineno"> 6716</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                                   <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l06717"></a><span class="lineno"> 6717</span>&#160;            {</div>
-<div class="line"><a name="l06718"></a><span class="lineno"> 6718</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: read block lock failed.\n&quot;</span>);                                   <span class="comment">/* read block lock failed */</span></div>
-<div class="line"><a name="l06719"></a><span class="lineno"> 6719</span>&#160;               </div>
-<div class="line"><a name="l06720"></a><span class="lineno"> 6720</span>&#160;                <span class="keywordflow">return</span> 1;                                                                                   <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l06721"></a><span class="lineno"> 6721</span>&#160;            }</div>
-<div class="line"><a name="l06722"></a><span class="lineno"> 6722</span>&#160;        }</div>
-<div class="line"><a name="l06723"></a><span class="lineno"> 6723</span>&#160;        <span class="keywordflow">else</span></div>
-<div class="line"><a name="l06724"></a><span class="lineno"> 6724</span>&#160;        {</div>
-<div class="line"><a name="l06725"></a><span class="lineno"> 6725</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: address mode is invalid.\n&quot;</span>);                                      <span class="comment">/* address mode is invalid */</span></div>
-<div class="line"><a name="l06726"></a><span class="lineno"> 6726</span>&#160;           </div>
-<div class="line"><a name="l06727"></a><span class="lineno"> 6727</span>&#160;            <span class="keywordflow">return</span> 4;                                                                                       <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l06728"></a><span class="lineno"> 6728</span>&#160;        }</div>
-<div class="line"><a name="l06729"></a><span class="lineno"> 6729</span>&#160;    }</div>
-<div class="line"><a name="l06730"></a><span class="lineno"> 6730</span>&#160;    </div>
-<div class="line"><a name="l06731"></a><span class="lineno"> 6731</span>&#160;    <span class="keywordflow">return</span> 0;                                                                                               <span class="comment">/* success return 0 */</span></div>
-<div class="line"><a name="l06732"></a><span class="lineno"> 6732</span>&#160;}</div>
-<div class="line"><a name="l06733"></a><span class="lineno"> 6733</span>&#160; </div>
-<div class="line"><a name="l06746"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#gac19c1d0f3fd48968ea2a93c1dbe3d75d"> 6746</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__advance__driver.html#gac19c1d0f3fd48968ea2a93c1dbe3d75d">w25qxx_set_burst_with_wrap</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, <a class="code" href="group__w25qxx__advance__driver.html#ga94bbae2bf8906903e8dc2a28c490723d">w25qxx_burst_wrap_t</a> wrap)</div>
-<div class="line"><a name="l06747"></a><span class="lineno"> 6747</span>&#160;{</div>
-<div class="line"><a name="l06748"></a><span class="lineno"> 6748</span>&#160;    uint8_t res;</div>
-<div class="line"><a name="l06749"></a><span class="lineno"> 6749</span>&#160;    uint8_t buf[5];</div>
-<div class="line"><a name="l06750"></a><span class="lineno"> 6750</span>&#160;    </div>
-<div class="line"><a name="l06751"></a><span class="lineno"> 6751</span>&#160;    <span class="keywordflow">if</span> (handle == NULL)                                                              <span class="comment">/* check handle */</span></div>
-<div class="line"><a name="l06752"></a><span class="lineno"> 6752</span>&#160;    {</div>
-<div class="line"><a name="l06753"></a><span class="lineno"> 6753</span>&#160;        <span class="keywordflow">return</span> 2;                                                                    <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l06754"></a><span class="lineno"> 6754</span>&#160;    }   </div>
-<div class="line"><a name="l06755"></a><span class="lineno"> 6755</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">inited</a> != 1)                                                         <span class="comment">/* check handle initialization */</span></div>
-<div class="line"><a name="l06756"></a><span class="lineno"> 6756</span>&#160;    {</div>
-<div class="line"><a name="l06757"></a><span class="lineno"> 6757</span>&#160;        <span class="keywordflow">return</span> 3;                                                                    <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l06758"></a><span class="lineno"> 6758</span>&#160;    }</div>
-<div class="line"><a name="l06759"></a><span class="lineno"> 6759</span>&#160;    </div>
-<div class="line"><a name="l06760"></a><span class="lineno"> 6760</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>)                                    <span class="comment">/* spi interface */</span></div>
-<div class="line"><a name="l06761"></a><span class="lineno"> 6761</span>&#160;    {</div>
-<div class="line"><a name="l06762"></a><span class="lineno"> 6762</span>&#160;        <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">dual_quad_spi_enable</a> != 0)                                       <span class="comment">/* enable dual quad spi */</span></div>
-<div class="line"><a name="l06763"></a><span class="lineno"> 6763</span>&#160;        {</div>
-<div class="line"><a name="l06764"></a><span class="lineno"> 6764</span>&#160;            buf[0] = wrap;</div>
-<div class="line"><a name="l06765"></a><span class="lineno"> 6765</span>&#160;            res = a_w25qxx_qspi_write_read(handle,</div>
-<div class="line"><a name="l06766"></a><span class="lineno"> 6766</span>&#160;                                           <a class="code" href="driver__w25qxx_8c.html#acfb19490258b26729fa83fdd60c4d822">W25QXX_COMMAND_SET_BURST_WITH_WRAP</a>, 1,</div>
-<div class="line"><a name="l06767"></a><span class="lineno"> 6767</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l06768"></a><span class="lineno"> 6768</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l06769"></a><span class="lineno"> 6769</span>&#160;                                           3 * 8, (uint8_t *)buf, 1,</div>
-<div class="line"><a name="l06770"></a><span class="lineno"> 6770</span>&#160;                                           NULL, 0x00, 1);                           <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l06771"></a><span class="lineno"> 6771</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                            <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l06772"></a><span class="lineno"> 6772</span>&#160;            {</div>
-<div class="line"><a name="l06773"></a><span class="lineno"> 6773</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: set burst with wrap failed.\n&quot;</span>);        <span class="comment">/* set burst with wrap failed */</span></div>
-<div class="line"><a name="l06774"></a><span class="lineno"> 6774</span>&#160;               </div>
-<div class="line"><a name="l06775"></a><span class="lineno"> 6775</span>&#160;                <span class="keywordflow">return</span> 1;                                                            <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l06776"></a><span class="lineno"> 6776</span>&#160;            }</div>
-<div class="line"><a name="l06777"></a><span class="lineno"> 6777</span>&#160;        }</div>
-<div class="line"><a name="l06778"></a><span class="lineno"> 6778</span>&#160;        <span class="keywordflow">else</span>                                                                         <span class="comment">/* single spi */</span></div>
-<div class="line"><a name="l06779"></a><span class="lineno"> 6779</span>&#160;        {</div>
-<div class="line"><a name="l06780"></a><span class="lineno"> 6780</span>&#160;            buf[0] = <a class="code" href="driver__w25qxx_8c.html#acfb19490258b26729fa83fdd60c4d822">W25QXX_COMMAND_SET_BURST_WITH_WRAP</a>;                             <span class="comment">/* set burst with wrap command */</span></div>
-<div class="line"><a name="l06781"></a><span class="lineno"> 6781</span>&#160;            buf[1] = 0x00;                                                           <span class="comment">/* dummy */</span></div>
-<div class="line"><a name="l06782"></a><span class="lineno"> 6782</span>&#160;            buf[2] = 0x00;                                                           <span class="comment">/* dummy */</span></div>
-<div class="line"><a name="l06783"></a><span class="lineno"> 6783</span>&#160;            buf[3] = 0x00;                                                           <span class="comment">/* dummy */</span></div>
-<div class="line"><a name="l06784"></a><span class="lineno"> 6784</span>&#160;            buf[4] = wrap;                                                           <span class="comment">/* wrap */</span></div>
-<div class="line"><a name="l06785"></a><span class="lineno"> 6785</span>&#160;            res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 5, NULL, 0);       <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l06786"></a><span class="lineno"> 6786</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                            <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l06787"></a><span class="lineno"> 6787</span>&#160;            {</div>
-<div class="line"><a name="l06788"></a><span class="lineno"> 6788</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: set burst with wrap failed.\n&quot;</span>);        <span class="comment">/* set burst with wrap failed */</span></div>
-<div class="line"><a name="l06789"></a><span class="lineno"> 6789</span>&#160;               </div>
-<div class="line"><a name="l06790"></a><span class="lineno"> 6790</span>&#160;                <span class="keywordflow">return</span> 1;                                                            <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l06791"></a><span class="lineno"> 6791</span>&#160;            }</div>
-<div class="line"><a name="l06792"></a><span class="lineno"> 6792</span>&#160;        }</div>
-<div class="line"><a name="l06793"></a><span class="lineno"> 6793</span>&#160;    }</div>
-<div class="line"><a name="l06794"></a><span class="lineno"> 6794</span>&#160;    <span class="keywordflow">else</span></div>
-<div class="line"><a name="l06795"></a><span class="lineno"> 6795</span>&#160;    {</div>
-<div class="line"><a name="l06796"></a><span class="lineno"> 6796</span>&#160;        handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: qspi can&#39;t use this function.\n&quot;</span>);              <span class="comment">/* qspi can&#39;t use this function */</span></div>
-<div class="line"><a name="l06797"></a><span class="lineno"> 6797</span>&#160;       </div>
-<div class="line"><a name="l06798"></a><span class="lineno"> 6798</span>&#160;        <span class="keywordflow">return</span> 4;                                                                    <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l06799"></a><span class="lineno"> 6799</span>&#160;    }</div>
-<div class="line"><a name="l06800"></a><span class="lineno"> 6800</span>&#160;    </div>
-<div class="line"><a name="l06801"></a><span class="lineno"> 6801</span>&#160;    <span class="keywordflow">return</span> 0;                                                                        <span class="comment">/* success return 0 */</span></div>
-<div class="line"><a name="l06802"></a><span class="lineno"> 6802</span>&#160;}</div>
-<div class="line"><a name="l06803"></a><span class="lineno"> 6803</span>&#160; </div>
-<div class="line"><a name="l06819"></a><span class="lineno"><a class="line" href="group__w25qxx__basic__driver.html#ga8e7a163b3d255b8c7fc035d0d60f2491"> 6819</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__basic__driver.html#ga8e7a163b3d255b8c7fc035d0d60f2491">w25qxx_init</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle)</div>
-<div class="line"><a name="l06820"></a><span class="lineno"> 6820</span>&#160;{</div>
-<div class="line"><a name="l06821"></a><span class="lineno"> 6821</span>&#160;    uint8_t res;</div>
-<div class="line"><a name="l06822"></a><span class="lineno"> 6822</span>&#160;    uint8_t status;</div>
-<div class="line"><a name="l06823"></a><span class="lineno"> 6823</span>&#160;    uint8_t buf[4];</div>
-<div class="line"><a name="l06824"></a><span class="lineno"> 6824</span>&#160;    uint8_t out[2];</div>
-<div class="line"><a name="l06825"></a><span class="lineno"> 6825</span>&#160;    uint16_t id;</div>
-<div class="line"><a name="l06826"></a><span class="lineno"> 6826</span>&#160;    </div>
-<div class="line"><a name="l06827"></a><span class="lineno"> 6827</span>&#160;    <span class="keywordflow">if</span> (handle == NULL)                                                                    <span class="comment">/* check handle */</span></div>
-<div class="line"><a name="l06828"></a><span class="lineno"> 6828</span>&#160;    {</div>
-<div class="line"><a name="l06829"></a><span class="lineno"> 6829</span>&#160;        <span class="keywordflow">return</span> 2;                                                                          <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l06830"></a><span class="lineno"> 6830</span>&#160;    }</div>
-<div class="line"><a name="l06831"></a><span class="lineno"> 6831</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a> == NULL)                                                       <span class="comment">/* check debug_print */</span></div>
-<div class="line"><a name="l06832"></a><span class="lineno"> 6832</span>&#160;    {</div>
-<div class="line"><a name="l06833"></a><span class="lineno"> 6833</span>&#160;        <span class="keywordflow">return</span> 3;                                                                          <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l06834"></a><span class="lineno"> 6834</span>&#160;    }</div>
-<div class="line"><a name="l06835"></a><span class="lineno"> 6835</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#aec834df46e5185868dfdcc6fcec2e801">spi_qspi_init</a> == NULL)                                                     <span class="comment">/* check spi_qspi_init */</span></div>
-<div class="line"><a name="l06836"></a><span class="lineno"> 6836</span>&#160;    {</div>
-<div class="line"><a name="l06837"></a><span class="lineno"> 6837</span>&#160;        handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: spi_qspi_init is null.\n&quot;</span>);                           <span class="comment">/* spi_qspi_init is null */</span></div>
-<div class="line"><a name="l06838"></a><span class="lineno"> 6838</span>&#160;       </div>
-<div class="line"><a name="l06839"></a><span class="lineno"> 6839</span>&#160;        <span class="keywordflow">return</span> 3;                                                                          <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l06840"></a><span class="lineno"> 6840</span>&#160;    }</div>
-<div class="line"><a name="l06841"></a><span class="lineno"> 6841</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a4568e23228174b7d32678d9a96d2420c">spi_qspi_deinit</a> == NULL)                                                   <span class="comment">/* check spi_qspi_deinit */</span></div>
-<div class="line"><a name="l06842"></a><span class="lineno"> 6842</span>&#160;    {</div>
-<div class="line"><a name="l06843"></a><span class="lineno"> 6843</span>&#160;        handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: spi_qspi_deinit is null.\n&quot;</span>);                         <span class="comment">/* spi_qspi_deinit is null */</span></div>
-<div class="line"><a name="l06844"></a><span class="lineno"> 6844</span>&#160;       </div>
-<div class="line"><a name="l06845"></a><span class="lineno"> 6845</span>&#160;        <span class="keywordflow">return</span> 3;                                                                          <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l06846"></a><span class="lineno"> 6846</span>&#160;    }</div>
-<div class="line"><a name="l06847"></a><span class="lineno"> 6847</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a2d39cde883403779e3da9dd39c32bec5">spi_qspi_write_read</a> == NULL)                                               <span class="comment">/* check spi_qspi_write_read */</span></div>
-<div class="line"><a name="l06848"></a><span class="lineno"> 6848</span>&#160;    {</div>
-<div class="line"><a name="l06849"></a><span class="lineno"> 6849</span>&#160;        handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: spi_qspi_write_read is null.\n&quot;</span>);                     <span class="comment">/* spi_qspi_write_read is null */</span></div>
-<div class="line"><a name="l06850"></a><span class="lineno"> 6850</span>&#160;       </div>
-<div class="line"><a name="l06851"></a><span class="lineno"> 6851</span>&#160;        <span class="keywordflow">return</span> 3;                                                                          <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l06852"></a><span class="lineno"> 6852</span>&#160;    }</div>
-<div class="line"><a name="l06853"></a><span class="lineno"> 6853</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a97ffc4fce945527bd6ab25a3596caef7">delay_us</a> == NULL)                                                          <span class="comment">/* check delay_us */</span></div>
-<div class="line"><a name="l06854"></a><span class="lineno"> 6854</span>&#160;    {</div>
-<div class="line"><a name="l06855"></a><span class="lineno"> 6855</span>&#160;        handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: delay_us is null.\n&quot;</span>);                                <span class="comment">/* delay_us is null */</span></div>
-<div class="line"><a name="l06856"></a><span class="lineno"> 6856</span>&#160;       </div>
-<div class="line"><a name="l06857"></a><span class="lineno"> 6857</span>&#160;        <span class="keywordflow">return</span> 3;                                                                          <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l06858"></a><span class="lineno"> 6858</span>&#160;    }</div>
-<div class="line"><a name="l06859"></a><span class="lineno"> 6859</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a406c9433252b7366de417b7a60915c81">delay_ms</a> == NULL)                                                          <span class="comment">/* check delay_ms */</span></div>
-<div class="line"><a name="l06860"></a><span class="lineno"> 6860</span>&#160;    {</div>
-<div class="line"><a name="l06861"></a><span class="lineno"> 6861</span>&#160;        handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: delay_ms is null.\n&quot;</span>);                                <span class="comment">/* delay_ms is null */</span></div>
-<div class="line"><a name="l06862"></a><span class="lineno"> 6862</span>&#160;       </div>
-<div class="line"><a name="l06863"></a><span class="lineno"> 6863</span>&#160;        <span class="keywordflow">return</span> 3;                                                                          <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l06864"></a><span class="lineno"> 6864</span>&#160;    }</div>
-<div class="line"><a name="l06865"></a><span class="lineno"> 6865</span>&#160;    </div>
-<div class="line"><a name="l06866"></a><span class="lineno"> 6866</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>)                                          <span class="comment">/* spi interface */</span></div>
-<div class="line"><a name="l06867"></a><span class="lineno"> 6867</span>&#160;    {</div>
-<div class="line"><a name="l06868"></a><span class="lineno"> 6868</span>&#160;        res = handle-&gt;<a class="code" href="structw25qxx__handle__s.html#aec834df46e5185868dfdcc6fcec2e801">spi_qspi_init</a>();                                                     <span class="comment">/* spi init */</span></div>
-<div class="line"><a name="l06869"></a><span class="lineno"> 6869</span>&#160;        <span class="keywordflow">if</span> (res != 0)                                                                      <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l06870"></a><span class="lineno"> 6870</span>&#160;        {</div>
-<div class="line"><a name="l06871"></a><span class="lineno"> 6871</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: spi init failed.\n&quot;</span>);                             <span class="comment">/* spi init failed */</span></div>
-<div class="line"><a name="l06872"></a><span class="lineno"> 6872</span>&#160;           </div>
-<div class="line"><a name="l06873"></a><span class="lineno"> 6873</span>&#160;            <span class="keywordflow">return</span> 1;                                                                      <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l06874"></a><span class="lineno"> 6874</span>&#160;        }</div>
-<div class="line"><a name="l06875"></a><span class="lineno"> 6875</span>&#160;        <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">dual_quad_spi_enable</a> != 0)                                             <span class="comment">/* enable dual quad spi */</span></div>
-<div class="line"><a name="l06876"></a><span class="lineno"> 6876</span>&#160;        {</div>
-<div class="line"><a name="l06877"></a><span class="lineno"> 6877</span>&#160;            res = a_w25qxx_qspi_write_read(handle,</div>
-<div class="line"><a name="l06878"></a><span class="lineno"> 6878</span>&#160;                                           <a class="code" href="driver__w25qxx_8c.html#ad344065461b2c71521017984f040b425">W25QXX_COMMAND_RELEASE_POWER_DOWN</a>, 1,</div>
-<div class="line"><a name="l06879"></a><span class="lineno"> 6879</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l06880"></a><span class="lineno"> 6880</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l06881"></a><span class="lineno"> 6881</span>&#160;                                           3 * 8, NULL, 0x00,</div>
-<div class="line"><a name="l06882"></a><span class="lineno"> 6882</span>&#160;                                          (uint8_t *)&amp;<span class="keywordtype">id</span>, 1, 1);                           <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l06883"></a><span class="lineno"> 6883</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                  <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l06884"></a><span class="lineno"> 6884</span>&#160;            {</div>
-<div class="line"><a name="l06885"></a><span class="lineno"> 6885</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: release power down failed.\n&quot;</span>);               <span class="comment">/* release power down failed */</span></div>
-<div class="line"><a name="l06886"></a><span class="lineno"> 6886</span>&#160;                (void)handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a4568e23228174b7d32678d9a96d2420c">spi_qspi_deinit</a>();                                           </div>
-<div class="line"><a name="l06888"></a><span class="lineno"> 6888</span>&#160;                <span class="keywordflow">return</span> 1;                                                                  <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l06889"></a><span class="lineno"> 6889</span>&#160;            }</div>
-<div class="line"><a name="l06890"></a><span class="lineno"> 6890</span>&#160;            res = a_w25qxx_qspi_write_read(handle,</div>
-<div class="line"><a name="l06891"></a><span class="lineno"> 6891</span>&#160;                                           <a class="code" href="driver__w25qxx_8c.html#a6dae3a832abc19d1861fafb32f231d94">W25QXX_COMMAND_ENABLE_RESET</a>, 1,</div>
-<div class="line"><a name="l06892"></a><span class="lineno"> 6892</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l06893"></a><span class="lineno"> 6893</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l06894"></a><span class="lineno"> 6894</span>&#160;                                           0x00, NULL, 0x00,</div>
-<div class="line"><a name="l06895"></a><span class="lineno"> 6895</span>&#160;                                           NULL, 0x00, 0x00);                              <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l06896"></a><span class="lineno"> 6896</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                  <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l06897"></a><span class="lineno"> 6897</span>&#160;            {</div>
-<div class="line"><a name="l06898"></a><span class="lineno"> 6898</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: enable reset failed.\n&quot;</span>);                     <span class="comment">/* enable reset failed */</span></div>
-<div class="line"><a name="l06899"></a><span class="lineno"> 6899</span>&#160;                (void)handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a4568e23228174b7d32678d9a96d2420c">spi_qspi_deinit</a>();                                           </div>
-<div class="line"><a name="l06901"></a><span class="lineno"> 6901</span>&#160;                <span class="keywordflow">return</span> 7;                                                                  <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l06902"></a><span class="lineno"> 6902</span>&#160;            }</div>
-<div class="line"><a name="l06903"></a><span class="lineno"> 6903</span>&#160;            res = a_w25qxx_qspi_write_read(handle,</div>
-<div class="line"><a name="l06904"></a><span class="lineno"> 6904</span>&#160;                                           <a class="code" href="driver__w25qxx_8c.html#ab25182298c921c8f7f42216e0d5aa56b">W25QXX_COMMAND_RESET_DEVICE</a>, 1,</div>
-<div class="line"><a name="l06905"></a><span class="lineno"> 6905</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l06906"></a><span class="lineno"> 6906</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l06907"></a><span class="lineno"> 6907</span>&#160;                                           0x00, NULL, 0x00,</div>
-<div class="line"><a name="l06908"></a><span class="lineno"> 6908</span>&#160;                                           NULL, 0x00, 0x00);                              <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l06909"></a><span class="lineno"> 6909</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                  <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l06910"></a><span class="lineno"> 6910</span>&#160;            {</div>
-<div class="line"><a name="l06911"></a><span class="lineno"> 6911</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: reset device failed.\n&quot;</span>);                     <span class="comment">/* reset device failed */</span></div>
-<div class="line"><a name="l06912"></a><span class="lineno"> 6912</span>&#160;                (void)handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a4568e23228174b7d32678d9a96d2420c">spi_qspi_deinit</a>();                                           </div>
-<div class="line"><a name="l06914"></a><span class="lineno"> 6914</span>&#160;                <span class="keywordflow">return</span> 7;                                                                  <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l06915"></a><span class="lineno"> 6915</span>&#160;            }</div>
-<div class="line"><a name="l06916"></a><span class="lineno"> 6916</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a406c9433252b7366de417b7a60915c81">delay_ms</a>(10);                                                          <span class="comment">/* delay 10 ms */</span></div>
-<div class="line"><a name="l06917"></a><span class="lineno"> 6917</span>&#160;            res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#af6d9a5bc0b57b041e22af80b85e53f56">W25QXX_COMMAND_READ_MANUFACTURER</a>, 1,</div>
-<div class="line"><a name="l06918"></a><span class="lineno"> 6918</span>&#160;                                           0x00000000, 1, 3,</div>
-<div class="line"><a name="l06919"></a><span class="lineno"> 6919</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l06920"></a><span class="lineno"> 6920</span>&#160;                                           0, NULL, 0x00,</div>
-<div class="line"><a name="l06921"></a><span class="lineno"> 6921</span>&#160;                                          (uint8_t *)out, 2, 1);                           <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l06922"></a><span class="lineno"> 6922</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                  <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l06923"></a><span class="lineno"> 6923</span>&#160;            {</div>
-<div class="line"><a name="l06924"></a><span class="lineno"> 6924</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: get manufacturer device id failed.\n&quot;</span>);       <span class="comment">/* get manufacturer device id failed */</span></div>
-<div class="line"><a name="l06925"></a><span class="lineno"> 6925</span>&#160;                (void)handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a4568e23228174b7d32678d9a96d2420c">spi_qspi_deinit</a>();                                           </div>
-<div class="line"><a name="l06927"></a><span class="lineno"> 6927</span>&#160;                <span class="keywordflow">return</span> 1;                                                                  <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l06928"></a><span class="lineno"> 6928</span>&#160;            }</div>
-<div class="line"><a name="l06929"></a><span class="lineno"> 6929</span>&#160;            <span class="keywordtype">id</span> = (uint16_t)out[0] &lt;&lt; 8 | out[1];                                           <span class="comment">/* set id */</span></div>
-<div class="line"><a name="l06930"></a><span class="lineno"> 6930</span>&#160;            <span class="keywordflow">if</span> (<span class="keywordtype">id</span> != handle-&gt;<a class="code" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a>)                                                        <span class="comment">/* check id */</span></div>
-<div class="line"><a name="l06931"></a><span class="lineno"> 6931</span>&#160;            {</div>
-<div class="line"><a name="l06932"></a><span class="lineno"> 6932</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: id is invalid.\n&quot;</span>);                           <span class="comment">/* id is invalid */</span></div>
-<div class="line"><a name="l06933"></a><span class="lineno"> 6933</span>&#160;                (void)handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a4568e23228174b7d32678d9a96d2420c">spi_qspi_deinit</a>();                                           </div>
-<div class="line"><a name="l06935"></a><span class="lineno"> 6935</span>&#160;                <span class="keywordflow">return</span> 6;                                                                  <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l06936"></a><span class="lineno"> 6936</span>&#160;            }</div>
-<div class="line"><a name="l06937"></a><span class="lineno"> 6937</span>&#160;            <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)</div>
-<div class="line"><a name="l06938"></a><span class="lineno"> 6938</span>&#160;            {</div>
-<div class="line"><a name="l06939"></a><span class="lineno"> 6939</span>&#160;                res = a_w25qxx_qspi_write_read(handle, 0xE9, 1,</div>
-<div class="line"><a name="l06940"></a><span class="lineno"> 6940</span>&#160;                                               0x00000000, 0, 0,</div>
-<div class="line"><a name="l06941"></a><span class="lineno"> 6941</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l06942"></a><span class="lineno"> 6942</span>&#160;                                               0, NULL, 0x00,</div>
-<div class="line"><a name="l06943"></a><span class="lineno"> 6943</span>&#160;                                               NULL, 0, 0);                                <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l06944"></a><span class="lineno"> 6944</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                              <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l06945"></a><span class="lineno"> 6945</span>&#160;                {</div>
-<div class="line"><a name="l06946"></a><span class="lineno"> 6946</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: enter 3 byte mode failed.\n&quot;</span>);            <span class="comment">/* enter 3 byte mode failed */</span></div>
-<div class="line"><a name="l06947"></a><span class="lineno"> 6947</span>&#160;                    (void)handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a4568e23228174b7d32678d9a96d2420c">spi_qspi_deinit</a>();                                       </div>
-<div class="line"><a name="l06949"></a><span class="lineno"> 6949</span>&#160;                    <span class="keywordflow">return</span> 1;                                                              <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l06950"></a><span class="lineno"> 6950</span>&#160;                }</div>
-<div class="line"><a name="l06951"></a><span class="lineno"> 6951</span>&#160;            }</div>
-<div class="line"><a name="l06952"></a><span class="lineno"> 6952</span>&#160;        }</div>
-<div class="line"><a name="l06953"></a><span class="lineno"> 6953</span>&#160;        <span class="keywordflow">else</span>                                                                               <span class="comment">/* single spi */</span></div>
-<div class="line"><a name="l06954"></a><span class="lineno"> 6954</span>&#160;        {</div>
-<div class="line"><a name="l06955"></a><span class="lineno"> 6955</span>&#160;            buf[0] = <a class="code" href="driver__w25qxx_8c.html#ad344065461b2c71521017984f040b425">W25QXX_COMMAND_RELEASE_POWER_DOWN</a>;                                    <span class="comment">/* release power down command */</span></div>
-<div class="line"><a name="l06956"></a><span class="lineno"> 6956</span>&#160;            buf[1] = 0xFF;                                                                 <span class="comment">/* dummy */</span></div>
-<div class="line"><a name="l06957"></a><span class="lineno"> 6957</span>&#160;            buf[2] = 0xFF;                                                                 <span class="comment">/* dummy */</span></div>
-<div class="line"><a name="l06958"></a><span class="lineno"> 6958</span>&#160;            buf[3] = 0xFF;                                                                 <span class="comment">/* dummy */</span></div>
-<div class="line"><a name="l06959"></a><span class="lineno"> 6959</span>&#160;            res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 4,</div>
-<div class="line"><a name="l06960"></a><span class="lineno"> 6960</span>&#160;                                         (uint8_t *)&amp;<span class="keywordtype">id</span>, 1);                               <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l06961"></a><span class="lineno"> 6961</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                  <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l06962"></a><span class="lineno"> 6962</span>&#160;            {</div>
-<div class="line"><a name="l06963"></a><span class="lineno"> 6963</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: release power down failed.\n&quot;</span>);               <span class="comment">/* release power down failed */</span></div>
-<div class="line"><a name="l06964"></a><span class="lineno"> 6964</span>&#160;                (void)handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a4568e23228174b7d32678d9a96d2420c">spi_qspi_deinit</a>();                                           </div>
-<div class="line"><a name="l06966"></a><span class="lineno"> 6966</span>&#160;                <span class="keywordflow">return</span> 1;                                                                  <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l06967"></a><span class="lineno"> 6967</span>&#160;            }</div>
-<div class="line"><a name="l06968"></a><span class="lineno"> 6968</span>&#160;            buf[0] = <a class="code" href="driver__w25qxx_8c.html#a6dae3a832abc19d1861fafb32f231d94">W25QXX_COMMAND_ENABLE_RESET</a>;                                          <span class="comment">/* enable reset command */</span></div>
-<div class="line"><a name="l06969"></a><span class="lineno"> 6969</span>&#160;            res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 1, NULL, 0);             <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l06970"></a><span class="lineno"> 6970</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                  <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l06971"></a><span class="lineno"> 6971</span>&#160;            {</div>
-<div class="line"><a name="l06972"></a><span class="lineno"> 6972</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: enable reset failed.\n&quot;</span>);                     <span class="comment">/* enable reset failed */</span></div>
-<div class="line"><a name="l06973"></a><span class="lineno"> 6973</span>&#160;                (void)handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a4568e23228174b7d32678d9a96d2420c">spi_qspi_deinit</a>();                                           </div>
-<div class="line"><a name="l06975"></a><span class="lineno"> 6975</span>&#160;                <span class="keywordflow">return</span> 7;                                                                  <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l06976"></a><span class="lineno"> 6976</span>&#160;            }</div>
-<div class="line"><a name="l06977"></a><span class="lineno"> 6977</span>&#160;            buf[0] = <a class="code" href="driver__w25qxx_8c.html#ab25182298c921c8f7f42216e0d5aa56b">W25QXX_COMMAND_RESET_DEVICE</a>;                                          <span class="comment">/* reset device command */</span></div>
-<div class="line"><a name="l06978"></a><span class="lineno"> 6978</span>&#160;            res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 1, NULL, 0);             <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l06979"></a><span class="lineno"> 6979</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                  <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l06980"></a><span class="lineno"> 6980</span>&#160;            {</div>
-<div class="line"><a name="l06981"></a><span class="lineno"> 6981</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: reset device failed.\n&quot;</span>);                     <span class="comment">/* reset device failed */</span></div>
-<div class="line"><a name="l06982"></a><span class="lineno"> 6982</span>&#160;                (void)handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a4568e23228174b7d32678d9a96d2420c">spi_qspi_deinit</a>();                                           </div>
-<div class="line"><a name="l06984"></a><span class="lineno"> 6984</span>&#160;                <span class="keywordflow">return</span> 7;                                                                  <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l06985"></a><span class="lineno"> 6985</span>&#160;            }</div>
-<div class="line"><a name="l06986"></a><span class="lineno"> 6986</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a406c9433252b7366de417b7a60915c81">delay_ms</a>(10);                                                          <span class="comment">/* delay 10 ms */</span></div>
-<div class="line"><a name="l06987"></a><span class="lineno"> 6987</span>&#160;            buf[0] = <a class="code" href="driver__w25qxx_8c.html#af6d9a5bc0b57b041e22af80b85e53f56">W25QXX_COMMAND_READ_MANUFACTURER</a>;                                     <span class="comment">/* read manufacturer command */</span></div>
-<div class="line"><a name="l06988"></a><span class="lineno"> 6988</span>&#160;            buf[1] = 0x00;                                                                 <span class="comment">/* dummy */</span></div>
-<div class="line"><a name="l06989"></a><span class="lineno"> 6989</span>&#160;            buf[2] = 0x00;                                                                 <span class="comment">/* dummy */</span></div>
-<div class="line"><a name="l06990"></a><span class="lineno"> 6990</span>&#160;            buf[3] = 0x00;                                                                 <span class="comment">/* dummy */</span></div>
-<div class="line"><a name="l06991"></a><span class="lineno"> 6991</span>&#160;            res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 4,</div>
-<div class="line"><a name="l06992"></a><span class="lineno"> 6992</span>&#160;                                         (uint8_t *)out, 2);                               <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l06993"></a><span class="lineno"> 6993</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                  <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l06994"></a><span class="lineno"> 6994</span>&#160;            {</div>
-<div class="line"><a name="l06995"></a><span class="lineno"> 6995</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: get manufacturer device id failed.\n&quot;</span>);       <span class="comment">/* get manufacturer device id failed */</span></div>
-<div class="line"><a name="l06996"></a><span class="lineno"> 6996</span>&#160;                (void)handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a4568e23228174b7d32678d9a96d2420c">spi_qspi_deinit</a>();                                           </div>
-<div class="line"><a name="l06998"></a><span class="lineno"> 6998</span>&#160;                <span class="keywordflow">return</span> 4;                                                                  <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l06999"></a><span class="lineno"> 6999</span>&#160;            }</div>
-<div class="line"><a name="l07000"></a><span class="lineno"> 7000</span>&#160;            <span class="keywordtype">id</span> = (uint16_t)out[0] &lt;&lt; 8 | out[1];                                           <span class="comment">/* set id */</span></div>
-<div class="line"><a name="l07001"></a><span class="lineno"> 7001</span>&#160;            <span class="keywordflow">if</span> (<span class="keywordtype">id</span> != handle-&gt;<a class="code" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a>)                                                        <span class="comment">/* check id */</span></div>
-<div class="line"><a name="l07002"></a><span class="lineno"> 7002</span>&#160;            {</div>
-<div class="line"><a name="l07003"></a><span class="lineno"> 7003</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: id is invalid.\n&quot;</span>);                           <span class="comment">/* id is invalid */</span></div>
-<div class="line"><a name="l07004"></a><span class="lineno"> 7004</span>&#160;                (void)handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a4568e23228174b7d32678d9a96d2420c">spi_qspi_deinit</a>();                                           </div>
-<div class="line"><a name="l07006"></a><span class="lineno"> 7006</span>&#160;                <span class="keywordflow">return</span> 6;                                                                  <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l07007"></a><span class="lineno"> 7007</span>&#160;            }</div>
-<div class="line"><a name="l07008"></a><span class="lineno"> 7008</span>&#160;            <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)</div>
-<div class="line"><a name="l07009"></a><span class="lineno"> 7009</span>&#160;            {</div>
-<div class="line"><a name="l07010"></a><span class="lineno"> 7010</span>&#160;                buf[0] = 0xE9;                                                             <span class="comment">/* 3 byte mode */</span></div>
-<div class="line"><a name="l07011"></a><span class="lineno"> 7011</span>&#160;                res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 1, NULL, 0);         <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l07012"></a><span class="lineno"> 7012</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                              <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l07013"></a><span class="lineno"> 7013</span>&#160;                {</div>
-<div class="line"><a name="l07014"></a><span class="lineno"> 7014</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: set address mode failed.\n&quot;</span>);             <span class="comment">/* set address mode failed */</span></div>
-<div class="line"><a name="l07015"></a><span class="lineno"> 7015</span>&#160;                    (void)handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a4568e23228174b7d32678d9a96d2420c">spi_qspi_deinit</a>();                                       </div>
-<div class="line"><a name="l07017"></a><span class="lineno"> 7017</span>&#160;                    <span class="keywordflow">return</span> 8;                                                              <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l07018"></a><span class="lineno"> 7018</span>&#160;                }</div>
-<div class="line"><a name="l07019"></a><span class="lineno"> 7019</span>&#160;            }</div>
-<div class="line"><a name="l07020"></a><span class="lineno"> 7020</span>&#160;        }</div>
-<div class="line"><a name="l07021"></a><span class="lineno"> 7021</span>&#160;    }</div>
-<div class="line"><a name="l07022"></a><span class="lineno"> 7022</span>&#160;    <span class="keywordflow">else</span></div>
-<div class="line"><a name="l07023"></a><span class="lineno"> 7023</span>&#160;    {</div>
-<div class="line"><a name="l07024"></a><span class="lineno"> 7024</span>&#160;        res = handle-&gt;<a class="code" href="structw25qxx__handle__s.html#aec834df46e5185868dfdcc6fcec2e801">spi_qspi_init</a>();                                                     <span class="comment">/* qspi init */</span></div>
-<div class="line"><a name="l07025"></a><span class="lineno"> 7025</span>&#160;        <span class="keywordflow">if</span> (res != 0)                                                                      <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l07026"></a><span class="lineno"> 7026</span>&#160;        {</div>
-<div class="line"><a name="l07027"></a><span class="lineno"> 7027</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: qspi init failed.\n&quot;</span>);                            <span class="comment">/* qspi init failed */</span></div>
-<div class="line"><a name="l07028"></a><span class="lineno"> 7028</span>&#160;           </div>
-<div class="line"><a name="l07029"></a><span class="lineno"> 7029</span>&#160;            <span class="keywordflow">return</span> 1;                                                                      <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l07030"></a><span class="lineno"> 7030</span>&#160;        }</div>
-<div class="line"><a name="l07031"></a><span class="lineno"> 7031</span>&#160;        res = a_w25qxx_qspi_write_read(handle,</div>
-<div class="line"><a name="l07032"></a><span class="lineno"> 7032</span>&#160;                                       <a class="code" href="driver__w25qxx_8c.html#ad344065461b2c71521017984f040b425">W25QXX_COMMAND_RELEASE_POWER_DOWN</a>, 1,</div>
-<div class="line"><a name="l07033"></a><span class="lineno"> 7033</span>&#160;                                       0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l07034"></a><span class="lineno"> 7034</span>&#160;                                       0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l07035"></a><span class="lineno"> 7035</span>&#160;                                       3 * 8, NULL, 0x00,</div>
-<div class="line"><a name="l07036"></a><span class="lineno"> 7036</span>&#160;                                      (uint8_t *)&amp;<span class="keywordtype">id</span>, 1, 1);                               <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l07037"></a><span class="lineno"> 7037</span>&#160;        <span class="keywordflow">if</span> (res != 0)                                                                      <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l07038"></a><span class="lineno"> 7038</span>&#160;        {</div>
-<div class="line"><a name="l07039"></a><span class="lineno"> 7039</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: release power down failed.\n&quot;</span>);                   <span class="comment">/* release power down failed */</span></div>
-<div class="line"><a name="l07040"></a><span class="lineno"> 7040</span>&#160;            (void)handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a4568e23228174b7d32678d9a96d2420c">spi_qspi_deinit</a>();                                               </div>
-<div class="line"><a name="l07042"></a><span class="lineno"> 7042</span>&#160;            <span class="keywordflow">return</span> 1;                                                                      <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l07043"></a><span class="lineno"> 7043</span>&#160;        }</div>
-<div class="line"><a name="l07044"></a><span class="lineno"> 7044</span>&#160;        res = a_w25qxx_qspi_write_read(handle,</div>
-<div class="line"><a name="l07045"></a><span class="lineno"> 7045</span>&#160;                                       <a class="code" href="driver__w25qxx_8c.html#a6dae3a832abc19d1861fafb32f231d94">W25QXX_COMMAND_ENABLE_RESET</a>, 1,</div>
-<div class="line"><a name="l07046"></a><span class="lineno"> 7046</span>&#160;                                       0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l07047"></a><span class="lineno"> 7047</span>&#160;                                       0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l07048"></a><span class="lineno"> 7048</span>&#160;                                       0x00, NULL, 0x00,</div>
-<div class="line"><a name="l07049"></a><span class="lineno"> 7049</span>&#160;                                       NULL, 0x00, 0x00);                                  <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l07050"></a><span class="lineno"> 7050</span>&#160;        <span class="keywordflow">if</span> (res != 0)                                                                      <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l07051"></a><span class="lineno"> 7051</span>&#160;        {</div>
-<div class="line"><a name="l07052"></a><span class="lineno"> 7052</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: enable reset failed.\n&quot;</span>);                         <span class="comment">/* enable reset failed */</span></div>
-<div class="line"><a name="l07053"></a><span class="lineno"> 7053</span>&#160;            (void)handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a4568e23228174b7d32678d9a96d2420c">spi_qspi_deinit</a>();                                               </div>
-<div class="line"><a name="l07055"></a><span class="lineno"> 7055</span>&#160;            <span class="keywordflow">return</span> 7;                                                                      <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l07056"></a><span class="lineno"> 7056</span>&#160;        }</div>
-<div class="line"><a name="l07057"></a><span class="lineno"> 7057</span>&#160;        res = a_w25qxx_qspi_write_read(handle,</div>
-<div class="line"><a name="l07058"></a><span class="lineno"> 7058</span>&#160;                                       <a class="code" href="driver__w25qxx_8c.html#ab25182298c921c8f7f42216e0d5aa56b">W25QXX_COMMAND_RESET_DEVICE</a>, 1,</div>
-<div class="line"><a name="l07059"></a><span class="lineno"> 7059</span>&#160;                                       0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l07060"></a><span class="lineno"> 7060</span>&#160;                                       0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l07061"></a><span class="lineno"> 7061</span>&#160;                                       0x00, NULL, 0x00,</div>
-<div class="line"><a name="l07062"></a><span class="lineno"> 7062</span>&#160;                                       NULL, 0x00, 0x00);                                  <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l07063"></a><span class="lineno"> 7063</span>&#160;        <span class="keywordflow">if</span> (res != 0)                                                                      <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l07064"></a><span class="lineno"> 7064</span>&#160;        {</div>
-<div class="line"><a name="l07065"></a><span class="lineno"> 7065</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: reset device failed.\n&quot;</span>);                         <span class="comment">/* reset device failed */</span></div>
-<div class="line"><a name="l07066"></a><span class="lineno"> 7066</span>&#160;            (void)handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a4568e23228174b7d32678d9a96d2420c">spi_qspi_deinit</a>();                                               </div>
-<div class="line"><a name="l07068"></a><span class="lineno"> 7068</span>&#160;            <span class="keywordflow">return</span> 7;                                                                      <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l07069"></a><span class="lineno"> 7069</span>&#160;        }</div>
-<div class="line"><a name="l07070"></a><span class="lineno"> 7070</span>&#160;        handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a406c9433252b7366de417b7a60915c81">delay_ms</a>(10);                                                              <span class="comment">/* delay 10 ms */</span></div>
-<div class="line"><a name="l07071"></a><span class="lineno"> 7071</span>&#160;        res = a_w25qxx_qspi_write_read(handle,</div>
-<div class="line"><a name="l07072"></a><span class="lineno"> 7072</span>&#160;                                       <a class="code" href="driver__w25qxx_8c.html#a4a8cdc5b6ce75029df877263bdf35f2a">W25QXX_COMMAND_READ_STATUS_REG2</a>, 1,</div>
-<div class="line"><a name="l07073"></a><span class="lineno"> 7073</span>&#160;                                       0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l07074"></a><span class="lineno"> 7074</span>&#160;                                       0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l07075"></a><span class="lineno"> 7075</span>&#160;                                       0x00, NULL, 0x00,</div>
-<div class="line"><a name="l07076"></a><span class="lineno"> 7076</span>&#160;                                      (uint8_t *)&amp;status, 1, 1);                           <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l07077"></a><span class="lineno"> 7077</span>&#160;        <span class="keywordflow">if</span> (res != 0)                                                                      <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l07078"></a><span class="lineno"> 7078</span>&#160;        {</div>
-<div class="line"><a name="l07079"></a><span class="lineno"> 7079</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: read status 2 failed.\n&quot;</span>);                        <span class="comment">/* read status 2 failed */</span></div>
-<div class="line"><a name="l07080"></a><span class="lineno"> 7080</span>&#160;            (void)handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a4568e23228174b7d32678d9a96d2420c">spi_qspi_deinit</a>();                                               </div>
-<div class="line"><a name="l07082"></a><span class="lineno"> 7082</span>&#160;            <span class="keywordflow">return</span> 5;                                                                      <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l07083"></a><span class="lineno"> 7083</span>&#160;        }</div>
-<div class="line"><a name="l07084"></a><span class="lineno"> 7084</span>&#160;        <span class="keywordflow">if</span> ((status &amp; 0x02) == 0)                                                          <span class="comment">/* check status */</span></div>
-<div class="line"><a name="l07085"></a><span class="lineno"> 7085</span>&#160;        {</div>
-<div class="line"><a name="l07086"></a><span class="lineno"> 7086</span>&#160;            res = a_w25qxx_qspi_write_read(handle,</div>
-<div class="line"><a name="l07087"></a><span class="lineno"> 7087</span>&#160;                                           <a class="code" href="driver__w25qxx_8c.html#a7c9e980e30f499dd97b02935c91f2c02">W25QXX_COMMAND_VOLATILE_SR_WRITE_ENABLE</a>, 1,</div>
-<div class="line"><a name="l07088"></a><span class="lineno"> 7088</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l07089"></a><span class="lineno"> 7089</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l07090"></a><span class="lineno"> 7090</span>&#160;                                           0x00, NULL, 0x00,</div>
-<div class="line"><a name="l07091"></a><span class="lineno"> 7091</span>&#160;                                           NULL, 0x00, 0x00);                              <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l07092"></a><span class="lineno"> 7092</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                  <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l07093"></a><span class="lineno"> 7093</span>&#160;            {</div>
-<div class="line"><a name="l07094"></a><span class="lineno"> 7094</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: set sr write enable failed.\n&quot;</span>);              <span class="comment">/* set sr write enable failed */</span></div>
-<div class="line"><a name="l07095"></a><span class="lineno"> 7095</span>&#160;                (void)handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a4568e23228174b7d32678d9a96d2420c">spi_qspi_deinit</a>();                                           </div>
-<div class="line"><a name="l07097"></a><span class="lineno"> 7097</span>&#160;                <span class="keywordflow">return</span> 5;                                                                  <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l07098"></a><span class="lineno"> 7098</span>&#160;            }</div>
-<div class="line"><a name="l07099"></a><span class="lineno"> 7099</span>&#160;            res = a_w25qxx_qspi_write_read(handle,</div>
-<div class="line"><a name="l07100"></a><span class="lineno"> 7100</span>&#160;                                           <a class="code" href="driver__w25qxx_8c.html#a4be10ed873d56bb183d9b1bde9105135">W25QXX_COMMAND_WRITE_STATUS_REG2</a>, 1,</div>
-<div class="line"><a name="l07101"></a><span class="lineno"> 7101</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l07102"></a><span class="lineno"> 7102</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l07103"></a><span class="lineno"> 7103</span>&#160;                                           0x00, NULL, 0x00,</div>
-<div class="line"><a name="l07104"></a><span class="lineno"> 7104</span>&#160;                                           NULL, 0x00, 0x00);                              <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l07105"></a><span class="lineno"> 7105</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                  <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l07106"></a><span class="lineno"> 7106</span>&#160;            {</div>
-<div class="line"><a name="l07107"></a><span class="lineno"> 7107</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write status 2 failed.\n&quot;</span>);                   <span class="comment">/* write status 2 failed */</span></div>
-<div class="line"><a name="l07108"></a><span class="lineno"> 7108</span>&#160;                (void)handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a4568e23228174b7d32678d9a96d2420c">spi_qspi_deinit</a>();                                           </div>
-<div class="line"><a name="l07110"></a><span class="lineno"> 7110</span>&#160;                <span class="keywordflow">return</span> 5;                                                                  <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l07111"></a><span class="lineno"> 7111</span>&#160;            }</div>
-<div class="line"><a name="l07112"></a><span class="lineno"> 7112</span>&#160;        }</div>
-<div class="line"><a name="l07113"></a><span class="lineno"> 7113</span>&#160;        res = a_w25qxx_qspi_write_read(handle,</div>
-<div class="line"><a name="l07114"></a><span class="lineno"> 7114</span>&#160;                                       <a class="code" href="driver__w25qxx_8c.html#a052d5373086b473bf0d450ea1bd73828">W25QXX_COMMAND_ENTER_QSPI_MODE</a>, 1,</div>
-<div class="line"><a name="l07115"></a><span class="lineno"> 7115</span>&#160;                                       0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l07116"></a><span class="lineno"> 7116</span>&#160;                                       0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l07117"></a><span class="lineno"> 7117</span>&#160;                                       0x00, NULL, 0x00,</div>
-<div class="line"><a name="l07118"></a><span class="lineno"> 7118</span>&#160;                                       NULL, 0x00, 0x00);                                  <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l07119"></a><span class="lineno"> 7119</span>&#160;        <span class="keywordflow">if</span> (res != 0)                                                                      <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l07120"></a><span class="lineno"> 7120</span>&#160;        {</div>
-<div class="line"><a name="l07121"></a><span class="lineno"> 7121</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: enter qspi failed.\n&quot;</span>);                           <span class="comment">/* enter qspi failed */</span></div>
-<div class="line"><a name="l07122"></a><span class="lineno"> 7122</span>&#160;            (void)handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a4568e23228174b7d32678d9a96d2420c">spi_qspi_deinit</a>();                                               </div>
-<div class="line"><a name="l07124"></a><span class="lineno"> 7124</span>&#160;            <span class="keywordflow">return</span> 5;                                                                      <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l07125"></a><span class="lineno"> 7125</span>&#160;        }</div>
-<div class="line"><a name="l07126"></a><span class="lineno"> 7126</span>&#160;        handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a406c9433252b7366de417b7a60915c81">delay_ms</a>(10);                                                              <span class="comment">/* delay 10 ms */</span></div>
-<div class="line"><a name="l07127"></a><span class="lineno"> 7127</span>&#160;        buf[0] = 3 &lt;&lt; 4;                                                                   <span class="comment">/* set 8 read dummy */</span></div>
-<div class="line"><a name="l07128"></a><span class="lineno"> 7128</span>&#160;        handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a3d28993689552e18d554dc0644efcf16">param</a> = buf[0];                                                            <span class="comment">/* set param */</span></div>
-<div class="line"><a name="l07129"></a><span class="lineno"> 7129</span>&#160;        handle-&gt;<a class="code" href="structw25qxx__handle__s.html#aff7b59f569ec689a7580bd6911daafd5">dummy</a> = 8;                                                                 <span class="comment">/* set dummy */</span></div>
-<div class="line"><a name="l07130"></a><span class="lineno"> 7130</span>&#160;        res = a_w25qxx_qspi_write_read(handle, 0xC0, 4,</div>
-<div class="line"><a name="l07131"></a><span class="lineno"> 7131</span>&#160;                                       0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l07132"></a><span class="lineno"> 7132</span>&#160;                                       0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l07133"></a><span class="lineno"> 7133</span>&#160;                                       0, (uint8_t *)buf, 1,</div>
-<div class="line"><a name="l07134"></a><span class="lineno"> 7134</span>&#160;                                       NULL, 0x00, 4);                                     <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l07135"></a><span class="lineno"> 7135</span>&#160;        <span class="keywordflow">if</span> (res != 0)                                                                      <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l07136"></a><span class="lineno"> 7136</span>&#160;        {</div>
-<div class="line"><a name="l07137"></a><span class="lineno"> 7137</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: set read parameters failed.\n&quot;</span>);                  <span class="comment">/* set read parameters failed */</span></div>
-<div class="line"><a name="l07138"></a><span class="lineno"> 7138</span>&#160;            (void)handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a4568e23228174b7d32678d9a96d2420c">spi_qspi_deinit</a>();                                               </div>
-<div class="line"><a name="l07140"></a><span class="lineno"> 7140</span>&#160;            <span class="keywordflow">return</span> 5;                                                                      <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l07141"></a><span class="lineno"> 7141</span>&#160;        }</div>
-<div class="line"><a name="l07142"></a><span class="lineno"> 7142</span>&#160;        res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#af6d9a5bc0b57b041e22af80b85e53f56">W25QXX_COMMAND_READ_MANUFACTURER</a>, 4,</div>
-<div class="line"><a name="l07143"></a><span class="lineno"> 7143</span>&#160;                                       0x00000000, 4, 3,</div>
-<div class="line"><a name="l07144"></a><span class="lineno"> 7144</span>&#160;                                       0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l07145"></a><span class="lineno"> 7145</span>&#160;                                       0, NULL, 0x00,</div>
-<div class="line"><a name="l07146"></a><span class="lineno"> 7146</span>&#160;                                      (uint8_t *)out, 2, 4);                               <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l07147"></a><span class="lineno"> 7147</span>&#160;        <span class="keywordflow">if</span> (res != 0)                                                                      <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l07148"></a><span class="lineno"> 7148</span>&#160;        {</div>
-<div class="line"><a name="l07149"></a><span class="lineno"> 7149</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: get manufacturer device id failed.\n&quot;</span>);           <span class="comment">/* get manufacturer device id failed */</span></div>
-<div class="line"><a name="l07150"></a><span class="lineno"> 7150</span>&#160;            (void)handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a4568e23228174b7d32678d9a96d2420c">spi_qspi_deinit</a>();                                               </div>
-<div class="line"><a name="l07152"></a><span class="lineno"> 7152</span>&#160;            <span class="keywordflow">return</span> 1;                                                                      <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l07153"></a><span class="lineno"> 7153</span>&#160;        }</div>
-<div class="line"><a name="l07154"></a><span class="lineno"> 7154</span>&#160;        <span class="keywordtype">id</span> = (uint16_t)out[0] &lt;&lt; 8 | out[1];                                               <span class="comment">/* set id */</span></div>
-<div class="line"><a name="l07155"></a><span class="lineno"> 7155</span>&#160;        <span class="keywordflow">if</span> (<span class="keywordtype">id</span> != handle-&gt;<a class="code" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a>)                                                            <span class="comment">/* check id */</span></div>
-<div class="line"><a name="l07156"></a><span class="lineno"> 7156</span>&#160;        {</div>
-<div class="line"><a name="l07157"></a><span class="lineno"> 7157</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: id is invalid.\n&quot;</span>);                               <span class="comment">/* id is invalid */</span></div>
-<div class="line"><a name="l07158"></a><span class="lineno"> 7158</span>&#160;            (void)handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a4568e23228174b7d32678d9a96d2420c">spi_qspi_deinit</a>();                                               </div>
-<div class="line"><a name="l07160"></a><span class="lineno"> 7160</span>&#160;            <span class="keywordflow">return</span> 6;                                                                      <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l07161"></a><span class="lineno"> 7161</span>&#160;        }</div>
-<div class="line"><a name="l07162"></a><span class="lineno"> 7162</span>&#160;        <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)</div>
-<div class="line"><a name="l07163"></a><span class="lineno"> 7163</span>&#160;        {</div>
-<div class="line"><a name="l07164"></a><span class="lineno"> 7164</span>&#160;            res = a_w25qxx_qspi_write_read(handle, 0xE9, 4,</div>
-<div class="line"><a name="l07165"></a><span class="lineno"> 7165</span>&#160;                                           0x00000000, 0, 0,</div>
-<div class="line"><a name="l07166"></a><span class="lineno"> 7166</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l07167"></a><span class="lineno"> 7167</span>&#160;                                           0, NULL, 0x00,</div>
-<div class="line"><a name="l07168"></a><span class="lineno"> 7168</span>&#160;                                           NULL, 0, 0);                                    <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l07169"></a><span class="lineno"> 7169</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                  <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l07170"></a><span class="lineno"> 7170</span>&#160;            {</div>
-<div class="line"><a name="l07171"></a><span class="lineno"> 7171</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: enter 3 byte mode failed.\n&quot;</span>);                <span class="comment">/* enter 3 byte mode failed */</span></div>
-<div class="line"><a name="l07172"></a><span class="lineno"> 7172</span>&#160;                (void)handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a4568e23228174b7d32678d9a96d2420c">spi_qspi_deinit</a>();                                           </div>
-<div class="line"><a name="l07174"></a><span class="lineno"> 7174</span>&#160;                <span class="keywordflow">return</span> 1;                                                                  <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l07175"></a><span class="lineno"> 7175</span>&#160;            }</div>
-<div class="line"><a name="l07176"></a><span class="lineno"> 7176</span>&#160;        }</div>
-<div class="line"><a name="l07177"></a><span class="lineno"> 7177</span>&#160;    }</div>
-<div class="line"><a name="l07178"></a><span class="lineno"> 7178</span>&#160;    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> = <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>;                                     <span class="comment">/* set address mode */</span></div>
-<div class="line"><a name="l07179"></a><span class="lineno"> 7179</span>&#160;    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">inited</a> = 1;                                                                    <span class="comment">/* initialize inited */</span></div>
-<div class="line"><a name="l07180"></a><span class="lineno"> 7180</span>&#160;    </div>
-<div class="line"><a name="l07181"></a><span class="lineno"> 7181</span>&#160;    <span class="keywordflow">return</span> 0;                                                                              <span class="comment">/* success return 0 */</span></div>
-<div class="line"><a name="l07182"></a><span class="lineno"> 7182</span>&#160;}</div>
-<div class="line"><a name="l07183"></a><span class="lineno"> 7183</span>&#160; </div>
-<div class="line"><a name="l07195"></a><span class="lineno"><a class="line" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d"> 7195</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle)</div>
-<div class="line"><a name="l07196"></a><span class="lineno"> 7196</span>&#160;{</div>
-<div class="line"><a name="l07197"></a><span class="lineno"> 7197</span>&#160;    uint8_t res;</div>
-<div class="line"><a name="l07198"></a><span class="lineno"> 7198</span>&#160;    uint8_t buf[1];</div>
-<div class="line"><a name="l07199"></a><span class="lineno"> 7199</span>&#160;    </div>
-<div class="line"><a name="l07200"></a><span class="lineno"> 7200</span>&#160;    <span class="keywordflow">if</span> (handle == NULL)                                                            <span class="comment">/* check handle */</span></div>
-<div class="line"><a name="l07201"></a><span class="lineno"> 7201</span>&#160;    {</div>
-<div class="line"><a name="l07202"></a><span class="lineno"> 7202</span>&#160;        <span class="keywordflow">return</span> 2;                                                                  <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l07203"></a><span class="lineno"> 7203</span>&#160;    }   </div>
-<div class="line"><a name="l07204"></a><span class="lineno"> 7204</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">inited</a> != 1)                                                       <span class="comment">/* check handle initialization */</span></div>
-<div class="line"><a name="l07205"></a><span class="lineno"> 7205</span>&#160;    {</div>
-<div class="line"><a name="l07206"></a><span class="lineno"> 7206</span>&#160;        <span class="keywordflow">return</span> 3;                                                                  <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l07207"></a><span class="lineno"> 7207</span>&#160;    }</div>
-<div class="line"><a name="l07208"></a><span class="lineno"> 7208</span>&#160; </div>
-<div class="line"><a name="l07209"></a><span class="lineno"> 7209</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>)                                  <span class="comment">/* spi interface */</span></div>
-<div class="line"><a name="l07210"></a><span class="lineno"> 7210</span>&#160;    {</div>
-<div class="line"><a name="l07211"></a><span class="lineno"> 7211</span>&#160;        <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">dual_quad_spi_enable</a> != 0)                                     <span class="comment">/* enable dual quad spi */</span></div>
-<div class="line"><a name="l07212"></a><span class="lineno"> 7212</span>&#160;        {</div>
-<div class="line"><a name="l07213"></a><span class="lineno"> 7213</span>&#160;            res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#a6fe4d603e33b7c8b8310a884e02a130b">W25QXX_COMMAND_POWER_DOWN</a>, 1,</div>
-<div class="line"><a name="l07214"></a><span class="lineno"> 7214</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l07215"></a><span class="lineno"> 7215</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l07216"></a><span class="lineno"> 7216</span>&#160;                                           0, NULL, 0x00,</div>
-<div class="line"><a name="l07217"></a><span class="lineno"> 7217</span>&#160;                                           NULL, 0x00, 0);                         <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l07218"></a><span class="lineno"> 7218</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                          <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l07219"></a><span class="lineno"> 7219</span>&#160;            {</div>
-<div class="line"><a name="l07220"></a><span class="lineno"> 7220</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: power down failed.\n&quot;</span>);               <span class="comment">/* power down failed */</span></div>
-<div class="line"><a name="l07221"></a><span class="lineno"> 7221</span>&#160;               </div>
-<div class="line"><a name="l07222"></a><span class="lineno"> 7222</span>&#160;                <span class="keywordflow">return</span> 4;                                                          <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l07223"></a><span class="lineno"> 7223</span>&#160;            }</div>
-<div class="line"><a name="l07224"></a><span class="lineno"> 7224</span>&#160;        }</div>
-<div class="line"><a name="l07225"></a><span class="lineno"> 7225</span>&#160;        <span class="keywordflow">else</span>                                                                       <span class="comment">/* single spi */</span></div>
-<div class="line"><a name="l07226"></a><span class="lineno"> 7226</span>&#160;        {</div>
-<div class="line"><a name="l07227"></a><span class="lineno"> 7227</span>&#160;            buf[0] = <a class="code" href="driver__w25qxx_8c.html#a6fe4d603e33b7c8b8310a884e02a130b">W25QXX_COMMAND_POWER_DOWN</a>;                                    <span class="comment">/* power down command */</span></div>
-<div class="line"><a name="l07228"></a><span class="lineno"> 7228</span>&#160;            res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf,</div>
-<div class="line"><a name="l07229"></a><span class="lineno"> 7229</span>&#160;                                          1, NULL, 0);                             <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l07230"></a><span class="lineno"> 7230</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                          <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l07231"></a><span class="lineno"> 7231</span>&#160;            {</div>
-<div class="line"><a name="l07232"></a><span class="lineno"> 7232</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: power down failed.\n&quot;</span>);               <span class="comment">/* power down failed */</span></div>
-<div class="line"><a name="l07233"></a><span class="lineno"> 7233</span>&#160;               </div>
-<div class="line"><a name="l07234"></a><span class="lineno"> 7234</span>&#160;                <span class="keywordflow">return</span> 4;                                                          <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l07235"></a><span class="lineno"> 7235</span>&#160;            }</div>
-<div class="line"><a name="l07236"></a><span class="lineno"> 7236</span>&#160;        }</div>
-<div class="line"><a name="l07237"></a><span class="lineno"> 7237</span>&#160;    }</div>
-<div class="line"><a name="l07238"></a><span class="lineno"> 7238</span>&#160;    <span class="keywordflow">else</span>                                                                           <span class="comment">/* qspi interface */</span></div>
-<div class="line"><a name="l07239"></a><span class="lineno"> 7239</span>&#160;    {</div>
-<div class="line"><a name="l07240"></a><span class="lineno"> 7240</span>&#160;        res = a_w25qxx_qspi_write_read(handle, 0xFF, 4,</div>
-<div class="line"><a name="l07241"></a><span class="lineno"> 7241</span>&#160;                                       0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l07242"></a><span class="lineno"> 7242</span>&#160;                                       0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l07243"></a><span class="lineno"> 7243</span>&#160;                                       0, NULL, 0x00,</div>
-<div class="line"><a name="l07244"></a><span class="lineno"> 7244</span>&#160;                                       NULL, 0x00, 0);                             <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l07245"></a><span class="lineno"> 7245</span>&#160;        <span class="keywordflow">if</span> (res != 0)                                                              <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l07246"></a><span class="lineno"> 7246</span>&#160;        {</div>
-<div class="line"><a name="l07247"></a><span class="lineno"> 7247</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: exit qspi mode failed.\n&quot;</span>);               <span class="comment">/* exit qspi mode failed */</span></div>
-<div class="line"><a name="l07248"></a><span class="lineno"> 7248</span>&#160;           </div>
-<div class="line"><a name="l07249"></a><span class="lineno"> 7249</span>&#160;            <span class="keywordflow">return</span> 1;                                                              <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l07250"></a><span class="lineno"> 7250</span>&#160;        }</div>
-<div class="line"><a name="l07251"></a><span class="lineno"> 7251</span>&#160;        handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a406c9433252b7366de417b7a60915c81">delay_ms</a>(10);                                                      <span class="comment">/* delay 10 ms */</span></div>
-<div class="line"><a name="l07252"></a><span class="lineno"> 7252</span>&#160;        res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#a6fe4d603e33b7c8b8310a884e02a130b">W25QXX_COMMAND_POWER_DOWN</a>, 1,</div>
-<div class="line"><a name="l07253"></a><span class="lineno"> 7253</span>&#160;                                       0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l07254"></a><span class="lineno"> 7254</span>&#160;                                       0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l07255"></a><span class="lineno"> 7255</span>&#160;                                       0, NULL, 0x00,</div>
-<div class="line"><a name="l07256"></a><span class="lineno"> 7256</span>&#160;                                       NULL, 0x00, 0);                             <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l07257"></a><span class="lineno"> 7257</span>&#160;        <span class="keywordflow">if</span> (res != 0)                                                              <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l07258"></a><span class="lineno"> 7258</span>&#160;        {</div>
-<div class="line"><a name="l07259"></a><span class="lineno"> 7259</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: power down failed.\n&quot;</span>);                   <span class="comment">/* power down failed */</span></div>
-<div class="line"><a name="l07260"></a><span class="lineno"> 7260</span>&#160;           </div>
-<div class="line"><a name="l07261"></a><span class="lineno"> 7261</span>&#160;            <span class="keywordflow">return</span> 4;                                                              <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l07262"></a><span class="lineno"> 7262</span>&#160;        }</div>
-<div class="line"><a name="l07263"></a><span class="lineno"> 7263</span>&#160;    }</div>
-<div class="line"><a name="l07264"></a><span class="lineno"> 7264</span>&#160;    res = handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a4568e23228174b7d32678d9a96d2420c">spi_qspi_deinit</a>();                                               <span class="comment">/* qspi deinit */</span></div>
-<div class="line"><a name="l07265"></a><span class="lineno"> 7265</span>&#160;    <span class="keywordflow">if</span> (res != 0)                                                                  <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l07266"></a><span class="lineno"> 7266</span>&#160;    {</div>
-<div class="line"><a name="l07267"></a><span class="lineno"> 7267</span>&#160;        handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: spi or qspi deinit failed.\n&quot;</span>);               <span class="comment">/* spi or qspi deinit failed */</span></div>
-<div class="line"><a name="l07268"></a><span class="lineno"> 7268</span>&#160;       </div>
-<div class="line"><a name="l07269"></a><span class="lineno"> 7269</span>&#160;        <span class="keywordflow">return</span> 1;                                                                  <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l07270"></a><span class="lineno"> 7270</span>&#160;    }</div>
-<div class="line"><a name="l07271"></a><span class="lineno"> 7271</span>&#160;    </div>
-<div class="line"><a name="l07272"></a><span class="lineno"> 7272</span>&#160;    <span class="keywordflow">return</span> 0;                                                                      <span class="comment">/* success return 0 */</span></div>
-<div class="line"><a name="l07273"></a><span class="lineno"> 7273</span>&#160;}</div>
-<div class="line"><a name="l07274"></a><span class="lineno"> 7274</span>&#160; </div>
-<div class="line"><a name="l07289"></a><span class="lineno"><a class="line" href="group__w25qxx__basic__driver.html#gae7479fc9ce911a52e3c5b6f1a615b879"> 7289</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__basic__driver.html#gae7479fc9ce911a52e3c5b6f1a615b879">w25qxx_read</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint32_t len)</div>
-<div class="line"><a name="l07290"></a><span class="lineno"> 7290</span>&#160;{</div>
-<div class="line"><a name="l07291"></a><span class="lineno"> 7291</span>&#160;    uint8_t res;</div>
-<div class="line"><a name="l07292"></a><span class="lineno"> 7292</span>&#160;    uint8_t buf[6];</div>
-<div class="line"><a name="l07293"></a><span class="lineno"> 7293</span>&#160;    </div>
-<div class="line"><a name="l07294"></a><span class="lineno"> 7294</span>&#160;    <span class="keywordflow">if</span> (handle == NULL)                                                                                   <span class="comment">/* check handle */</span></div>
-<div class="line"><a name="l07295"></a><span class="lineno"> 7295</span>&#160;    {</div>
-<div class="line"><a name="l07296"></a><span class="lineno"> 7296</span>&#160;        <span class="keywordflow">return</span> 2;                                                                                         <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l07297"></a><span class="lineno"> 7297</span>&#160;    }   </div>
-<div class="line"><a name="l07298"></a><span class="lineno"> 7298</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">inited</a> != 1)                                                                              <span class="comment">/* check handle initialization */</span></div>
-<div class="line"><a name="l07299"></a><span class="lineno"> 7299</span>&#160;    {</div>
-<div class="line"><a name="l07300"></a><span class="lineno"> 7300</span>&#160;        <span class="keywordflow">return</span> 3;                                                                                         <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l07301"></a><span class="lineno"> 7301</span>&#160;    }</div>
-<div class="line"><a name="l07302"></a><span class="lineno"> 7302</span>&#160;    </div>
-<div class="line"><a name="l07303"></a><span class="lineno"> 7303</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>)                                                         <span class="comment">/* spi interface */</span></div>
-<div class="line"><a name="l07304"></a><span class="lineno"> 7304</span>&#160;    {</div>
-<div class="line"><a name="l07305"></a><span class="lineno"> 7305</span>&#160;        <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">dual_quad_spi_enable</a> != 0)                                                            <span class="comment">/* enable dual quad spi */</span></div>
-<div class="line"><a name="l07306"></a><span class="lineno"> 7306</span>&#160;        {</div>
-<div class="line"><a name="l07307"></a><span class="lineno"> 7307</span>&#160;            <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                       <span class="comment">/* 3 address mode */</span></div>
-<div class="line"><a name="l07308"></a><span class="lineno"> 7308</span>&#160;            {</div>
-<div class="line"><a name="l07309"></a><span class="lineno"> 7309</span>&#160;                <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)                                                              <span class="comment">/* &gt;128Mb */</span></div>
-<div class="line"><a name="l07310"></a><span class="lineno"> 7310</span>&#160;                {</div>
-<div class="line"><a name="l07311"></a><span class="lineno"> 7311</span>&#160;                    res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>, 1,</div>
-<div class="line"><a name="l07312"></a><span class="lineno"> 7312</span>&#160;                                                   0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l07313"></a><span class="lineno"> 7313</span>&#160;                                                   0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l07314"></a><span class="lineno"> 7314</span>&#160;                                                   0x00, NULL, 0x00,</div>
-<div class="line"><a name="l07315"></a><span class="lineno"> 7315</span>&#160;                                                   NULL, 0x00, 0x00);                                     <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l07316"></a><span class="lineno"> 7316</span>&#160;                    <span class="keywordflow">if</span> (res != 0)                                                                         <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l07317"></a><span class="lineno"> 7317</span>&#160;                    {</div>
-<div class="line"><a name="l07318"></a><span class="lineno"> 7318</span>&#160;                        handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                            <span class="comment">/* write enable failed */</span></div>
-<div class="line"><a name="l07319"></a><span class="lineno"> 7319</span>&#160;                       </div>
-<div class="line"><a name="l07320"></a><span class="lineno"> 7320</span>&#160;                        <span class="keywordflow">return</span> 1;                                                                         <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l07321"></a><span class="lineno"> 7321</span>&#160;                    }</div>
-<div class="line"><a name="l07322"></a><span class="lineno"> 7322</span>&#160;                    buf[0] = (addr &gt;&gt; 24) &amp; 0xFF;                                                         <span class="comment">/* 31 - 24 bits */</span></div>
-<div class="line"><a name="l07323"></a><span class="lineno"> 7323</span>&#160;                    res = a_w25qxx_qspi_write_read(handle, 0xC5, 1,</div>
-<div class="line"><a name="l07324"></a><span class="lineno"> 7324</span>&#160;                                                   0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l07325"></a><span class="lineno"> 7325</span>&#160;                                                   0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l07326"></a><span class="lineno"> 7326</span>&#160;                                                   0, (uint8_t *)buf, 0x01,</div>
-<div class="line"><a name="l07327"></a><span class="lineno"> 7327</span>&#160;                                                   NULL, 0x00, 1);                                        <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l07328"></a><span class="lineno"> 7328</span>&#160;                    <span class="keywordflow">if</span> (res != 0)                                                                         <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l07329"></a><span class="lineno"> 7329</span>&#160;                    {</div>
-<div class="line"><a name="l07330"></a><span class="lineno"> 7330</span>&#160;                        handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write extended addr register failed.\n&quot;</span>);            <span class="comment">/* write extended addr register failed */</span></div>
-<div class="line"><a name="l07331"></a><span class="lineno"> 7331</span>&#160;                       </div>
-<div class="line"><a name="l07332"></a><span class="lineno"> 7332</span>&#160;                        <span class="keywordflow">return</span> 1;                                                                         <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l07333"></a><span class="lineno"> 7333</span>&#160;                    }</div>
-<div class="line"><a name="l07334"></a><span class="lineno"> 7334</span>&#160;                }</div>
-<div class="line"><a name="l07335"></a><span class="lineno"> 7335</span>&#160;                res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#ac957b31a68db8c14f88a196a98b0aa18">W25QXX_COMMAND_FAST_READ</a>, 1,</div>
-<div class="line"><a name="l07336"></a><span class="lineno"> 7336</span>&#160;                                               addr, 1, 3,</div>
-<div class="line"><a name="l07337"></a><span class="lineno"> 7337</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l07338"></a><span class="lineno"> 7338</span>&#160;                                               8, NULL, 0x00,                                             <span class="comment">/* spi write */</span></div>
-<div class="line"><a name="l07339"></a><span class="lineno"> 7339</span>&#160;                                               data, len, 1);                                             <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l07340"></a><span class="lineno"> 7340</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                             <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l07341"></a><span class="lineno"> 7341</span>&#160;                {</div>
-<div class="line"><a name="l07342"></a><span class="lineno"> 7342</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read failed.\n&quot;</span>);                                   <span class="comment">/* fast read failed */</span></div>
-<div class="line"><a name="l07343"></a><span class="lineno"> 7343</span>&#160;                   </div>
-<div class="line"><a name="l07344"></a><span class="lineno"> 7344</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                             <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l07345"></a><span class="lineno"> 7345</span>&#160;                }</div>
-<div class="line"><a name="l07346"></a><span class="lineno"> 7346</span>&#160;            }</div>
-<div class="line"><a name="l07347"></a><span class="lineno"> 7347</span>&#160;            <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>) &amp;&amp; (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>))</div>
-<div class="line"><a name="l07348"></a><span class="lineno"> 7348</span>&#160;            {</div>
-<div class="line"><a name="l07349"></a><span class="lineno"> 7349</span>&#160;                res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#ac957b31a68db8c14f88a196a98b0aa18">W25QXX_COMMAND_FAST_READ</a>, 1,</div>
-<div class="line"><a name="l07350"></a><span class="lineno"> 7350</span>&#160;                                               addr, 1, 4,</div>
-<div class="line"><a name="l07351"></a><span class="lineno"> 7351</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l07352"></a><span class="lineno"> 7352</span>&#160;                                               8, NULL, 0x00,                                             <span class="comment">/* spi write */</span></div>
-<div class="line"><a name="l07353"></a><span class="lineno"> 7353</span>&#160;                                               data, len, 1);                                             <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l07354"></a><span class="lineno"> 7354</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                             <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l07355"></a><span class="lineno"> 7355</span>&#160;                {</div>
-<div class="line"><a name="l07356"></a><span class="lineno"> 7356</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read failed.\n&quot;</span>);                                   <span class="comment">/* fast read failed */</span></div>
-<div class="line"><a name="l07357"></a><span class="lineno"> 7357</span>&#160;                   </div>
-<div class="line"><a name="l07358"></a><span class="lineno"> 7358</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                             <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l07359"></a><span class="lineno"> 7359</span>&#160;                }</div>
-<div class="line"><a name="l07360"></a><span class="lineno"> 7360</span>&#160;            }</div>
-<div class="line"><a name="l07361"></a><span class="lineno"> 7361</span>&#160;            <span class="keywordflow">else</span></div>
-<div class="line"><a name="l07362"></a><span class="lineno"> 7362</span>&#160;            {</div>
-<div class="line"><a name="l07363"></a><span class="lineno"> 7363</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: address mode is invalid.\n&quot;</span>);                                <span class="comment">/* address mode is invalid */</span></div>
-<div class="line"><a name="l07364"></a><span class="lineno"> 7364</span>&#160;               </div>
-<div class="line"><a name="l07365"></a><span class="lineno"> 7365</span>&#160;                <span class="keywordflow">return</span> 4;                                                                                 <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l07366"></a><span class="lineno"> 7366</span>&#160;            }</div>
-<div class="line"><a name="l07367"></a><span class="lineno"> 7367</span>&#160;        }</div>
-<div class="line"><a name="l07368"></a><span class="lineno"> 7368</span>&#160;        <span class="keywordflow">else</span>                                                                                              <span class="comment">/* single spi */</span></div>
-<div class="line"><a name="l07369"></a><span class="lineno"> 7369</span>&#160;        {</div>
-<div class="line"><a name="l07370"></a><span class="lineno"> 7370</span>&#160;            <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                       <span class="comment">/* 3 address mode */</span></div>
-<div class="line"><a name="l07371"></a><span class="lineno"> 7371</span>&#160;            {</div>
-<div class="line"><a name="l07372"></a><span class="lineno"> 7372</span>&#160;                <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)                                                              <span class="comment">/* &gt;128Mb */</span></div>
-<div class="line"><a name="l07373"></a><span class="lineno"> 7373</span>&#160;                {</div>
-<div class="line"><a name="l07374"></a><span class="lineno"> 7374</span>&#160;                    buf[0] = <a class="code" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>;                                                 <span class="comment">/* write enable command */</span></div>
-<div class="line"><a name="l07375"></a><span class="lineno"> 7375</span>&#160;                    res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 1, NULL, 0);                    <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l07376"></a><span class="lineno"> 7376</span>&#160;                    <span class="keywordflow">if</span> (res != 0)                                                                         <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l07377"></a><span class="lineno"> 7377</span>&#160;                    {</div>
-<div class="line"><a name="l07378"></a><span class="lineno"> 7378</span>&#160;                        handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                            <span class="comment">/* write enable failed */</span></div>
-<div class="line"><a name="l07379"></a><span class="lineno"> 7379</span>&#160;                       </div>
-<div class="line"><a name="l07380"></a><span class="lineno"> 7380</span>&#160;                        <span class="keywordflow">return</span> 1;                                                                         <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l07381"></a><span class="lineno"> 7381</span>&#160;                    }</div>
-<div class="line"><a name="l07382"></a><span class="lineno"> 7382</span>&#160;                    buf[0] = 0xC5;                                                                        <span class="comment">/* write extended addr register command */</span></div>
-<div class="line"><a name="l07383"></a><span class="lineno"> 7383</span>&#160;                    buf[1] = (addr &gt;&gt; 24) &amp; 0xFF;                                                         <span class="comment">/* 31 - 24 bits */</span></div>
-<div class="line"><a name="l07384"></a><span class="lineno"> 7384</span>&#160;                    res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 2, NULL, 0);                    <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l07385"></a><span class="lineno"> 7385</span>&#160;                    <span class="keywordflow">if</span> (res != 0)                                                                         <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l07386"></a><span class="lineno"> 7386</span>&#160;                    {</div>
-<div class="line"><a name="l07387"></a><span class="lineno"> 7387</span>&#160;                        handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write extended addr register failed.\n&quot;</span>);            <span class="comment">/* write extended addr register failed */</span></div>
-<div class="line"><a name="l07388"></a><span class="lineno"> 7388</span>&#160;                       </div>
-<div class="line"><a name="l07389"></a><span class="lineno"> 7389</span>&#160;                        <span class="keywordflow">return</span> 1;                                                                         <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l07390"></a><span class="lineno"> 7390</span>&#160;                    }</div>
-<div class="line"><a name="l07391"></a><span class="lineno"> 7391</span>&#160;                }</div>
-<div class="line"><a name="l07392"></a><span class="lineno"> 7392</span>&#160;                buf[0] = <a class="code" href="driver__w25qxx_8c.html#ac957b31a68db8c14f88a196a98b0aa18">W25QXX_COMMAND_FAST_READ</a>;                                                        <span class="comment">/* fast read command */</span></div>
-<div class="line"><a name="l07393"></a><span class="lineno"> 7393</span>&#160;                buf[1] = (addr &gt;&gt; 16) &amp; 0xFF;                                                             <span class="comment">/* 23 - 16 bits */</span></div>
-<div class="line"><a name="l07394"></a><span class="lineno"> 7394</span>&#160;                buf[2] = (addr &gt;&gt; 8) &amp; 0xFF;                                                              <span class="comment">/* 15 - 8  bits */</span></div>
-<div class="line"><a name="l07395"></a><span class="lineno"> 7395</span>&#160;                buf[3] = (addr &gt;&gt; 0) &amp; 0xFF;                                                              <span class="comment">/* 7 - 0 bits */</span></div>
-<div class="line"><a name="l07396"></a><span class="lineno"> 7396</span>&#160;                buf[4] = 0x00;                                                                            <span class="comment">/* dummy */</span></div>
-<div class="line"><a name="l07397"></a><span class="lineno"> 7397</span>&#160;                res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 5, (uint8_t *)data, (uint32_t)len); <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l07398"></a><span class="lineno"> 7398</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                             <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l07399"></a><span class="lineno"> 7399</span>&#160;                {</div>
-<div class="line"><a name="l07400"></a><span class="lineno"> 7400</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read failed.\n&quot;</span>);                                   <span class="comment">/* fast read failed */</span></div>
-<div class="line"><a name="l07401"></a><span class="lineno"> 7401</span>&#160;                   </div>
-<div class="line"><a name="l07402"></a><span class="lineno"> 7402</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                             <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l07403"></a><span class="lineno"> 7403</span>&#160;                }</div>
-<div class="line"><a name="l07404"></a><span class="lineno"> 7404</span>&#160;            }</div>
-<div class="line"><a name="l07405"></a><span class="lineno"> 7405</span>&#160;            <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>)</div>
-<div class="line"><a name="l07406"></a><span class="lineno"> 7406</span>&#160;                    &amp;&amp; (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>))                                                         <span class="comment">/* check address mode */</span></div>
-<div class="line"><a name="l07407"></a><span class="lineno"> 7407</span>&#160;            {</div>
-<div class="line"><a name="l07408"></a><span class="lineno"> 7408</span>&#160;                buf[0] = <a class="code" href="driver__w25qxx_8c.html#ac957b31a68db8c14f88a196a98b0aa18">W25QXX_COMMAND_FAST_READ</a>;                                                        <span class="comment">/* fast read command */</span></div>
-<div class="line"><a name="l07409"></a><span class="lineno"> 7409</span>&#160;                buf[1] = (addr &gt;&gt; 24) &amp; 0xFF;                                                             <span class="comment">/* 31 - 24 bits */</span></div>
-<div class="line"><a name="l07410"></a><span class="lineno"> 7410</span>&#160;                buf[2] = (addr &gt;&gt; 16) &amp; 0xFF;                                                             <span class="comment">/* 23 - 16 bits */</span></div>
-<div class="line"><a name="l07411"></a><span class="lineno"> 7411</span>&#160;                buf[3] = (addr &gt;&gt; 8) &amp; 0xFF;                                                              <span class="comment">/* 15 - 8  bits */</span></div>
-<div class="line"><a name="l07412"></a><span class="lineno"> 7412</span>&#160;                buf[4] = (addr &gt;&gt; 0) &amp; 0xFF;                                                              <span class="comment">/* 7 - 0 bits */</span></div>
-<div class="line"><a name="l07413"></a><span class="lineno"> 7413</span>&#160;                buf[5] = 0x00;                                                                            <span class="comment">/* dummy */</span></div>
-<div class="line"><a name="l07414"></a><span class="lineno"> 7414</span>&#160;                res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 6, (uint8_t *)data, (uint32_t)len); <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l07415"></a><span class="lineno"> 7415</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                             <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l07416"></a><span class="lineno"> 7416</span>&#160;                {</div>
-<div class="line"><a name="l07417"></a><span class="lineno"> 7417</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read failed.\n&quot;</span>);                                   <span class="comment">/* fast read failed */</span></div>
-<div class="line"><a name="l07418"></a><span class="lineno"> 7418</span>&#160;                   </div>
-<div class="line"><a name="l07419"></a><span class="lineno"> 7419</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                             <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l07420"></a><span class="lineno"> 7420</span>&#160;                }</div>
-<div class="line"><a name="l07421"></a><span class="lineno"> 7421</span>&#160;            }</div>
-<div class="line"><a name="l07422"></a><span class="lineno"> 7422</span>&#160;            <span class="keywordflow">else</span></div>
-<div class="line"><a name="l07423"></a><span class="lineno"> 7423</span>&#160;            {</div>
-<div class="line"><a name="l07424"></a><span class="lineno"> 7424</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: address mode is invalid.\n&quot;</span>);                                <span class="comment">/* address mode is invalid */</span></div>
-<div class="line"><a name="l07425"></a><span class="lineno"> 7425</span>&#160;               </div>
-<div class="line"><a name="l07426"></a><span class="lineno"> 7426</span>&#160;                <span class="keywordflow">return</span> 4;                                                                                 <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l07427"></a><span class="lineno"> 7427</span>&#160;            }</div>
-<div class="line"><a name="l07428"></a><span class="lineno"> 7428</span>&#160;        }</div>
-<div class="line"><a name="l07429"></a><span class="lineno"> 7429</span>&#160;    }</div>
-<div class="line"><a name="l07430"></a><span class="lineno"> 7430</span>&#160;    <span class="keywordflow">else</span>                                                                                                  <span class="comment">/* qspi interface */</span></div>
-<div class="line"><a name="l07431"></a><span class="lineno"> 7431</span>&#160;    {</div>
-<div class="line"><a name="l07432"></a><span class="lineno"> 7432</span>&#160;        <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                           <span class="comment">/* 3 address mode */</span></div>
-<div class="line"><a name="l07433"></a><span class="lineno"> 7433</span>&#160;        {</div>
-<div class="line"><a name="l07434"></a><span class="lineno"> 7434</span>&#160;            <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)                                                                  <span class="comment">/* &gt;128Mb */</span></div>
-<div class="line"><a name="l07435"></a><span class="lineno"> 7435</span>&#160;            {</div>
-<div class="line"><a name="l07436"></a><span class="lineno"> 7436</span>&#160;                res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>, 4,</div>
-<div class="line"><a name="l07437"></a><span class="lineno"> 7437</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l07438"></a><span class="lineno"> 7438</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l07439"></a><span class="lineno"> 7439</span>&#160;                                               0x00, NULL, 0x00,</div>
-<div class="line"><a name="l07440"></a><span class="lineno"> 7440</span>&#160;                                               NULL, 0x00, 0x00);                                         <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l07441"></a><span class="lineno"> 7441</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                             <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l07442"></a><span class="lineno"> 7442</span>&#160;                {</div>
-<div class="line"><a name="l07443"></a><span class="lineno"> 7443</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                                <span class="comment">/* write enable failed */</span></div>
-<div class="line"><a name="l07444"></a><span class="lineno"> 7444</span>&#160;                   </div>
-<div class="line"><a name="l07445"></a><span class="lineno"> 7445</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                             <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l07446"></a><span class="lineno"> 7446</span>&#160;                }</div>
-<div class="line"><a name="l07447"></a><span class="lineno"> 7447</span>&#160;                buf[0] = (addr &gt;&gt; 24) &amp; 0xFF;                                                             <span class="comment">/* 31 - 24 bits */</span></div>
-<div class="line"><a name="l07448"></a><span class="lineno"> 7448</span>&#160;                res = a_w25qxx_qspi_write_read(handle, 0xC5, 4,</div>
-<div class="line"><a name="l07449"></a><span class="lineno"> 7449</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l07450"></a><span class="lineno"> 7450</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l07451"></a><span class="lineno"> 7451</span>&#160;                                               0, (uint8_t *)buf, 0x01,</div>
-<div class="line"><a name="l07452"></a><span class="lineno"> 7452</span>&#160;                                               NULL, 0x00, 4);                                            <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l07453"></a><span class="lineno"> 7453</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                             <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l07454"></a><span class="lineno"> 7454</span>&#160;                {</div>
-<div class="line"><a name="l07455"></a><span class="lineno"> 7455</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write extended addr register failed.\n&quot;</span>);                <span class="comment">/* write extended addr register failed */</span></div>
-<div class="line"><a name="l07456"></a><span class="lineno"> 7456</span>&#160;                   </div>
-<div class="line"><a name="l07457"></a><span class="lineno"> 7457</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                             <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l07458"></a><span class="lineno"> 7458</span>&#160;                }</div>
-<div class="line"><a name="l07459"></a><span class="lineno"> 7459</span>&#160;            }</div>
-<div class="line"><a name="l07460"></a><span class="lineno"> 7460</span>&#160;            res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#ac957b31a68db8c14f88a196a98b0aa18">W25QXX_COMMAND_FAST_READ</a>, 4,</div>
-<div class="line"><a name="l07461"></a><span class="lineno"> 7461</span>&#160;                                           addr, 4, 3,</div>
-<div class="line"><a name="l07462"></a><span class="lineno"> 7462</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l07463"></a><span class="lineno"> 7463</span>&#160;                                           handle-&gt;<a class="code" href="structw25qxx__handle__s.html#aff7b59f569ec689a7580bd6911daafd5">dummy</a>, NULL, 0x00,                                     <span class="comment">/* spi write */</span></div>
-<div class="line"><a name="l07464"></a><span class="lineno"> 7464</span>&#160;                                           data, len, 4);                                                 <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l07465"></a><span class="lineno"> 7465</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                                 <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l07466"></a><span class="lineno"> 7466</span>&#160;            {</div>
-<div class="line"><a name="l07467"></a><span class="lineno"> 7467</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read failed.\n&quot;</span>);                                       <span class="comment">/* fast read failed */</span></div>
-<div class="line"><a name="l07468"></a><span class="lineno"> 7468</span>&#160;               </div>
-<div class="line"><a name="l07469"></a><span class="lineno"> 7469</span>&#160;                <span class="keywordflow">return</span> 1;                                                                                 <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l07470"></a><span class="lineno"> 7470</span>&#160;            }</div>
-<div class="line"><a name="l07471"></a><span class="lineno"> 7471</span>&#160;        }</div>
-<div class="line"><a name="l07472"></a><span class="lineno"> 7472</span>&#160;        <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>) &amp;&amp; (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>))</div>
-<div class="line"><a name="l07473"></a><span class="lineno"> 7473</span>&#160;        {</div>
-<div class="line"><a name="l07474"></a><span class="lineno"> 7474</span>&#160;            res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#ac957b31a68db8c14f88a196a98b0aa18">W25QXX_COMMAND_FAST_READ</a>, 4,</div>
-<div class="line"><a name="l07475"></a><span class="lineno"> 7475</span>&#160;                                           addr, 4, 4,</div>
-<div class="line"><a name="l07476"></a><span class="lineno"> 7476</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l07477"></a><span class="lineno"> 7477</span>&#160;                                           handle-&gt;<a class="code" href="structw25qxx__handle__s.html#aff7b59f569ec689a7580bd6911daafd5">dummy</a>, NULL, 0x00,                                     <span class="comment">/* spi write */</span></div>
-<div class="line"><a name="l07478"></a><span class="lineno"> 7478</span>&#160;                                           data, len, 4);                                                 <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l07479"></a><span class="lineno"> 7479</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                                 <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l07480"></a><span class="lineno"> 7480</span>&#160;            {</div>
-<div class="line"><a name="l07481"></a><span class="lineno"> 7481</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read failed.\n&quot;</span>);                                       <span class="comment">/* fast read failed */</span></div>
-<div class="line"><a name="l07482"></a><span class="lineno"> 7482</span>&#160;               </div>
-<div class="line"><a name="l07483"></a><span class="lineno"> 7483</span>&#160;                <span class="keywordflow">return</span> 1;                                                                                 <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l07484"></a><span class="lineno"> 7484</span>&#160;            }</div>
-<div class="line"><a name="l07485"></a><span class="lineno"> 7485</span>&#160;        }</div>
-<div class="line"><a name="l07486"></a><span class="lineno"> 7486</span>&#160;        <span class="keywordflow">else</span></div>
-<div class="line"><a name="l07487"></a><span class="lineno"> 7487</span>&#160;        {</div>
-<div class="line"><a name="l07488"></a><span class="lineno"> 7488</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: address mode is invalid.\n&quot;</span>);                                    <span class="comment">/* address mode is invalid */</span></div>
-<div class="line"><a name="l07489"></a><span class="lineno"> 7489</span>&#160;           </div>
-<div class="line"><a name="l07490"></a><span class="lineno"> 7490</span>&#160;            <span class="keywordflow">return</span> 4;                                                                                     <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l07491"></a><span class="lineno"> 7491</span>&#160;        }</div>
-<div class="line"><a name="l07492"></a><span class="lineno"> 7492</span>&#160;    }</div>
-<div class="line"><a name="l07493"></a><span class="lineno"> 7493</span>&#160;    </div>
-<div class="line"><a name="l07494"></a><span class="lineno"> 7494</span>&#160;    <span class="keywordflow">return</span> 0;                                                                                             <span class="comment">/* success return 0 */</span></div>
-<div class="line"><a name="l07495"></a><span class="lineno"> 7495</span>&#160;}</div>
-<div class="line"><a name="l07496"></a><span class="lineno"> 7496</span>&#160; </div>
-<div class="line"><a name="l07508"></a><span class="lineno"> 7508</span>&#160;<span class="keyword">static</span> uint8_t a_w25qxx_read(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint32_t len)</div>
-<div class="line"><a name="l07509"></a><span class="lineno"> 7509</span>&#160;{</div>
-<div class="line"><a name="l07510"></a><span class="lineno"> 7510</span>&#160;    uint8_t res;</div>
-<div class="line"><a name="l07511"></a><span class="lineno"> 7511</span>&#160;    uint8_t buf[6];</div>
-<div class="line"><a name="l07512"></a><span class="lineno"> 7512</span>&#160; </div>
-<div class="line"><a name="l07513"></a><span class="lineno"> 7513</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>)                                                         <span class="comment">/* spi interface */</span></div>
-<div class="line"><a name="l07514"></a><span class="lineno"> 7514</span>&#160;    {</div>
-<div class="line"><a name="l07515"></a><span class="lineno"> 7515</span>&#160;        <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">dual_quad_spi_enable</a> != 0)                                                            <span class="comment">/* enable dual quad spi */</span></div>
-<div class="line"><a name="l07516"></a><span class="lineno"> 7516</span>&#160;        {</div>
-<div class="line"><a name="l07517"></a><span class="lineno"> 7517</span>&#160;            <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                       <span class="comment">/* 3 address mode */</span></div>
-<div class="line"><a name="l07518"></a><span class="lineno"> 7518</span>&#160;            {</div>
-<div class="line"><a name="l07519"></a><span class="lineno"> 7519</span>&#160;                <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)                                                              <span class="comment">/* &gt;128Mb */</span></div>
-<div class="line"><a name="l07520"></a><span class="lineno"> 7520</span>&#160;                {</div>
-<div class="line"><a name="l07521"></a><span class="lineno"> 7521</span>&#160;                    res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>, 1,</div>
-<div class="line"><a name="l07522"></a><span class="lineno"> 7522</span>&#160;                                                   0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l07523"></a><span class="lineno"> 7523</span>&#160;                                                   0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l07524"></a><span class="lineno"> 7524</span>&#160;                                                   0x00, NULL, 0x00,</div>
-<div class="line"><a name="l07525"></a><span class="lineno"> 7525</span>&#160;                                                   NULL, 0x00, 0x00);                                     <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l07526"></a><span class="lineno"> 7526</span>&#160;                    <span class="keywordflow">if</span> (res != 0)                                                                         <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l07527"></a><span class="lineno"> 7527</span>&#160;                    {</div>
-<div class="line"><a name="l07528"></a><span class="lineno"> 7528</span>&#160;                        handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                            <span class="comment">/* write enable failed */</span></div>
-<div class="line"><a name="l07529"></a><span class="lineno"> 7529</span>&#160;                       </div>
-<div class="line"><a name="l07530"></a><span class="lineno"> 7530</span>&#160;                        <span class="keywordflow">return</span> 1;                                                                         <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l07531"></a><span class="lineno"> 7531</span>&#160;                    }</div>
-<div class="line"><a name="l07532"></a><span class="lineno"> 7532</span>&#160;                    buf[0] = (addr &gt;&gt; 24) &amp; 0xFF;                                                         <span class="comment">/* 31 - 24 bits */</span></div>
-<div class="line"><a name="l07533"></a><span class="lineno"> 7533</span>&#160;                    res = a_w25qxx_qspi_write_read(handle, 0xC5, 1,</div>
-<div class="line"><a name="l07534"></a><span class="lineno"> 7534</span>&#160;                                                   0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l07535"></a><span class="lineno"> 7535</span>&#160;                                                   0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l07536"></a><span class="lineno"> 7536</span>&#160;                                                   0, (uint8_t *)buf, 0x01,</div>
-<div class="line"><a name="l07537"></a><span class="lineno"> 7537</span>&#160;                                                   NULL, 0x00, 1);                                        <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l07538"></a><span class="lineno"> 7538</span>&#160;                    <span class="keywordflow">if</span> (res != 0)                                                                         <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l07539"></a><span class="lineno"> 7539</span>&#160;                    {</div>
-<div class="line"><a name="l07540"></a><span class="lineno"> 7540</span>&#160;                        handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write extended addr register failed.\n&quot;</span>);            <span class="comment">/* write extended addr register failed */</span></div>
-<div class="line"><a name="l07541"></a><span class="lineno"> 7541</span>&#160;                       </div>
-<div class="line"><a name="l07542"></a><span class="lineno"> 7542</span>&#160;                        <span class="keywordflow">return</span> 1;                                                                         <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l07543"></a><span class="lineno"> 7543</span>&#160;                    }</div>
-<div class="line"><a name="l07544"></a><span class="lineno"> 7544</span>&#160;                }</div>
-<div class="line"><a name="l07545"></a><span class="lineno"> 7545</span>&#160;                res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#ac957b31a68db8c14f88a196a98b0aa18">W25QXX_COMMAND_FAST_READ</a>, 1,</div>
-<div class="line"><a name="l07546"></a><span class="lineno"> 7546</span>&#160;                                               addr, 1, 3,</div>
-<div class="line"><a name="l07547"></a><span class="lineno"> 7547</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l07548"></a><span class="lineno"> 7548</span>&#160;                                               8, NULL, 0x00,</div>
-<div class="line"><a name="l07549"></a><span class="lineno"> 7549</span>&#160;                                               data, len, 1);                                             <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l07550"></a><span class="lineno"> 7550</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                             <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l07551"></a><span class="lineno"> 7551</span>&#160;                {</div>
-<div class="line"><a name="l07552"></a><span class="lineno"> 7552</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read failed.\n&quot;</span>);                                   <span class="comment">/* fast read failed */</span></div>
-<div class="line"><a name="l07553"></a><span class="lineno"> 7553</span>&#160;                   </div>
-<div class="line"><a name="l07554"></a><span class="lineno"> 7554</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                             <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l07555"></a><span class="lineno"> 7555</span>&#160;                }</div>
-<div class="line"><a name="l07556"></a><span class="lineno"> 7556</span>&#160;            }</div>
-<div class="line"><a name="l07557"></a><span class="lineno"> 7557</span>&#160;            <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>) &amp;&amp; (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>))</div>
-<div class="line"><a name="l07558"></a><span class="lineno"> 7558</span>&#160;            {</div>
-<div class="line"><a name="l07559"></a><span class="lineno"> 7559</span>&#160;                res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#ac957b31a68db8c14f88a196a98b0aa18">W25QXX_COMMAND_FAST_READ</a>, 1,</div>
-<div class="line"><a name="l07560"></a><span class="lineno"> 7560</span>&#160;                                               addr, 1, 4,</div>
-<div class="line"><a name="l07561"></a><span class="lineno"> 7561</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l07562"></a><span class="lineno"> 7562</span>&#160;                                               8, NULL, 0x00,</div>
-<div class="line"><a name="l07563"></a><span class="lineno"> 7563</span>&#160;                                               data, len, 1);                                             <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l07564"></a><span class="lineno"> 7564</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                             <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l07565"></a><span class="lineno"> 7565</span>&#160;                {</div>
-<div class="line"><a name="l07566"></a><span class="lineno"> 7566</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read failed.\n&quot;</span>);                                   <span class="comment">/* fast read failed */</span></div>
-<div class="line"><a name="l07567"></a><span class="lineno"> 7567</span>&#160;                   </div>
-<div class="line"><a name="l07568"></a><span class="lineno"> 7568</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                             <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l07569"></a><span class="lineno"> 7569</span>&#160;                }</div>
-<div class="line"><a name="l07570"></a><span class="lineno"> 7570</span>&#160;            }</div>
-<div class="line"><a name="l07571"></a><span class="lineno"> 7571</span>&#160;            <span class="keywordflow">else</span></div>
-<div class="line"><a name="l07572"></a><span class="lineno"> 7572</span>&#160;            {</div>
-<div class="line"><a name="l07573"></a><span class="lineno"> 7573</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: address mode is invalid.\n&quot;</span>);                                <span class="comment">/* address mode is invalid */</span></div>
-<div class="line"><a name="l07574"></a><span class="lineno"> 7574</span>&#160;               </div>
-<div class="line"><a name="l07575"></a><span class="lineno"> 7575</span>&#160;                <span class="keywordflow">return</span> 1;                                                                                 <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l07576"></a><span class="lineno"> 7576</span>&#160;            }</div>
-<div class="line"><a name="l07577"></a><span class="lineno"> 7577</span>&#160;        }</div>
-<div class="line"><a name="l07578"></a><span class="lineno"> 7578</span>&#160;        <span class="keywordflow">else</span></div>
-<div class="line"><a name="l07579"></a><span class="lineno"> 7579</span>&#160;        {</div>
-<div class="line"><a name="l07580"></a><span class="lineno"> 7580</span>&#160;            <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                       <span class="comment">/* 3 address mode */</span></div>
-<div class="line"><a name="l07581"></a><span class="lineno"> 7581</span>&#160;            {</div>
-<div class="line"><a name="l07582"></a><span class="lineno"> 7582</span>&#160;                <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)                                                              <span class="comment">/* &gt;128Mb */</span></div>
-<div class="line"><a name="l07583"></a><span class="lineno"> 7583</span>&#160;                {</div>
-<div class="line"><a name="l07584"></a><span class="lineno"> 7584</span>&#160;                    buf[0] = <a class="code" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>;                                                 <span class="comment">/* write enable command */</span></div>
-<div class="line"><a name="l07585"></a><span class="lineno"> 7585</span>&#160;                    res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 1, NULL, 0);                    <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l07586"></a><span class="lineno"> 7586</span>&#160;                    <span class="keywordflow">if</span> (res != 0)                                                                         <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l07587"></a><span class="lineno"> 7587</span>&#160;                    {</div>
-<div class="line"><a name="l07588"></a><span class="lineno"> 7588</span>&#160;                        handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                            <span class="comment">/* write enable failed */</span></div>
-<div class="line"><a name="l07589"></a><span class="lineno"> 7589</span>&#160;                       </div>
-<div class="line"><a name="l07590"></a><span class="lineno"> 7590</span>&#160;                        <span class="keywordflow">return</span> 1;                                                                         <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l07591"></a><span class="lineno"> 7591</span>&#160;                    }</div>
-<div class="line"><a name="l07592"></a><span class="lineno"> 7592</span>&#160;                    buf[0] = 0xC5;                                                                        <span class="comment">/* write extended addr register command */</span></div>
-<div class="line"><a name="l07593"></a><span class="lineno"> 7593</span>&#160;                    buf[1] = (addr &gt;&gt; 24) &amp; 0xFF;                                                         <span class="comment">/* 31 - 24 bits */</span></div>
-<div class="line"><a name="l07594"></a><span class="lineno"> 7594</span>&#160;                    res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 2, NULL, 0);                    <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l07595"></a><span class="lineno"> 7595</span>&#160;                    <span class="keywordflow">if</span> (res != 0)                                                                         <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l07596"></a><span class="lineno"> 7596</span>&#160;                    {</div>
-<div class="line"><a name="l07597"></a><span class="lineno"> 7597</span>&#160;                        handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write extended addr register failed.\n&quot;</span>);            <span class="comment">/* write extended addr register failed */</span></div>
-<div class="line"><a name="l07598"></a><span class="lineno"> 7598</span>&#160;                       </div>
-<div class="line"><a name="l07599"></a><span class="lineno"> 7599</span>&#160;                        <span class="keywordflow">return</span> 1;                                                                         <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l07600"></a><span class="lineno"> 7600</span>&#160;                    }</div>
-<div class="line"><a name="l07601"></a><span class="lineno"> 7601</span>&#160;                }</div>
-<div class="line"><a name="l07602"></a><span class="lineno"> 7602</span>&#160;                buf[0] = <a class="code" href="driver__w25qxx_8c.html#ac957b31a68db8c14f88a196a98b0aa18">W25QXX_COMMAND_FAST_READ</a>;                                                        <span class="comment">/* fast read command */</span></div>
-<div class="line"><a name="l07603"></a><span class="lineno"> 7603</span>&#160;                buf[1] = (addr &gt;&gt; 16) &amp; 0xFF;                                                             <span class="comment">/* 23 - 16 bits */</span></div>
-<div class="line"><a name="l07604"></a><span class="lineno"> 7604</span>&#160;                buf[2] = (addr &gt;&gt; 8) &amp; 0xFF;                                                              <span class="comment">/* 15 - 8  bits */</span></div>
-<div class="line"><a name="l07605"></a><span class="lineno"> 7605</span>&#160;                buf[3] = (addr &gt;&gt; 0) &amp; 0xFF;                                                              <span class="comment">/* 7 - 0 bits */</span></div>
-<div class="line"><a name="l07606"></a><span class="lineno"> 7606</span>&#160;                buf[4] = 0x00;                                                                            <span class="comment">/* dummy */</span></div>
-<div class="line"><a name="l07607"></a><span class="lineno"> 7607</span>&#160;                res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 5, (uint8_t *)data, (uint32_t)len); <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l07608"></a><span class="lineno"> 7608</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                             <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l07609"></a><span class="lineno"> 7609</span>&#160;                {</div>
-<div class="line"><a name="l07610"></a><span class="lineno"> 7610</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read failed.\n&quot;</span>);                                   <span class="comment">/* fast read failed */</span></div>
-<div class="line"><a name="l07611"></a><span class="lineno"> 7611</span>&#160;                   </div>
-<div class="line"><a name="l07612"></a><span class="lineno"> 7612</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                             <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l07613"></a><span class="lineno"> 7613</span>&#160;                }</div>
-<div class="line"><a name="l07614"></a><span class="lineno"> 7614</span>&#160;            }</div>
-<div class="line"><a name="l07615"></a><span class="lineno"> 7615</span>&#160;            <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>) &amp;&amp; (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>))   <span class="comment">/* check address mode */</span></div>
-<div class="line"><a name="l07616"></a><span class="lineno"> 7616</span>&#160;            {</div>
-<div class="line"><a name="l07617"></a><span class="lineno"> 7617</span>&#160;                buf[0] = <a class="code" href="driver__w25qxx_8c.html#ac957b31a68db8c14f88a196a98b0aa18">W25QXX_COMMAND_FAST_READ</a>;                                                        <span class="comment">/* fast read command */</span></div>
-<div class="line"><a name="l07618"></a><span class="lineno"> 7618</span>&#160;                buf[1] = (addr &gt;&gt; 24) &amp; 0xFF;                                                             <span class="comment">/* 31 - 24 bits */</span></div>
-<div class="line"><a name="l07619"></a><span class="lineno"> 7619</span>&#160;                buf[2] = (addr &gt;&gt; 16) &amp; 0xFF;                                                             <span class="comment">/* 23 - 16 bits */</span></div>
-<div class="line"><a name="l07620"></a><span class="lineno"> 7620</span>&#160;                buf[3] = (addr &gt;&gt; 8) &amp; 0xFF;                                                              <span class="comment">/* 15 - 8  bits */</span></div>
-<div class="line"><a name="l07621"></a><span class="lineno"> 7621</span>&#160;                buf[4] = (addr &gt;&gt; 0) &amp; 0xFF;                                                              <span class="comment">/* 7 - 0 bits */</span></div>
-<div class="line"><a name="l07622"></a><span class="lineno"> 7622</span>&#160;                buf[5] = 0x00;                                                                            <span class="comment">/* dummy */</span></div>
-<div class="line"><a name="l07623"></a><span class="lineno"> 7623</span>&#160;                res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 6, (uint8_t *)data, (uint32_t)len); <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l07624"></a><span class="lineno"> 7624</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                             <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l07625"></a><span class="lineno"> 7625</span>&#160;                {</div>
-<div class="line"><a name="l07626"></a><span class="lineno"> 7626</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read failed.\n&quot;</span>);                                   <span class="comment">/* fast read failed */</span></div>
-<div class="line"><a name="l07627"></a><span class="lineno"> 7627</span>&#160;                   </div>
-<div class="line"><a name="l07628"></a><span class="lineno"> 7628</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                             <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l07629"></a><span class="lineno"> 7629</span>&#160;                }</div>
-<div class="line"><a name="l07630"></a><span class="lineno"> 7630</span>&#160;            }</div>
-<div class="line"><a name="l07631"></a><span class="lineno"> 7631</span>&#160;            <span class="keywordflow">else</span></div>
-<div class="line"><a name="l07632"></a><span class="lineno"> 7632</span>&#160;            {</div>
-<div class="line"><a name="l07633"></a><span class="lineno"> 7633</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: address mode is invalid.\n&quot;</span>);                                <span class="comment">/* address mode is invalid */</span></div>
-<div class="line"><a name="l07634"></a><span class="lineno"> 7634</span>&#160;               </div>
-<div class="line"><a name="l07635"></a><span class="lineno"> 7635</span>&#160;                <span class="keywordflow">return</span> 1;                                                                                 <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l07636"></a><span class="lineno"> 7636</span>&#160;            }</div>
-<div class="line"><a name="l07637"></a><span class="lineno"> 7637</span>&#160;        }</div>
-<div class="line"><a name="l07638"></a><span class="lineno"> 7638</span>&#160;    }</div>
-<div class="line"><a name="l07639"></a><span class="lineno"> 7639</span>&#160;    <span class="keywordflow">else</span>                                                                                                  <span class="comment">/* qspi interface */</span></div>
-<div class="line"><a name="l07640"></a><span class="lineno"> 7640</span>&#160;    {</div>
-<div class="line"><a name="l07641"></a><span class="lineno"> 7641</span>&#160;        <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                           <span class="comment">/* 3 address mode */</span></div>
-<div class="line"><a name="l07642"></a><span class="lineno"> 7642</span>&#160;        {</div>
-<div class="line"><a name="l07643"></a><span class="lineno"> 7643</span>&#160;            <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)                                                                  <span class="comment">/* &gt;128Mb */</span></div>
-<div class="line"><a name="l07644"></a><span class="lineno"> 7644</span>&#160;            {</div>
-<div class="line"><a name="l07645"></a><span class="lineno"> 7645</span>&#160;                res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>, 4,</div>
-<div class="line"><a name="l07646"></a><span class="lineno"> 7646</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l07647"></a><span class="lineno"> 7647</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l07648"></a><span class="lineno"> 7648</span>&#160;                                               0x00, NULL, 0x00,</div>
-<div class="line"><a name="l07649"></a><span class="lineno"> 7649</span>&#160;                                               NULL, 0x00, 0x00);                                         <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l07650"></a><span class="lineno"> 7650</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                             <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l07651"></a><span class="lineno"> 7651</span>&#160;                {</div>
-<div class="line"><a name="l07652"></a><span class="lineno"> 7652</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                                <span class="comment">/* write enable failed */</span></div>
-<div class="line"><a name="l07653"></a><span class="lineno"> 7653</span>&#160;                   </div>
-<div class="line"><a name="l07654"></a><span class="lineno"> 7654</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                             <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l07655"></a><span class="lineno"> 7655</span>&#160;                }</div>
-<div class="line"><a name="l07656"></a><span class="lineno"> 7656</span>&#160;                buf[0] = (addr &gt;&gt; 24) &amp; 0xFF;                                                             <span class="comment">/* 31 - 24 bits */</span></div>
-<div class="line"><a name="l07657"></a><span class="lineno"> 7657</span>&#160;                res = a_w25qxx_qspi_write_read(handle, 0xC5, 4,</div>
-<div class="line"><a name="l07658"></a><span class="lineno"> 7658</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l07659"></a><span class="lineno"> 7659</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l07660"></a><span class="lineno"> 7660</span>&#160;                                               0, (uint8_t *)buf, 0x01,</div>
-<div class="line"><a name="l07661"></a><span class="lineno"> 7661</span>&#160;                                               NULL, 0x00, 4);                                            <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l07662"></a><span class="lineno"> 7662</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                             <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l07663"></a><span class="lineno"> 7663</span>&#160;                {</div>
-<div class="line"><a name="l07664"></a><span class="lineno"> 7664</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write extended addr register failed.\n&quot;</span>);                <span class="comment">/* write extended addr register failed */</span></div>
-<div class="line"><a name="l07665"></a><span class="lineno"> 7665</span>&#160;                   </div>
-<div class="line"><a name="l07666"></a><span class="lineno"> 7666</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                             <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l07667"></a><span class="lineno"> 7667</span>&#160;                }</div>
-<div class="line"><a name="l07668"></a><span class="lineno"> 7668</span>&#160;            }</div>
-<div class="line"><a name="l07669"></a><span class="lineno"> 7669</span>&#160;            res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#ac957b31a68db8c14f88a196a98b0aa18">W25QXX_COMMAND_FAST_READ</a>, 4,</div>
-<div class="line"><a name="l07670"></a><span class="lineno"> 7670</span>&#160;                                           addr, 4, 3,</div>
-<div class="line"><a name="l07671"></a><span class="lineno"> 7671</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l07672"></a><span class="lineno"> 7672</span>&#160;                                           handle-&gt;<a class="code" href="structw25qxx__handle__s.html#aff7b59f569ec689a7580bd6911daafd5">dummy</a>, NULL, 0x00,                                     <span class="comment">/* spi write */</span></div>
-<div class="line"><a name="l07673"></a><span class="lineno"> 7673</span>&#160;                                           data, len, 4);                                                 <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l07674"></a><span class="lineno"> 7674</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                                 <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l07675"></a><span class="lineno"> 7675</span>&#160;            {</div>
-<div class="line"><a name="l07676"></a><span class="lineno"> 7676</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read failed.\n&quot;</span>);                                       <span class="comment">/* fast read failed */</span></div>
-<div class="line"><a name="l07677"></a><span class="lineno"> 7677</span>&#160;               </div>
-<div class="line"><a name="l07678"></a><span class="lineno"> 7678</span>&#160;                <span class="keywordflow">return</span> 1;                                                                                 <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l07679"></a><span class="lineno"> 7679</span>&#160;            }</div>
-<div class="line"><a name="l07680"></a><span class="lineno"> 7680</span>&#160;        }</div>
-<div class="line"><a name="l07681"></a><span class="lineno"> 7681</span>&#160;        <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>) &amp;&amp; (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>))</div>
-<div class="line"><a name="l07682"></a><span class="lineno"> 7682</span>&#160;        {</div>
-<div class="line"><a name="l07683"></a><span class="lineno"> 7683</span>&#160;            res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#ac957b31a68db8c14f88a196a98b0aa18">W25QXX_COMMAND_FAST_READ</a>, 4,</div>
-<div class="line"><a name="l07684"></a><span class="lineno"> 7684</span>&#160;                                           addr, 4, 4,</div>
-<div class="line"><a name="l07685"></a><span class="lineno"> 7685</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l07686"></a><span class="lineno"> 7686</span>&#160;                                           handle-&gt;<a class="code" href="structw25qxx__handle__s.html#aff7b59f569ec689a7580bd6911daafd5">dummy</a>, NULL, 0x00,                                     <span class="comment">/* spi write */</span></div>
-<div class="line"><a name="l07687"></a><span class="lineno"> 7687</span>&#160;                                           data, len, 4);                                                 <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l07688"></a><span class="lineno"> 7688</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                                 <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l07689"></a><span class="lineno"> 7689</span>&#160;            {</div>
-<div class="line"><a name="l07690"></a><span class="lineno"> 7690</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read failed.\n&quot;</span>);                                       <span class="comment">/* fast read failed */</span></div>
-<div class="line"><a name="l07691"></a><span class="lineno"> 7691</span>&#160;               </div>
-<div class="line"><a name="l07692"></a><span class="lineno"> 7692</span>&#160;                <span class="keywordflow">return</span> 1;                                                                                 <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l07693"></a><span class="lineno"> 7693</span>&#160;            }</div>
-<div class="line"><a name="l07694"></a><span class="lineno"> 7694</span>&#160;        }</div>
-<div class="line"><a name="l07695"></a><span class="lineno"> 7695</span>&#160;        <span class="keywordflow">else</span></div>
-<div class="line"><a name="l07696"></a><span class="lineno"> 7696</span>&#160;        {</div>
-<div class="line"><a name="l07697"></a><span class="lineno"> 7697</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: address mode is invalid.\n&quot;</span>);                                    <span class="comment">/* address mode is invalid */</span></div>
-<div class="line"><a name="l07698"></a><span class="lineno"> 7698</span>&#160;           </div>
-<div class="line"><a name="l07699"></a><span class="lineno"> 7699</span>&#160;            <span class="keywordflow">return</span> 1;                                                                                     <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l07700"></a><span class="lineno"> 7700</span>&#160;        }</div>
-<div class="line"><a name="l07701"></a><span class="lineno"> 7701</span>&#160;    }</div>
-<div class="line"><a name="l07702"></a><span class="lineno"> 7702</span>&#160;    </div>
-<div class="line"><a name="l07703"></a><span class="lineno"> 7703</span>&#160;    <span class="keywordflow">return</span> 0;                                                                                             <span class="comment">/* success return 0 */</span></div>
-<div class="line"><a name="l07704"></a><span class="lineno"> 7704</span>&#160;}</div>
-<div class="line"><a name="l07705"></a><span class="lineno"> 7705</span>&#160; </div>
-<div class="line"><a name="l07715"></a><span class="lineno"> 7715</span>&#160;<span class="keyword">static</span> uint8_t a_w25qxx_erase_sector(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint32_t addr)</div>
-<div class="line"><a name="l07716"></a><span class="lineno"> 7716</span>&#160;{</div>
-<div class="line"><a name="l07717"></a><span class="lineno"> 7717</span>&#160;    uint8_t res;</div>
-<div class="line"><a name="l07718"></a><span class="lineno"> 7718</span>&#160;    uint8_t status;</div>
-<div class="line"><a name="l07719"></a><span class="lineno"> 7719</span>&#160;    uint32_t timeout;</div>
-<div class="line"><a name="l07720"></a><span class="lineno"> 7720</span>&#160;    uint8_t buf[5];</div>
-<div class="line"><a name="l07721"></a><span class="lineno"> 7721</span>&#160; </div>
-<div class="line"><a name="l07722"></a><span class="lineno"> 7722</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>)                                                           <span class="comment">/* spi interface */</span></div>
-<div class="line"><a name="l07723"></a><span class="lineno"> 7723</span>&#160;    {</div>
-<div class="line"><a name="l07724"></a><span class="lineno"> 7724</span>&#160;        <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">dual_quad_spi_enable</a> != 0)                                                              <span class="comment">/* enable dual quad spi */</span></div>
-<div class="line"><a name="l07725"></a><span class="lineno"> 7725</span>&#160;        {</div>
-<div class="line"><a name="l07726"></a><span class="lineno"> 7726</span>&#160;            res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>, 1,</div>
-<div class="line"><a name="l07727"></a><span class="lineno"> 7727</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l07728"></a><span class="lineno"> 7728</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l07729"></a><span class="lineno"> 7729</span>&#160;                                           0x00, NULL, 0x00,</div>
-<div class="line"><a name="l07730"></a><span class="lineno"> 7730</span>&#160;                                           NULL, 0x00, 0x00);                                               <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l07731"></a><span class="lineno"> 7731</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                                   <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l07732"></a><span class="lineno"> 7732</span>&#160;            {</div>
-<div class="line"><a name="l07733"></a><span class="lineno"> 7733</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                                      <span class="comment">/* write enable failed */</span></div>
-<div class="line"><a name="l07734"></a><span class="lineno"> 7734</span>&#160;               </div>
-<div class="line"><a name="l07735"></a><span class="lineno"> 7735</span>&#160;                <span class="keywordflow">return</span> 1;                                                                                   <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l07736"></a><span class="lineno"> 7736</span>&#160;            }</div>
-<div class="line"><a name="l07737"></a><span class="lineno"> 7737</span>&#160;            <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                         <span class="comment">/* 3 address mode */</span></div>
-<div class="line"><a name="l07738"></a><span class="lineno"> 7738</span>&#160;            {</div>
-<div class="line"><a name="l07739"></a><span class="lineno"> 7739</span>&#160;                <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)                                                                <span class="comment">/* &gt;128Mb */</span></div>
-<div class="line"><a name="l07740"></a><span class="lineno"> 7740</span>&#160;                {</div>
-<div class="line"><a name="l07741"></a><span class="lineno"> 7741</span>&#160;                    buf[0] = (addr &gt;&gt; 24) &amp; 0xFF;                                                           <span class="comment">/* 31 - 24 bits */</span></div>
-<div class="line"><a name="l07742"></a><span class="lineno"> 7742</span>&#160;                    res = a_w25qxx_qspi_write_read(handle, 0xC5, 1,</div>
-<div class="line"><a name="l07743"></a><span class="lineno"> 7743</span>&#160;                                                   0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l07744"></a><span class="lineno"> 7744</span>&#160;                                                   0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l07745"></a><span class="lineno"> 7745</span>&#160;                                                   0, (uint8_t *)buf, 0x01,</div>
-<div class="line"><a name="l07746"></a><span class="lineno"> 7746</span>&#160;                                                   NULL, 0x00, 1);                                          <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l07747"></a><span class="lineno"> 7747</span>&#160;                    <span class="keywordflow">if</span> (res != 0)                                                                           <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l07748"></a><span class="lineno"> 7748</span>&#160;                    {</div>
-<div class="line"><a name="l07749"></a><span class="lineno"> 7749</span>&#160;                        handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write extended addr register failed.\n&quot;</span>);              <span class="comment">/* write extended addr register failed */</span></div>
-<div class="line"><a name="l07750"></a><span class="lineno"> 7750</span>&#160;                       </div>
-<div class="line"><a name="l07751"></a><span class="lineno"> 7751</span>&#160;                        <span class="keywordflow">return</span> 1;                                                                           <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l07752"></a><span class="lineno"> 7752</span>&#160;                    }</div>
-<div class="line"><a name="l07753"></a><span class="lineno"> 7753</span>&#160;                    res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>, 1,</div>
-<div class="line"><a name="l07754"></a><span class="lineno"> 7754</span>&#160;                                                   0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l07755"></a><span class="lineno"> 7755</span>&#160;                                                   0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l07756"></a><span class="lineno"> 7756</span>&#160;                                                   0x00, NULL, 0x00,</div>
-<div class="line"><a name="l07757"></a><span class="lineno"> 7757</span>&#160;                                                   NULL, 0x00, 0x00);                                       <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l07758"></a><span class="lineno"> 7758</span>&#160;                    <span class="keywordflow">if</span> (res != 0)                                                                           <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l07759"></a><span class="lineno"> 7759</span>&#160;                    {</div>
-<div class="line"><a name="l07760"></a><span class="lineno"> 7760</span>&#160;                        handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                              <span class="comment">/* write enable failed */</span></div>
-<div class="line"><a name="l07761"></a><span class="lineno"> 7761</span>&#160;                       </div>
-<div class="line"><a name="l07762"></a><span class="lineno"> 7762</span>&#160;                        <span class="keywordflow">return</span> 1;                                                                           <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l07763"></a><span class="lineno"> 7763</span>&#160;                    }</div>
-<div class="line"><a name="l07764"></a><span class="lineno"> 7764</span>&#160;                }</div>
-<div class="line"><a name="l07765"></a><span class="lineno"> 7765</span>&#160;                res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#a6e7cd159f91e23930450725fd6910f9c">W25QXX_COMMAND_SECTOR_ERASE_4K</a>, 1,</div>
-<div class="line"><a name="l07766"></a><span class="lineno"> 7766</span>&#160;                                               addr, 1, 3,</div>
-<div class="line"><a name="l07767"></a><span class="lineno"> 7767</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l07768"></a><span class="lineno"> 7768</span>&#160;                                               0, NULL, 0x00,</div>
-<div class="line"><a name="l07769"></a><span class="lineno"> 7769</span>&#160;                                               NULL, 0x00, 0x00);                                           <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l07770"></a><span class="lineno"> 7770</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l07771"></a><span class="lineno"> 7771</span>&#160;                {</div>
-<div class="line"><a name="l07772"></a><span class="lineno"> 7772</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: sector erase 4k failed.\n&quot;</span>);                               <span class="comment">/* sector erase 4k failed */</span></div>
-<div class="line"><a name="l07773"></a><span class="lineno"> 7773</span>&#160;                   </div>
-<div class="line"><a name="l07774"></a><span class="lineno"> 7774</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l07775"></a><span class="lineno"> 7775</span>&#160;                }</div>
-<div class="line"><a name="l07776"></a><span class="lineno"> 7776</span>&#160;            }</div>
-<div class="line"><a name="l07777"></a><span class="lineno"> 7777</span>&#160;            <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>) &amp;&amp; (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>))</div>
-<div class="line"><a name="l07778"></a><span class="lineno"> 7778</span>&#160;            {</div>
-<div class="line"><a name="l07779"></a><span class="lineno"> 7779</span>&#160;                res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#a6e7cd159f91e23930450725fd6910f9c">W25QXX_COMMAND_SECTOR_ERASE_4K</a>, 1,</div>
-<div class="line"><a name="l07780"></a><span class="lineno"> 7780</span>&#160;                                               addr, 1, 4,</div>
-<div class="line"><a name="l07781"></a><span class="lineno"> 7781</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l07782"></a><span class="lineno"> 7782</span>&#160;                                               0, NULL, 0x00,</div>
-<div class="line"><a name="l07783"></a><span class="lineno"> 7783</span>&#160;                                               NULL, 0x00, 0x00);                                           <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l07784"></a><span class="lineno"> 7784</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l07785"></a><span class="lineno"> 7785</span>&#160;                {</div>
-<div class="line"><a name="l07786"></a><span class="lineno"> 7786</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: sector erase 4k failed.\n&quot;</span>);                               <span class="comment">/* sector erase 4k failed */</span></div>
-<div class="line"><a name="l07787"></a><span class="lineno"> 7787</span>&#160;                   </div>
-<div class="line"><a name="l07788"></a><span class="lineno"> 7788</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l07789"></a><span class="lineno"> 7789</span>&#160;                }</div>
-<div class="line"><a name="l07790"></a><span class="lineno"> 7790</span>&#160;            }</div>
-<div class="line"><a name="l07791"></a><span class="lineno"> 7791</span>&#160;            <span class="keywordflow">else</span></div>
-<div class="line"><a name="l07792"></a><span class="lineno"> 7792</span>&#160;            {</div>
-<div class="line"><a name="l07793"></a><span class="lineno"> 7793</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: address mode is invalid.\n&quot;</span>);                                  <span class="comment">/* address mode is invalid */</span></div>
-<div class="line"><a name="l07794"></a><span class="lineno"> 7794</span>&#160;               </div>
-<div class="line"><a name="l07795"></a><span class="lineno"> 7795</span>&#160;                <span class="keywordflow">return</span> 1;                                                                                   <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l07796"></a><span class="lineno"> 7796</span>&#160;            }</div>
-<div class="line"><a name="l07797"></a><span class="lineno"> 7797</span>&#160;            </div>
-<div class="line"><a name="l07798"></a><span class="lineno"> 7798</span>&#160;            timeout = 400;                                                                                  <span class="comment">/* max 400 ms */</span></div>
-<div class="line"><a name="l07799"></a><span class="lineno"> 7799</span>&#160;            <span class="keywordflow">while</span> (timeout != 0)                                                                            <span class="comment">/* check timeout */</span></div>
-<div class="line"><a name="l07800"></a><span class="lineno"> 7800</span>&#160;            {</div>
-<div class="line"><a name="l07801"></a><span class="lineno"> 7801</span>&#160;                res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#adf682969c34f4b31a87dd92dd18ccea3">W25QXX_COMMAND_READ_STATUS_REG1</a>, 1,</div>
-<div class="line"><a name="l07802"></a><span class="lineno"> 7802</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l07803"></a><span class="lineno"> 7803</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l07804"></a><span class="lineno"> 7804</span>&#160;                                               0, NULL, 0,</div>
-<div class="line"><a name="l07805"></a><span class="lineno"> 7805</span>&#160;                                              (uint8_t *)&amp;status, 1, 1);                                    <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l07806"></a><span class="lineno"> 7806</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l07807"></a><span class="lineno"> 7807</span>&#160;                {</div>
-<div class="line"><a name="l07808"></a><span class="lineno"> 7808</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: get status1 failed.\n&quot;</span>);                                   <span class="comment">/* get status1 failed */</span></div>
-<div class="line"><a name="l07809"></a><span class="lineno"> 7809</span>&#160;                   </div>
-<div class="line"><a name="l07810"></a><span class="lineno"> 7810</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l07811"></a><span class="lineno"> 7811</span>&#160;                }</div>
-<div class="line"><a name="l07812"></a><span class="lineno"> 7812</span>&#160;                <span class="keywordflow">if</span> ((status &amp; 0x01) == 0x00)                                                                <span class="comment">/* check status */</span></div>
-<div class="line"><a name="l07813"></a><span class="lineno"> 7813</span>&#160;                {</div>
-<div class="line"><a name="l07814"></a><span class="lineno"> 7814</span>&#160;                    <span class="keywordflow">break</span>;                                                                                  <span class="comment">/* break */</span></div>
-<div class="line"><a name="l07815"></a><span class="lineno"> 7815</span>&#160;                }</div>
-<div class="line"><a name="l07816"></a><span class="lineno"> 7816</span>&#160;                timeout--;                                                                                  <span class="comment">/* timeout-- */</span></div>
-<div class="line"><a name="l07817"></a><span class="lineno"> 7817</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a406c9433252b7366de417b7a60915c81">delay_ms</a>(1);                                                                        <span class="comment">/* delay 1 ms */</span></div>
-<div class="line"><a name="l07818"></a><span class="lineno"> 7818</span>&#160;            }</div>
-<div class="line"><a name="l07819"></a><span class="lineno"> 7819</span>&#160;            <span class="keywordflow">if</span> (timeout == 0)</div>
-<div class="line"><a name="l07820"></a><span class="lineno"> 7820</span>&#160;            {</div>
-<div class="line"><a name="l07821"></a><span class="lineno"> 7821</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: sector erase 4k timeout.\n&quot;</span>);                                  <span class="comment">/* sector erase 4k timeout */</span></div>
-<div class="line"><a name="l07822"></a><span class="lineno"> 7822</span>&#160;               </div>
-<div class="line"><a name="l07823"></a><span class="lineno"> 7823</span>&#160;                <span class="keywordflow">return</span> 1;                                                                                   <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l07824"></a><span class="lineno"> 7824</span>&#160;            }</div>
-<div class="line"><a name="l07825"></a><span class="lineno"> 7825</span>&#160;        }</div>
-<div class="line"><a name="l07826"></a><span class="lineno"> 7826</span>&#160;        <span class="keywordflow">else</span>                                                                                                <span class="comment">/* single spi */</span></div>
-<div class="line"><a name="l07827"></a><span class="lineno"> 7827</span>&#160;        {</div>
-<div class="line"><a name="l07828"></a><span class="lineno"> 7828</span>&#160;            buf[0] = <a class="code" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>;                                                           <span class="comment">/* write enable command */</span></div>
-<div class="line"><a name="l07829"></a><span class="lineno"> 7829</span>&#160;            res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 1, NULL, 0);                              <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l07830"></a><span class="lineno"> 7830</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                                   <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l07831"></a><span class="lineno"> 7831</span>&#160;            {</div>
-<div class="line"><a name="l07832"></a><span class="lineno"> 7832</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                                      <span class="comment">/* write enable failed */</span></div>
-<div class="line"><a name="l07833"></a><span class="lineno"> 7833</span>&#160;               </div>
-<div class="line"><a name="l07834"></a><span class="lineno"> 7834</span>&#160;                <span class="keywordflow">return</span> 1;                                                                                   <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l07835"></a><span class="lineno"> 7835</span>&#160;            }</div>
-<div class="line"><a name="l07836"></a><span class="lineno"> 7836</span>&#160;            <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                         <span class="comment">/* 3 address mode */</span></div>
-<div class="line"><a name="l07837"></a><span class="lineno"> 7837</span>&#160;            {</div>
-<div class="line"><a name="l07838"></a><span class="lineno"> 7838</span>&#160;                <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)                                                                <span class="comment">/* &gt;128Mb */</span></div>
-<div class="line"><a name="l07839"></a><span class="lineno"> 7839</span>&#160;                {</div>
-<div class="line"><a name="l07840"></a><span class="lineno"> 7840</span>&#160;                    buf[0] = 0xC5;                                                                          <span class="comment">/* write extended addr register command */</span></div>
-<div class="line"><a name="l07841"></a><span class="lineno"> 7841</span>&#160;                    buf[1] = (addr &gt;&gt; 24) &amp; 0xFF;                                                           <span class="comment">/* 31 - 24 bits */</span></div>
-<div class="line"><a name="l07842"></a><span class="lineno"> 7842</span>&#160;                    res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 2, NULL, 0);                      <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l07843"></a><span class="lineno"> 7843</span>&#160;                    <span class="keywordflow">if</span> (res != 0)                                                                           <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l07844"></a><span class="lineno"> 7844</span>&#160;                    {</div>
-<div class="line"><a name="l07845"></a><span class="lineno"> 7845</span>&#160;                        handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write extended addr register failed.\n&quot;</span>);              <span class="comment">/* write extended addr register failed */</span></div>
-<div class="line"><a name="l07846"></a><span class="lineno"> 7846</span>&#160;                       </div>
-<div class="line"><a name="l07847"></a><span class="lineno"> 7847</span>&#160;                        <span class="keywordflow">return</span> 1;                                                                           <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l07848"></a><span class="lineno"> 7848</span>&#160;                    }</div>
-<div class="line"><a name="l07849"></a><span class="lineno"> 7849</span>&#160;                    buf[0] = <a class="code" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>;                                                   <span class="comment">/* write enable command */</span></div>
-<div class="line"><a name="l07850"></a><span class="lineno"> 7850</span>&#160;                    res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 1, NULL, 0);                      <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l07851"></a><span class="lineno"> 7851</span>&#160;                    <span class="keywordflow">if</span> (res != 0)                                                                           <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l07852"></a><span class="lineno"> 7852</span>&#160;                    {</div>
-<div class="line"><a name="l07853"></a><span class="lineno"> 7853</span>&#160;                        handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                              <span class="comment">/* write enable failed */</span></div>
-<div class="line"><a name="l07854"></a><span class="lineno"> 7854</span>&#160;                       </div>
-<div class="line"><a name="l07855"></a><span class="lineno"> 7855</span>&#160;                        <span class="keywordflow">return</span> 1;                                                                           <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l07856"></a><span class="lineno"> 7856</span>&#160;                    }</div>
-<div class="line"><a name="l07857"></a><span class="lineno"> 7857</span>&#160;                }</div>
-<div class="line"><a name="l07858"></a><span class="lineno"> 7858</span>&#160;                buf[0] = <a class="code" href="driver__w25qxx_8c.html#a6e7cd159f91e23930450725fd6910f9c">W25QXX_COMMAND_SECTOR_ERASE_4K</a>;                                                    <span class="comment">/* sector erase 4k command */</span></div>
-<div class="line"><a name="l07859"></a><span class="lineno"> 7859</span>&#160;                buf[1] = (addr &gt;&gt; 16) &amp; 0xFF;                                                               <span class="comment">/* 23 - 16 bits */</span></div>
-<div class="line"><a name="l07860"></a><span class="lineno"> 7860</span>&#160;                buf[2] = (addr &gt;&gt; 8) &amp; 0xFF;                                                                <span class="comment">/* 15 - 8  bits */</span></div>
-<div class="line"><a name="l07861"></a><span class="lineno"> 7861</span>&#160;                buf[3] = (addr &gt;&gt; 0) &amp; 0xFF;                                                                <span class="comment">/* 7 - 0 bits */</span></div>
-<div class="line"><a name="l07862"></a><span class="lineno"> 7862</span>&#160;                res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 4, NULL, 0);                          <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l07863"></a><span class="lineno"> 7863</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l07864"></a><span class="lineno"> 7864</span>&#160;                {</div>
-<div class="line"><a name="l07865"></a><span class="lineno"> 7865</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: sector erase 4k failed.\n&quot;</span>);                               <span class="comment">/* sector erase 4k failed */</span></div>
-<div class="line"><a name="l07866"></a><span class="lineno"> 7866</span>&#160;                   </div>
-<div class="line"><a name="l07867"></a><span class="lineno"> 7867</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l07868"></a><span class="lineno"> 7868</span>&#160;                }</div>
-<div class="line"><a name="l07869"></a><span class="lineno"> 7869</span>&#160;            }</div>
-<div class="line"><a name="l07870"></a><span class="lineno"> 7870</span>&#160;            <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>) &amp;&amp; (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>))</div>
-<div class="line"><a name="l07871"></a><span class="lineno"> 7871</span>&#160;            {</div>
-<div class="line"><a name="l07872"></a><span class="lineno"> 7872</span>&#160;                buf[0] = <a class="code" href="driver__w25qxx_8c.html#a6e7cd159f91e23930450725fd6910f9c">W25QXX_COMMAND_SECTOR_ERASE_4K</a>;                                                    <span class="comment">/* sector erase 4k command */</span></div>
-<div class="line"><a name="l07873"></a><span class="lineno"> 7873</span>&#160;                buf[1] = (addr &gt;&gt; 24) &amp; 0xFF;                                                               <span class="comment">/* 31 - 24 bits */</span></div>
-<div class="line"><a name="l07874"></a><span class="lineno"> 7874</span>&#160;                buf[2] = (addr &gt;&gt; 16) &amp; 0xFF;                                                               <span class="comment">/* 23 - 16 bits */</span></div>
-<div class="line"><a name="l07875"></a><span class="lineno"> 7875</span>&#160;                buf[3] = (addr &gt;&gt; 8) &amp; 0xFF;                                                                <span class="comment">/* 15 - 8  bits */</span></div>
-<div class="line"><a name="l07876"></a><span class="lineno"> 7876</span>&#160;                buf[4] = (addr &gt;&gt; 0) &amp; 0xFF;                                                                <span class="comment">/* 7 - 0 bits */</span></div>
-<div class="line"><a name="l07877"></a><span class="lineno"> 7877</span>&#160;                res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 5, NULL, 0);                          <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l07878"></a><span class="lineno"> 7878</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l07879"></a><span class="lineno"> 7879</span>&#160;                {</div>
-<div class="line"><a name="l07880"></a><span class="lineno"> 7880</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: sector erase 4k failed.\n&quot;</span>);                               <span class="comment">/* sector erase 4k failed */</span></div>
-<div class="line"><a name="l07881"></a><span class="lineno"> 7881</span>&#160;                   </div>
-<div class="line"><a name="l07882"></a><span class="lineno"> 7882</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l07883"></a><span class="lineno"> 7883</span>&#160;                }</div>
-<div class="line"><a name="l07884"></a><span class="lineno"> 7884</span>&#160;            }</div>
-<div class="line"><a name="l07885"></a><span class="lineno"> 7885</span>&#160;            <span class="keywordflow">else</span></div>
-<div class="line"><a name="l07886"></a><span class="lineno"> 7886</span>&#160;            {</div>
-<div class="line"><a name="l07887"></a><span class="lineno"> 7887</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: address mode is invalid.\n&quot;</span>);                                  <span class="comment">/* address mode is invalid */</span></div>
-<div class="line"><a name="l07888"></a><span class="lineno"> 7888</span>&#160;               </div>
-<div class="line"><a name="l07889"></a><span class="lineno"> 7889</span>&#160;                <span class="keywordflow">return</span> 1;                                                                                   <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l07890"></a><span class="lineno"> 7890</span>&#160;            }</div>
-<div class="line"><a name="l07891"></a><span class="lineno"> 7891</span>&#160;            </div>
-<div class="line"><a name="l07892"></a><span class="lineno"> 7892</span>&#160;            timeout = 400;                                                                                  <span class="comment">/* max 400 ms */</span></div>
-<div class="line"><a name="l07893"></a><span class="lineno"> 7893</span>&#160;            <span class="keywordflow">while</span> (timeout != 0)                                                                            <span class="comment">/* check timeout */</span></div>
-<div class="line"><a name="l07894"></a><span class="lineno"> 7894</span>&#160;            {</div>
-<div class="line"><a name="l07895"></a><span class="lineno"> 7895</span>&#160;                buf[0] = <a class="code" href="driver__w25qxx_8c.html#adf682969c34f4b31a87dd92dd18ccea3">W25QXX_COMMAND_READ_STATUS_REG1</a>;                                                   <span class="comment">/* read status1 command */</span></div>
-<div class="line"><a name="l07896"></a><span class="lineno"> 7896</span>&#160;                res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 1, (uint8_t *)&amp;status, 1);            <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l07897"></a><span class="lineno"> 7897</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l07898"></a><span class="lineno"> 7898</span>&#160;                {</div>
-<div class="line"><a name="l07899"></a><span class="lineno"> 7899</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: get status1 failed.\n&quot;</span>);                                   <span class="comment">/* get status1 failed */</span></div>
-<div class="line"><a name="l07900"></a><span class="lineno"> 7900</span>&#160;                   </div>
-<div class="line"><a name="l07901"></a><span class="lineno"> 7901</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l07902"></a><span class="lineno"> 7902</span>&#160;                }</div>
-<div class="line"><a name="l07903"></a><span class="lineno"> 7903</span>&#160;                <span class="keywordflow">if</span> ((status &amp; 0x01) == 0x00)                                                                <span class="comment">/* check status */</span></div>
-<div class="line"><a name="l07904"></a><span class="lineno"> 7904</span>&#160;                {</div>
-<div class="line"><a name="l07905"></a><span class="lineno"> 7905</span>&#160;                    <span class="keywordflow">break</span>;                                                                                  <span class="comment">/* break */</span></div>
-<div class="line"><a name="l07906"></a><span class="lineno"> 7906</span>&#160;                }</div>
-<div class="line"><a name="l07907"></a><span class="lineno"> 7907</span>&#160;                timeout--;                                                                                  <span class="comment">/* timeout-- */</span></div>
-<div class="line"><a name="l07908"></a><span class="lineno"> 7908</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a406c9433252b7366de417b7a60915c81">delay_ms</a>(1);                                                                        <span class="comment">/* delay 1 ms */</span></div>
-<div class="line"><a name="l07909"></a><span class="lineno"> 7909</span>&#160;            }</div>
-<div class="line"><a name="l07910"></a><span class="lineno"> 7910</span>&#160;            <span class="keywordflow">if</span> (timeout == 0)</div>
-<div class="line"><a name="l07911"></a><span class="lineno"> 7911</span>&#160;            {</div>
-<div class="line"><a name="l07912"></a><span class="lineno"> 7912</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: sector erase 4k timeout.\n&quot;</span>);                                  <span class="comment">/* sector erase 4k timeout */</span></div>
-<div class="line"><a name="l07913"></a><span class="lineno"> 7913</span>&#160;               </div>
-<div class="line"><a name="l07914"></a><span class="lineno"> 7914</span>&#160;                <span class="keywordflow">return</span> 1;                                                                                   <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l07915"></a><span class="lineno"> 7915</span>&#160;            }</div>
-<div class="line"><a name="l07916"></a><span class="lineno"> 7916</span>&#160;        }</div>
-<div class="line"><a name="l07917"></a><span class="lineno"> 7917</span>&#160;    }</div>
-<div class="line"><a name="l07918"></a><span class="lineno"> 7918</span>&#160;    <span class="keywordflow">else</span></div>
-<div class="line"><a name="l07919"></a><span class="lineno"> 7919</span>&#160;    {</div>
-<div class="line"><a name="l07920"></a><span class="lineno"> 7920</span>&#160;        res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>, 4,</div>
-<div class="line"><a name="l07921"></a><span class="lineno"> 7921</span>&#160;                                       0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l07922"></a><span class="lineno"> 7922</span>&#160;                                       0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l07923"></a><span class="lineno"> 7923</span>&#160;                                       0x00, NULL, 0x00,</div>
-<div class="line"><a name="l07924"></a><span class="lineno"> 7924</span>&#160;                                       NULL, 0x00, 0x00);                                                   <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l07925"></a><span class="lineno"> 7925</span>&#160;        <span class="keywordflow">if</span> (res != 0)                                                                                       <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l07926"></a><span class="lineno"> 7926</span>&#160;        {</div>
-<div class="line"><a name="l07927"></a><span class="lineno"> 7927</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                                          <span class="comment">/* write enable failed */</span></div>
-<div class="line"><a name="l07928"></a><span class="lineno"> 7928</span>&#160;           </div>
-<div class="line"><a name="l07929"></a><span class="lineno"> 7929</span>&#160;            <span class="keywordflow">return</span> 1;                                                                                       <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l07930"></a><span class="lineno"> 7930</span>&#160;        }</div>
-<div class="line"><a name="l07931"></a><span class="lineno"> 7931</span>&#160;        <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                             <span class="comment">/* 3 address mode */</span></div>
-<div class="line"><a name="l07932"></a><span class="lineno"> 7932</span>&#160;        {</div>
-<div class="line"><a name="l07933"></a><span class="lineno"> 7933</span>&#160;            <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)                                                                    <span class="comment">/* &gt;128Mb */</span></div>
-<div class="line"><a name="l07934"></a><span class="lineno"> 7934</span>&#160;            {</div>
-<div class="line"><a name="l07935"></a><span class="lineno"> 7935</span>&#160;                buf[0] = (addr &gt;&gt; 24) &amp; 0xFF;                                                               <span class="comment">/* 31 - 24 bits */</span></div>
-<div class="line"><a name="l07936"></a><span class="lineno"> 7936</span>&#160;                res = a_w25qxx_qspi_write_read(handle, 0xC5, 4,</div>
-<div class="line"><a name="l07937"></a><span class="lineno"> 7937</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l07938"></a><span class="lineno"> 7938</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l07939"></a><span class="lineno"> 7939</span>&#160;                                               0, (uint8_t *)buf, 0x01,</div>
-<div class="line"><a name="l07940"></a><span class="lineno"> 7940</span>&#160;                                               NULL, 0x00, 4);                                              <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l07941"></a><span class="lineno"> 7941</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l07942"></a><span class="lineno"> 7942</span>&#160;                {</div>
-<div class="line"><a name="l07943"></a><span class="lineno"> 7943</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write extended addr register failed.\n&quot;</span>);                  <span class="comment">/* write extended addr register failed */</span></div>
-<div class="line"><a name="l07944"></a><span class="lineno"> 7944</span>&#160;                   </div>
-<div class="line"><a name="l07945"></a><span class="lineno"> 7945</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l07946"></a><span class="lineno"> 7946</span>&#160;                }</div>
-<div class="line"><a name="l07947"></a><span class="lineno"> 7947</span>&#160;                res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>, 4,</div>
-<div class="line"><a name="l07948"></a><span class="lineno"> 7948</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l07949"></a><span class="lineno"> 7949</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l07950"></a><span class="lineno"> 7950</span>&#160;                                               0x00, NULL, 0x00,</div>
-<div class="line"><a name="l07951"></a><span class="lineno"> 7951</span>&#160;                                               NULL, 0x00, 0x00);                                           <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l07952"></a><span class="lineno"> 7952</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l07953"></a><span class="lineno"> 7953</span>&#160;                {</div>
-<div class="line"><a name="l07954"></a><span class="lineno"> 7954</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                                  <span class="comment">/* write enable failed */</span></div>
-<div class="line"><a name="l07955"></a><span class="lineno"> 7955</span>&#160;                   </div>
-<div class="line"><a name="l07956"></a><span class="lineno"> 7956</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l07957"></a><span class="lineno"> 7957</span>&#160;                }</div>
-<div class="line"><a name="l07958"></a><span class="lineno"> 7958</span>&#160;            }</div>
-<div class="line"><a name="l07959"></a><span class="lineno"> 7959</span>&#160;            res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#a6e7cd159f91e23930450725fd6910f9c">W25QXX_COMMAND_SECTOR_ERASE_4K</a>, 4,</div>
-<div class="line"><a name="l07960"></a><span class="lineno"> 7960</span>&#160;                                           addr, 4, 3,</div>
-<div class="line"><a name="l07961"></a><span class="lineno"> 7961</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l07962"></a><span class="lineno"> 7962</span>&#160;                                           0, NULL, 0x00,</div>
-<div class="line"><a name="l07963"></a><span class="lineno"> 7963</span>&#160;                                           NULL, 0x00, 0x00);                                               <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l07964"></a><span class="lineno"> 7964</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                                   <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l07965"></a><span class="lineno"> 7965</span>&#160;            {</div>
-<div class="line"><a name="l07966"></a><span class="lineno"> 7966</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: sector erase 4k failed.\n&quot;</span>);                                   <span class="comment">/* sector erase 4k failed */</span></div>
-<div class="line"><a name="l07967"></a><span class="lineno"> 7967</span>&#160;               </div>
-<div class="line"><a name="l07968"></a><span class="lineno"> 7968</span>&#160;                <span class="keywordflow">return</span> 1;                                                                                   <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l07969"></a><span class="lineno"> 7969</span>&#160;            }</div>
-<div class="line"><a name="l07970"></a><span class="lineno"> 7970</span>&#160;        }</div>
-<div class="line"><a name="l07971"></a><span class="lineno"> 7971</span>&#160;        <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>) &amp;&amp; (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>))</div>
-<div class="line"><a name="l07972"></a><span class="lineno"> 7972</span>&#160;        {</div>
-<div class="line"><a name="l07973"></a><span class="lineno"> 7973</span>&#160;            res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#a6e7cd159f91e23930450725fd6910f9c">W25QXX_COMMAND_SECTOR_ERASE_4K</a>, 4,</div>
-<div class="line"><a name="l07974"></a><span class="lineno"> 7974</span>&#160;                                           addr, 4, 4,</div>
-<div class="line"><a name="l07975"></a><span class="lineno"> 7975</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l07976"></a><span class="lineno"> 7976</span>&#160;                                           0, NULL, 0x00,</div>
-<div class="line"><a name="l07977"></a><span class="lineno"> 7977</span>&#160;                                           NULL, 0x00, 0x00);                                               <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l07978"></a><span class="lineno"> 7978</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                                   <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l07979"></a><span class="lineno"> 7979</span>&#160;            {</div>
-<div class="line"><a name="l07980"></a><span class="lineno"> 7980</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: sector erase 4k failed.\n&quot;</span>);                                   <span class="comment">/* sector erase 4k failed */</span></div>
-<div class="line"><a name="l07981"></a><span class="lineno"> 7981</span>&#160;               </div>
-<div class="line"><a name="l07982"></a><span class="lineno"> 7982</span>&#160;                <span class="keywordflow">return</span> 1;                                                                                   <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l07983"></a><span class="lineno"> 7983</span>&#160;            }</div>
-<div class="line"><a name="l07984"></a><span class="lineno"> 7984</span>&#160;        }</div>
-<div class="line"><a name="l07985"></a><span class="lineno"> 7985</span>&#160;        <span class="keywordflow">else</span></div>
-<div class="line"><a name="l07986"></a><span class="lineno"> 7986</span>&#160;        {</div>
-<div class="line"><a name="l07987"></a><span class="lineno"> 7987</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: address mode is invalid.\n&quot;</span>);                                      <span class="comment">/* address mode is invalid */</span></div>
-<div class="line"><a name="l07988"></a><span class="lineno"> 7988</span>&#160;           </div>
-<div class="line"><a name="l07989"></a><span class="lineno"> 7989</span>&#160;            <span class="keywordflow">return</span> 1;                                                                                       <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l07990"></a><span class="lineno"> 7990</span>&#160;        }</div>
-<div class="line"><a name="l07991"></a><span class="lineno"> 7991</span>&#160;        </div>
-<div class="line"><a name="l07992"></a><span class="lineno"> 7992</span>&#160;        timeout = 400;                                                                                      <span class="comment">/* max 400 ms */</span></div>
-<div class="line"><a name="l07993"></a><span class="lineno"> 7993</span>&#160;        <span class="keywordflow">while</span> (timeout != 0)                                                                                <span class="comment">/* check timeout */</span></div>
-<div class="line"><a name="l07994"></a><span class="lineno"> 7994</span>&#160;        {</div>
-<div class="line"><a name="l07995"></a><span class="lineno"> 7995</span>&#160;            res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#adf682969c34f4b31a87dd92dd18ccea3">W25QXX_COMMAND_READ_STATUS_REG1</a>, 4,</div>
-<div class="line"><a name="l07996"></a><span class="lineno"> 7996</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l07997"></a><span class="lineno"> 7997</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l07998"></a><span class="lineno"> 7998</span>&#160;                                           0, NULL, 0,</div>
-<div class="line"><a name="l07999"></a><span class="lineno"> 7999</span>&#160;                                          (uint8_t *)&amp;status, 1, 4);                                        <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l08000"></a><span class="lineno"> 8000</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                                   <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l08001"></a><span class="lineno"> 8001</span>&#160;            {</div>
-<div class="line"><a name="l08002"></a><span class="lineno"> 8002</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: get status1 failed.\n&quot;</span>);                                       <span class="comment">/* get status1 failed */</span></div>
-<div class="line"><a name="l08003"></a><span class="lineno"> 8003</span>&#160;               </div>
-<div class="line"><a name="l08004"></a><span class="lineno"> 8004</span>&#160;                <span class="keywordflow">return</span> 1;                                                                                   <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l08005"></a><span class="lineno"> 8005</span>&#160;            }</div>
-<div class="line"><a name="l08006"></a><span class="lineno"> 8006</span>&#160;            <span class="keywordflow">if</span> ((status &amp; 0x01) == 0x00)                                                                    <span class="comment">/* check status */</span></div>
-<div class="line"><a name="l08007"></a><span class="lineno"> 8007</span>&#160;            {</div>
-<div class="line"><a name="l08008"></a><span class="lineno"> 8008</span>&#160;                <span class="keywordflow">break</span>;                                                                                      <span class="comment">/* break */</span></div>
-<div class="line"><a name="l08009"></a><span class="lineno"> 8009</span>&#160;            }</div>
-<div class="line"><a name="l08010"></a><span class="lineno"> 8010</span>&#160;            timeout--;                                                                                      <span class="comment">/* timeout-- */</span></div>
-<div class="line"><a name="l08011"></a><span class="lineno"> 8011</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a406c9433252b7366de417b7a60915c81">delay_ms</a>(1);                                                                            <span class="comment">/* delay 1 ms */</span></div>
-<div class="line"><a name="l08012"></a><span class="lineno"> 8012</span>&#160;        }</div>
-<div class="line"><a name="l08013"></a><span class="lineno"> 8013</span>&#160;        <span class="keywordflow">if</span> (timeout == 0)</div>
-<div class="line"><a name="l08014"></a><span class="lineno"> 8014</span>&#160;        {</div>
-<div class="line"><a name="l08015"></a><span class="lineno"> 8015</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: sector erase 4k timeout.\n&quot;</span>);                                      <span class="comment">/* sector erase 4k timeout */</span></div>
-<div class="line"><a name="l08016"></a><span class="lineno"> 8016</span>&#160;           </div>
-<div class="line"><a name="l08017"></a><span class="lineno"> 8017</span>&#160;            <span class="keywordflow">return</span> 1;                                                                                       <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l08018"></a><span class="lineno"> 8018</span>&#160;        }</div>
-<div class="line"><a name="l08019"></a><span class="lineno"> 8019</span>&#160;    }</div>
-<div class="line"><a name="l08020"></a><span class="lineno"> 8020</span>&#160;    </div>
-<div class="line"><a name="l08021"></a><span class="lineno"> 8021</span>&#160;    <span class="keywordflow">return</span> 0;                                                                                               <span class="comment">/* success return 0 */</span></div>
-<div class="line"><a name="l08022"></a><span class="lineno"> 8022</span>&#160;}</div>
-<div class="line"><a name="l08023"></a><span class="lineno"> 8023</span>&#160; </div>
-<div class="line"><a name="l08035"></a><span class="lineno"> 8035</span>&#160;<span class="keyword">static</span> uint8_t a_w25qxx_page_program(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint16_t len)</div>
-<div class="line"><a name="l08036"></a><span class="lineno"> 8036</span>&#160;{</div>
-<div class="line"><a name="l08037"></a><span class="lineno"> 8037</span>&#160;    uint8_t res;</div>
-<div class="line"><a name="l08038"></a><span class="lineno"> 8038</span>&#160;    uint8_t status;</div>
-<div class="line"><a name="l08039"></a><span class="lineno"> 8039</span>&#160;    uint32_t timeout;</div>
-<div class="line"><a name="l08040"></a><span class="lineno"> 8040</span>&#160;    uint8_t buf[2];</div>
-<div class="line"><a name="l08041"></a><span class="lineno"> 8041</span>&#160; </div>
-<div class="line"><a name="l08042"></a><span class="lineno"> 8042</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>)                                                           <span class="comment">/* spi interface */</span></div>
-<div class="line"><a name="l08043"></a><span class="lineno"> 8043</span>&#160;    {</div>
-<div class="line"><a name="l08044"></a><span class="lineno"> 8044</span>&#160;        <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">dual_quad_spi_enable</a> != 0)                                                              <span class="comment">/* enable dual quad spi */</span></div>
-<div class="line"><a name="l08045"></a><span class="lineno"> 8045</span>&#160;        {</div>
-<div class="line"><a name="l08046"></a><span class="lineno"> 8046</span>&#160;            res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>, 1,</div>
-<div class="line"><a name="l08047"></a><span class="lineno"> 8047</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l08048"></a><span class="lineno"> 8048</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l08049"></a><span class="lineno"> 8049</span>&#160;                                           0x00, NULL, 0x00,</div>
-<div class="line"><a name="l08050"></a><span class="lineno"> 8050</span>&#160;                                           NULL, 0x00, 0x00);                                               <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l08051"></a><span class="lineno"> 8051</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                                   <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l08052"></a><span class="lineno"> 8052</span>&#160;            {</div>
-<div class="line"><a name="l08053"></a><span class="lineno"> 8053</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                                      <span class="comment">/* write enable failed */</span></div>
-<div class="line"><a name="l08054"></a><span class="lineno"> 8054</span>&#160;               </div>
-<div class="line"><a name="l08055"></a><span class="lineno"> 8055</span>&#160;                <span class="keywordflow">return</span> 1;                                                                                   <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l08056"></a><span class="lineno"> 8056</span>&#160;            }</div>
-<div class="line"><a name="l08057"></a><span class="lineno"> 8057</span>&#160;            <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                         <span class="comment">/* 3 address mode */</span></div>
-<div class="line"><a name="l08058"></a><span class="lineno"> 8058</span>&#160;            {</div>
-<div class="line"><a name="l08059"></a><span class="lineno"> 8059</span>&#160;                <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)                                                                <span class="comment">/* &gt;128Mb */</span></div>
-<div class="line"><a name="l08060"></a><span class="lineno"> 8060</span>&#160;                {</div>
-<div class="line"><a name="l08061"></a><span class="lineno"> 8061</span>&#160;                    buf[0] = (addr &gt;&gt; 24) &amp; 0xFF;                                                           <span class="comment">/* 31 - 24 bits */</span></div>
-<div class="line"><a name="l08062"></a><span class="lineno"> 8062</span>&#160;                    res = a_w25qxx_qspi_write_read(handle, 0xC5, 1,</div>
-<div class="line"><a name="l08063"></a><span class="lineno"> 8063</span>&#160;                                                   0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l08064"></a><span class="lineno"> 8064</span>&#160;                                                   0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l08065"></a><span class="lineno"> 8065</span>&#160;                                                   0, (uint8_t *)buf, 0x01,</div>
-<div class="line"><a name="l08066"></a><span class="lineno"> 8066</span>&#160;                                                   NULL, 0x00, 1);                                          <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l08067"></a><span class="lineno"> 8067</span>&#160;                    <span class="keywordflow">if</span> (res != 0)                                                                           <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l08068"></a><span class="lineno"> 8068</span>&#160;                    {</div>
-<div class="line"><a name="l08069"></a><span class="lineno"> 8069</span>&#160;                        handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write extended addr register failed.\n&quot;</span>);              <span class="comment">/* write extended addr register failed */</span></div>
-<div class="line"><a name="l08070"></a><span class="lineno"> 8070</span>&#160;                       </div>
-<div class="line"><a name="l08071"></a><span class="lineno"> 8071</span>&#160;                        <span class="keywordflow">return</span> 1;                                                                           <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l08072"></a><span class="lineno"> 8072</span>&#160;                    }</div>
-<div class="line"><a name="l08073"></a><span class="lineno"> 8073</span>&#160;                    res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>, 1,</div>
-<div class="line"><a name="l08074"></a><span class="lineno"> 8074</span>&#160;                                                   0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l08075"></a><span class="lineno"> 8075</span>&#160;                                                   0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l08076"></a><span class="lineno"> 8076</span>&#160;                                                   0x00, NULL, 0x00,</div>
-<div class="line"><a name="l08077"></a><span class="lineno"> 8077</span>&#160;                                                   NULL, 0x00, 0x00);                                       <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l08078"></a><span class="lineno"> 8078</span>&#160;                    <span class="keywordflow">if</span> (res != 0)                                                                           <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l08079"></a><span class="lineno"> 8079</span>&#160;                    {</div>
-<div class="line"><a name="l08080"></a><span class="lineno"> 8080</span>&#160;                        handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                              <span class="comment">/* write enable failed */</span></div>
-<div class="line"><a name="l08081"></a><span class="lineno"> 8081</span>&#160;                       </div>
-<div class="line"><a name="l08082"></a><span class="lineno"> 8082</span>&#160;                        <span class="keywordflow">return</span> 1;                                                                           <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l08083"></a><span class="lineno"> 8083</span>&#160;                    }</div>
-<div class="line"><a name="l08084"></a><span class="lineno"> 8084</span>&#160;                }</div>
-<div class="line"><a name="l08085"></a><span class="lineno"> 8085</span>&#160;                res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#aebca01f1f7fd279523d29e579998574a">W25QXX_COMMAND_PAGE_PROGRAM</a>, 1,</div>
-<div class="line"><a name="l08086"></a><span class="lineno"> 8086</span>&#160;                                               addr, 1, 3,</div>
-<div class="line"><a name="l08087"></a><span class="lineno"> 8087</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l08088"></a><span class="lineno"> 8088</span>&#160;                                               0, data, len,</div>
-<div class="line"><a name="l08089"></a><span class="lineno"> 8089</span>&#160;                                               NULL, 0x00, 1);                                              <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l08090"></a><span class="lineno"> 8090</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l08091"></a><span class="lineno"> 8091</span>&#160;                {</div>
-<div class="line"><a name="l08092"></a><span class="lineno"> 8092</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: page program failed.\n&quot;</span>);                                  <span class="comment">/* page program failed */</span></div>
-<div class="line"><a name="l08093"></a><span class="lineno"> 8093</span>&#160;                   </div>
-<div class="line"><a name="l08094"></a><span class="lineno"> 8094</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l08095"></a><span class="lineno"> 8095</span>&#160;                }</div>
-<div class="line"><a name="l08096"></a><span class="lineno"> 8096</span>&#160;            }</div>
-<div class="line"><a name="l08097"></a><span class="lineno"> 8097</span>&#160;            <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>) &amp;&amp; (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>))</div>
-<div class="line"><a name="l08098"></a><span class="lineno"> 8098</span>&#160;            {</div>
-<div class="line"><a name="l08099"></a><span class="lineno"> 8099</span>&#160;                res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#aebca01f1f7fd279523d29e579998574a">W25QXX_COMMAND_PAGE_PROGRAM</a>, 1,</div>
-<div class="line"><a name="l08100"></a><span class="lineno"> 8100</span>&#160;                                               addr, 1, 4,</div>
-<div class="line"><a name="l08101"></a><span class="lineno"> 8101</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l08102"></a><span class="lineno"> 8102</span>&#160;                                               0, data, len,</div>
-<div class="line"><a name="l08103"></a><span class="lineno"> 8103</span>&#160;                                               NULL, 0x00, 1);                                              <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l08104"></a><span class="lineno"> 8104</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l08105"></a><span class="lineno"> 8105</span>&#160;                {</div>
-<div class="line"><a name="l08106"></a><span class="lineno"> 8106</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: page program failed.\n&quot;</span>);                                  <span class="comment">/* page program failed */</span></div>
-<div class="line"><a name="l08107"></a><span class="lineno"> 8107</span>&#160;                   </div>
-<div class="line"><a name="l08108"></a><span class="lineno"> 8108</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l08109"></a><span class="lineno"> 8109</span>&#160;                }</div>
-<div class="line"><a name="l08110"></a><span class="lineno"> 8110</span>&#160;            }</div>
-<div class="line"><a name="l08111"></a><span class="lineno"> 8111</span>&#160;            <span class="keywordflow">else</span></div>
-<div class="line"><a name="l08112"></a><span class="lineno"> 8112</span>&#160;            {</div>
-<div class="line"><a name="l08113"></a><span class="lineno"> 8113</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: address mode is invalid.\n&quot;</span>);                                  <span class="comment">/* address mode is invalid */</span></div>
-<div class="line"><a name="l08114"></a><span class="lineno"> 8114</span>&#160;               </div>
-<div class="line"><a name="l08115"></a><span class="lineno"> 8115</span>&#160;                <span class="keywordflow">return</span> 1;                                                                                   <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l08116"></a><span class="lineno"> 8116</span>&#160;            }</div>
-<div class="line"><a name="l08117"></a><span class="lineno"> 8117</span>&#160;            </div>
-<div class="line"><a name="l08118"></a><span class="lineno"> 8118</span>&#160;            timeout = 3 * 100;                                                                              <span class="comment">/* max 3 ms */</span></div>
-<div class="line"><a name="l08119"></a><span class="lineno"> 8119</span>&#160;            <span class="keywordflow">while</span> (timeout != 0)                                                                            <span class="comment">/* check timeout */</span></div>
-<div class="line"><a name="l08120"></a><span class="lineno"> 8120</span>&#160;            {</div>
-<div class="line"><a name="l08121"></a><span class="lineno"> 8121</span>&#160;                res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#adf682969c34f4b31a87dd92dd18ccea3">W25QXX_COMMAND_READ_STATUS_REG1</a>, 1,</div>
-<div class="line"><a name="l08122"></a><span class="lineno"> 8122</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l08123"></a><span class="lineno"> 8123</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l08124"></a><span class="lineno"> 8124</span>&#160;                                               0, NULL, 0,</div>
-<div class="line"><a name="l08125"></a><span class="lineno"> 8125</span>&#160;                                              (uint8_t *)&amp;status, 1, 1);                                    <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l08126"></a><span class="lineno"> 8126</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l08127"></a><span class="lineno"> 8127</span>&#160;                {</div>
-<div class="line"><a name="l08128"></a><span class="lineno"> 8128</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: page program failed.\n&quot;</span>);                                  <span class="comment">/* page program failed */</span></div>
-<div class="line"><a name="l08129"></a><span class="lineno"> 8129</span>&#160;                   </div>
-<div class="line"><a name="l08130"></a><span class="lineno"> 8130</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l08131"></a><span class="lineno"> 8131</span>&#160;                }</div>
-<div class="line"><a name="l08132"></a><span class="lineno"> 8132</span>&#160;                <span class="keywordflow">if</span> ((status &amp; 0x01) == 0x00)                                                                <span class="comment">/* check status */</span></div>
-<div class="line"><a name="l08133"></a><span class="lineno"> 8133</span>&#160;                {</div>
-<div class="line"><a name="l08134"></a><span class="lineno"> 8134</span>&#160;                    <span class="keywordflow">break</span>;                                                                                  <span class="comment">/* break */</span></div>
-<div class="line"><a name="l08135"></a><span class="lineno"> 8135</span>&#160;                }</div>
-<div class="line"><a name="l08136"></a><span class="lineno"> 8136</span>&#160;                timeout--;                                                                                  <span class="comment">/* timeout-- */</span></div>
-<div class="line"><a name="l08137"></a><span class="lineno"> 8137</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a97ffc4fce945527bd6ab25a3596caef7">delay_us</a>(10);                                                                       <span class="comment">/* delay 10 us */</span></div>
-<div class="line"><a name="l08138"></a><span class="lineno"> 8138</span>&#160;            }</div>
-<div class="line"><a name="l08139"></a><span class="lineno"> 8139</span>&#160;            <span class="keywordflow">if</span> (timeout == 0)</div>
-<div class="line"><a name="l08140"></a><span class="lineno"> 8140</span>&#160;            {</div>
-<div class="line"><a name="l08141"></a><span class="lineno"> 8141</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: page program timeout.\n&quot;</span>);                                     <span class="comment">/* page program timeout */</span></div>
-<div class="line"><a name="l08142"></a><span class="lineno"> 8142</span>&#160;               </div>
-<div class="line"><a name="l08143"></a><span class="lineno"> 8143</span>&#160;                <span class="keywordflow">return</span> 1;                                                                                   <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l08144"></a><span class="lineno"> 8144</span>&#160;            }</div>
-<div class="line"><a name="l08145"></a><span class="lineno"> 8145</span>&#160;        }</div>
-<div class="line"><a name="l08146"></a><span class="lineno"> 8146</span>&#160;        <span class="keywordflow">else</span>                                                                                                <span class="comment">/* single spi */</span></div>
-<div class="line"><a name="l08147"></a><span class="lineno"> 8147</span>&#160;        {</div>
-<div class="line"><a name="l08148"></a><span class="lineno"> 8148</span>&#160;            buf[0] = <a class="code" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>;                                                           <span class="comment">/* write enable command */</span></div>
-<div class="line"><a name="l08149"></a><span class="lineno"> 8149</span>&#160;            res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 1, NULL, 0);                              <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l08150"></a><span class="lineno"> 8150</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                                   <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l08151"></a><span class="lineno"> 8151</span>&#160;            {</div>
-<div class="line"><a name="l08152"></a><span class="lineno"> 8152</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                                      <span class="comment">/* write enable failed */</span></div>
-<div class="line"><a name="l08153"></a><span class="lineno"> 8153</span>&#160;               </div>
-<div class="line"><a name="l08154"></a><span class="lineno"> 8154</span>&#160;                <span class="keywordflow">return</span> 1;                                                                                   <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l08155"></a><span class="lineno"> 8155</span>&#160;            }</div>
-<div class="line"><a name="l08156"></a><span class="lineno"> 8156</span>&#160;            <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                         <span class="comment">/* 3 address mode */</span></div>
-<div class="line"><a name="l08157"></a><span class="lineno"> 8157</span>&#160;            {</div>
-<div class="line"><a name="l08158"></a><span class="lineno"> 8158</span>&#160;                <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)                                                                <span class="comment">/* &gt;128Mb */</span></div>
-<div class="line"><a name="l08159"></a><span class="lineno"> 8159</span>&#160;                {</div>
-<div class="line"><a name="l08160"></a><span class="lineno"> 8160</span>&#160;                    buf[0] = 0xC5;                                                                          <span class="comment">/* write extended addr register command */</span></div>
-<div class="line"><a name="l08161"></a><span class="lineno"> 8161</span>&#160;                    buf[1] = (addr &gt;&gt; 24) &amp; 0xFF;                                                           <span class="comment">/* 31 - 24 bits */</span></div>
-<div class="line"><a name="l08162"></a><span class="lineno"> 8162</span>&#160;                    res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 2, NULL, 0);                      <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l08163"></a><span class="lineno"> 8163</span>&#160;                    <span class="keywordflow">if</span> (res != 0)                                                                           <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l08164"></a><span class="lineno"> 8164</span>&#160;                    {</div>
-<div class="line"><a name="l08165"></a><span class="lineno"> 8165</span>&#160;                        handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write extended addr register failed.\n&quot;</span>);              <span class="comment">/* write extended addr register failed */</span></div>
-<div class="line"><a name="l08166"></a><span class="lineno"> 8166</span>&#160;                       </div>
-<div class="line"><a name="l08167"></a><span class="lineno"> 8167</span>&#160;                        <span class="keywordflow">return</span> 1;                                                                           <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l08168"></a><span class="lineno"> 8168</span>&#160;                    }</div>
-<div class="line"><a name="l08169"></a><span class="lineno"> 8169</span>&#160;                    buf[0] = <a class="code" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>;                                                   <span class="comment">/* write enable command */</span></div>
-<div class="line"><a name="l08170"></a><span class="lineno"> 8170</span>&#160;                    res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 1, NULL, 0);                      <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l08171"></a><span class="lineno"> 8171</span>&#160;                    <span class="keywordflow">if</span> (res != 0)                                                                           <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l08172"></a><span class="lineno"> 8172</span>&#160;                    {</div>
-<div class="line"><a name="l08173"></a><span class="lineno"> 8173</span>&#160;                        handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                              <span class="comment">/* write enable failed */</span></div>
-<div class="line"><a name="l08174"></a><span class="lineno"> 8174</span>&#160;                       </div>
-<div class="line"><a name="l08175"></a><span class="lineno"> 8175</span>&#160;                        <span class="keywordflow">return</span> 1;                                                                           <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l08176"></a><span class="lineno"> 8176</span>&#160;                    }</div>
-<div class="line"><a name="l08177"></a><span class="lineno"> 8177</span>&#160;                }</div>
-<div class="line"><a name="l08178"></a><span class="lineno"> 8178</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a2121914a1858618e9216fa2daf0a42a2">buf</a>[0] = <a class="code" href="driver__w25qxx_8c.html#aebca01f1f7fd279523d29e579998574a">W25QXX_COMMAND_PAGE_PROGRAM</a>;                                               <span class="comment">/* page program command */</span></div>
-<div class="line"><a name="l08179"></a><span class="lineno"> 8179</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a2121914a1858618e9216fa2daf0a42a2">buf</a>[1] = (addr &gt;&gt; 16) &amp; 0xFF;                                                       <span class="comment">/* 23 - 16 bits */</span></div>
-<div class="line"><a name="l08180"></a><span class="lineno"> 8180</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a2121914a1858618e9216fa2daf0a42a2">buf</a>[2] = (addr &gt;&gt; 8) &amp; 0xFF;                                                        <span class="comment">/* 15 - 8  bits */</span></div>
-<div class="line"><a name="l08181"></a><span class="lineno"> 8181</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a2121914a1858618e9216fa2daf0a42a2">buf</a>[3] = (addr &gt;&gt; 0) &amp; 0xFF;                                                        <span class="comment">/* 7 - 0 bits */</span></div>
-<div class="line"><a name="l08182"></a><span class="lineno"> 8182</span>&#160;                memcpy(&amp;handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a2121914a1858618e9216fa2daf0a42a2">buf</a>[4], data, len);                                                         <span class="comment">/* copy data */</span></div>
-<div class="line"><a name="l08183"></a><span class="lineno"> 8183</span>&#160;                res = a_w25qxx_spi_write_read(handle, (uint8_t *)handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a2121914a1858618e9216fa2daf0a42a2">buf</a>, 4 + len, NULL, 0);            <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l08184"></a><span class="lineno"> 8184</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l08185"></a><span class="lineno"> 8185</span>&#160;                {</div>
-<div class="line"><a name="l08186"></a><span class="lineno"> 8186</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: page program failed.\n&quot;</span>);                                  <span class="comment">/* page program failed */</span></div>
-<div class="line"><a name="l08187"></a><span class="lineno"> 8187</span>&#160;                   </div>
-<div class="line"><a name="l08188"></a><span class="lineno"> 8188</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l08189"></a><span class="lineno"> 8189</span>&#160;                }</div>
-<div class="line"><a name="l08190"></a><span class="lineno"> 8190</span>&#160;            }</div>
-<div class="line"><a name="l08191"></a><span class="lineno"> 8191</span>&#160;            <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>)</div>
-<div class="line"><a name="l08192"></a><span class="lineno"> 8192</span>&#160;                     &amp;&amp; (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>))                                                          <span class="comment">/* 4 address mode */</span></div>
-<div class="line"><a name="l08193"></a><span class="lineno"> 8193</span>&#160;            {</div>
-<div class="line"><a name="l08194"></a><span class="lineno"> 8194</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a2121914a1858618e9216fa2daf0a42a2">buf</a>[0] = <a class="code" href="driver__w25qxx_8c.html#aebca01f1f7fd279523d29e579998574a">W25QXX_COMMAND_PAGE_PROGRAM</a>;                                               <span class="comment">/* page program command */</span></div>
-<div class="line"><a name="l08195"></a><span class="lineno"> 8195</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a2121914a1858618e9216fa2daf0a42a2">buf</a>[1] = (addr &gt;&gt; 24) &amp; 0xFF;                                                       <span class="comment">/* 31 - 24 bits */</span></div>
-<div class="line"><a name="l08196"></a><span class="lineno"> 8196</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a2121914a1858618e9216fa2daf0a42a2">buf</a>[2] = (addr &gt;&gt; 16) &amp; 0xFF;                                                       <span class="comment">/* 23 - 16 bits */</span></div>
-<div class="line"><a name="l08197"></a><span class="lineno"> 8197</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a2121914a1858618e9216fa2daf0a42a2">buf</a>[3] = (addr &gt;&gt; 8) &amp; 0xFF;                                                        <span class="comment">/* 15 - 8  bits */</span></div>
-<div class="line"><a name="l08198"></a><span class="lineno"> 8198</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a2121914a1858618e9216fa2daf0a42a2">buf</a>[4] = (addr &gt;&gt; 0) &amp; 0xFF;                                                        <span class="comment">/* 7 - 0 bits */</span></div>
-<div class="line"><a name="l08199"></a><span class="lineno"> 8199</span>&#160;                memcpy(&amp;handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a2121914a1858618e9216fa2daf0a42a2">buf</a>[5], data, len);                                                         <span class="comment">/* copy data */</span></div>
-<div class="line"><a name="l08200"></a><span class="lineno"> 8200</span>&#160;                res = a_w25qxx_spi_write_read(handle, (uint8_t *)handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a2121914a1858618e9216fa2daf0a42a2">buf</a>, 5 + len, NULL, 0);            <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l08201"></a><span class="lineno"> 8201</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l08202"></a><span class="lineno"> 8202</span>&#160;                {</div>
-<div class="line"><a name="l08203"></a><span class="lineno"> 8203</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: page program failed.\n&quot;</span>);                                  <span class="comment">/* page program failed */</span></div>
-<div class="line"><a name="l08204"></a><span class="lineno"> 8204</span>&#160;                   </div>
-<div class="line"><a name="l08205"></a><span class="lineno"> 8205</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l08206"></a><span class="lineno"> 8206</span>&#160;                }</div>
-<div class="line"><a name="l08207"></a><span class="lineno"> 8207</span>&#160;            }</div>
-<div class="line"><a name="l08208"></a><span class="lineno"> 8208</span>&#160;            <span class="keywordflow">else</span></div>
-<div class="line"><a name="l08209"></a><span class="lineno"> 8209</span>&#160;            {</div>
-<div class="line"><a name="l08210"></a><span class="lineno"> 8210</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: address mode is invalid.\n&quot;</span>);                                  <span class="comment">/* address mode is invalid */</span></div>
-<div class="line"><a name="l08211"></a><span class="lineno"> 8211</span>&#160;               </div>
-<div class="line"><a name="l08212"></a><span class="lineno"> 8212</span>&#160;                <span class="keywordflow">return</span> 1;                                                                                   <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l08213"></a><span class="lineno"> 8213</span>&#160;            }</div>
-<div class="line"><a name="l08214"></a><span class="lineno"> 8214</span>&#160;            </div>
-<div class="line"><a name="l08215"></a><span class="lineno"> 8215</span>&#160;            timeout = 3 * 100;                                                                              <span class="comment">/* max 3 ms */</span></div>
-<div class="line"><a name="l08216"></a><span class="lineno"> 8216</span>&#160;            <span class="keywordflow">while</span> (timeout != 0)                                                                            <span class="comment">/* check timeout */</span></div>
-<div class="line"><a name="l08217"></a><span class="lineno"> 8217</span>&#160;            {</div>
-<div class="line"><a name="l08218"></a><span class="lineno"> 8218</span>&#160;                buf[0] = <a class="code" href="driver__w25qxx_8c.html#adf682969c34f4b31a87dd92dd18ccea3">W25QXX_COMMAND_READ_STATUS_REG1</a>;                                                   <span class="comment">/* read status1 command */</span></div>
-<div class="line"><a name="l08219"></a><span class="lineno"> 8219</span>&#160;                res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 1, (uint8_t *)&amp;status, 1);            <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l08220"></a><span class="lineno"> 8220</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l08221"></a><span class="lineno"> 8221</span>&#160;                {</div>
-<div class="line"><a name="l08222"></a><span class="lineno"> 8222</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: get status1 failed.\n&quot;</span>);                                   <span class="comment">/* get status1 failed */</span></div>
-<div class="line"><a name="l08223"></a><span class="lineno"> 8223</span>&#160;                   </div>
-<div class="line"><a name="l08224"></a><span class="lineno"> 8224</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l08225"></a><span class="lineno"> 8225</span>&#160;                }</div>
-<div class="line"><a name="l08226"></a><span class="lineno"> 8226</span>&#160;                <span class="keywordflow">if</span> ((status &amp; 0x01) == 0x00)                                                                <span class="comment">/* check status */</span></div>
-<div class="line"><a name="l08227"></a><span class="lineno"> 8227</span>&#160;                {</div>
-<div class="line"><a name="l08228"></a><span class="lineno"> 8228</span>&#160;                    <span class="keywordflow">break</span>;                                                                                  <span class="comment">/* break */</span></div>
-<div class="line"><a name="l08229"></a><span class="lineno"> 8229</span>&#160;                }</div>
-<div class="line"><a name="l08230"></a><span class="lineno"> 8230</span>&#160;                timeout--;                                                                                  <span class="comment">/* timeout-- */</span></div>
-<div class="line"><a name="l08231"></a><span class="lineno"> 8231</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a97ffc4fce945527bd6ab25a3596caef7">delay_us</a>(10);                                                                       <span class="comment">/* delay 10 us */</span></div>
-<div class="line"><a name="l08232"></a><span class="lineno"> 8232</span>&#160;            }</div>
-<div class="line"><a name="l08233"></a><span class="lineno"> 8233</span>&#160;            <span class="keywordflow">if</span> (timeout == 0)</div>
-<div class="line"><a name="l08234"></a><span class="lineno"> 8234</span>&#160;            {</div>
-<div class="line"><a name="l08235"></a><span class="lineno"> 8235</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: page program timeout.\n&quot;</span>);                                     <span class="comment">/* page program timeout */</span></div>
-<div class="line"><a name="l08236"></a><span class="lineno"> 8236</span>&#160;               </div>
-<div class="line"><a name="l08237"></a><span class="lineno"> 8237</span>&#160;                <span class="keywordflow">return</span> 1;                                                                                   <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l08238"></a><span class="lineno"> 8238</span>&#160;            }</div>
-<div class="line"><a name="l08239"></a><span class="lineno"> 8239</span>&#160;        }</div>
-<div class="line"><a name="l08240"></a><span class="lineno"> 8240</span>&#160;    }</div>
-<div class="line"><a name="l08241"></a><span class="lineno"> 8241</span>&#160;    <span class="keywordflow">else</span></div>
-<div class="line"><a name="l08242"></a><span class="lineno"> 8242</span>&#160;    {</div>
-<div class="line"><a name="l08243"></a><span class="lineno"> 8243</span>&#160;        res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>, 4,</div>
-<div class="line"><a name="l08244"></a><span class="lineno"> 8244</span>&#160;                                       0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l08245"></a><span class="lineno"> 8245</span>&#160;                                       0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l08246"></a><span class="lineno"> 8246</span>&#160;                                       0x00, NULL, 0x00,</div>
-<div class="line"><a name="l08247"></a><span class="lineno"> 8247</span>&#160;                                       NULL, 0x00, 0x00);                                                   <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l08248"></a><span class="lineno"> 8248</span>&#160;        <span class="keywordflow">if</span> (res != 0)                                                                                       <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l08249"></a><span class="lineno"> 8249</span>&#160;        {</div>
-<div class="line"><a name="l08250"></a><span class="lineno"> 8250</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                                          <span class="comment">/* write enable failed */</span></div>
-<div class="line"><a name="l08251"></a><span class="lineno"> 8251</span>&#160;           </div>
-<div class="line"><a name="l08252"></a><span class="lineno"> 8252</span>&#160;            <span class="keywordflow">return</span> 1;                                                                                       <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l08253"></a><span class="lineno"> 8253</span>&#160;        }</div>
-<div class="line"><a name="l08254"></a><span class="lineno"> 8254</span>&#160;        <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                             <span class="comment">/* 3 address mode */</span></div>
-<div class="line"><a name="l08255"></a><span class="lineno"> 8255</span>&#160;        {</div>
-<div class="line"><a name="l08256"></a><span class="lineno"> 8256</span>&#160;            <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)                                                                    <span class="comment">/* &gt;128Mb */</span></div>
-<div class="line"><a name="l08257"></a><span class="lineno"> 8257</span>&#160;            {</div>
-<div class="line"><a name="l08258"></a><span class="lineno"> 8258</span>&#160;                buf[0] = (addr &gt;&gt; 24) &amp; 0xFF;                                                               <span class="comment">/* 31 - 24 bits */</span></div>
-<div class="line"><a name="l08259"></a><span class="lineno"> 8259</span>&#160;                res = a_w25qxx_qspi_write_read(handle, 0xC5, 4,</div>
-<div class="line"><a name="l08260"></a><span class="lineno"> 8260</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l08261"></a><span class="lineno"> 8261</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l08262"></a><span class="lineno"> 8262</span>&#160;                                               0, (uint8_t *)buf, 0x01,</div>
-<div class="line"><a name="l08263"></a><span class="lineno"> 8263</span>&#160;                                               NULL, 0x00, 4);                                              <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l08264"></a><span class="lineno"> 8264</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l08265"></a><span class="lineno"> 8265</span>&#160;                {</div>
-<div class="line"><a name="l08266"></a><span class="lineno"> 8266</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write extended addr register failed.\n&quot;</span>);                  <span class="comment">/* write extended addr register failed */</span></div>
-<div class="line"><a name="l08267"></a><span class="lineno"> 8267</span>&#160;                   </div>
-<div class="line"><a name="l08268"></a><span class="lineno"> 8268</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l08269"></a><span class="lineno"> 8269</span>&#160;                }</div>
-<div class="line"><a name="l08270"></a><span class="lineno"> 8270</span>&#160;                res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>, 4,</div>
-<div class="line"><a name="l08271"></a><span class="lineno"> 8271</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l08272"></a><span class="lineno"> 8272</span>&#160;                                               0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l08273"></a><span class="lineno"> 8273</span>&#160;                                               0x00, NULL, 0x00,</div>
-<div class="line"><a name="l08274"></a><span class="lineno"> 8274</span>&#160;                                               NULL, 0x00, 0x00);                                           <span class="comment">/* qspi write read */</span></div>
-<div class="line"><a name="l08275"></a><span class="lineno"> 8275</span>&#160;                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l08276"></a><span class="lineno"> 8276</span>&#160;                {</div>
-<div class="line"><a name="l08277"></a><span class="lineno"> 8277</span>&#160;                    handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                                  <span class="comment">/* write enable failed */</span></div>
-<div class="line"><a name="l08278"></a><span class="lineno"> 8278</span>&#160;                   </div>
-<div class="line"><a name="l08279"></a><span class="lineno"> 8279</span>&#160;                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l08280"></a><span class="lineno"> 8280</span>&#160;                }</div>
-<div class="line"><a name="l08281"></a><span class="lineno"> 8281</span>&#160;            }</div>
-<div class="line"><a name="l08282"></a><span class="lineno"> 8282</span>&#160;            res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#aebca01f1f7fd279523d29e579998574a">W25QXX_COMMAND_PAGE_PROGRAM</a>, 4,</div>
-<div class="line"><a name="l08283"></a><span class="lineno"> 8283</span>&#160;                                           addr, 4, 3,</div>
-<div class="line"><a name="l08284"></a><span class="lineno"> 8284</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l08285"></a><span class="lineno"> 8285</span>&#160;                                           0, data, len,</div>
-<div class="line"><a name="l08286"></a><span class="lineno"> 8286</span>&#160;                                           NULL, 0x00, 4);                                                  <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l08287"></a><span class="lineno"> 8287</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                                   <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l08288"></a><span class="lineno"> 8288</span>&#160;            {</div>
-<div class="line"><a name="l08289"></a><span class="lineno"> 8289</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: page program failed.\n&quot;</span>);                                      <span class="comment">/* page program failed */</span></div>
-<div class="line"><a name="l08290"></a><span class="lineno"> 8290</span>&#160;               </div>
-<div class="line"><a name="l08291"></a><span class="lineno"> 8291</span>&#160;                  <span class="keywordflow">return</span> 1;                                                                                 <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l08292"></a><span class="lineno"> 8292</span>&#160;            }</div>
-<div class="line"><a name="l08293"></a><span class="lineno"> 8293</span>&#160;        }</div>
-<div class="line"><a name="l08294"></a><span class="lineno"> 8294</span>&#160;        <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>) &amp;&amp; (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>))</div>
-<div class="line"><a name="l08295"></a><span class="lineno"> 8295</span>&#160;        {</div>
-<div class="line"><a name="l08296"></a><span class="lineno"> 8296</span>&#160;            res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#aebca01f1f7fd279523d29e579998574a">W25QXX_COMMAND_PAGE_PROGRAM</a>, 4,</div>
-<div class="line"><a name="l08297"></a><span class="lineno"> 8297</span>&#160;                                           addr, 4, 4,</div>
-<div class="line"><a name="l08298"></a><span class="lineno"> 8298</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l08299"></a><span class="lineno"> 8299</span>&#160;                                           0, data, len,</div>
-<div class="line"><a name="l08300"></a><span class="lineno"> 8300</span>&#160;                                           NULL, 0x00, 4);                                                  <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l08301"></a><span class="lineno"> 8301</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                                   <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l08302"></a><span class="lineno"> 8302</span>&#160;            {</div>
-<div class="line"><a name="l08303"></a><span class="lineno"> 8303</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: page program failed.\n&quot;</span>);                                      <span class="comment">/* page program failed */</span></div>
-<div class="line"><a name="l08304"></a><span class="lineno"> 8304</span>&#160;               </div>
-<div class="line"><a name="l08305"></a><span class="lineno"> 8305</span>&#160;                <span class="keywordflow">return</span> 1;                                                                                   <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l08306"></a><span class="lineno"> 8306</span>&#160;            }</div>
-<div class="line"><a name="l08307"></a><span class="lineno"> 8307</span>&#160;        }</div>
-<div class="line"><a name="l08308"></a><span class="lineno"> 8308</span>&#160;        <span class="keywordflow">else</span></div>
-<div class="line"><a name="l08309"></a><span class="lineno"> 8309</span>&#160;        {</div>
-<div class="line"><a name="l08310"></a><span class="lineno"> 8310</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: address mode is invalid.\n&quot;</span>);                                      <span class="comment">/* address mode is invalid */</span></div>
-<div class="line"><a name="l08311"></a><span class="lineno"> 8311</span>&#160;           </div>
-<div class="line"><a name="l08312"></a><span class="lineno"> 8312</span>&#160;            <span class="keywordflow">return</span> 1;                                                                                       <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l08313"></a><span class="lineno"> 8313</span>&#160;        }</div>
-<div class="line"><a name="l08314"></a><span class="lineno"> 8314</span>&#160;        </div>
-<div class="line"><a name="l08315"></a><span class="lineno"> 8315</span>&#160;        timeout = 3 * 100;                                                                                  <span class="comment">/* max 3 ms */</span></div>
-<div class="line"><a name="l08316"></a><span class="lineno"> 8316</span>&#160;        <span class="keywordflow">while</span> (timeout != 0)                                                                                <span class="comment">/* check timeout */</span></div>
-<div class="line"><a name="l08317"></a><span class="lineno"> 8317</span>&#160;        {</div>
-<div class="line"><a name="l08318"></a><span class="lineno"> 8318</span>&#160;            res = a_w25qxx_qspi_write_read(handle, <a class="code" href="driver__w25qxx_8c.html#adf682969c34f4b31a87dd92dd18ccea3">W25QXX_COMMAND_READ_STATUS_REG1</a>, 4,</div>
-<div class="line"><a name="l08319"></a><span class="lineno"> 8319</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l08320"></a><span class="lineno"> 8320</span>&#160;                                           0x00000000, 0x00, 0x00,</div>
-<div class="line"><a name="l08321"></a><span class="lineno"> 8321</span>&#160;                                           0, NULL, 0,</div>
-<div class="line"><a name="l08322"></a><span class="lineno"> 8322</span>&#160;                                          (uint8_t *)&amp;status, 1, 4);                                        <span class="comment">/* spi write read */</span></div>
-<div class="line"><a name="l08323"></a><span class="lineno"> 8323</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                                   <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l08324"></a><span class="lineno"> 8324</span>&#160;            {</div>
-<div class="line"><a name="l08325"></a><span class="lineno"> 8325</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: page program failed.\n&quot;</span>);                                      <span class="comment">/* page program failed */</span></div>
-<div class="line"><a name="l08326"></a><span class="lineno"> 8326</span>&#160;               </div>
-<div class="line"><a name="l08327"></a><span class="lineno"> 8327</span>&#160;                <span class="keywordflow">return</span> 1;                                                                                   <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l08328"></a><span class="lineno"> 8328</span>&#160;            }</div>
-<div class="line"><a name="l08329"></a><span class="lineno"> 8329</span>&#160;            <span class="keywordflow">if</span> ((status &amp; 0x01) == 0x00)                                                                    <span class="comment">/* check status */</span></div>
-<div class="line"><a name="l08330"></a><span class="lineno"> 8330</span>&#160;            {</div>
-<div class="line"><a name="l08331"></a><span class="lineno"> 8331</span>&#160;                <span class="keywordflow">break</span>;                                                                                      <span class="comment">/* break */</span></div>
-<div class="line"><a name="l08332"></a><span class="lineno"> 8332</span>&#160;            }</div>
-<div class="line"><a name="l08333"></a><span class="lineno"> 8333</span>&#160;            timeout--;                                                                                      <span class="comment">/* timeout-- */</span></div>
-<div class="line"><a name="l08334"></a><span class="lineno"> 8334</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a97ffc4fce945527bd6ab25a3596caef7">delay_us</a>(10);                                                                           <span class="comment">/* delay 10 us */</span></div>
-<div class="line"><a name="l08335"></a><span class="lineno"> 8335</span>&#160;        }</div>
-<div class="line"><a name="l08336"></a><span class="lineno"> 8336</span>&#160;        <span class="keywordflow">if</span> (timeout == 0)</div>
-<div class="line"><a name="l08337"></a><span class="lineno"> 8337</span>&#160;        {</div>
-<div class="line"><a name="l08338"></a><span class="lineno"> 8338</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: page program timeout.\n&quot;</span>);                                         <span class="comment">/* page program timeout */</span></div>
-<div class="line"><a name="l08339"></a><span class="lineno"> 8339</span>&#160;           </div>
-<div class="line"><a name="l08340"></a><span class="lineno"> 8340</span>&#160;            <span class="keywordflow">return</span> 1;                                                                                       <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l08341"></a><span class="lineno"> 8341</span>&#160;        }</div>
-<div class="line"><a name="l08342"></a><span class="lineno"> 8342</span>&#160;    }</div>
-<div class="line"><a name="l08343"></a><span class="lineno"> 8343</span>&#160;    </div>
-<div class="line"><a name="l08344"></a><span class="lineno"> 8344</span>&#160;    <span class="keywordflow">return</span> 0;                                                                                               <span class="comment">/* success return 0 */</span></div>
-<div class="line"><a name="l08345"></a><span class="lineno"> 8345</span>&#160;}</div>
-<div class="line"><a name="l08346"></a><span class="lineno"> 8346</span>&#160; </div>
-<div class="line"><a name="l08358"></a><span class="lineno"> 8358</span>&#160;<span class="keyword">static</span> uint8_t a_w25qxx_write_no_check(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint32_t len)</div>
-<div class="line"><a name="l08359"></a><span class="lineno"> 8359</span>&#160;{</div>
-<div class="line"><a name="l08360"></a><span class="lineno"> 8360</span>&#160;    uint8_t res;</div>
-<div class="line"><a name="l08361"></a><span class="lineno"> 8361</span>&#160;    uint16_t page_remain;</div>
-<div class="line"><a name="l08362"></a><span class="lineno"> 8362</span>&#160;    </div>
-<div class="line"><a name="l08363"></a><span class="lineno"> 8363</span>&#160;    page_remain = 256 - addr % 256;                                         <span class="comment">/* get remain */</span></div>
-<div class="line"><a name="l08364"></a><span class="lineno"> 8364</span>&#160;    <span class="keywordflow">if</span> (len &lt;= page_remain)                                                 <span class="comment">/* check length */</span></div>
-<div class="line"><a name="l08365"></a><span class="lineno"> 8365</span>&#160;    {</div>
-<div class="line"><a name="l08366"></a><span class="lineno"> 8366</span>&#160;        page_remain = (uint16_t)len;                                        <span class="comment">/* page remain */</span></div>
-<div class="line"><a name="l08367"></a><span class="lineno"> 8367</span>&#160;    }</div>
-<div class="line"><a name="l08368"></a><span class="lineno"> 8368</span>&#160;    <span class="keywordflow">while</span>( 1)                                                               <span class="comment">/* loop */</span></div>
-<div class="line"><a name="l08369"></a><span class="lineno"> 8369</span>&#160;    { </div>
-<div class="line"><a name="l08370"></a><span class="lineno"> 8370</span>&#160;        res = a_w25qxx_page_program(handle, addr, data, page_remain);       <span class="comment">/* page program */</span></div>
-<div class="line"><a name="l08371"></a><span class="lineno"> 8371</span>&#160;        <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l08372"></a><span class="lineno"> 8372</span>&#160;        {</div>
-<div class="line"><a name="l08373"></a><span class="lineno"> 8373</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: page program failed.\n&quot;</span>);          <span class="comment">/* page program failed */</span></div>
-<div class="line"><a name="l08374"></a><span class="lineno"> 8374</span>&#160;           </div>
-<div class="line"><a name="l08375"></a><span class="lineno"> 8375</span>&#160;            <span class="keywordflow">return</span> 1;                                                       <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l08376"></a><span class="lineno"> 8376</span>&#160;        }</div>
-<div class="line"><a name="l08377"></a><span class="lineno"> 8377</span>&#160;        <span class="keywordflow">if</span> (len == page_remain)                                             <span class="comment">/* check length */</span></div>
-<div class="line"><a name="l08378"></a><span class="lineno"> 8378</span>&#160;        {</div>
-<div class="line"><a name="l08379"></a><span class="lineno"> 8379</span>&#160;            <span class="keywordflow">break</span>;                                                          <span class="comment">/* break loop */</span></div>
-<div class="line"><a name="l08380"></a><span class="lineno"> 8380</span>&#160;        }</div>
-<div class="line"><a name="l08381"></a><span class="lineno"> 8381</span>&#160;        <span class="keywordflow">else</span></div>
-<div class="line"><a name="l08382"></a><span class="lineno"> 8382</span>&#160;        {</div>
-<div class="line"><a name="l08383"></a><span class="lineno"> 8383</span>&#160;            data += page_remain;                                            <span class="comment">/* data + page_remain */</span></div>
-<div class="line"><a name="l08384"></a><span class="lineno"> 8384</span>&#160;            addr += page_remain;                                            <span class="comment">/* address + page_remain */</span></div>
-<div class="line"><a name="l08385"></a><span class="lineno"> 8385</span>&#160;            len -= page_remain;                                             <span class="comment">/* length - page_remain */</span></div>
-<div class="line"><a name="l08386"></a><span class="lineno"> 8386</span>&#160;            <span class="keywordflow">if</span> (len &gt; 256)                                                  <span class="comment">/* check length */</span></div>
-<div class="line"><a name="l08387"></a><span class="lineno"> 8387</span>&#160;            {</div>
-<div class="line"><a name="l08388"></a><span class="lineno"> 8388</span>&#160;                page_remain = 256;                                          <span class="comment">/* set page remain */</span></div>
-<div class="line"><a name="l08389"></a><span class="lineno"> 8389</span>&#160;            }</div>
-<div class="line"><a name="l08390"></a><span class="lineno"> 8390</span>&#160;            <span class="keywordflow">else</span></div>
-<div class="line"><a name="l08391"></a><span class="lineno"> 8391</span>&#160;            {</div>
-<div class="line"><a name="l08392"></a><span class="lineno"> 8392</span>&#160;                page_remain = (uint16_t)len;                                <span class="comment">/* set length */</span></div>
-<div class="line"><a name="l08393"></a><span class="lineno"> 8393</span>&#160;            }</div>
-<div class="line"><a name="l08394"></a><span class="lineno"> 8394</span>&#160;        }</div>
-<div class="line"><a name="l08395"></a><span class="lineno"> 8395</span>&#160;    }</div>
-<div class="line"><a name="l08396"></a><span class="lineno"> 8396</span>&#160;    </div>
-<div class="line"><a name="l08397"></a><span class="lineno"> 8397</span>&#160;    <span class="keywordflow">return</span> 0;                                                               <span class="comment">/* success return 0 */</span></div>
-<div class="line"><a name="l08398"></a><span class="lineno"> 8398</span>&#160;}</div>
-<div class="line"><a name="l08399"></a><span class="lineno"> 8399</span>&#160; </div>
-<div class="line"><a name="l08415"></a><span class="lineno"><a class="line" href="group__w25qxx__basic__driver.html#gaaee8264d840e51460821cb6e609338ee"> 8415</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__basic__driver.html#gaaee8264d840e51460821cb6e609338ee">w25qxx_write</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint32_t len)</div>
-<div class="line"><a name="l08416"></a><span class="lineno"> 8416</span>&#160;{</div>
-<div class="line"><a name="l08417"></a><span class="lineno"> 8417</span>&#160;    uint8_t res;</div>
-<div class="line"><a name="l08418"></a><span class="lineno"> 8418</span>&#160;    uint32_t sec_pos;</div>
-<div class="line"><a name="l08419"></a><span class="lineno"> 8419</span>&#160;    uint32_t sec_off;</div>
-<div class="line"><a name="l08420"></a><span class="lineno"> 8420</span>&#160;    uint32_t sec_remain;</div>
-<div class="line"><a name="l08421"></a><span class="lineno"> 8421</span>&#160;    uint32_t i;</div>
-<div class="line"><a name="l08422"></a><span class="lineno"> 8422</span>&#160;    </div>
-<div class="line"><a name="l08423"></a><span class="lineno"> 8423</span>&#160;    <span class="keywordflow">if</span> (handle == NULL)                                                                        <span class="comment">/* check handle */</span></div>
-<div class="line"><a name="l08424"></a><span class="lineno"> 8424</span>&#160;    {</div>
-<div class="line"><a name="l08425"></a><span class="lineno"> 8425</span>&#160;        <span class="keywordflow">return</span> 2;                                                                              <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l08426"></a><span class="lineno"> 8426</span>&#160;    }   </div>
-<div class="line"><a name="l08427"></a><span class="lineno"> 8427</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">inited</a> != 1)                                                                   <span class="comment">/* check handle initialization */</span></div>
-<div class="line"><a name="l08428"></a><span class="lineno"> 8428</span>&#160;    {</div>
-<div class="line"><a name="l08429"></a><span class="lineno"> 8429</span>&#160;        <span class="keywordflow">return</span> 3;                                                                              <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l08430"></a><span class="lineno"> 8430</span>&#160;    }</div>
-<div class="line"><a name="l08431"></a><span class="lineno"> 8431</span>&#160; </div>
-<div class="line"><a name="l08432"></a><span class="lineno"> 8432</span>&#160;    sec_pos = addr / 4096;                                                                     <span class="comment">/* get sector position */</span></div>
-<div class="line"><a name="l08433"></a><span class="lineno"> 8433</span>&#160;    sec_off = addr % 4096;                                                                     <span class="comment">/* get sector offset */</span></div>
-<div class="line"><a name="l08434"></a><span class="lineno"> 8434</span>&#160;    sec_remain = 4096 - sec_off;                                                               <span class="comment">/* get sector remain */</span></div>
-<div class="line"><a name="l08435"></a><span class="lineno"> 8435</span>&#160;    <span class="keywordflow">if</span> (len &lt;= sec_remain)                                                                     <span class="comment">/* check length */</span></div>
-<div class="line"><a name="l08436"></a><span class="lineno"> 8436</span>&#160;    {</div>
-<div class="line"><a name="l08437"></a><span class="lineno"> 8437</span>&#160;        sec_remain = len;                                                                      <span class="comment">/* set remain */</span></div>
-<div class="line"><a name="l08438"></a><span class="lineno"> 8438</span>&#160;    }</div>
-<div class="line"><a name="l08439"></a><span class="lineno"> 8439</span>&#160;    <span class="keywordflow">while</span>(1)                                                                                   <span class="comment">/* loop */</span></div>
-<div class="line"><a name="l08440"></a><span class="lineno"> 8440</span>&#160;    {    </div>
-<div class="line"><a name="l08441"></a><span class="lineno"> 8441</span>&#160;        res = a_w25qxx_read(handle, sec_pos * 4096, handle-&gt;<a class="code" href="structw25qxx__handle__s.html#ac80aa2927adf500634749513e88c474b">buf_4k</a>, 4096);                     <span class="comment">/* read 4k data */</span></div>
-<div class="line"><a name="l08442"></a><span class="lineno"> 8442</span>&#160;        <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l08443"></a><span class="lineno"> 8443</span>&#160;        {</div>
-<div class="line"><a name="l08444"></a><span class="lineno"> 8444</span>&#160;            handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: read failed.\n&quot;</span>);                                     <span class="comment">/* read failed */</span></div>
-<div class="line"><a name="l08445"></a><span class="lineno"> 8445</span>&#160;           </div>
-<div class="line"><a name="l08446"></a><span class="lineno"> 8446</span>&#160;            <span class="keywordflow">return</span> 4;                                                                          <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l08447"></a><span class="lineno"> 8447</span>&#160;        }</div>
-<div class="line"><a name="l08448"></a><span class="lineno"> 8448</span>&#160;        <span class="keywordflow">for</span> (i = 0; i&lt; sec_remain; i++)                                                        <span class="comment">/* sec_remain length */</span></div>
-<div class="line"><a name="l08449"></a><span class="lineno"> 8449</span>&#160;        {</div>
-<div class="line"><a name="l08450"></a><span class="lineno"> 8450</span>&#160;            <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#ac80aa2927adf500634749513e88c474b">buf_4k</a>[sec_off + i] != 0xFF)                                           <span class="comment">/* check 0xFF */</span></div>
-<div class="line"><a name="l08451"></a><span class="lineno"> 8451</span>&#160;            {</div>
-<div class="line"><a name="l08452"></a><span class="lineno"> 8452</span>&#160;                <span class="keywordflow">break</span>;                                                                         <span class="comment">/* break loop */</span></div>
-<div class="line"><a name="l08453"></a><span class="lineno"> 8453</span>&#160;            }</div>
-<div class="line"><a name="l08454"></a><span class="lineno"> 8454</span>&#160;        }</div>
-<div class="line"><a name="l08455"></a><span class="lineno"> 8455</span>&#160;        <span class="keywordflow">if</span> (i &lt; sec_remain)                                                                    <span class="comment">/* not all is 0xFF */</span></div>
-<div class="line"><a name="l08456"></a><span class="lineno"> 8456</span>&#160;        {</div>
-<div class="line"><a name="l08457"></a><span class="lineno"> 8457</span>&#160;            res = a_w25qxx_erase_sector(handle, sec_pos * 4096);                               <span class="comment">/* erase sector */</span></div>
-<div class="line"><a name="l08458"></a><span class="lineno"> 8458</span>&#160;            <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l08459"></a><span class="lineno"> 8459</span>&#160;            {</div>
-<div class="line"><a name="l08460"></a><span class="lineno"> 8460</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: erase sector failed.\n&quot;</span>);                         <span class="comment">/* erase sector failed */</span></div>
-<div class="line"><a name="l08461"></a><span class="lineno"> 8461</span>&#160;               </div>
-<div class="line"><a name="l08462"></a><span class="lineno"> 8462</span>&#160;                <span class="keywordflow">return</span> 5;                                                                      <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l08463"></a><span class="lineno"> 8463</span>&#160;            }</div>
-<div class="line"><a name="l08464"></a><span class="lineno"> 8464</span>&#160;            <span class="keywordflow">for</span> (i = 0; i&lt;sec_remain; i++)                                                     <span class="comment">/* sec_remain length */</span></div>
-<div class="line"><a name="l08465"></a><span class="lineno"> 8465</span>&#160;            {</div>
-<div class="line"><a name="l08466"></a><span class="lineno"> 8466</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#ac80aa2927adf500634749513e88c474b">buf_4k</a>[i + sec_off] = data[i];                                         <span class="comment">/* copy data */</span></div>
-<div class="line"><a name="l08467"></a><span class="lineno"> 8467</span>&#160;            }</div>
-<div class="line"><a name="l08468"></a><span class="lineno"> 8468</span>&#160;            res = a_w25qxx_write_no_check(handle, sec_pos * 4096, handle-&gt;<a class="code" href="structw25qxx__handle__s.html#ac80aa2927adf500634749513e88c474b">buf_4k</a>, 4096);       <span class="comment">/* write data no check */</span></div>
-<div class="line"><a name="l08469"></a><span class="lineno"> 8469</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                      <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l08470"></a><span class="lineno"> 8470</span>&#160;            {</div>
-<div class="line"><a name="l08471"></a><span class="lineno"> 8471</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write failed.\n&quot;</span>);                                <span class="comment">/* write failed */</span></div>
-<div class="line"><a name="l08472"></a><span class="lineno"> 8472</span>&#160;               </div>
-<div class="line"><a name="l08473"></a><span class="lineno"> 8473</span>&#160;                <span class="keywordflow">return</span> 1;                                                                      <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l08474"></a><span class="lineno"> 8474</span>&#160;            }</div>
-<div class="line"><a name="l08475"></a><span class="lineno"> 8475</span>&#160;        }</div>
-<div class="line"><a name="l08476"></a><span class="lineno"> 8476</span>&#160;        <span class="keywordflow">else</span></div>
-<div class="line"><a name="l08477"></a><span class="lineno"> 8477</span>&#160;        {</div>
-<div class="line"><a name="l08478"></a><span class="lineno"> 8478</span>&#160;            res = a_w25qxx_write_no_check(handle, addr, data, sec_remain);                     <span class="comment">/* write data */</span></div>
-<div class="line"><a name="l08479"></a><span class="lineno"> 8479</span>&#160;            <span class="keywordflow">if</span> (res != 0)                                                                      <span class="comment">/* check result */</span></div>
-<div class="line"><a name="l08480"></a><span class="lineno"> 8480</span>&#160;            {</div>
-<div class="line"><a name="l08481"></a><span class="lineno"> 8481</span>&#160;                handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write failed.\n&quot;</span>);                                <span class="comment">/* write failed */</span></div>
-<div class="line"><a name="l08482"></a><span class="lineno"> 8482</span>&#160;               </div>
-<div class="line"><a name="l08483"></a><span class="lineno"> 8483</span>&#160;                <span class="keywordflow">return</span> 1;                                                                      <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l08484"></a><span class="lineno"> 8484</span>&#160;            }</div>
-<div class="line"><a name="l08485"></a><span class="lineno"> 8485</span>&#160;        }    </div>
-<div class="line"><a name="l08486"></a><span class="lineno"> 8486</span>&#160;        <span class="keywordflow">if</span> (len == sec_remain)                                                                 <span class="comment">/* check length length*/</span></div>
-<div class="line"><a name="l08487"></a><span class="lineno"> 8487</span>&#160;        {</div>
-<div class="line"><a name="l08488"></a><span class="lineno"> 8488</span>&#160;            <span class="keywordflow">break</span>;                                                                             <span class="comment">/* break loop */</span></div>
-<div class="line"><a name="l08489"></a><span class="lineno"> 8489</span>&#160;        }</div>
-<div class="line"><a name="l08490"></a><span class="lineno"> 8490</span>&#160;        <span class="keywordflow">else</span></div>
-<div class="line"><a name="l08491"></a><span class="lineno"> 8491</span>&#160;        {</div>
-<div class="line"><a name="l08492"></a><span class="lineno"> 8492</span>&#160;            sec_pos++;                                                                         <span class="comment">/* sector++ */</span></div>
-<div class="line"><a name="l08493"></a><span class="lineno"> 8493</span>&#160;            sec_off = 0;                                                                       <span class="comment">/* set offset */</span></div>
-<div class="line"><a name="l08494"></a><span class="lineno"> 8494</span>&#160;            data += sec_remain;                                                                <span class="comment">/* data + remain */</span></div>
-<div class="line"><a name="l08495"></a><span class="lineno"> 8495</span>&#160;            addr += sec_remain;                                                                <span class="comment">/* addr + remain */</span></div>
-<div class="line"><a name="l08496"></a><span class="lineno"> 8496</span>&#160;            len -= sec_remain;                                                                 <span class="comment">/* len - remain */</span></div>
-<div class="line"><a name="l08497"></a><span class="lineno"> 8497</span>&#160;            <span class="keywordflow">if</span> (len &gt; 4096)                                                                    <span class="comment">/* check length */</span></div>
-<div class="line"><a name="l08498"></a><span class="lineno"> 8498</span>&#160;            {</div>
-<div class="line"><a name="l08499"></a><span class="lineno"> 8499</span>&#160;                sec_remain = 4096;                                                             <span class="comment">/* set 4096 */</span></div>
-<div class="line"><a name="l08500"></a><span class="lineno"> 8500</span>&#160;            }</div>
-<div class="line"><a name="l08501"></a><span class="lineno"> 8501</span>&#160;            <span class="keywordflow">else</span></div>
-<div class="line"><a name="l08502"></a><span class="lineno"> 8502</span>&#160;            {</div>
-<div class="line"><a name="l08503"></a><span class="lineno"> 8503</span>&#160;                sec_remain = len;                                                              <span class="comment">/* set length */</span></div>
-<div class="line"><a name="l08504"></a><span class="lineno"> 8504</span>&#160;            }</div>
-<div class="line"><a name="l08505"></a><span class="lineno"> 8505</span>&#160;        }</div>
-<div class="line"><a name="l08506"></a><span class="lineno"> 8506</span>&#160;    }</div>
-<div class="line"><a name="l08507"></a><span class="lineno"> 8507</span>&#160;    </div>
-<div class="line"><a name="l08508"></a><span class="lineno"> 8508</span>&#160;    <span class="keywordflow">return</span> 0;                                                                                  <span class="comment">/* success return 0 */</span></div>
-<div class="line"><a name="l08509"></a><span class="lineno"> 8509</span>&#160;}</div>
-<div class="line"><a name="l08510"></a><span class="lineno"> 8510</span>&#160; </div>
-<div class="line"><a name="l08535"></a><span class="lineno"><a class="line" href="group__w25qxx__extern__driver.html#ga9623a3bec148b148498480518a66cb2b"> 8535</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__extern__driver.html#ga9623a3bec148b148498480518a66cb2b">w25qxx_write_read_reg</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint8_t instruction, uint8_t instruction_line,</div>
-<div class="line"><a name="l08536"></a><span class="lineno"> 8536</span>&#160;                              uint32_t address, uint8_t address_line, uint8_t address_len,</div>
-<div class="line"><a name="l08537"></a><span class="lineno"> 8537</span>&#160;                              uint32_t alternate, uint8_t alternate_line, uint8_t alternate_len,</div>
-<div class="line"><a name="l08538"></a><span class="lineno"> 8538</span>&#160;                              uint8_t dummy, uint8_t *in_buf, uint32_t in_len,</div>
-<div class="line"><a name="l08539"></a><span class="lineno"> 8539</span>&#160;                              uint8_t *out_buf, uint32_t out_len, uint8_t data_line)</div>
-<div class="line"><a name="l08540"></a><span class="lineno"> 8540</span>&#160;{</div>
-<div class="line"><a name="l08541"></a><span class="lineno"> 8541</span>&#160;    </div>
-<div class="line"><a name="l08542"></a><span class="lineno"> 8542</span>&#160;    <span class="keywordflow">if</span> (handle == NULL)                                                          <span class="comment">/* check handle */</span></div>
-<div class="line"><a name="l08543"></a><span class="lineno"> 8543</span>&#160;    {</div>
-<div class="line"><a name="l08544"></a><span class="lineno"> 8544</span>&#160;        <span class="keywordflow">return</span> 2;                                                                <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l08545"></a><span class="lineno"> 8545</span>&#160;    }   </div>
-<div class="line"><a name="l08546"></a><span class="lineno"> 8546</span>&#160;    <span class="keywordflow">if</span> (handle-&gt;<a class="code" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">inited</a> != 1)                                                     <span class="comment">/* check handle initialization */</span></div>
-<div class="line"><a name="l08547"></a><span class="lineno"> 8547</span>&#160;    {</div>
-<div class="line"><a name="l08548"></a><span class="lineno"> 8548</span>&#160;        <span class="keywordflow">return</span> 3;                                                                <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l08549"></a><span class="lineno"> 8549</span>&#160;    }</div>
-<div class="line"><a name="l08550"></a><span class="lineno"> 8550</span>&#160;    </div>
-<div class="line"><a name="l08551"></a><span class="lineno"> 8551</span>&#160;    <span class="keywordflow">return</span> a_w25qxx_qspi_write_read(handle, instruction, instruction_line,</div>
-<div class="line"><a name="l08552"></a><span class="lineno"> 8552</span>&#160;                                    address, address_line, address_len,</div>
-<div class="line"><a name="l08553"></a><span class="lineno"> 8553</span>&#160;                                    alternate, alternate_line, alternate_len,</div>
-<div class="line"><a name="l08554"></a><span class="lineno"> 8554</span>&#160;                                    dummy, in_buf, in_len,</div>
-<div class="line"><a name="l08555"></a><span class="lineno"> 8555</span>&#160;                                    out_buf, out_len, data_line);                <span class="comment">/* write and read */</span></div>
-<div class="line"><a name="l08556"></a><span class="lineno"> 8556</span>&#160;}</div>
-<div class="line"><a name="l08557"></a><span class="lineno"> 8557</span>&#160; </div>
-<div class="line"><a name="l08566"></a><span class="lineno"><a class="line" href="group__w25qxx__basic__driver.html#ga996e2d3009432e7f8c1a5175c4438a57"> 8566</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__basic__driver.html#ga996e2d3009432e7f8c1a5175c4438a57">w25qxx_info</a>(<a class="code" href="structw25qxx__info__s.html">w25qxx_info_t</a> *info)</div>
-<div class="line"><a name="l08567"></a><span class="lineno"> 8567</span>&#160;{</div>
-<div class="line"><a name="l08568"></a><span class="lineno"> 8568</span>&#160;    <span class="keywordflow">if</span> (info == NULL)                                               <span class="comment">/* check handle */</span></div>
-<div class="line"><a name="l08569"></a><span class="lineno"> 8569</span>&#160;    {</div>
-<div class="line"><a name="l08570"></a><span class="lineno"> 8570</span>&#160;        <span class="keywordflow">return</span> 2;                                                   <span class="comment">/* return error */</span></div>
-<div class="line"><a name="l08571"></a><span class="lineno"> 8571</span>&#160;    }</div>
-<div class="line"><a name="l08572"></a><span class="lineno"> 8572</span>&#160;    </div>
-<div class="line"><a name="l08573"></a><span class="lineno"> 8573</span>&#160;    memset(info, 0, <span class="keyword">sizeof</span>(<a class="code" href="structw25qxx__info__s.html">w25qxx_info_t</a>));                         <span class="comment">/* initialize w25qxx info structure */</span></div>
-<div class="line"><a name="l08574"></a><span class="lineno"> 8574</span>&#160;    strncpy(info-&gt;<a class="code" href="structw25qxx__info__s.html#af890958c72bd715cc6454a10dc846ae6">chip_name</a>, <a class="code" href="driver__w25qxx_8c.html#adc9da0a24824ca1239b593f6459b3954">CHIP_NAME</a>, 32);                        <span class="comment">/* copy chip name */</span></div>
-<div class="line"><a name="l08575"></a><span class="lineno"> 8575</span>&#160;    strncpy(info-&gt;<a class="code" href="structw25qxx__info__s.html#ad25285dbf810c90f8eaf3fcef6f2b2ea">manufacturer_name</a>, <a class="code" href="driver__w25qxx_8c.html#aaa2b8f5b105c3019df0cb346f472e803">MANUFACTURER_NAME</a>, 32);        <span class="comment">/* copy manufacturer name */</span></div>
-<div class="line"><a name="l08576"></a><span class="lineno"> 8576</span>&#160;    strncpy(info-&gt;<a class="code" href="structw25qxx__info__s.html#a5778305279cae46b2ecf862e97f73600">interface</a>, <span class="stringliteral">&quot;SPI QSPI&quot;</span>, 16);                       <span class="comment">/* copy interface name */</span></div>
-<div class="line"><a name="l08577"></a><span class="lineno"> 8577</span>&#160;    info-&gt;<a class="code" href="structw25qxx__info__s.html#ad8bde6ddadaf43d951e62f3befb9d35a">supply_voltage_min_v</a> = <a class="code" href="driver__w25qxx_8c.html#aac8d8cbd899667d609787ef4cf37054d">SUPPLY_VOLTAGE_MIN</a>;                <span class="comment">/* set minimal supply voltage */</span></div>
-<div class="line"><a name="l08578"></a><span class="lineno"> 8578</span>&#160;    info-&gt;<a class="code" href="structw25qxx__info__s.html#a3d2b12bcac7a85ea8646bff9debe8660">supply_voltage_max_v</a> = <a class="code" href="driver__w25qxx_8c.html#a68eba8b601afe11f1b871d944976c035">SUPPLY_VOLTAGE_MAX</a>;                <span class="comment">/* set maximum supply voltage */</span></div>
-<div class="line"><a name="l08579"></a><span class="lineno"> 8579</span>&#160;    info-&gt;<a class="code" href="structw25qxx__info__s.html#a9db82802561bf22d799b03a345f1d1dc">max_current_ma</a> = <a class="code" href="driver__w25qxx_8c.html#a2989837a37d6d63b59c6dd541b785435">MAX_CURRENT</a>;                             <span class="comment">/* set maximum current */</span></div>
-<div class="line"><a name="l08580"></a><span class="lineno"> 8580</span>&#160;    info-&gt;<a class="code" href="structw25qxx__info__s.html#a3366a5dce9b829e03c3d321c2b4df3f6">temperature_max</a> = <a class="code" href="driver__w25qxx_8c.html#a90c0b20d54005712fcc8cb01281360e9">TEMPERATURE_MAX</a>;                        <span class="comment">/* set minimal temperature */</span></div>
-<div class="line"><a name="l08581"></a><span class="lineno"> 8581</span>&#160;    info-&gt;<a class="code" href="structw25qxx__info__s.html#a8f9dbe66ac0b66ebae0a36fcb4ba368e">temperature_min</a> = <a class="code" href="driver__w25qxx_8c.html#aab353db5bf4eb787f86a2080f609a551">TEMPERATURE_MIN</a>;                        <span class="comment">/* set maximum temperature */</span></div>
-<div class="line"><a name="l08582"></a><span class="lineno"> 8582</span>&#160;    info-&gt;<a class="code" href="structw25qxx__info__s.html#a41b0bd442708b70d252c50b92c75265a">driver_version</a> = <a class="code" href="driver__w25qxx_8c.html#ae578001fe043b4cca7a0edd801cfe9c4">DRIVER_VERSION</a>;                          <span class="comment">/* set driver version */</span></div>
-<div class="line"><a name="l08583"></a><span class="lineno"> 8583</span>&#160;    </div>
-<div class="line"><a name="l08584"></a><span class="lineno"> 8584</span>&#160;    <span class="keywordflow">return</span> 0;                                                       <span class="comment">/* success return 0 */</span></div>
-<div class="line"><a name="l08585"></a><span class="lineno"> 8585</span>&#160;}</div>
-<div class="ttc" id="adriver__w25qxx_8c_html_a052d5373086b473bf0d450ea1bd73828"><div class="ttname"><a href="driver__w25qxx_8c.html#a052d5373086b473bf0d450ea1bd73828">W25QXX_COMMAND_ENTER_QSPI_MODE</a></div><div class="ttdeci">#define W25QXX_COMMAND_ENTER_QSPI_MODE</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l00072">driver_w25qxx.c:72</a></div></div>
-<div class="ttc" id="adriver__w25qxx_8c_html_a09798bdb3fabdf7bb4cfd8bce18100ce"><div class="ttname"><a href="driver__w25qxx_8c.html#a09798bdb3fabdf7bb4cfd8bce18100ce">W25QXX_COMMAND_READ_STATUS_REG3</a></div><div class="ttdeci">#define W25QXX_COMMAND_READ_STATUS_REG3</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l00059">driver_w25qxx.c:59</a></div></div>
-<div class="ttc" id="adriver__w25qxx_8c_html_a0daeb46fb8b219a3d6b37d426c5c0e95"><div class="ttname"><a href="driver__w25qxx_8c.html#a0daeb46fb8b219a3d6b37d426c5c0e95">W25QXX_COMMAND_ERASE_PROGRAM_RESUME</a></div><div class="ttdeci">#define W25QXX_COMMAND_ERASE_PROGRAM_RESUME</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l00065">driver_w25qxx.c:65</a></div></div>
-<div class="ttc" id="adriver__w25qxx_8c_html_a19e055bec30de0ad30e7f8ab5feea6a8"><div class="ttname"><a href="driver__w25qxx_8c.html#a19e055bec30de0ad30e7f8ab5feea6a8">W25QXX_COMMAND_READ_BLOCK_LOCK</a></div><div class="ttdeci">#define W25QXX_COMMAND_READ_BLOCK_LOCK</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l00091">driver_w25qxx.c:91</a></div></div>
-<div class="ttc" id="adriver__w25qxx_8c_html_a2232ada3558228c2902d654989ca65f1"><div class="ttname"><a href="driver__w25qxx_8c.html#a2232ada3558228c2902d654989ca65f1">W25QXX_COMMAND_FAST_READ_DUAL_IO</a></div><div class="ttdeci">#define W25QXX_COMMAND_FAST_READ_DUAL_IO</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l00092">driver_w25qxx.c:92</a></div></div>
-<div class="ttc" id="adriver__w25qxx_8c_html_a23fcd6d9b067580d534d626c43b7cff3"><div class="ttname"><a href="driver__w25qxx_8c.html#a23fcd6d9b067580d534d626c43b7cff3">W25QXX_COMMAND_READ_DATA</a></div><div class="ttdeci">#define W25QXX_COMMAND_READ_DATA</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l00081">driver_w25qxx.c:81</a></div></div>
-<div class="ttc" id="adriver__w25qxx_8c_html_a2989837a37d6d63b59c6dd541b785435"><div class="ttname"><a href="driver__w25qxx_8c.html#a2989837a37d6d63b59c6dd541b785435">MAX_CURRENT</a></div><div class="ttdeci">#define MAX_CURRENT</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l00046">driver_w25qxx.c:46</a></div></div>
-<div class="ttc" id="adriver__w25qxx_8c_html_a328f6a9635b1ec6868410375de90b0df"><div class="ttname"><a href="driver__w25qxx_8c.html#a328f6a9635b1ec6868410375de90b0df">W25QXX_COMMAND_INDIVIDUAL_BLOCK_LOCK</a></div><div class="ttdeci">#define W25QXX_COMMAND_INDIVIDUAL_BLOCK_LOCK</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l00089">driver_w25qxx.c:89</a></div></div>
-<div class="ttc" id="adriver__w25qxx_8c_html_a36dfb1951fe152d63e3715a161646713"><div class="ttname"><a href="driver__w25qxx_8c.html#a36dfb1951fe152d63e3715a161646713">W25QXX_COMMAND_WRITE_DISABLE</a></div><div class="ttdeci">#define W25QXX_COMMAND_WRITE_DISABLE</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l00056">driver_w25qxx.c:56</a></div></div>
-<div class="ttc" id="adriver__w25qxx_8c_html_a374c09f79cc61a3e7ac374bca5122e25"><div class="ttname"><a href="driver__w25qxx_8c.html#a374c09f79cc61a3e7ac374bca5122e25">W25QXX_COMMAND_DEVICE_ID_DUAL_IO</a></div><div class="ttdeci">#define W25QXX_COMMAND_DEVICE_ID_DUAL_IO</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l00093">driver_w25qxx.c:93</a></div></div>
-<div class="ttc" id="adriver__w25qxx_8c_html_a3cc8b61583b5eb9d7c1ecd6831689718"><div class="ttname"><a href="driver__w25qxx_8c.html#a3cc8b61583b5eb9d7c1ecd6831689718">W25QXX_COMMAND_INDIVIDUAL_BLOCK_UNLOCK</a></div><div class="ttdeci">#define W25QXX_COMMAND_INDIVIDUAL_BLOCK_UNLOCK</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l00090">driver_w25qxx.c:90</a></div></div>
-<div class="ttc" id="adriver__w25qxx_8c_html_a43f9a1e3c03d4a7d2a991e81f0e89f51"><div class="ttname"><a href="driver__w25qxx_8c.html#a43f9a1e3c03d4a7d2a991e81f0e89f51">W25QXX_COMMAND_ERASE_PROGRAM_SUSPEND</a></div><div class="ttdeci">#define W25QXX_COMMAND_ERASE_PROGRAM_SUSPEND</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l00064">driver_w25qxx.c:64</a></div></div>
-<div class="ttc" id="adriver__w25qxx_8c_html_a4a8cdc5b6ce75029df877263bdf35f2a"><div class="ttname"><a href="driver__w25qxx_8c.html#a4a8cdc5b6ce75029df877263bdf35f2a">W25QXX_COMMAND_READ_STATUS_REG2</a></div><div class="ttdeci">#define W25QXX_COMMAND_READ_STATUS_REG2</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l00058">driver_w25qxx.c:58</a></div></div>
-<div class="ttc" id="adriver__w25qxx_8c_html_a4be10ed873d56bb183d9b1bde9105135"><div class="ttname"><a href="driver__w25qxx_8c.html#a4be10ed873d56bb183d9b1bde9105135">W25QXX_COMMAND_WRITE_STATUS_REG2</a></div><div class="ttdeci">#define W25QXX_COMMAND_WRITE_STATUS_REG2</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l00061">driver_w25qxx.c:61</a></div></div>
-<div class="ttc" id="adriver__w25qxx_8c_html_a4c5a1ed46f4d662a61bc06573ab548a0"><div class="ttname"><a href="driver__w25qxx_8c.html#a4c5a1ed46f4d662a61bc06573ab548a0">W25QXX_COMMAND_BLOCK_ERASE_64K</a></div><div class="ttdeci">#define W25QXX_COMMAND_BLOCK_ERASE_64K</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l00080">driver_w25qxx.c:80</a></div></div>
-<div class="ttc" id="adriver__w25qxx_8c_html_a4dc5fb2c3c15ef86df56b534b874a919"><div class="ttname"><a href="driver__w25qxx_8c.html#a4dc5fb2c3c15ef86df56b534b874a919">W25QXX_COMMAND_READ_SECURITY_REGISTER</a></div><div class="ttdeci">#define W25QXX_COMMAND_READ_SECURITY_REGISTER</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l00088">driver_w25qxx.c:88</a></div></div>
-<div class="ttc" id="adriver__w25qxx_8c_html_a54ddb3d948c4bb95cc62199676c817b2"><div class="ttname"><a href="driver__w25qxx_8c.html#a54ddb3d948c4bb95cc62199676c817b2">W25QXX_COMMAND_FAST_READ_QUAD_OUTPUT</a></div><div class="ttdeci">#define W25QXX_COMMAND_FAST_READ_QUAD_OUTPUT</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l00084">driver_w25qxx.c:84</a></div></div>
-<div class="ttc" id="adriver__w25qxx_8c_html_a54f3ece548cd5eadc94642235442315a"><div class="ttname"><a href="driver__w25qxx_8c.html#a54f3ece548cd5eadc94642235442315a">W25QXX_COMMAND_JEDEC_ID</a></div><div class="ttdeci">#define W25QXX_COMMAND_JEDEC_ID</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l00069">driver_w25qxx.c:69</a></div></div>
-<div class="ttc" id="adriver__w25qxx_8c_html_a63774c5ebbdf5445466d840fad567bf6"><div class="ttname"><a href="driver__w25qxx_8c.html#a63774c5ebbdf5445466d840fad567bf6">W25QXX_COMMAND_READ_SFDP_REGISTER</a></div><div class="ttdeci">#define W25QXX_COMMAND_READ_SFDP_REGISTER</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l00085">driver_w25qxx.c:85</a></div></div>
-<div class="ttc" id="adriver__w25qxx_8c_html_a63ec9ecd709fcb69107756f253616a6e"><div class="ttname"><a href="driver__w25qxx_8c.html#a63ec9ecd709fcb69107756f253616a6e">W25QXX_COMMAND_CHIP_ERASE</a></div><div class="ttdeci">#define W25QXX_COMMAND_CHIP_ERASE</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l00063">driver_w25qxx.c:63</a></div></div>
-<div class="ttc" id="adriver__w25qxx_8c_html_a68eba8b601afe11f1b871d944976c035"><div class="ttname"><a href="driver__w25qxx_8c.html#a68eba8b601afe11f1b871d944976c035">SUPPLY_VOLTAGE_MAX</a></div><div class="ttdeci">#define SUPPLY_VOLTAGE_MAX</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l00045">driver_w25qxx.c:45</a></div></div>
-<div class="ttc" id="adriver__w25qxx_8c_html_a6aeed0a651b31064f25ab2f57fdacf2f"><div class="ttname"><a href="driver__w25qxx_8c.html#a6aeed0a651b31064f25ab2f57fdacf2f">W25QXX_COMMAND_READ_UNIQUE_ID</a></div><div class="ttdeci">#define W25QXX_COMMAND_READ_UNIQUE_ID</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l00075">driver_w25qxx.c:75</a></div></div>
-<div class="ttc" id="adriver__w25qxx_8c_html_a6d099dc6afb59cc950d3abe96b840158"><div class="ttname"><a href="driver__w25qxx_8c.html#a6d099dc6afb59cc950d3abe96b840158">W25QXX_COMMAND_WRITE_STATUS_REG3</a></div><div class="ttdeci">#define W25QXX_COMMAND_WRITE_STATUS_REG3</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l00062">driver_w25qxx.c:62</a></div></div>
-<div class="ttc" id="adriver__w25qxx_8c_html_a6dae3a832abc19d1861fafb32f231d94"><div class="ttname"><a href="driver__w25qxx_8c.html#a6dae3a832abc19d1861fafb32f231d94">W25QXX_COMMAND_ENABLE_RESET</a></div><div class="ttdeci">#define W25QXX_COMMAND_ENABLE_RESET</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l00073">driver_w25qxx.c:73</a></div></div>
-<div class="ttc" id="adriver__w25qxx_8c_html_a6e7cd159f91e23930450725fd6910f9c"><div class="ttname"><a href="driver__w25qxx_8c.html#a6e7cd159f91e23930450725fd6910f9c">W25QXX_COMMAND_SECTOR_ERASE_4K</a></div><div class="ttdeci">#define W25QXX_COMMAND_SECTOR_ERASE_4K</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l00078">driver_w25qxx.c:78</a></div></div>
-<div class="ttc" id="adriver__w25qxx_8c_html_a6fe4d603e33b7c8b8310a884e02a130b"><div class="ttname"><a href="driver__w25qxx_8c.html#a6fe4d603e33b7c8b8310a884e02a130b">W25QXX_COMMAND_POWER_DOWN</a></div><div class="ttdeci">#define W25QXX_COMMAND_POWER_DOWN</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l00066">driver_w25qxx.c:66</a></div></div>
-<div class="ttc" id="adriver__w25qxx_8c_html_a7573bc250d850078be3221c29521bc5c"><div class="ttname"><a href="driver__w25qxx_8c.html#a7573bc250d850078be3221c29521bc5c">W25QXX_COMMAND_DEVICE_ID_QUAD_IO</a></div><div class="ttdeci">#define W25QXX_COMMAND_DEVICE_ID_QUAD_IO</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l00098">driver_w25qxx.c:98</a></div></div>
-<div class="ttc" id="adriver__w25qxx_8c_html_a7c9e980e30f499dd97b02935c91f2c02"><div class="ttname"><a href="driver__w25qxx_8c.html#a7c9e980e30f499dd97b02935c91f2c02">W25QXX_COMMAND_VOLATILE_SR_WRITE_ENABLE</a></div><div class="ttdeci">#define W25QXX_COMMAND_VOLATILE_SR_WRITE_ENABLE</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l00055">driver_w25qxx.c:55</a></div></div>
-<div class="ttc" id="adriver__w25qxx_8c_html_a80d19998d9d1218d0fa69e7d4d6b0ecb"><div class="ttname"><a href="driver__w25qxx_8c.html#a80d19998d9d1218d0fa69e7d4d6b0ecb">W25QXX_COMMAND_FAST_READ_QUAD_IO</a></div><div class="ttdeci">#define W25QXX_COMMAND_FAST_READ_QUAD_IO</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l00095">driver_w25qxx.c:95</a></div></div>
-<div class="ttc" id="adriver__w25qxx_8c_html_a8212fac3d1e43024621b6b560a8dddfe"><div class="ttname"><a href="driver__w25qxx_8c.html#a8212fac3d1e43024621b6b560a8dddfe">W25QXX_COMMAND_QUAD_PAGE_PROGRAM</a></div><div class="ttdeci">#define W25QXX_COMMAND_QUAD_PAGE_PROGRAM</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l00077">driver_w25qxx.c:77</a></div></div>
-<div class="ttc" id="adriver__w25qxx_8c_html_a842f8d646fc8f8ed72422fc1d789498c"><div class="ttname"><a href="driver__w25qxx_8c.html#a842f8d646fc8f8ed72422fc1d789498c">W25QXX_COMMAND_ERASE_SECURITY_REGISTER</a></div><div class="ttdeci">#define W25QXX_COMMAND_ERASE_SECURITY_REGISTER</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l00086">driver_w25qxx.c:86</a></div></div>
-<div class="ttc" id="adriver__w25qxx_8c_html_a8bfb4e869985f5fa21ea7d1d262f90ad"><div class="ttname"><a href="driver__w25qxx_8c.html#a8bfb4e869985f5fa21ea7d1d262f90ad">W25QXX_COMMAND_BLOCK_ERASE_32K</a></div><div class="ttdeci">#define W25QXX_COMMAND_BLOCK_ERASE_32K</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l00079">driver_w25qxx.c:79</a></div></div>
-<div class="ttc" id="adriver__w25qxx_8c_html_a8d49efa8b978ae8fd3eb18d0e5ae73e8"><div class="ttname"><a href="driver__w25qxx_8c.html#a8d49efa8b978ae8fd3eb18d0e5ae73e8">W25QXX_COMMAND_FAST_READ_DUAL_OUTPUT</a></div><div class="ttdeci">#define W25QXX_COMMAND_FAST_READ_DUAL_OUTPUT</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l00083">driver_w25qxx.c:83</a></div></div>
-<div class="ttc" id="adriver__w25qxx_8c_html_a90c0b20d54005712fcc8cb01281360e9"><div class="ttname"><a href="driver__w25qxx_8c.html#a90c0b20d54005712fcc8cb01281360e9">TEMPERATURE_MAX</a></div><div class="ttdeci">#define TEMPERATURE_MAX</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l00048">driver_w25qxx.c:48</a></div></div>
-<div class="ttc" id="adriver__w25qxx_8c_html_a915ab53f5f2d1cad6b954205e76cb4d5"><div class="ttname"><a href="driver__w25qxx_8c.html#a915ab53f5f2d1cad6b954205e76cb4d5">W25QXX_COMMAND_PROGRAM_SECURITY_REGISTER</a></div><div class="ttdeci">#define W25QXX_COMMAND_PROGRAM_SECURITY_REGISTER</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l00087">driver_w25qxx.c:87</a></div></div>
-<div class="ttc" id="adriver__w25qxx_8c_html_a932f54ff92de8bbab4602ab85ac6c155"><div class="ttname"><a href="driver__w25qxx_8c.html#a932f54ff92de8bbab4602ab85ac6c155">W25QXX_COMMAND_WRITE_STATUS_REG1</a></div><div class="ttdeci">#define W25QXX_COMMAND_WRITE_STATUS_REG1</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l00060">driver_w25qxx.c:60</a></div></div>
-<div class="ttc" id="adriver__w25qxx_8c_html_a947382a74ac06eb8a2ff8f5bcb1b744d"><div class="ttname"><a href="driver__w25qxx_8c.html#a947382a74ac06eb8a2ff8f5bcb1b744d">W25QXX_COMMAND_WORD_READ_QUAD_IO</a></div><div class="ttdeci">#define W25QXX_COMMAND_WORD_READ_QUAD_IO</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l00096">driver_w25qxx.c:96</a></div></div>
-<div class="ttc" id="adriver__w25qxx_8c_html_aaa2b8f5b105c3019df0cb346f472e803"><div class="ttname"><a href="driver__w25qxx_8c.html#aaa2b8f5b105c3019df0cb346f472e803">MANUFACTURER_NAME</a></div><div class="ttdeci">#define MANUFACTURER_NAME</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l00043">driver_w25qxx.c:43</a></div></div>
-<div class="ttc" id="adriver__w25qxx_8c_html_aab353db5bf4eb787f86a2080f609a551"><div class="ttname"><a href="driver__w25qxx_8c.html#aab353db5bf4eb787f86a2080f609a551">TEMPERATURE_MIN</a></div><div class="ttdeci">#define TEMPERATURE_MIN</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l00047">driver_w25qxx.c:47</a></div></div>
-<div class="ttc" id="adriver__w25qxx_8c_html_aac8d8cbd899667d609787ef4cf37054d"><div class="ttname"><a href="driver__w25qxx_8c.html#aac8d8cbd899667d609787ef4cf37054d">SUPPLY_VOLTAGE_MIN</a></div><div class="ttdeci">#define SUPPLY_VOLTAGE_MIN</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l00044">driver_w25qxx.c:44</a></div></div>
-<div class="ttc" id="adriver__w25qxx_8c_html_ab25182298c921c8f7f42216e0d5aa56b"><div class="ttname"><a href="driver__w25qxx_8c.html#ab25182298c921c8f7f42216e0d5aa56b">W25QXX_COMMAND_RESET_DEVICE</a></div><div class="ttdeci">#define W25QXX_COMMAND_RESET_DEVICE</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l00074">driver_w25qxx.c:74</a></div></div>
-<div class="ttc" id="adriver__w25qxx_8c_html_ab96d2ad8602a5a50c988b8c09d4bbbc5"><div class="ttname"><a href="driver__w25qxx_8c.html#ab96d2ad8602a5a50c988b8c09d4bbbc5">W25QXX_COMMAND_GLOBAL_BLOCK_SECTOR_UNLOCK</a></div><div class="ttdeci">#define W25QXX_COMMAND_GLOBAL_BLOCK_SECTOR_UNLOCK</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l00071">driver_w25qxx.c:71</a></div></div>
-<div class="ttc" id="adriver__w25qxx_8c_html_ac957b31a68db8c14f88a196a98b0aa18"><div class="ttname"><a href="driver__w25qxx_8c.html#ac957b31a68db8c14f88a196a98b0aa18">W25QXX_COMMAND_FAST_READ</a></div><div class="ttdeci">#define W25QXX_COMMAND_FAST_READ</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l00082">driver_w25qxx.c:82</a></div></div>
-<div class="ttc" id="adriver__w25qxx_8c_html_acb7f8599b26c29356651690ec9b25e66"><div class="ttname"><a href="driver__w25qxx_8c.html#acb7f8599b26c29356651690ec9b25e66">W25QXX_COMMAND_OCTAL_WORD_READ_QUAD_IO</a></div><div class="ttdeci">#define W25QXX_COMMAND_OCTAL_WORD_READ_QUAD_IO</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l00097">driver_w25qxx.c:97</a></div></div>
-<div class="ttc" id="adriver__w25qxx_8c_html_acfb19490258b26729fa83fdd60c4d822"><div class="ttname"><a href="driver__w25qxx_8c.html#acfb19490258b26729fa83fdd60c4d822">W25QXX_COMMAND_SET_BURST_WITH_WRAP</a></div><div class="ttdeci">#define W25QXX_COMMAND_SET_BURST_WITH_WRAP</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l00094">driver_w25qxx.c:94</a></div></div>
-<div class="ttc" id="adriver__w25qxx_8c_html_ad344065461b2c71521017984f040b425"><div class="ttname"><a href="driver__w25qxx_8c.html#ad344065461b2c71521017984f040b425">W25QXX_COMMAND_RELEASE_POWER_DOWN</a></div><div class="ttdeci">#define W25QXX_COMMAND_RELEASE_POWER_DOWN</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l00067">driver_w25qxx.c:67</a></div></div>
-<div class="ttc" id="adriver__w25qxx_8c_html_adc9da0a24824ca1239b593f6459b3954"><div class="ttname"><a href="driver__w25qxx_8c.html#adc9da0a24824ca1239b593f6459b3954">CHIP_NAME</a></div><div class="ttdeci">#define CHIP_NAME</div><div class="ttdoc">chip information definition</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l00042">driver_w25qxx.c:42</a></div></div>
-<div class="ttc" id="adriver__w25qxx_8c_html_adf682969c34f4b31a87dd92dd18ccea3"><div class="ttname"><a href="driver__w25qxx_8c.html#adf682969c34f4b31a87dd92dd18ccea3">W25QXX_COMMAND_READ_STATUS_REG1</a></div><div class="ttdeci">#define W25QXX_COMMAND_READ_STATUS_REG1</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l00057">driver_w25qxx.c:57</a></div></div>
-<div class="ttc" id="adriver__w25qxx_8c_html_ae578001fe043b4cca7a0edd801cfe9c4"><div class="ttname"><a href="driver__w25qxx_8c.html#ae578001fe043b4cca7a0edd801cfe9c4">DRIVER_VERSION</a></div><div class="ttdeci">#define DRIVER_VERSION</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l00049">driver_w25qxx.c:49</a></div></div>
-<div class="ttc" id="adriver__w25qxx_8c_html_aebca01f1f7fd279523d29e579998574a"><div class="ttname"><a href="driver__w25qxx_8c.html#aebca01f1f7fd279523d29e579998574a">W25QXX_COMMAND_PAGE_PROGRAM</a></div><div class="ttdeci">#define W25QXX_COMMAND_PAGE_PROGRAM</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l00076">driver_w25qxx.c:76</a></div></div>
-<div class="ttc" id="adriver__w25qxx_8c_html_af0708c46377cfee2dff1ff429d8675d5"><div class="ttname"><a href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a></div><div class="ttdeci">#define W25QXX_COMMAND_WRITE_ENABLE</div><div class="ttdoc">chip command definition</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l00054">driver_w25qxx.c:54</a></div></div>
-<div class="ttc" id="adriver__w25qxx_8c_html_af6d9a5bc0b57b041e22af80b85e53f56"><div class="ttname"><a href="driver__w25qxx_8c.html#af6d9a5bc0b57b041e22af80b85e53f56">W25QXX_COMMAND_READ_MANUFACTURER</a></div><div class="ttdeci">#define W25QXX_COMMAND_READ_MANUFACTURER</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l00068">driver_w25qxx.c:68</a></div></div>
-<div class="ttc" id="adriver__w25qxx_8c_html_af81bc9ddfc8da8eb911435e835536ffb"><div class="ttname"><a href="driver__w25qxx_8c.html#af81bc9ddfc8da8eb911435e835536ffb">W25QXX_COMMAND_GLOBAL_BLOCK_SECTOR_LOCK</a></div><div class="ttdeci">#define W25QXX_COMMAND_GLOBAL_BLOCK_SECTOR_LOCK</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l00070">driver_w25qxx.c:70</a></div></div>
+<a href="driver__w25qxx_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno">    1</span> </div>
+<div class="line"><a id="l00037" name="l00037"></a><span class="lineno">   37</span><span class="preprocessor">#include &quot;<a class="code" href="driver__w25qxx_8h.html">driver_w25qxx.h</a>&quot;</span></div>
+<div class="line"><a id="l00038" name="l00038"></a><span class="lineno">   38</span> </div>
+<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"><a class="line" href="driver__w25qxx_8c.html#adc9da0a24824ca1239b593f6459b3954">   42</a></span><span class="preprocessor">#define CHIP_NAME                 &quot;Winbond W25QXX&quot;        </span></div>
+<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"><a class="line" href="driver__w25qxx_8c.html#aaa2b8f5b105c3019df0cb346f472e803">   43</a></span><span class="preprocessor">#define MANUFACTURER_NAME         &quot;Winbond&quot;               </span></div>
+<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"><a class="line" href="driver__w25qxx_8c.html#aac8d8cbd899667d609787ef4cf37054d">   44</a></span><span class="preprocessor">#define SUPPLY_VOLTAGE_MIN        2.7f                    </span></div>
+<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"><a class="line" href="driver__w25qxx_8c.html#a68eba8b601afe11f1b871d944976c035">   45</a></span><span class="preprocessor">#define SUPPLY_VOLTAGE_MAX        3.6f                    </span></div>
+<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"><a class="line" href="driver__w25qxx_8c.html#a2989837a37d6d63b59c6dd541b785435">   46</a></span><span class="preprocessor">#define MAX_CURRENT               25.0f                   </span></div>
+<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"><a class="line" href="driver__w25qxx_8c.html#aab353db5bf4eb787f86a2080f609a551">   47</a></span><span class="preprocessor">#define TEMPERATURE_MIN           -40.0f                  </span></div>
+<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"><a class="line" href="driver__w25qxx_8c.html#a90c0b20d54005712fcc8cb01281360e9">   48</a></span><span class="preprocessor">#define TEMPERATURE_MAX           85.0f                   </span></div>
+<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"><a class="line" href="driver__w25qxx_8c.html#ae578001fe043b4cca7a0edd801cfe9c4">   49</a></span><span class="preprocessor">#define DRIVER_VERSION            1000                    </span></div>
+<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"><a class="line" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">   54</a></span><span class="preprocessor">#define W25QXX_COMMAND_WRITE_ENABLE                      0x06        </span></div>
+<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"><a class="line" href="driver__w25qxx_8c.html#a7c9e980e30f499dd97b02935c91f2c02">   55</a></span><span class="preprocessor">#define W25QXX_COMMAND_VOLATILE_SR_WRITE_ENABLE          0x50        </span></div>
+<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"><a class="line" href="driver__w25qxx_8c.html#a36dfb1951fe152d63e3715a161646713">   56</a></span><span class="preprocessor">#define W25QXX_COMMAND_WRITE_DISABLE                     0x04        </span></div>
+<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"><a class="line" href="driver__w25qxx_8c.html#adf682969c34f4b31a87dd92dd18ccea3">   57</a></span><span class="preprocessor">#define W25QXX_COMMAND_READ_STATUS_REG1                  0x05        </span></div>
+<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"><a class="line" href="driver__w25qxx_8c.html#a4a8cdc5b6ce75029df877263bdf35f2a">   58</a></span><span class="preprocessor">#define W25QXX_COMMAND_READ_STATUS_REG2                  0x35        </span></div>
+<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"><a class="line" href="driver__w25qxx_8c.html#a09798bdb3fabdf7bb4cfd8bce18100ce">   59</a></span><span class="preprocessor">#define W25QXX_COMMAND_READ_STATUS_REG3                  0x15        </span></div>
+<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"><a class="line" href="driver__w25qxx_8c.html#a932f54ff92de8bbab4602ab85ac6c155">   60</a></span><span class="preprocessor">#define W25QXX_COMMAND_WRITE_STATUS_REG1                 0x01        </span></div>
+<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"><a class="line" href="driver__w25qxx_8c.html#a4be10ed873d56bb183d9b1bde9105135">   61</a></span><span class="preprocessor">#define W25QXX_COMMAND_WRITE_STATUS_REG2                 0x31        </span></div>
+<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"><a class="line" href="driver__w25qxx_8c.html#a6d099dc6afb59cc950d3abe96b840158">   62</a></span><span class="preprocessor">#define W25QXX_COMMAND_WRITE_STATUS_REG3                 0x11        </span></div>
+<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"><a class="line" href="driver__w25qxx_8c.html#a63ec9ecd709fcb69107756f253616a6e">   63</a></span><span class="preprocessor">#define W25QXX_COMMAND_CHIP_ERASE                        0xC7        </span></div>
+<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"><a class="line" href="driver__w25qxx_8c.html#a43f9a1e3c03d4a7d2a991e81f0e89f51">   64</a></span><span class="preprocessor">#define W25QXX_COMMAND_ERASE_PROGRAM_SUSPEND             0x75        </span></div>
+<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"><a class="line" href="driver__w25qxx_8c.html#a0daeb46fb8b219a3d6b37d426c5c0e95">   65</a></span><span class="preprocessor">#define W25QXX_COMMAND_ERASE_PROGRAM_RESUME              0x7A        </span></div>
+<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"><a class="line" href="driver__w25qxx_8c.html#a6fe4d603e33b7c8b8310a884e02a130b">   66</a></span><span class="preprocessor">#define W25QXX_COMMAND_POWER_DOWN                        0xB9        </span></div>
+<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"><a class="line" href="driver__w25qxx_8c.html#ad344065461b2c71521017984f040b425">   67</a></span><span class="preprocessor">#define W25QXX_COMMAND_RELEASE_POWER_DOWN                0xAB        </span></div>
+<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"><a class="line" href="driver__w25qxx_8c.html#af6d9a5bc0b57b041e22af80b85e53f56">   68</a></span><span class="preprocessor">#define W25QXX_COMMAND_READ_MANUFACTURER                 0x90        </span></div>
+<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"><a class="line" href="driver__w25qxx_8c.html#a54f3ece548cd5eadc94642235442315a">   69</a></span><span class="preprocessor">#define W25QXX_COMMAND_JEDEC_ID                          0x9F        </span></div>
+<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"><a class="line" href="driver__w25qxx_8c.html#af81bc9ddfc8da8eb911435e835536ffb">   70</a></span><span class="preprocessor">#define W25QXX_COMMAND_GLOBAL_BLOCK_SECTOR_LOCK          0x7E        </span></div>
+<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"><a class="line" href="driver__w25qxx_8c.html#ab96d2ad8602a5a50c988b8c09d4bbbc5">   71</a></span><span class="preprocessor">#define W25QXX_COMMAND_GLOBAL_BLOCK_SECTOR_UNLOCK        0x98        </span></div>
+<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"><a class="line" href="driver__w25qxx_8c.html#a052d5373086b473bf0d450ea1bd73828">   72</a></span><span class="preprocessor">#define W25QXX_COMMAND_ENTER_QSPI_MODE                   0x38        </span></div>
+<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"><a class="line" href="driver__w25qxx_8c.html#a6dae3a832abc19d1861fafb32f231d94">   73</a></span><span class="preprocessor">#define W25QXX_COMMAND_ENABLE_RESET                      0x66        </span></div>
+<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"><a class="line" href="driver__w25qxx_8c.html#ab25182298c921c8f7f42216e0d5aa56b">   74</a></span><span class="preprocessor">#define W25QXX_COMMAND_RESET_DEVICE                      0x99        </span></div>
+<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"><a class="line" href="driver__w25qxx_8c.html#a6aeed0a651b31064f25ab2f57fdacf2f">   75</a></span><span class="preprocessor">#define W25QXX_COMMAND_READ_UNIQUE_ID                    0x4B        </span></div>
+<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"><a class="line" href="driver__w25qxx_8c.html#aebca01f1f7fd279523d29e579998574a">   76</a></span><span class="preprocessor">#define W25QXX_COMMAND_PAGE_PROGRAM                      0x02        </span></div>
+<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"><a class="line" href="driver__w25qxx_8c.html#a8212fac3d1e43024621b6b560a8dddfe">   77</a></span><span class="preprocessor">#define W25QXX_COMMAND_QUAD_PAGE_PROGRAM                 0x32        </span></div>
+<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"><a class="line" href="driver__w25qxx_8c.html#a6e7cd159f91e23930450725fd6910f9c">   78</a></span><span class="preprocessor">#define W25QXX_COMMAND_SECTOR_ERASE_4K                   0x20        </span></div>
+<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"><a class="line" href="driver__w25qxx_8c.html#a8bfb4e869985f5fa21ea7d1d262f90ad">   79</a></span><span class="preprocessor">#define W25QXX_COMMAND_BLOCK_ERASE_32K                   0x52        </span></div>
+<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"><a class="line" href="driver__w25qxx_8c.html#a4c5a1ed46f4d662a61bc06573ab548a0">   80</a></span><span class="preprocessor">#define W25QXX_COMMAND_BLOCK_ERASE_64K                   0xD8        </span></div>
+<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"><a class="line" href="driver__w25qxx_8c.html#a23fcd6d9b067580d534d626c43b7cff3">   81</a></span><span class="preprocessor">#define W25QXX_COMMAND_READ_DATA                         0x03        </span></div>
+<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"><a class="line" href="driver__w25qxx_8c.html#ac957b31a68db8c14f88a196a98b0aa18">   82</a></span><span class="preprocessor">#define W25QXX_COMMAND_FAST_READ                         0x0B        </span></div>
+<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"><a class="line" href="driver__w25qxx_8c.html#a8d49efa8b978ae8fd3eb18d0e5ae73e8">   83</a></span><span class="preprocessor">#define W25QXX_COMMAND_FAST_READ_DUAL_OUTPUT             0x3B        </span></div>
+<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"><a class="line" href="driver__w25qxx_8c.html#a54ddb3d948c4bb95cc62199676c817b2">   84</a></span><span class="preprocessor">#define W25QXX_COMMAND_FAST_READ_QUAD_OUTPUT             0x6B        </span></div>
+<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"><a class="line" href="driver__w25qxx_8c.html#a63774c5ebbdf5445466d840fad567bf6">   85</a></span><span class="preprocessor">#define W25QXX_COMMAND_READ_SFDP_REGISTER                0x5A        </span></div>
+<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"><a class="line" href="driver__w25qxx_8c.html#a842f8d646fc8f8ed72422fc1d789498c">   86</a></span><span class="preprocessor">#define W25QXX_COMMAND_ERASE_SECURITY_REGISTER           0x44        </span></div>
+<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"><a class="line" href="driver__w25qxx_8c.html#a915ab53f5f2d1cad6b954205e76cb4d5">   87</a></span><span class="preprocessor">#define W25QXX_COMMAND_PROGRAM_SECURITY_REGISTER         0x42        </span></div>
+<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"><a class="line" href="driver__w25qxx_8c.html#a4dc5fb2c3c15ef86df56b534b874a919">   88</a></span><span class="preprocessor">#define W25QXX_COMMAND_READ_SECURITY_REGISTER            0x48        </span></div>
+<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"><a class="line" href="driver__w25qxx_8c.html#a328f6a9635b1ec6868410375de90b0df">   89</a></span><span class="preprocessor">#define W25QXX_COMMAND_INDIVIDUAL_BLOCK_LOCK             0x36        </span></div>
+<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"><a class="line" href="driver__w25qxx_8c.html#a3cc8b61583b5eb9d7c1ecd6831689718">   90</a></span><span class="preprocessor">#define W25QXX_COMMAND_INDIVIDUAL_BLOCK_UNLOCK           0x39        </span></div>
+<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"><a class="line" href="driver__w25qxx_8c.html#a19e055bec30de0ad30e7f8ab5feea6a8">   91</a></span><span class="preprocessor">#define W25QXX_COMMAND_READ_BLOCK_LOCK                   0x3D        </span></div>
+<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"><a class="line" href="driver__w25qxx_8c.html#a2232ada3558228c2902d654989ca65f1">   92</a></span><span class="preprocessor">#define W25QXX_COMMAND_FAST_READ_DUAL_IO                 0xBB        </span></div>
+<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"><a class="line" href="driver__w25qxx_8c.html#a374c09f79cc61a3e7ac374bca5122e25">   93</a></span><span class="preprocessor">#define W25QXX_COMMAND_DEVICE_ID_DUAL_IO                 0x92        </span></div>
+<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"><a class="line" href="driver__w25qxx_8c.html#acfb19490258b26729fa83fdd60c4d822">   94</a></span><span class="preprocessor">#define W25QXX_COMMAND_SET_BURST_WITH_WRAP               0x77        </span></div>
+<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"><a class="line" href="driver__w25qxx_8c.html#a80d19998d9d1218d0fa69e7d4d6b0ecb">   95</a></span><span class="preprocessor">#define W25QXX_COMMAND_FAST_READ_QUAD_IO                 0xEB        </span></div>
+<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"><a class="line" href="driver__w25qxx_8c.html#a947382a74ac06eb8a2ff8f5bcb1b744d">   96</a></span><span class="preprocessor">#define W25QXX_COMMAND_WORD_READ_QUAD_IO                 0xE7        </span></div>
+<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"><a class="line" href="driver__w25qxx_8c.html#acb7f8599b26c29356651690ec9b25e66">   97</a></span><span class="preprocessor">#define W25QXX_COMMAND_OCTAL_WORD_READ_QUAD_IO           0xE3        </span></div>
+<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"><a class="line" href="driver__w25qxx_8c.html#a7573bc250d850078be3221c29521bc5c">   98</a></span><span class="preprocessor">#define W25QXX_COMMAND_DEVICE_ID_QUAD_IO                 0x94        </span></div>
+<div class="line"><a id="l00112" name="l00112"></a><span class="lineno">  112</span><span class="keyword">static</span> uint8_t a_w25qxx_spi_write_read(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint8_t *in_buf, uint32_t in_len, uint8_t *out_buf, uint32_t out_len)</div>
+<div class="line"><a id="l00113" name="l00113"></a><span class="lineno">  113</span>{</div>
+<div class="line"><a id="l00114" name="l00114"></a><span class="lineno">  114</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a2d39cde883403779e3da9dd39c32bec5">spi_qspi_write_read</a>(0x00, 0x00, 0x00000000, 0x00, 0x00,                <span class="comment">/* write read data */</span></div>
+<div class="line"><a id="l00115" name="l00115"></a><span class="lineno">  115</span>                                    0x00000000, 0x00, 0x00, </div>
+<div class="line"><a id="l00116" name="l00116"></a><span class="lineno">  116</span>                                    0x00, in_buf, in_len, out_buf, out_len, 1) != 0)</div>
+<div class="line"><a id="l00117" name="l00117"></a><span class="lineno">  117</span>    {</div>
+<div class="line"><a id="l00118" name="l00118"></a><span class="lineno">  118</span>        <span class="keywordflow">return</span> 1;                                                                      <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l00119" name="l00119"></a><span class="lineno">  119</span>    }</div>
+<div class="line"><a id="l00120" name="l00120"></a><span class="lineno">  120</span>    <span class="keywordflow">else</span></div>
+<div class="line"><a id="l00121" name="l00121"></a><span class="lineno">  121</span>    {</div>
+<div class="line"><a id="l00122" name="l00122"></a><span class="lineno">  122</span>        <span class="keywordflow">return</span> 0;                                                                      <span class="comment">/* success return 0 */</span></div>
+<div class="line"><a id="l00123" name="l00123"></a><span class="lineno">  123</span>    }</div>
+<div class="line"><a id="l00124" name="l00124"></a><span class="lineno">  124</span>}</div>
+<div class="line"><a id="l00125" name="l00125"></a><span class="lineno">  125</span> </div>
+<div class="line"><a id="l00148" name="l00148"></a><span class="lineno">  148</span><span class="keyword">static</span> uint8_t a_w25qxx_qspi_write_read(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint8_t instruction, uint8_t instruction_line,</div>
+<div class="line"><a id="l00149" name="l00149"></a><span class="lineno">  149</span>                                        uint32_t address, uint8_t address_line, uint8_t address_len,</div>
+<div class="line"><a id="l00150" name="l00150"></a><span class="lineno">  150</span>                                        uint32_t alternate, uint8_t alternate_line, uint8_t alternate_len,</div>
+<div class="line"><a id="l00151" name="l00151"></a><span class="lineno">  151</span>                                        uint8_t dummy, uint8_t *in_buf, uint32_t in_len,</div>
+<div class="line"><a id="l00152" name="l00152"></a><span class="lineno">  152</span>                                        uint8_t *out_buf, uint32_t out_len, uint8_t data_line)</div>
+<div class="line"><a id="l00153" name="l00153"></a><span class="lineno">  153</span>{</div>
+<div class="line"><a id="l00154" name="l00154"></a><span class="lineno">  154</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a2d39cde883403779e3da9dd39c32bec5">spi_qspi_write_read</a>(instruction, instruction_line, address, address_line, address_len,        <span class="comment">/* write read data */</span></div>
+<div class="line"><a id="l00155" name="l00155"></a><span class="lineno">  155</span>                                    alternate, alternate_line, alternate_len, </div>
+<div class="line"><a id="l00156" name="l00156"></a><span class="lineno">  156</span>                                    dummy, in_buf, in_len, out_buf, out_len, data_line) != 0)</div>
+<div class="line"><a id="l00157" name="l00157"></a><span class="lineno">  157</span>    {</div>
+<div class="line"><a id="l00158" name="l00158"></a><span class="lineno">  158</span>        <span class="keywordflow">return</span> 1;                                                                                             <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l00159" name="l00159"></a><span class="lineno">  159</span>    }</div>
+<div class="line"><a id="l00160" name="l00160"></a><span class="lineno">  160</span>    <span class="keywordflow">else</span></div>
+<div class="line"><a id="l00161" name="l00161"></a><span class="lineno">  161</span>    {</div>
+<div class="line"><a id="l00162" name="l00162"></a><span class="lineno">  162</span>        <span class="keywordflow">return</span> 0;                                                                                             <span class="comment">/* success return 0 */</span></div>
+<div class="line"><a id="l00163" name="l00163"></a><span class="lineno">  163</span>    }</div>
+<div class="line"><a id="l00164" name="l00164"></a><span class="lineno">  164</span>}</div>
+<div class="line"><a id="l00165" name="l00165"></a><span class="lineno">  165</span> </div>
+<div class="foldopen" id="foldopen00175" data-start="{" data-end="}">
+<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"><a class="line" href="group__w25qxx__basic__driver.html#ga665139209b0abc386474a78d89cce6f2">  175</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__basic__driver.html#ga665139209b0abc386474a78d89cce6f2">w25qxx_set_dual_quad_spi</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, <a class="code hl_enumeration" href="group__w25qxx__basic__driver.html#gafb2690946f5baf4be6f3a63dde5491fb">w25qxx_bool_t</a> enable)</div>
+<div class="line"><a id="l00176" name="l00176"></a><span class="lineno">  176</span>{</div>
+<div class="line"><a id="l00177" name="l00177"></a><span class="lineno">  177</span>    <span class="keywordflow">if</span> (handle == NULL)                                    <span class="comment">/* check handle */</span></div>
+<div class="line"><a id="l00178" name="l00178"></a><span class="lineno">  178</span>    {</div>
+<div class="line"><a id="l00179" name="l00179"></a><span class="lineno">  179</span>        <span class="keywordflow">return</span> 2;                                          <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l00180" name="l00180"></a><span class="lineno">  180</span>    }</div>
+<div class="line"><a id="l00181" name="l00181"></a><span class="lineno">  181</span> </div>
+<div class="line"><a id="l00182" name="l00182"></a><span class="lineno">  182</span>    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">dual_quad_spi_enable</a> = (uint8_t)enable;        <span class="comment">/* set enable */</span></div>
+<div class="line"><a id="l00183" name="l00183"></a><span class="lineno">  183</span>    </div>
+<div class="line"><a id="l00184" name="l00184"></a><span class="lineno">  184</span>    <span class="keywordflow">return</span> 0;                                              <span class="comment">/* success return 0 */</span></div>
+<div class="line"><a id="l00185" name="l00185"></a><span class="lineno">  185</span>}</div>
+</div>
+<div class="line"><a id="l00186" name="l00186"></a><span class="lineno">  186</span> </div>
+<div class="foldopen" id="foldopen00196" data-start="{" data-end="}">
+<div class="line"><a id="l00196" name="l00196"></a><span class="lineno"><a class="line" href="group__w25qxx__basic__driver.html#gad4c9b8b0a2d0916c13567f9d7e494cf8">  196</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__basic__driver.html#gad4c9b8b0a2d0916c13567f9d7e494cf8">w25qxx_get_dual_quad_spi</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, <a class="code hl_enumeration" href="group__w25qxx__basic__driver.html#gafb2690946f5baf4be6f3a63dde5491fb">w25qxx_bool_t</a> *enable)</div>
+<div class="line"><a id="l00197" name="l00197"></a><span class="lineno">  197</span>{</div>
+<div class="line"><a id="l00198" name="l00198"></a><span class="lineno">  198</span>    <span class="keywordflow">if</span> (handle == NULL)                                             <span class="comment">/* check handle */</span></div>
+<div class="line"><a id="l00199" name="l00199"></a><span class="lineno">  199</span>    {</div>
+<div class="line"><a id="l00200" name="l00200"></a><span class="lineno">  200</span>        <span class="keywordflow">return</span> 2;                                                   <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l00201" name="l00201"></a><span class="lineno">  201</span>    }</div>
+<div class="line"><a id="l00202" name="l00202"></a><span class="lineno">  202</span> </div>
+<div class="line"><a id="l00203" name="l00203"></a><span class="lineno">  203</span>    *enable = (<a class="code hl_enumeration" href="group__w25qxx__basic__driver.html#gafb2690946f5baf4be6f3a63dde5491fb">w25qxx_bool_t</a>)(handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">dual_quad_spi_enable</a>);        <span class="comment">/* get enable */</span></div>
+<div class="line"><a id="l00204" name="l00204"></a><span class="lineno">  204</span>    </div>
+<div class="line"><a id="l00205" name="l00205"></a><span class="lineno">  205</span>    <span class="keywordflow">return</span> 0;                                                       <span class="comment">/* success return 0 */</span></div>
+<div class="line"><a id="l00206" name="l00206"></a><span class="lineno">  206</span>}</div>
+</div>
+<div class="line"><a id="l00207" name="l00207"></a><span class="lineno">  207</span> </div>
+<div class="foldopen" id="foldopen00217" data-start="{" data-end="}">
+<div class="line"><a id="l00217" name="l00217"></a><span class="lineno"><a class="line" href="group__w25qxx__basic__driver.html#gaa57189cd4170b73f8b1300ca15e27de6">  217</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa57189cd4170b73f8b1300ca15e27de6">w25qxx_set_type</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, <a class="code hl_enumeration" href="group__w25qxx__basic__driver.html#ga6cb4e5164464df549201dd96cb7a58b1">w25qxx_type_t</a> type)</div>
+<div class="line"><a id="l00218" name="l00218"></a><span class="lineno">  218</span>{</div>
+<div class="line"><a id="l00219" name="l00219"></a><span class="lineno">  219</span>    <span class="keywordflow">if</span> (handle == NULL)                  <span class="comment">/* check handle */</span></div>
+<div class="line"><a id="l00220" name="l00220"></a><span class="lineno">  220</span>    {</div>
+<div class="line"><a id="l00221" name="l00221"></a><span class="lineno">  221</span>        <span class="keywordflow">return</span> 2;                        <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l00222" name="l00222"></a><span class="lineno">  222</span>    }</div>
+<div class="line"><a id="l00223" name="l00223"></a><span class="lineno">  223</span> </div>
+<div class="line"><a id="l00224" name="l00224"></a><span class="lineno">  224</span>    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> = (uint16_t)type;       <span class="comment">/* set type */</span></div>
+<div class="line"><a id="l00225" name="l00225"></a><span class="lineno">  225</span>    </div>
+<div class="line"><a id="l00226" name="l00226"></a><span class="lineno">  226</span>    <span class="keywordflow">return</span> 0;                            <span class="comment">/* success return 0 */</span></div>
+<div class="line"><a id="l00227" name="l00227"></a><span class="lineno">  227</span>}</div>
+</div>
+<div class="line"><a id="l00228" name="l00228"></a><span class="lineno">  228</span> </div>
+<div class="foldopen" id="foldopen00238" data-start="{" data-end="}">
+<div class="line"><a id="l00238" name="l00238"></a><span class="lineno"><a class="line" href="group__w25qxx__basic__driver.html#ga685379998dad173b6d9c0b0da270685c">  238</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__basic__driver.html#ga685379998dad173b6d9c0b0da270685c">w25qxx_get_type</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, <a class="code hl_enumeration" href="group__w25qxx__basic__driver.html#ga6cb4e5164464df549201dd96cb7a58b1">w25qxx_type_t</a> *type)</div>
+<div class="line"><a id="l00239" name="l00239"></a><span class="lineno">  239</span>{</div>
+<div class="line"><a id="l00240" name="l00240"></a><span class="lineno">  240</span>    <span class="keywordflow">if</span> (handle == NULL)                           <span class="comment">/* check handle */</span></div>
+<div class="line"><a id="l00241" name="l00241"></a><span class="lineno">  241</span>    {</div>
+<div class="line"><a id="l00242" name="l00242"></a><span class="lineno">  242</span>        <span class="keywordflow">return</span> 2;                                 <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l00243" name="l00243"></a><span class="lineno">  243</span>    }</div>
+<div class="line"><a id="l00244" name="l00244"></a><span class="lineno">  244</span> </div>
+<div class="line"><a id="l00245" name="l00245"></a><span class="lineno">  245</span>    *type = (<a class="code hl_enumeration" href="group__w25qxx__basic__driver.html#ga6cb4e5164464df549201dd96cb7a58b1">w25qxx_type_t</a>)(handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a>);        <span class="comment">/* get type */</span></div>
+<div class="line"><a id="l00246" name="l00246"></a><span class="lineno">  246</span>    </div>
+<div class="line"><a id="l00247" name="l00247"></a><span class="lineno">  247</span>    <span class="keywordflow">return</span> 0;                                     <span class="comment">/* success return 0 */</span></div>
+<div class="line"><a id="l00248" name="l00248"></a><span class="lineno">  248</span>}</div>
+</div>
+<div class="line"><a id="l00249" name="l00249"></a><span class="lineno">  249</span> </div>
+<div class="foldopen" id="foldopen00259" data-start="{" data-end="}">
+<div class="line"><a id="l00259" name="l00259"></a><span class="lineno"><a class="line" href="group__w25qxx__basic__driver.html#ga50a62003d566402d46ada2f272c41eb5">  259</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__basic__driver.html#ga50a62003d566402d46ada2f272c41eb5">w25qxx_set_interface</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, <a class="code hl_enumeration" href="group__w25qxx__basic__driver.html#gacbf327a42336baf10713a1796ff4f2fe">w25qxx_interface_t</a> interface)</div>
+<div class="line"><a id="l00260" name="l00260"></a><span class="lineno">  260</span>{</div>
+<div class="line"><a id="l00261" name="l00261"></a><span class="lineno">  261</span>    <span class="keywordflow">if</span> (handle == NULL)                           <span class="comment">/* check handle */</span></div>
+<div class="line"><a id="l00262" name="l00262"></a><span class="lineno">  262</span>    {</div>
+<div class="line"><a id="l00263" name="l00263"></a><span class="lineno">  263</span>        <span class="keywordflow">return</span> 2;                                 <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l00264" name="l00264"></a><span class="lineno">  264</span>    }</div>
+<div class="line"><a id="l00265" name="l00265"></a><span class="lineno">  265</span> </div>
+<div class="line"><a id="l00266" name="l00266"></a><span class="lineno">  266</span>    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a> = (uint8_t)interface;        <span class="comment">/* set interface */</span></div>
+<div class="line"><a id="l00267" name="l00267"></a><span class="lineno">  267</span>    </div>
+<div class="line"><a id="l00268" name="l00268"></a><span class="lineno">  268</span>    <span class="keywordflow">return</span> 0;                                     <span class="comment">/* success return 0 */</span></div>
+<div class="line"><a id="l00269" name="l00269"></a><span class="lineno">  269</span>}</div>
+</div>
+<div class="line"><a id="l00270" name="l00270"></a><span class="lineno">  270</span> </div>
+<div class="foldopen" id="foldopen00280" data-start="{" data-end="}">
+<div class="line"><a id="l00280" name="l00280"></a><span class="lineno"><a class="line" href="group__w25qxx__basic__driver.html#ga86ef839d475f3926a0be46bbc18d4b45">  280</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__basic__driver.html#ga86ef839d475f3926a0be46bbc18d4b45">w25qxx_get_interface</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, <a class="code hl_enumeration" href="group__w25qxx__basic__driver.html#gacbf327a42336baf10713a1796ff4f2fe">w25qxx_interface_t</a> *interface)</div>
+<div class="line"><a id="l00281" name="l00281"></a><span class="lineno">  281</span>{</div>
+<div class="line"><a id="l00282" name="l00282"></a><span class="lineno">  282</span>    <span class="keywordflow">if</span> (handle == NULL)                                         <span class="comment">/* check handle */</span></div>
+<div class="line"><a id="l00283" name="l00283"></a><span class="lineno">  283</span>    {</div>
+<div class="line"><a id="l00284" name="l00284"></a><span class="lineno">  284</span>        <span class="keywordflow">return</span> 2;                                               <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l00285" name="l00285"></a><span class="lineno">  285</span>    }</div>
+<div class="line"><a id="l00286" name="l00286"></a><span class="lineno">  286</span> </div>
+<div class="line"><a id="l00287" name="l00287"></a><span class="lineno">  287</span>    *<span class="keyword">interface </span>= (<a class="code hl_enumeration" href="group__w25qxx__basic__driver.html#gacbf327a42336baf10713a1796ff4f2fe">w25qxx_interface_t</a>)(handle-&gt;spi_qspi);        <span class="comment">/* get interface */</span></div>
+<div class="line"><a id="l00288" name="l00288"></a><span class="lineno">  288</span>    </div>
+<div class="line"><a id="l00289" name="l00289"></a><span class="lineno">  289</span>    <span class="keywordflow">return</span> 0;                                                   <span class="comment">/* success return 0 */</span></div>
+<div class="line"><a id="l00290" name="l00290"></a><span class="lineno">  290</span>}</div>
+</div>
+<div class="line"><a id="l00291" name="l00291"></a><span class="lineno">  291</span> </div>
+<div class="foldopen" id="foldopen00304" data-start="{" data-end="}">
+<div class="line"><a id="l00304" name="l00304"></a><span class="lineno"><a class="line" href="group__w25qxx__basic__driver.html#gad0e125eff304ce66fb3956d2c8c80656">  304</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__basic__driver.html#gad0e125eff304ce66fb3956d2c8c80656">w25qxx_set_address_mode</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, <a class="code hl_enumeration" href="group__w25qxx__basic__driver.html#gaa4c45f146d1ade8a2da8e751818fa4a2">w25qxx_address_mode_t</a> mode)</div>
+<div class="line"><a id="l00305" name="l00305"></a><span class="lineno">  305</span>{</div>
+<div class="line"><a id="l00306" name="l00306"></a><span class="lineno">  306</span>    uint8_t res;</div>
+<div class="line"><a id="l00307" name="l00307"></a><span class="lineno">  307</span>    uint8_t buf[1];</div>
+<div class="line"><a id="l00308" name="l00308"></a><span class="lineno">  308</span>    </div>
+<div class="line"><a id="l00309" name="l00309"></a><span class="lineno">  309</span>    <span class="keywordflow">if</span> (handle == NULL)                                                               <span class="comment">/* check handle */</span></div>
+<div class="line"><a id="l00310" name="l00310"></a><span class="lineno">  310</span>    {</div>
+<div class="line"><a id="l00311" name="l00311"></a><span class="lineno">  311</span>        <span class="keywordflow">return</span> 2;                                                                     <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l00312" name="l00312"></a><span class="lineno">  312</span>    }   </div>
+<div class="line"><a id="l00313" name="l00313"></a><span class="lineno">  313</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">inited</a> != 1)                                                          <span class="comment">/* check handle initialization */</span></div>
+<div class="line"><a id="l00314" name="l00314"></a><span class="lineno">  314</span>    {</div>
+<div class="line"><a id="l00315" name="l00315"></a><span class="lineno">  315</span>        <span class="keywordflow">return</span> 3;                                                                     <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l00316" name="l00316"></a><span class="lineno">  316</span>    }</div>
+<div class="line"><a id="l00317" name="l00317"></a><span class="lineno">  317</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &lt; <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)                                                       <span class="comment">/* check type */</span></div>
+<div class="line"><a id="l00318" name="l00318"></a><span class="lineno">  318</span>    {</div>
+<div class="line"><a id="l00319" name="l00319"></a><span class="lineno">  319</span>        handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: current type can&#39;t use this function.\n&quot;</span>);       <span class="comment">/* current type can&#39;t use this function */</span></div>
+<div class="line"><a id="l00320" name="l00320"></a><span class="lineno">  320</span>       </div>
+<div class="line"><a id="l00321" name="l00321"></a><span class="lineno">  321</span>        <span class="keywordflow">return</span> 4;                                                                     <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l00322" name="l00322"></a><span class="lineno">  322</span>    }</div>
+<div class="line"><a id="l00323" name="l00323"></a><span class="lineno">  323</span>    </div>
+<div class="line"><a id="l00324" name="l00324"></a><span class="lineno">  324</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>)                                     <span class="comment">/* spi interface */</span></div>
+<div class="line"><a id="l00325" name="l00325"></a><span class="lineno">  325</span>    {</div>
+<div class="line"><a id="l00326" name="l00326"></a><span class="lineno">  326</span>        <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">dual_quad_spi_enable</a> != 0)                                        <span class="comment">/* enable dual quad spi */</span></div>
+<div class="line"><a id="l00327" name="l00327"></a><span class="lineno">  327</span>        {</div>
+<div class="line"><a id="l00328" name="l00328"></a><span class="lineno">  328</span>            <span class="keywordflow">if</span> (mode == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                   <span class="comment">/* address 3 mode byte */</span></div>
+<div class="line"><a id="l00329" name="l00329"></a><span class="lineno">  329</span>            {</div>
+<div class="line"><a id="l00330" name="l00330"></a><span class="lineno">  330</span>                buf[0] = 0xE9;                                                        <span class="comment">/* 3 byte mode */</span></div>
+<div class="line"><a id="l00331" name="l00331"></a><span class="lineno">  331</span>            }</div>
+<div class="line"><a id="l00332" name="l00332"></a><span class="lineno">  332</span>            <span class="keywordflow">else</span>                                                                      <span class="comment">/* address 4 mode byte */</span></div>
+<div class="line"><a id="l00333" name="l00333"></a><span class="lineno">  333</span>            {</div>
+<div class="line"><a id="l00334" name="l00334"></a><span class="lineno">  334</span>                buf[0] = 0xB7;                                                        <span class="comment">/* 4 byte mode */</span></div>
+<div class="line"><a id="l00335" name="l00335"></a><span class="lineno">  335</span>            }</div>
+<div class="line"><a id="l00336" name="l00336"></a><span class="lineno">  336</span>            res = a_w25qxx_qspi_write_read(handle, buf[0], 1,</div>
+<div class="line"><a id="l00337" name="l00337"></a><span class="lineno">  337</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l00338" name="l00338"></a><span class="lineno">  338</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l00339" name="l00339"></a><span class="lineno">  339</span>                                           0x00, NULL, 0x00,</div>
+<div class="line"><a id="l00340" name="l00340"></a><span class="lineno">  340</span>                                           NULL, 0x00, 0x00);                         <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l00341" name="l00341"></a><span class="lineno">  341</span>            <span class="keywordflow">if</span> (res != 0)                                                             <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l00342" name="l00342"></a><span class="lineno">  342</span>            {</div>
+<div class="line"><a id="l00343" name="l00343"></a><span class="lineno">  343</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: set address mode failed.\n&quot;</span>);            <span class="comment">/* set address mode failed */</span></div>
+<div class="line"><a id="l00344" name="l00344"></a><span class="lineno">  344</span>               </div>
+<div class="line"><a id="l00345" name="l00345"></a><span class="lineno">  345</span>                <span class="keywordflow">return</span> 1;                                                             <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l00346" name="l00346"></a><span class="lineno">  346</span>            }</div>
+<div class="line"><a id="l00347" name="l00347"></a><span class="lineno">  347</span>        }</div>
+<div class="line"><a id="l00348" name="l00348"></a><span class="lineno">  348</span>        <span class="keywordflow">else</span>                                                                          <span class="comment">/* single spi */</span></div>
+<div class="line"><a id="l00349" name="l00349"></a><span class="lineno">  349</span>        {</div>
+<div class="line"><a id="l00350" name="l00350"></a><span class="lineno">  350</span>            <span class="keywordflow">if</span> (mode == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                   <span class="comment">/* address 3 mode byte */</span></div>
+<div class="line"><a id="l00351" name="l00351"></a><span class="lineno">  351</span>            {</div>
+<div class="line"><a id="l00352" name="l00352"></a><span class="lineno">  352</span>                buf[0] = 0xE9;                                                        <span class="comment">/* 3 byte mode */</span></div>
+<div class="line"><a id="l00353" name="l00353"></a><span class="lineno">  353</span>            }</div>
+<div class="line"><a id="l00354" name="l00354"></a><span class="lineno">  354</span>            <span class="keywordflow">else</span>                                                                      <span class="comment">/* address 4 mode byte */</span></div>
+<div class="line"><a id="l00355" name="l00355"></a><span class="lineno">  355</span>            {</div>
+<div class="line"><a id="l00356" name="l00356"></a><span class="lineno">  356</span>                buf[0] = 0xB7;                                                        <span class="comment">/* 4 byte mode */</span></div>
+<div class="line"><a id="l00357" name="l00357"></a><span class="lineno">  357</span>            }</div>
+<div class="line"><a id="l00358" name="l00358"></a><span class="lineno">  358</span>            res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 1, NULL, 0);        <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l00359" name="l00359"></a><span class="lineno">  359</span>            <span class="keywordflow">if</span> (res != 0)                                                             <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l00360" name="l00360"></a><span class="lineno">  360</span>            {</div>
+<div class="line"><a id="l00361" name="l00361"></a><span class="lineno">  361</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: set address mode failed.\n&quot;</span>);            <span class="comment">/* set address mode failed */</span></div>
+<div class="line"><a id="l00362" name="l00362"></a><span class="lineno">  362</span>               </div>
+<div class="line"><a id="l00363" name="l00363"></a><span class="lineno">  363</span>                <span class="keywordflow">return</span> 1;                                                             <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l00364" name="l00364"></a><span class="lineno">  364</span>            }</div>
+<div class="line"><a id="l00365" name="l00365"></a><span class="lineno">  365</span>        }</div>
+<div class="line"><a id="l00366" name="l00366"></a><span class="lineno">  366</span>    }</div>
+<div class="line"><a id="l00367" name="l00367"></a><span class="lineno">  367</span>    <span class="keywordflow">else</span>                                                                              <span class="comment">/* qspi interface */</span></div>
+<div class="line"><a id="l00368" name="l00368"></a><span class="lineno">  368</span>    {</div>
+<div class="line"><a id="l00369" name="l00369"></a><span class="lineno">  369</span>        <span class="keywordflow">if</span> (mode == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                       <span class="comment">/* address 3 mode byte */</span></div>
+<div class="line"><a id="l00370" name="l00370"></a><span class="lineno">  370</span>        {</div>
+<div class="line"><a id="l00371" name="l00371"></a><span class="lineno">  371</span>            buf[0] = 0xE9;                                                            <span class="comment">/* 3 byte mode */</span></div>
+<div class="line"><a id="l00372" name="l00372"></a><span class="lineno">  372</span>        }</div>
+<div class="line"><a id="l00373" name="l00373"></a><span class="lineno">  373</span>        <span class="keywordflow">else</span>                                                                          <span class="comment">/* address 4 mode byte */</span></div>
+<div class="line"><a id="l00374" name="l00374"></a><span class="lineno">  374</span>        {</div>
+<div class="line"><a id="l00375" name="l00375"></a><span class="lineno">  375</span>            buf[0] = 0xB7;                                                            <span class="comment">/* 4 byte mode */</span></div>
+<div class="line"><a id="l00376" name="l00376"></a><span class="lineno">  376</span>        }</div>
+<div class="line"><a id="l00377" name="l00377"></a><span class="lineno">  377</span>        res = a_w25qxx_qspi_write_read(handle, buf[0], 4,</div>
+<div class="line"><a id="l00378" name="l00378"></a><span class="lineno">  378</span>                                       0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l00379" name="l00379"></a><span class="lineno">  379</span>                                       0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l00380" name="l00380"></a><span class="lineno">  380</span>                                       0x00, NULL, 0x00,</div>
+<div class="line"><a id="l00381" name="l00381"></a><span class="lineno">  381</span>                                       NULL, 0x00, 0x00);                             <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l00382" name="l00382"></a><span class="lineno">  382</span>        <span class="keywordflow">if</span> (res != 0)                                                                 <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l00383" name="l00383"></a><span class="lineno">  383</span>        {</div>
+<div class="line"><a id="l00384" name="l00384"></a><span class="lineno">  384</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: set address mode failed.\n&quot;</span>);                <span class="comment">/* set address mode failed */</span></div>
+<div class="line"><a id="l00385" name="l00385"></a><span class="lineno">  385</span>           </div>
+<div class="line"><a id="l00386" name="l00386"></a><span class="lineno">  386</span>            <span class="keywordflow">return</span> 1;                                                                 <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l00387" name="l00387"></a><span class="lineno">  387</span>        }</div>
+<div class="line"><a id="l00388" name="l00388"></a><span class="lineno">  388</span>    }</div>
+<div class="line"><a id="l00389" name="l00389"></a><span class="lineno">  389</span>    </div>
+<div class="line"><a id="l00390" name="l00390"></a><span class="lineno">  390</span>    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> = (uint8_t)mode;                                             <span class="comment">/* set address mode */</span></div>
+<div class="line"><a id="l00391" name="l00391"></a><span class="lineno">  391</span>    </div>
+<div class="line"><a id="l00392" name="l00392"></a><span class="lineno">  392</span>    <span class="keywordflow">return</span> 0;                                                                         <span class="comment">/* success return 0 */</span></div>
+<div class="line"><a id="l00393" name="l00393"></a><span class="lineno">  393</span>}</div>
+</div>
+<div class="line"><a id="l00394" name="l00394"></a><span class="lineno">  394</span> </div>
+<div class="foldopen" id="foldopen00405" data-start="{" data-end="}">
+<div class="line"><a id="l00405" name="l00405"></a><span class="lineno"><a class="line" href="group__w25qxx__basic__driver.html#ga3a52036a97b12fcbe2280b0901a80b90">  405</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__basic__driver.html#ga3a52036a97b12fcbe2280b0901a80b90">w25qxx_get_address_mode</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, <a class="code hl_enumeration" href="group__w25qxx__basic__driver.html#gaa4c45f146d1ade8a2da8e751818fa4a2">w25qxx_address_mode_t</a> *mode)</div>
+<div class="line"><a id="l00406" name="l00406"></a><span class="lineno">  406</span>{</div>
+<div class="line"><a id="l00407" name="l00407"></a><span class="lineno">  407</span>    <span class="keywordflow">if</span> (handle == NULL)                                          <span class="comment">/* check handle */</span></div>
+<div class="line"><a id="l00408" name="l00408"></a><span class="lineno">  408</span>    {</div>
+<div class="line"><a id="l00409" name="l00409"></a><span class="lineno">  409</span>        <span class="keywordflow">return</span> 2;                                                <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l00410" name="l00410"></a><span class="lineno">  410</span>    }   </div>
+<div class="line"><a id="l00411" name="l00411"></a><span class="lineno">  411</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">inited</a> != 1)                                     <span class="comment">/* check handle initialization */</span></div>
+<div class="line"><a id="l00412" name="l00412"></a><span class="lineno">  412</span>    {</div>
+<div class="line"><a id="l00413" name="l00413"></a><span class="lineno">  413</span>        <span class="keywordflow">return</span> 3;                                                <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l00414" name="l00414"></a><span class="lineno">  414</span>    }</div>
+<div class="line"><a id="l00415" name="l00415"></a><span class="lineno">  415</span> </div>
+<div class="line"><a id="l00416" name="l00416"></a><span class="lineno">  416</span>    *mode = (<a class="code hl_enumeration" href="group__w25qxx__basic__driver.html#gaa4c45f146d1ade8a2da8e751818fa4a2">w25qxx_address_mode_t</a>)(handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a>);       <span class="comment">/* get address mode */</span></div>
+<div class="line"><a id="l00417" name="l00417"></a><span class="lineno">  417</span>    </div>
+<div class="line"><a id="l00418" name="l00418"></a><span class="lineno">  418</span>    <span class="keywordflow">return</span> 0;                                                    <span class="comment">/* success return 0 */</span></div>
+<div class="line"><a id="l00419" name="l00419"></a><span class="lineno">  419</span>}</div>
+</div>
+<div class="line"><a id="l00420" name="l00420"></a><span class="lineno">  420</span> </div>
+<div class="foldopen" id="foldopen00431" data-start="{" data-end="}">
+<div class="line"><a id="l00431" name="l00431"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#gaeb269123feec054eaaf70f2ffb5797a3">  431</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__advance__driver.html#gaeb269123feec054eaaf70f2ffb5797a3">w25qxx_enable_write</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle)</div>
+<div class="line"><a id="l00432" name="l00432"></a><span class="lineno">  432</span>{</div>
+<div class="line"><a id="l00433" name="l00433"></a><span class="lineno">  433</span>    uint8_t res;</div>
+<div class="line"><a id="l00434" name="l00434"></a><span class="lineno">  434</span>    uint8_t buf[1];</div>
+<div class="line"><a id="l00435" name="l00435"></a><span class="lineno">  435</span>    </div>
+<div class="line"><a id="l00436" name="l00436"></a><span class="lineno">  436</span>    <span class="keywordflow">if</span> (handle == NULL)                                                               <span class="comment">/* check handle */</span></div>
+<div class="line"><a id="l00437" name="l00437"></a><span class="lineno">  437</span>    {</div>
+<div class="line"><a id="l00438" name="l00438"></a><span class="lineno">  438</span>        <span class="keywordflow">return</span> 2;                                                                     <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l00439" name="l00439"></a><span class="lineno">  439</span>    }   </div>
+<div class="line"><a id="l00440" name="l00440"></a><span class="lineno">  440</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">inited</a> != 1)                                                          <span class="comment">/* check handle initialization */</span></div>
+<div class="line"><a id="l00441" name="l00441"></a><span class="lineno">  441</span>    {</div>
+<div class="line"><a id="l00442" name="l00442"></a><span class="lineno">  442</span>        <span class="keywordflow">return</span> 3;                                                                     <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l00443" name="l00443"></a><span class="lineno">  443</span>    }</div>
+<div class="line"><a id="l00444" name="l00444"></a><span class="lineno">  444</span>    </div>
+<div class="line"><a id="l00445" name="l00445"></a><span class="lineno">  445</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>)                                     <span class="comment">/* spi interface */</span></div>
+<div class="line"><a id="l00446" name="l00446"></a><span class="lineno">  446</span>    {</div>
+<div class="line"><a id="l00447" name="l00447"></a><span class="lineno">  447</span>        <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">dual_quad_spi_enable</a> != 0)                                        <span class="comment">/* enable dual quad spi */</span></div>
+<div class="line"><a id="l00448" name="l00448"></a><span class="lineno">  448</span>        {</div>
+<div class="line"><a id="l00449" name="l00449"></a><span class="lineno">  449</span>            res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>, 1,</div>
+<div class="line"><a id="l00450" name="l00450"></a><span class="lineno">  450</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l00451" name="l00451"></a><span class="lineno">  451</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l00452" name="l00452"></a><span class="lineno">  452</span>                                           0x00, NULL, 0x00,</div>
+<div class="line"><a id="l00453" name="l00453"></a><span class="lineno">  453</span>                                           NULL, 0x00, 0x00);                         <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l00454" name="l00454"></a><span class="lineno">  454</span>            <span class="keywordflow">if</span> (res != 0)                                                             <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l00455" name="l00455"></a><span class="lineno">  455</span>            {</div>
+<div class="line"><a id="l00456" name="l00456"></a><span class="lineno">  456</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                <span class="comment">/* write enable failed */</span></div>
+<div class="line"><a id="l00457" name="l00457"></a><span class="lineno">  457</span>               </div>
+<div class="line"><a id="l00458" name="l00458"></a><span class="lineno">  458</span>                <span class="keywordflow">return</span> 1;                                                             <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l00459" name="l00459"></a><span class="lineno">  459</span>            }</div>
+<div class="line"><a id="l00460" name="l00460"></a><span class="lineno">  460</span>        }</div>
+<div class="line"><a id="l00461" name="l00461"></a><span class="lineno">  461</span>        <span class="keywordflow">else</span>                                                                          <span class="comment">/* single spi */</span></div>
+<div class="line"><a id="l00462" name="l00462"></a><span class="lineno">  462</span>        {</div>
+<div class="line"><a id="l00463" name="l00463"></a><span class="lineno">  463</span>            buf[0] = <a class="code hl_define" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>;                                     <span class="comment">/* write enable command */</span></div>
+<div class="line"><a id="l00464" name="l00464"></a><span class="lineno">  464</span>            res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 1, NULL, 0);        <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l00465" name="l00465"></a><span class="lineno">  465</span>            <span class="keywordflow">if</span> (res != 0)                                                             <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l00466" name="l00466"></a><span class="lineno">  466</span>            {</div>
+<div class="line"><a id="l00467" name="l00467"></a><span class="lineno">  467</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                <span class="comment">/* write enable failed */</span></div>
+<div class="line"><a id="l00468" name="l00468"></a><span class="lineno">  468</span>               </div>
+<div class="line"><a id="l00469" name="l00469"></a><span class="lineno">  469</span>                <span class="keywordflow">return</span> 1;                                                             <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l00470" name="l00470"></a><span class="lineno">  470</span>            }</div>
+<div class="line"><a id="l00471" name="l00471"></a><span class="lineno">  471</span>        }</div>
+<div class="line"><a id="l00472" name="l00472"></a><span class="lineno">  472</span>    }</div>
+<div class="line"><a id="l00473" name="l00473"></a><span class="lineno">  473</span>    <span class="keywordflow">else</span>                                                                              <span class="comment">/* qspi interface */</span></div>
+<div class="line"><a id="l00474" name="l00474"></a><span class="lineno">  474</span>    {</div>
+<div class="line"><a id="l00475" name="l00475"></a><span class="lineno">  475</span>        res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>, 4,</div>
+<div class="line"><a id="l00476" name="l00476"></a><span class="lineno">  476</span>                                       0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l00477" name="l00477"></a><span class="lineno">  477</span>                                       0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l00478" name="l00478"></a><span class="lineno">  478</span>                                       0x00, NULL, 0x00,</div>
+<div class="line"><a id="l00479" name="l00479"></a><span class="lineno">  479</span>                                       NULL, 0x00, 0x00);                             <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l00480" name="l00480"></a><span class="lineno">  480</span>        <span class="keywordflow">if</span> (res != 0)                                                                 <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l00481" name="l00481"></a><span class="lineno">  481</span>        {</div>
+<div class="line"><a id="l00482" name="l00482"></a><span class="lineno">  482</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                    <span class="comment">/* write enable failed */</span></div>
+<div class="line"><a id="l00483" name="l00483"></a><span class="lineno">  483</span>           </div>
+<div class="line"><a id="l00484" name="l00484"></a><span class="lineno">  484</span>            <span class="keywordflow">return</span> 1;                                                                 <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l00485" name="l00485"></a><span class="lineno">  485</span>        }</div>
+<div class="line"><a id="l00486" name="l00486"></a><span class="lineno">  486</span>    }</div>
+<div class="line"><a id="l00487" name="l00487"></a><span class="lineno">  487</span>    </div>
+<div class="line"><a id="l00488" name="l00488"></a><span class="lineno">  488</span>    <span class="keywordflow">return</span> 0;                                                                         <span class="comment">/* success return 0 */</span></div>
+<div class="line"><a id="l00489" name="l00489"></a><span class="lineno">  489</span>}</div>
+</div>
+<div class="line"><a id="l00490" name="l00490"></a><span class="lineno">  490</span> </div>
+<div class="foldopen" id="foldopen00501" data-start="{" data-end="}">
+<div class="line"><a id="l00501" name="l00501"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#ga0f8889d6a25c32e150a2ab30753d461d">  501</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__advance__driver.html#ga0f8889d6a25c32e150a2ab30753d461d">w25qxx_enable_volatile_sr_write</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle)</div>
+<div class="line"><a id="l00502" name="l00502"></a><span class="lineno">  502</span>{</div>
+<div class="line"><a id="l00503" name="l00503"></a><span class="lineno">  503</span>    uint8_t res;</div>
+<div class="line"><a id="l00504" name="l00504"></a><span class="lineno">  504</span>    uint8_t buf[1];</div>
+<div class="line"><a id="l00505" name="l00505"></a><span class="lineno">  505</span>    </div>
+<div class="line"><a id="l00506" name="l00506"></a><span class="lineno">  506</span>    <span class="keywordflow">if</span> (handle == NULL)                                                                      <span class="comment">/* check handle */</span></div>
+<div class="line"><a id="l00507" name="l00507"></a><span class="lineno">  507</span>    {</div>
+<div class="line"><a id="l00508" name="l00508"></a><span class="lineno">  508</span>        <span class="keywordflow">return</span> 2;                                                                            <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l00509" name="l00509"></a><span class="lineno">  509</span>    }   </div>
+<div class="line"><a id="l00510" name="l00510"></a><span class="lineno">  510</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">inited</a> != 1)                                                                 <span class="comment">/* check handle initialization */</span></div>
+<div class="line"><a id="l00511" name="l00511"></a><span class="lineno">  511</span>    {</div>
+<div class="line"><a id="l00512" name="l00512"></a><span class="lineno">  512</span>        <span class="keywordflow">return</span> 3;                                                                            <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l00513" name="l00513"></a><span class="lineno">  513</span>    }</div>
+<div class="line"><a id="l00514" name="l00514"></a><span class="lineno">  514</span> </div>
+<div class="line"><a id="l00515" name="l00515"></a><span class="lineno">  515</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>)                                            <span class="comment">/* spi interface */</span></div>
+<div class="line"><a id="l00516" name="l00516"></a><span class="lineno">  516</span>    {</div>
+<div class="line"><a id="l00517" name="l00517"></a><span class="lineno">  517</span>        <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">dual_quad_spi_enable</a> != 0)                                               <span class="comment">/* enable dual quad spi */</span></div>
+<div class="line"><a id="l00518" name="l00518"></a><span class="lineno">  518</span>        {</div>
+<div class="line"><a id="l00519" name="l00519"></a><span class="lineno">  519</span>            res = a_w25qxx_qspi_write_read(handle, </div>
+<div class="line"><a id="l00520" name="l00520"></a><span class="lineno">  520</span>                                           <a class="code hl_define" href="driver__w25qxx_8c.html#a7c9e980e30f499dd97b02935c91f2c02">W25QXX_COMMAND_VOLATILE_SR_WRITE_ENABLE</a>, 1,</div>
+<div class="line"><a id="l00521" name="l00521"></a><span class="lineno">  521</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l00522" name="l00522"></a><span class="lineno">  522</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l00523" name="l00523"></a><span class="lineno">  523</span>                                           0x00, NULL, 0x00,</div>
+<div class="line"><a id="l00524" name="l00524"></a><span class="lineno">  524</span>                                           NULL, 0x00, 0x00);                                <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l00525" name="l00525"></a><span class="lineno">  525</span>            <span class="keywordflow">if</span> (res != 0)                                                                    <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l00526" name="l00526"></a><span class="lineno">  526</span>            {</div>
+<div class="line"><a id="l00527" name="l00527"></a><span class="lineno">  527</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: sr write enable failed.\n&quot;</span>);                    <span class="comment">/* sr write enable failed */</span></div>
+<div class="line"><a id="l00528" name="l00528"></a><span class="lineno">  528</span>               </div>
+<div class="line"><a id="l00529" name="l00529"></a><span class="lineno">  529</span>                <span class="keywordflow">return</span> 1;                                                                    <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l00530" name="l00530"></a><span class="lineno">  530</span>            }</div>
+<div class="line"><a id="l00531" name="l00531"></a><span class="lineno">  531</span>        }</div>
+<div class="line"><a id="l00532" name="l00532"></a><span class="lineno">  532</span>        <span class="keywordflow">else</span>                                                                                 <span class="comment">/* single spi */</span></div>
+<div class="line"><a id="l00533" name="l00533"></a><span class="lineno">  533</span>        {</div>
+<div class="line"><a id="l00534" name="l00534"></a><span class="lineno">  534</span>            buf[0] = <a class="code hl_define" href="driver__w25qxx_8c.html#a7c9e980e30f499dd97b02935c91f2c02">W25QXX_COMMAND_VOLATILE_SR_WRITE_ENABLE</a>;                                <span class="comment">/* sr write enable command */</span></div>
+<div class="line"><a id="l00535" name="l00535"></a><span class="lineno">  535</span>            res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 1, NULL, 0);               <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l00536" name="l00536"></a><span class="lineno">  536</span>            <span class="keywordflow">if</span> (res != 0)                                                                    <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l00537" name="l00537"></a><span class="lineno">  537</span>            {</div>
+<div class="line"><a id="l00538" name="l00538"></a><span class="lineno">  538</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: sr write enable failed.\n&quot;</span>);                    <span class="comment">/* sr write enable failed */</span></div>
+<div class="line"><a id="l00539" name="l00539"></a><span class="lineno">  539</span>               </div>
+<div class="line"><a id="l00540" name="l00540"></a><span class="lineno">  540</span>                <span class="keywordflow">return</span> 1;                                                                    <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l00541" name="l00541"></a><span class="lineno">  541</span>            }</div>
+<div class="line"><a id="l00542" name="l00542"></a><span class="lineno">  542</span>        }</div>
+<div class="line"><a id="l00543" name="l00543"></a><span class="lineno">  543</span>    }</div>
+<div class="line"><a id="l00544" name="l00544"></a><span class="lineno">  544</span>    <span class="keywordflow">else</span>                                                                                     <span class="comment">/* qspi interface */</span></div>
+<div class="line"><a id="l00545" name="l00545"></a><span class="lineno">  545</span>    {</div>
+<div class="line"><a id="l00546" name="l00546"></a><span class="lineno">  546</span>        res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#a7c9e980e30f499dd97b02935c91f2c02">W25QXX_COMMAND_VOLATILE_SR_WRITE_ENABLE</a>, 4,</div>
+<div class="line"><a id="l00547" name="l00547"></a><span class="lineno">  547</span>                                       0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l00548" name="l00548"></a><span class="lineno">  548</span>                                       0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l00549" name="l00549"></a><span class="lineno">  549</span>                                       0x00, NULL, 0x00,</div>
+<div class="line"><a id="l00550" name="l00550"></a><span class="lineno">  550</span>                                       NULL, 0x00, 0x00);                                    <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l00551" name="l00551"></a><span class="lineno">  551</span>        <span class="keywordflow">if</span> (res != 0)                                                                        <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l00552" name="l00552"></a><span class="lineno">  552</span>        {</div>
+<div class="line"><a id="l00553" name="l00553"></a><span class="lineno">  553</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: sr write enable failed.\n&quot;</span>);                        <span class="comment">/* sr write enable failed */</span></div>
+<div class="line"><a id="l00554" name="l00554"></a><span class="lineno">  554</span>           </div>
+<div class="line"><a id="l00555" name="l00555"></a><span class="lineno">  555</span>            <span class="keywordflow">return</span> 1;                                                                        <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l00556" name="l00556"></a><span class="lineno">  556</span>        }</div>
+<div class="line"><a id="l00557" name="l00557"></a><span class="lineno">  557</span>    }</div>
+<div class="line"><a id="l00558" name="l00558"></a><span class="lineno">  558</span>    </div>
+<div class="line"><a id="l00559" name="l00559"></a><span class="lineno">  559</span>    <span class="keywordflow">return</span> 0;                                                                                <span class="comment">/* success return 0 */</span></div>
+<div class="line"><a id="l00560" name="l00560"></a><span class="lineno">  560</span>}</div>
+</div>
+<div class="line"><a id="l00561" name="l00561"></a><span class="lineno">  561</span> </div>
+<div class="foldopen" id="foldopen00572" data-start="{" data-end="}">
+<div class="line"><a id="l00572" name="l00572"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#gac16a31269277051baad6c28fe4254b4a">  572</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__advance__driver.html#gac16a31269277051baad6c28fe4254b4a">w25qxx_disable_write</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle)</div>
+<div class="line"><a id="l00573" name="l00573"></a><span class="lineno">  573</span>{</div>
+<div class="line"><a id="l00574" name="l00574"></a><span class="lineno">  574</span>    uint8_t res;</div>
+<div class="line"><a id="l00575" name="l00575"></a><span class="lineno">  575</span>    uint8_t buf[1];</div>
+<div class="line"><a id="l00576" name="l00576"></a><span class="lineno">  576</span>    </div>
+<div class="line"><a id="l00577" name="l00577"></a><span class="lineno">  577</span>    <span class="keywordflow">if</span> (handle == NULL)                                                               <span class="comment">/* check handle */</span></div>
+<div class="line"><a id="l00578" name="l00578"></a><span class="lineno">  578</span>    {</div>
+<div class="line"><a id="l00579" name="l00579"></a><span class="lineno">  579</span>        <span class="keywordflow">return</span> 2;                                                                     <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l00580" name="l00580"></a><span class="lineno">  580</span>    }   </div>
+<div class="line"><a id="l00581" name="l00581"></a><span class="lineno">  581</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">inited</a> != 1)                                                          <span class="comment">/* check handle initialization */</span></div>
+<div class="line"><a id="l00582" name="l00582"></a><span class="lineno">  582</span>    {</div>
+<div class="line"><a id="l00583" name="l00583"></a><span class="lineno">  583</span>        <span class="keywordflow">return</span> 3;                                                                     <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l00584" name="l00584"></a><span class="lineno">  584</span>    }</div>
+<div class="line"><a id="l00585" name="l00585"></a><span class="lineno">  585</span> </div>
+<div class="line"><a id="l00586" name="l00586"></a><span class="lineno">  586</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>)                                     <span class="comment">/* spi interface */</span></div>
+<div class="line"><a id="l00587" name="l00587"></a><span class="lineno">  587</span>    {</div>
+<div class="line"><a id="l00588" name="l00588"></a><span class="lineno">  588</span>        <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">dual_quad_spi_enable</a> != 0)                                        <span class="comment">/* enable dual quad spi */</span></div>
+<div class="line"><a id="l00589" name="l00589"></a><span class="lineno">  589</span>        {</div>
+<div class="line"><a id="l00590" name="l00590"></a><span class="lineno">  590</span>            res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#a36dfb1951fe152d63e3715a161646713">W25QXX_COMMAND_WRITE_DISABLE</a>, 1,</div>
+<div class="line"><a id="l00591" name="l00591"></a><span class="lineno">  591</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l00592" name="l00592"></a><span class="lineno">  592</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l00593" name="l00593"></a><span class="lineno">  593</span>                                           0x00, NULL, 0x00,</div>
+<div class="line"><a id="l00594" name="l00594"></a><span class="lineno">  594</span>                                           NULL, 0x00, 0x00);                         <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l00595" name="l00595"></a><span class="lineno">  595</span>            <span class="keywordflow">if</span> (res != 0)                                                             <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l00596" name="l00596"></a><span class="lineno">  596</span>            {</div>
+<div class="line"><a id="l00597" name="l00597"></a><span class="lineno">  597</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write disable failed.\n&quot;</span>);               <span class="comment">/* write disable failed */</span></div>
+<div class="line"><a id="l00598" name="l00598"></a><span class="lineno">  598</span>               </div>
+<div class="line"><a id="l00599" name="l00599"></a><span class="lineno">  599</span>                <span class="keywordflow">return</span> 1;                                                             <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l00600" name="l00600"></a><span class="lineno">  600</span>            }</div>
+<div class="line"><a id="l00601" name="l00601"></a><span class="lineno">  601</span>        }</div>
+<div class="line"><a id="l00602" name="l00602"></a><span class="lineno">  602</span>        <span class="keywordflow">else</span>                                                                          <span class="comment">/* single spi */</span></div>
+<div class="line"><a id="l00603" name="l00603"></a><span class="lineno">  603</span>        {</div>
+<div class="line"><a id="l00604" name="l00604"></a><span class="lineno">  604</span>            buf[0] = <a class="code hl_define" href="driver__w25qxx_8c.html#a36dfb1951fe152d63e3715a161646713">W25QXX_COMMAND_WRITE_DISABLE</a>;                                    <span class="comment">/* write disable command */</span></div>
+<div class="line"><a id="l00605" name="l00605"></a><span class="lineno">  605</span>            res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 1, NULL, 0);        <span class="comment">/* spi qspi write read */</span></div>
+<div class="line"><a id="l00606" name="l00606"></a><span class="lineno">  606</span>            <span class="keywordflow">if</span> (res != 0)                                                             <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l00607" name="l00607"></a><span class="lineno">  607</span>            {</div>
+<div class="line"><a id="l00608" name="l00608"></a><span class="lineno">  608</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write disable failed.\n&quot;</span>);               <span class="comment">/* write disable failed */</span></div>
+<div class="line"><a id="l00609" name="l00609"></a><span class="lineno">  609</span>               </div>
+<div class="line"><a id="l00610" name="l00610"></a><span class="lineno">  610</span>                <span class="keywordflow">return</span> 1;                                                             <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l00611" name="l00611"></a><span class="lineno">  611</span>            }</div>
+<div class="line"><a id="l00612" name="l00612"></a><span class="lineno">  612</span>        }</div>
+<div class="line"><a id="l00613" name="l00613"></a><span class="lineno">  613</span>    }</div>
+<div class="line"><a id="l00614" name="l00614"></a><span class="lineno">  614</span>    <span class="keywordflow">else</span>                                                                              <span class="comment">/* qspi interface */</span></div>
+<div class="line"><a id="l00615" name="l00615"></a><span class="lineno">  615</span>    {</div>
+<div class="line"><a id="l00616" name="l00616"></a><span class="lineno">  616</span>        res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#a36dfb1951fe152d63e3715a161646713">W25QXX_COMMAND_WRITE_DISABLE</a>, 4,</div>
+<div class="line"><a id="l00617" name="l00617"></a><span class="lineno">  617</span>                                       0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l00618" name="l00618"></a><span class="lineno">  618</span>                                       0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l00619" name="l00619"></a><span class="lineno">  619</span>                                       0x00, NULL, 0x00,</div>
+<div class="line"><a id="l00620" name="l00620"></a><span class="lineno">  620</span>                                       NULL, 0x00, 0x00);                             <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l00621" name="l00621"></a><span class="lineno">  621</span>        <span class="keywordflow">if</span> (res != 0)                                                                 <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l00622" name="l00622"></a><span class="lineno">  622</span>        {</div>
+<div class="line"><a id="l00623" name="l00623"></a><span class="lineno">  623</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write disable failed.\n&quot;</span>);                   <span class="comment">/* write disable failed */</span></div>
+<div class="line"><a id="l00624" name="l00624"></a><span class="lineno">  624</span>           </div>
+<div class="line"><a id="l00625" name="l00625"></a><span class="lineno">  625</span>            <span class="keywordflow">return</span> 1;                                                                 <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l00626" name="l00626"></a><span class="lineno">  626</span>        }</div>
+<div class="line"><a id="l00627" name="l00627"></a><span class="lineno">  627</span>    }</div>
+<div class="line"><a id="l00628" name="l00628"></a><span class="lineno">  628</span>    </div>
+<div class="line"><a id="l00629" name="l00629"></a><span class="lineno">  629</span>    <span class="keywordflow">return</span> 0;                                                                         <span class="comment">/* success return 0 */</span></div>
+<div class="line"><a id="l00630" name="l00630"></a><span class="lineno">  630</span>}</div>
+</div>
+<div class="line"><a id="l00631" name="l00631"></a><span class="lineno">  631</span> </div>
+<div class="foldopen" id="foldopen00643" data-start="{" data-end="}">
+<div class="line"><a id="l00643" name="l00643"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#gaa77d2b00b4fb9cf586f77ace827ea7c6">  643</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__advance__driver.html#gaa77d2b00b4fb9cf586f77ace827ea7c6">w25qxx_get_status1</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint8_t *status)</div>
+<div class="line"><a id="l00644" name="l00644"></a><span class="lineno">  644</span>{</div>
+<div class="line"><a id="l00645" name="l00645"></a><span class="lineno">  645</span>    uint8_t res;</div>
+<div class="line"><a id="l00646" name="l00646"></a><span class="lineno">  646</span>    uint8_t buf[1];</div>
+<div class="line"><a id="l00647" name="l00647"></a><span class="lineno">  647</span>    </div>
+<div class="line"><a id="l00648" name="l00648"></a><span class="lineno">  648</span>    <span class="keywordflow">if</span> (handle == NULL)                                                            <span class="comment">/* check handle */</span></div>
+<div class="line"><a id="l00649" name="l00649"></a><span class="lineno">  649</span>    {</div>
+<div class="line"><a id="l00650" name="l00650"></a><span class="lineno">  650</span>        <span class="keywordflow">return</span> 2;                                                                  <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l00651" name="l00651"></a><span class="lineno">  651</span>    }   </div>
+<div class="line"><a id="l00652" name="l00652"></a><span class="lineno">  652</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">inited</a> != 1)                                                       <span class="comment">/* check handle initialization */</span></div>
+<div class="line"><a id="l00653" name="l00653"></a><span class="lineno">  653</span>    {</div>
+<div class="line"><a id="l00654" name="l00654"></a><span class="lineno">  654</span>        <span class="keywordflow">return</span> 3;                                                                  <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l00655" name="l00655"></a><span class="lineno">  655</span>    }</div>
+<div class="line"><a id="l00656" name="l00656"></a><span class="lineno">  656</span> </div>
+<div class="line"><a id="l00657" name="l00657"></a><span class="lineno">  657</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>)                                  <span class="comment">/* spi interface */</span></div>
+<div class="line"><a id="l00658" name="l00658"></a><span class="lineno">  658</span>    {</div>
+<div class="line"><a id="l00659" name="l00659"></a><span class="lineno">  659</span>        <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">dual_quad_spi_enable</a> != 0)                                     <span class="comment">/* enable dual quad spi */</span></div>
+<div class="line"><a id="l00660" name="l00660"></a><span class="lineno">  660</span>        {</div>
+<div class="line"><a id="l00661" name="l00661"></a><span class="lineno">  661</span>            res = a_w25qxx_qspi_write_read(handle,</div>
+<div class="line"><a id="l00662" name="l00662"></a><span class="lineno">  662</span>                                           <a class="code hl_define" href="driver__w25qxx_8c.html#adf682969c34f4b31a87dd92dd18ccea3">W25QXX_COMMAND_READ_STATUS_REG1</a>, 1,</div>
+<div class="line"><a id="l00663" name="l00663"></a><span class="lineno">  663</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l00664" name="l00664"></a><span class="lineno">  664</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l00665" name="l00665"></a><span class="lineno">  665</span>                                           0x00, NULL, 0x00,</div>
+<div class="line"><a id="l00666" name="l00666"></a><span class="lineno">  666</span>                                           status, 1, 1);                          <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l00667" name="l00667"></a><span class="lineno">  667</span>            <span class="keywordflow">if</span> (res != 0)                                                          <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l00668" name="l00668"></a><span class="lineno">  668</span>            {</div>
+<div class="line"><a id="l00669" name="l00669"></a><span class="lineno">  669</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: get status1 failed.\n&quot;</span>);              <span class="comment">/* get status1 failed */</span></div>
+<div class="line"><a id="l00670" name="l00670"></a><span class="lineno">  670</span>               </div>
+<div class="line"><a id="l00671" name="l00671"></a><span class="lineno">  671</span>                <span class="keywordflow">return</span> 1;                                                          <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l00672" name="l00672"></a><span class="lineno">  672</span>            }</div>
+<div class="line"><a id="l00673" name="l00673"></a><span class="lineno">  673</span>        }</div>
+<div class="line"><a id="l00674" name="l00674"></a><span class="lineno">  674</span>        <span class="keywordflow">else</span>                                                                       <span class="comment">/* single spi */</span></div>
+<div class="line"><a id="l00675" name="l00675"></a><span class="lineno">  675</span>        {</div>
+<div class="line"><a id="l00676" name="l00676"></a><span class="lineno">  676</span>            buf[0] = <a class="code hl_define" href="driver__w25qxx_8c.html#adf682969c34f4b31a87dd92dd18ccea3">W25QXX_COMMAND_READ_STATUS_REG1</a>;                              <span class="comment">/* read status1 command */</span></div>
+<div class="line"><a id="l00677" name="l00677"></a><span class="lineno">  677</span>            res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, </div>
+<div class="line"><a id="l00678" name="l00678"></a><span class="lineno">  678</span>                                          1, status, 1);                           <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l00679" name="l00679"></a><span class="lineno">  679</span>            <span class="keywordflow">if</span> (res != 0)                                                          <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l00680" name="l00680"></a><span class="lineno">  680</span>            {</div>
+<div class="line"><a id="l00681" name="l00681"></a><span class="lineno">  681</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: get status1 failed.\n&quot;</span>);              <span class="comment">/* get status1 failed */</span></div>
+<div class="line"><a id="l00682" name="l00682"></a><span class="lineno">  682</span>               </div>
+<div class="line"><a id="l00683" name="l00683"></a><span class="lineno">  683</span>                <span class="keywordflow">return</span> 1;                                                          <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l00684" name="l00684"></a><span class="lineno">  684</span>            }</div>
+<div class="line"><a id="l00685" name="l00685"></a><span class="lineno">  685</span>        }</div>
+<div class="line"><a id="l00686" name="l00686"></a><span class="lineno">  686</span>    }</div>
+<div class="line"><a id="l00687" name="l00687"></a><span class="lineno">  687</span>    <span class="keywordflow">else</span>                                                                           <span class="comment">/* qspi interface */</span></div>
+<div class="line"><a id="l00688" name="l00688"></a><span class="lineno">  688</span>    {</div>
+<div class="line"><a id="l00689" name="l00689"></a><span class="lineno">  689</span>        res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#adf682969c34f4b31a87dd92dd18ccea3">W25QXX_COMMAND_READ_STATUS_REG1</a>, 4,</div>
+<div class="line"><a id="l00690" name="l00690"></a><span class="lineno">  690</span>                                       0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l00691" name="l00691"></a><span class="lineno">  691</span>                                       0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l00692" name="l00692"></a><span class="lineno">  692</span>                                       0x00, NULL, 0x00,</div>
+<div class="line"><a id="l00693" name="l00693"></a><span class="lineno">  693</span>                                       status, 1, 4);                              <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l00694" name="l00694"></a><span class="lineno">  694</span>        <span class="keywordflow">if</span> (res != 0)                                                              <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l00695" name="l00695"></a><span class="lineno">  695</span>        {</div>
+<div class="line"><a id="l00696" name="l00696"></a><span class="lineno">  696</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: get status1 failed.\n&quot;</span>);                  <span class="comment">/* get status1 failed */</span></div>
+<div class="line"><a id="l00697" name="l00697"></a><span class="lineno">  697</span>           </div>
+<div class="line"><a id="l00698" name="l00698"></a><span class="lineno">  698</span>            <span class="keywordflow">return</span> 1;                                                              <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l00699" name="l00699"></a><span class="lineno">  699</span>        }</div>
+<div class="line"><a id="l00700" name="l00700"></a><span class="lineno">  700</span>    }</div>
+<div class="line"><a id="l00701" name="l00701"></a><span class="lineno">  701</span>    </div>
+<div class="line"><a id="l00702" name="l00702"></a><span class="lineno">  702</span>    <span class="keywordflow">return</span> 0;                                                                      <span class="comment">/* success return 0 */</span></div>
+<div class="line"><a id="l00703" name="l00703"></a><span class="lineno">  703</span>}</div>
+</div>
+<div class="line"><a id="l00704" name="l00704"></a><span class="lineno">  704</span> </div>
+<div class="foldopen" id="foldopen00716" data-start="{" data-end="}">
+<div class="line"><a id="l00716" name="l00716"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#gaa21237ecbd5951b8017799066e7db5d9">  716</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__advance__driver.html#gaa21237ecbd5951b8017799066e7db5d9">w25qxx_get_status2</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint8_t *status)</div>
+<div class="line"><a id="l00717" name="l00717"></a><span class="lineno">  717</span>{</div>
+<div class="line"><a id="l00718" name="l00718"></a><span class="lineno">  718</span>    uint8_t res;</div>
+<div class="line"><a id="l00719" name="l00719"></a><span class="lineno">  719</span>    uint8_t buf[1];</div>
+<div class="line"><a id="l00720" name="l00720"></a><span class="lineno">  720</span>    </div>
+<div class="line"><a id="l00721" name="l00721"></a><span class="lineno">  721</span>    <span class="keywordflow">if</span> (handle == NULL)                                                            <span class="comment">/* check handle */</span></div>
+<div class="line"><a id="l00722" name="l00722"></a><span class="lineno">  722</span>    {</div>
+<div class="line"><a id="l00723" name="l00723"></a><span class="lineno">  723</span>        <span class="keywordflow">return</span> 2;                                                                  <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l00724" name="l00724"></a><span class="lineno">  724</span>    }   </div>
+<div class="line"><a id="l00725" name="l00725"></a><span class="lineno">  725</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">inited</a> != 1)                                                       <span class="comment">/* check handle initialization */</span></div>
+<div class="line"><a id="l00726" name="l00726"></a><span class="lineno">  726</span>    {</div>
+<div class="line"><a id="l00727" name="l00727"></a><span class="lineno">  727</span>        <span class="keywordflow">return</span> 3;                                                                  <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l00728" name="l00728"></a><span class="lineno">  728</span>    }</div>
+<div class="line"><a id="l00729" name="l00729"></a><span class="lineno">  729</span> </div>
+<div class="line"><a id="l00730" name="l00730"></a><span class="lineno">  730</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>)                                  <span class="comment">/* spi interface */</span></div>
+<div class="line"><a id="l00731" name="l00731"></a><span class="lineno">  731</span>    {</div>
+<div class="line"><a id="l00732" name="l00732"></a><span class="lineno">  732</span>        <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">dual_quad_spi_enable</a> != 0)                                     <span class="comment">/* enable dual quad spi */</span></div>
+<div class="line"><a id="l00733" name="l00733"></a><span class="lineno">  733</span>        {</div>
+<div class="line"><a id="l00734" name="l00734"></a><span class="lineno">  734</span>            res = a_w25qxx_qspi_write_read(handle, </div>
+<div class="line"><a id="l00735" name="l00735"></a><span class="lineno">  735</span>                                           <a class="code hl_define" href="driver__w25qxx_8c.html#a4a8cdc5b6ce75029df877263bdf35f2a">W25QXX_COMMAND_READ_STATUS_REG2</a>, 1,</div>
+<div class="line"><a id="l00736" name="l00736"></a><span class="lineno">  736</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l00737" name="l00737"></a><span class="lineno">  737</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l00738" name="l00738"></a><span class="lineno">  738</span>                                           0x00, NULL, 0x00,</div>
+<div class="line"><a id="l00739" name="l00739"></a><span class="lineno">  739</span>                                           status, 1, 1);                          <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l00740" name="l00740"></a><span class="lineno">  740</span>            <span class="keywordflow">if</span> (res != 0)                                                          <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l00741" name="l00741"></a><span class="lineno">  741</span>            {</div>
+<div class="line"><a id="l00742" name="l00742"></a><span class="lineno">  742</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: get status2 failed.\n&quot;</span>);              <span class="comment">/* get status2 failed */</span></div>
+<div class="line"><a id="l00743" name="l00743"></a><span class="lineno">  743</span>               </div>
+<div class="line"><a id="l00744" name="l00744"></a><span class="lineno">  744</span>                <span class="keywordflow">return</span> 1;                                                          <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l00745" name="l00745"></a><span class="lineno">  745</span>            }</div>
+<div class="line"><a id="l00746" name="l00746"></a><span class="lineno">  746</span>        }</div>
+<div class="line"><a id="l00747" name="l00747"></a><span class="lineno">  747</span>        <span class="keywordflow">else</span>                                                                       <span class="comment">/* single spi */</span></div>
+<div class="line"><a id="l00748" name="l00748"></a><span class="lineno">  748</span>        {</div>
+<div class="line"><a id="l00749" name="l00749"></a><span class="lineno">  749</span>            buf[0] = <a class="code hl_define" href="driver__w25qxx_8c.html#a4a8cdc5b6ce75029df877263bdf35f2a">W25QXX_COMMAND_READ_STATUS_REG2</a>;                              <span class="comment">/* read status2 command */</span></div>
+<div class="line"><a id="l00750" name="l00750"></a><span class="lineno">  750</span>            res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf,</div>
+<div class="line"><a id="l00751" name="l00751"></a><span class="lineno">  751</span>                                          1, status, 1);                           <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l00752" name="l00752"></a><span class="lineno">  752</span>            <span class="keywordflow">if</span> (res != 0)                                                          <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l00753" name="l00753"></a><span class="lineno">  753</span>            {</div>
+<div class="line"><a id="l00754" name="l00754"></a><span class="lineno">  754</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: get status2 failed.\n&quot;</span>);              <span class="comment">/* get status2 failed */</span></div>
+<div class="line"><a id="l00755" name="l00755"></a><span class="lineno">  755</span>               </div>
+<div class="line"><a id="l00756" name="l00756"></a><span class="lineno">  756</span>                <span class="keywordflow">return</span> 1;                                                          <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l00757" name="l00757"></a><span class="lineno">  757</span>            }</div>
+<div class="line"><a id="l00758" name="l00758"></a><span class="lineno">  758</span>        }</div>
+<div class="line"><a id="l00759" name="l00759"></a><span class="lineno">  759</span>    }</div>
+<div class="line"><a id="l00760" name="l00760"></a><span class="lineno">  760</span>    <span class="keywordflow">else</span>                                                                           <span class="comment">/* qspi interface */</span></div>
+<div class="line"><a id="l00761" name="l00761"></a><span class="lineno">  761</span>    {</div>
+<div class="line"><a id="l00762" name="l00762"></a><span class="lineno">  762</span>        res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#a4a8cdc5b6ce75029df877263bdf35f2a">W25QXX_COMMAND_READ_STATUS_REG2</a>, 4,</div>
+<div class="line"><a id="l00763" name="l00763"></a><span class="lineno">  763</span>                                       0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l00764" name="l00764"></a><span class="lineno">  764</span>                                       0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l00765" name="l00765"></a><span class="lineno">  765</span>                                       0x00, NULL, 0x00,</div>
+<div class="line"><a id="l00766" name="l00766"></a><span class="lineno">  766</span>                                       status, 1, 4);                              <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l00767" name="l00767"></a><span class="lineno">  767</span>        <span class="keywordflow">if</span> (res != 0)                                                              <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l00768" name="l00768"></a><span class="lineno">  768</span>        {</div>
+<div class="line"><a id="l00769" name="l00769"></a><span class="lineno">  769</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: get status2 failed.\n&quot;</span>);                  <span class="comment">/* get status2 failed */</span></div>
+<div class="line"><a id="l00770" name="l00770"></a><span class="lineno">  770</span>           </div>
+<div class="line"><a id="l00771" name="l00771"></a><span class="lineno">  771</span>            <span class="keywordflow">return</span> 1;                                                              <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l00772" name="l00772"></a><span class="lineno">  772</span>        }</div>
+<div class="line"><a id="l00773" name="l00773"></a><span class="lineno">  773</span>    }</div>
+<div class="line"><a id="l00774" name="l00774"></a><span class="lineno">  774</span>    </div>
+<div class="line"><a id="l00775" name="l00775"></a><span class="lineno">  775</span>    <span class="keywordflow">return</span> 0;                                                                      <span class="comment">/* success return 0 */</span></div>
+<div class="line"><a id="l00776" name="l00776"></a><span class="lineno">  776</span>}</div>
+</div>
+<div class="line"><a id="l00777" name="l00777"></a><span class="lineno">  777</span> </div>
+<div class="foldopen" id="foldopen00789" data-start="{" data-end="}">
+<div class="line"><a id="l00789" name="l00789"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#ga99cf6a325a00921d4531004f0c1d75b1">  789</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__advance__driver.html#ga99cf6a325a00921d4531004f0c1d75b1">w25qxx_get_status3</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint8_t *status)</div>
+<div class="line"><a id="l00790" name="l00790"></a><span class="lineno">  790</span>{</div>
+<div class="line"><a id="l00791" name="l00791"></a><span class="lineno">  791</span>    uint8_t res;</div>
+<div class="line"><a id="l00792" name="l00792"></a><span class="lineno">  792</span>    uint8_t buf[1];</div>
+<div class="line"><a id="l00793" name="l00793"></a><span class="lineno">  793</span>    </div>
+<div class="line"><a id="l00794" name="l00794"></a><span class="lineno">  794</span>    <span class="keywordflow">if</span> (handle == NULL)                                                            <span class="comment">/* check handle */</span></div>
+<div class="line"><a id="l00795" name="l00795"></a><span class="lineno">  795</span>    {</div>
+<div class="line"><a id="l00796" name="l00796"></a><span class="lineno">  796</span>        <span class="keywordflow">return</span> 2;                                                                  <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l00797" name="l00797"></a><span class="lineno">  797</span>    }   </div>
+<div class="line"><a id="l00798" name="l00798"></a><span class="lineno">  798</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">inited</a> != 1)                                                       <span class="comment">/* check handle initialization */</span></div>
+<div class="line"><a id="l00799" name="l00799"></a><span class="lineno">  799</span>    {</div>
+<div class="line"><a id="l00800" name="l00800"></a><span class="lineno">  800</span>        <span class="keywordflow">return</span> 3;                                                                  <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l00801" name="l00801"></a><span class="lineno">  801</span>    }</div>
+<div class="line"><a id="l00802" name="l00802"></a><span class="lineno">  802</span> </div>
+<div class="line"><a id="l00803" name="l00803"></a><span class="lineno">  803</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>)                                  <span class="comment">/* spi interface */</span></div>
+<div class="line"><a id="l00804" name="l00804"></a><span class="lineno">  804</span>    {</div>
+<div class="line"><a id="l00805" name="l00805"></a><span class="lineno">  805</span>        <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">dual_quad_spi_enable</a> != 0)                                     <span class="comment">/* enable dual quad spi */</span></div>
+<div class="line"><a id="l00806" name="l00806"></a><span class="lineno">  806</span>        {</div>
+<div class="line"><a id="l00807" name="l00807"></a><span class="lineno">  807</span>            res = a_w25qxx_qspi_write_read(handle,</div>
+<div class="line"><a id="l00808" name="l00808"></a><span class="lineno">  808</span>                                           <a class="code hl_define" href="driver__w25qxx_8c.html#a09798bdb3fabdf7bb4cfd8bce18100ce">W25QXX_COMMAND_READ_STATUS_REG3</a>, 1,</div>
+<div class="line"><a id="l00809" name="l00809"></a><span class="lineno">  809</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l00810" name="l00810"></a><span class="lineno">  810</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l00811" name="l00811"></a><span class="lineno">  811</span>                                           0x00, NULL, 0x00,</div>
+<div class="line"><a id="l00812" name="l00812"></a><span class="lineno">  812</span>                                           status, 1, 1);                          <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l00813" name="l00813"></a><span class="lineno">  813</span>            <span class="keywordflow">if</span> (res != 0)                                                          <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l00814" name="l00814"></a><span class="lineno">  814</span>            {</div>
+<div class="line"><a id="l00815" name="l00815"></a><span class="lineno">  815</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: get status3 failed.\n&quot;</span>);              <span class="comment">/* get status3 failed */</span></div>
+<div class="line"><a id="l00816" name="l00816"></a><span class="lineno">  816</span>               </div>
+<div class="line"><a id="l00817" name="l00817"></a><span class="lineno">  817</span>                <span class="keywordflow">return</span> 1;                                                          <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l00818" name="l00818"></a><span class="lineno">  818</span>            }</div>
+<div class="line"><a id="l00819" name="l00819"></a><span class="lineno">  819</span>        }</div>
+<div class="line"><a id="l00820" name="l00820"></a><span class="lineno">  820</span>        <span class="keywordflow">else</span>                                                                       <span class="comment">/* single spi */</span></div>
+<div class="line"><a id="l00821" name="l00821"></a><span class="lineno">  821</span>        {</div>
+<div class="line"><a id="l00822" name="l00822"></a><span class="lineno">  822</span>            buf[0] = <a class="code hl_define" href="driver__w25qxx_8c.html#a09798bdb3fabdf7bb4cfd8bce18100ce">W25QXX_COMMAND_READ_STATUS_REG3</a>;                              <span class="comment">/* read status3 command */</span></div>
+<div class="line"><a id="l00823" name="l00823"></a><span class="lineno">  823</span>            res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 1, </div>
+<div class="line"><a id="l00824" name="l00824"></a><span class="lineno">  824</span>                                          status, 1);                              <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l00825" name="l00825"></a><span class="lineno">  825</span>            <span class="keywordflow">if</span> (res != 0)                                                          <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l00826" name="l00826"></a><span class="lineno">  826</span>            {</div>
+<div class="line"><a id="l00827" name="l00827"></a><span class="lineno">  827</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: get status3 failed.\n&quot;</span>);              <span class="comment">/* get status3 failed */</span></div>
+<div class="line"><a id="l00828" name="l00828"></a><span class="lineno">  828</span>               </div>
+<div class="line"><a id="l00829" name="l00829"></a><span class="lineno">  829</span>                <span class="keywordflow">return</span> 1;                                                          <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l00830" name="l00830"></a><span class="lineno">  830</span>            }</div>
+<div class="line"><a id="l00831" name="l00831"></a><span class="lineno">  831</span>        }</div>
+<div class="line"><a id="l00832" name="l00832"></a><span class="lineno">  832</span>    }</div>
+<div class="line"><a id="l00833" name="l00833"></a><span class="lineno">  833</span>    <span class="keywordflow">else</span>                                                                           <span class="comment">/* qspi interface */</span></div>
+<div class="line"><a id="l00834" name="l00834"></a><span class="lineno">  834</span>    {</div>
+<div class="line"><a id="l00835" name="l00835"></a><span class="lineno">  835</span>        res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#a09798bdb3fabdf7bb4cfd8bce18100ce">W25QXX_COMMAND_READ_STATUS_REG3</a>, 4,</div>
+<div class="line"><a id="l00836" name="l00836"></a><span class="lineno">  836</span>                                       0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l00837" name="l00837"></a><span class="lineno">  837</span>                                       0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l00838" name="l00838"></a><span class="lineno">  838</span>                                       0x00, NULL, 0x00,</div>
+<div class="line"><a id="l00839" name="l00839"></a><span class="lineno">  839</span>                                       status, 1, 4);                              <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l00840" name="l00840"></a><span class="lineno">  840</span>        <span class="keywordflow">if</span> (res != 0)                                                              <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l00841" name="l00841"></a><span class="lineno">  841</span>        {</div>
+<div class="line"><a id="l00842" name="l00842"></a><span class="lineno">  842</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: get status3 failed.\n&quot;</span>);                  <span class="comment">/* get status3 failed */</span></div>
+<div class="line"><a id="l00843" name="l00843"></a><span class="lineno">  843</span>           </div>
+<div class="line"><a id="l00844" name="l00844"></a><span class="lineno">  844</span>            <span class="keywordflow">return</span> 1;                                                              <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l00845" name="l00845"></a><span class="lineno">  845</span>        }</div>
+<div class="line"><a id="l00846" name="l00846"></a><span class="lineno">  846</span>    }</div>
+<div class="line"><a id="l00847" name="l00847"></a><span class="lineno">  847</span>    </div>
+<div class="line"><a id="l00848" name="l00848"></a><span class="lineno">  848</span>    <span class="keywordflow">return</span> 0;                                                                      <span class="comment">/* success return 0 */</span></div>
+<div class="line"><a id="l00849" name="l00849"></a><span class="lineno">  849</span>}</div>
+</div>
+<div class="line"><a id="l00850" name="l00850"></a><span class="lineno">  850</span> </div>
+<div class="foldopen" id="foldopen00863" data-start="{" data-end="}">
+<div class="line"><a id="l00863" name="l00863"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#ga246e0bb07c8bbb39731f17906779c012">  863</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__advance__driver.html#ga246e0bb07c8bbb39731f17906779c012">w25qxx_set_status1</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint8_t status)</div>
+<div class="line"><a id="l00864" name="l00864"></a><span class="lineno">  864</span>{</div>
+<div class="line"><a id="l00865" name="l00865"></a><span class="lineno">  865</span>    uint8_t res;</div>
+<div class="line"><a id="l00866" name="l00866"></a><span class="lineno">  866</span>    uint8_t buf[2];</div>
+<div class="line"><a id="l00867" name="l00867"></a><span class="lineno">  867</span>    uint32_t timeout;</div>
+<div class="line"><a id="l00868" name="l00868"></a><span class="lineno">  868</span>    uint8_t status_check;</div>
+<div class="line"><a id="l00869" name="l00869"></a><span class="lineno">  869</span>    </div>
+<div class="line"><a id="l00870" name="l00870"></a><span class="lineno">  870</span>    <span class="keywordflow">if</span> (handle == NULL)                                                                                  <span class="comment">/* check handle */</span></div>
+<div class="line"><a id="l00871" name="l00871"></a><span class="lineno">  871</span>    {</div>
+<div class="line"><a id="l00872" name="l00872"></a><span class="lineno">  872</span>        <span class="keywordflow">return</span> 2;                                                                                        <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l00873" name="l00873"></a><span class="lineno">  873</span>    }   </div>
+<div class="line"><a id="l00874" name="l00874"></a><span class="lineno">  874</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">inited</a> != 1)                                                                             <span class="comment">/* check handle initialization */</span></div>
+<div class="line"><a id="l00875" name="l00875"></a><span class="lineno">  875</span>    {</div>
+<div class="line"><a id="l00876" name="l00876"></a><span class="lineno">  876</span>        <span class="keywordflow">return</span> 3;                                                                                        <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l00877" name="l00877"></a><span class="lineno">  877</span>    }</div>
+<div class="line"><a id="l00878" name="l00878"></a><span class="lineno">  878</span> </div>
+<div class="line"><a id="l00879" name="l00879"></a><span class="lineno">  879</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>)                                                        <span class="comment">/* spi interface */</span></div>
+<div class="line"><a id="l00880" name="l00880"></a><span class="lineno">  880</span>    {</div>
+<div class="line"><a id="l00881" name="l00881"></a><span class="lineno">  881</span>        <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">dual_quad_spi_enable</a> != 0)                                                           <span class="comment">/* enable dual quad spi */</span></div>
+<div class="line"><a id="l00882" name="l00882"></a><span class="lineno">  882</span>        {</div>
+<div class="line"><a id="l00883" name="l00883"></a><span class="lineno">  883</span>            res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#a7c9e980e30f499dd97b02935c91f2c02">W25QXX_COMMAND_VOLATILE_SR_WRITE_ENABLE</a>, 1,</div>
+<div class="line"><a id="l00884" name="l00884"></a><span class="lineno">  884</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l00885" name="l00885"></a><span class="lineno">  885</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l00886" name="l00886"></a><span class="lineno">  886</span>                                           0x00, NULL, 0x00,</div>
+<div class="line"><a id="l00887" name="l00887"></a><span class="lineno">  887</span>                                           NULL, 0x00, 0x00);                                            <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l00888" name="l00888"></a><span class="lineno">  888</span>            <span class="keywordflow">if</span> (res != 0)                                                                                <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l00889" name="l00889"></a><span class="lineno">  889</span>            {</div>
+<div class="line"><a id="l00890" name="l00890"></a><span class="lineno">  890</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                                   <span class="comment">/* write enable failed */</span></div>
+<div class="line"><a id="l00891" name="l00891"></a><span class="lineno">  891</span>               </div>
+<div class="line"><a id="l00892" name="l00892"></a><span class="lineno">  892</span>                <span class="keywordflow">return</span> 1;                                                                                <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l00893" name="l00893"></a><span class="lineno">  893</span>            }</div>
+<div class="line"><a id="l00894" name="l00894"></a><span class="lineno">  894</span>            buf[0] = status;                                                                             <span class="comment">/* set status */</span></div>
+<div class="line"><a id="l00895" name="l00895"></a><span class="lineno">  895</span>            res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#a932f54ff92de8bbab4602ab85ac6c155">W25QXX_COMMAND_WRITE_STATUS_REG1</a>, 1,</div>
+<div class="line"><a id="l00896" name="l00896"></a><span class="lineno">  896</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l00897" name="l00897"></a><span class="lineno">  897</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l00898" name="l00898"></a><span class="lineno">  898</span>                                           0x00, (uint8_t *)buf, 1,</div>
+<div class="line"><a id="l00899" name="l00899"></a><span class="lineno">  899</span>                                           NULL, 0x00, 1);                                               <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l00900" name="l00900"></a><span class="lineno">  900</span>            <span class="keywordflow">if</span> (res != 0)                                                                                <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l00901" name="l00901"></a><span class="lineno">  901</span>            {</div>
+<div class="line"><a id="l00902" name="l00902"></a><span class="lineno">  902</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: set status1 failed.\n&quot;</span>);                                    <span class="comment">/* set status1 failed */</span></div>
+<div class="line"><a id="l00903" name="l00903"></a><span class="lineno">  903</span>               </div>
+<div class="line"><a id="l00904" name="l00904"></a><span class="lineno">  904</span>                <span class="keywordflow">return</span> 1;                                                                                <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l00905" name="l00905"></a><span class="lineno">  905</span>            }</div>
+<div class="line"><a id="l00906" name="l00906"></a><span class="lineno">  906</span>            </div>
+<div class="line"><a id="l00907" name="l00907"></a><span class="lineno">  907</span>            timeout = 1000;                                                                              <span class="comment">/* max 1000 ms */</span></div>
+<div class="line"><a id="l00908" name="l00908"></a><span class="lineno">  908</span>            <span class="keywordflow">while</span> (timeout != 0)                                                                         <span class="comment">/* check timeout */</span></div>
+<div class="line"><a id="l00909" name="l00909"></a><span class="lineno">  909</span>            {</div>
+<div class="line"><a id="l00910" name="l00910"></a><span class="lineno">  910</span>                res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#adf682969c34f4b31a87dd92dd18ccea3">W25QXX_COMMAND_READ_STATUS_REG1</a>, 1,</div>
+<div class="line"><a id="l00911" name="l00911"></a><span class="lineno">  911</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l00912" name="l00912"></a><span class="lineno">  912</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l00913" name="l00913"></a><span class="lineno">  913</span>                                               0x00, NULL, 0x00,</div>
+<div class="line"><a id="l00914" name="l00914"></a><span class="lineno">  914</span>                                              (uint8_t *)&amp;status_check, 1, 1);                           <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l00915" name="l00915"></a><span class="lineno">  915</span>                <span class="keywordflow">if</span> (res != 0)                                                                            <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l00916" name="l00916"></a><span class="lineno">  916</span>                {</div>
+<div class="line"><a id="l00917" name="l00917"></a><span class="lineno">  917</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: get status1 failed.\n&quot;</span>);                                <span class="comment">/* get status1 failed */</span></div>
+<div class="line"><a id="l00918" name="l00918"></a><span class="lineno">  918</span>                   </div>
+<div class="line"><a id="l00919" name="l00919"></a><span class="lineno">  919</span>                    <span class="keywordflow">return</span> 1;                                                                            <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l00920" name="l00920"></a><span class="lineno">  920</span>                }</div>
+<div class="line"><a id="l00921" name="l00921"></a><span class="lineno">  921</span>                <span class="keywordflow">if</span> ((status_check &amp; 0x01) == 0x00)                                                       <span class="comment">/* check status */</span></div>
+<div class="line"><a id="l00922" name="l00922"></a><span class="lineno">  922</span>                {</div>
+<div class="line"><a id="l00923" name="l00923"></a><span class="lineno">  923</span>                    <span class="keywordflow">break</span>;                                                                               <span class="comment">/* break */</span></div>
+<div class="line"><a id="l00924" name="l00924"></a><span class="lineno">  924</span>                }</div>
+<div class="line"><a id="l00925" name="l00925"></a><span class="lineno">  925</span>                timeout--;                                                                               <span class="comment">/* timeout-- */</span></div>
+<div class="line"><a id="l00926" name="l00926"></a><span class="lineno">  926</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a406c9433252b7366de417b7a60915c81">delay_ms</a>(1);                                                                     <span class="comment">/* delay 1 ms */</span></div>
+<div class="line"><a id="l00927" name="l00927"></a><span class="lineno">  927</span>            }</div>
+<div class="line"><a id="l00928" name="l00928"></a><span class="lineno">  928</span>            <span class="keywordflow">if</span> (timeout == 0)                                                                            <span class="comment">/* check timeout */</span></div>
+<div class="line"><a id="l00929" name="l00929"></a><span class="lineno">  929</span>            {</div>
+<div class="line"><a id="l00930" name="l00930"></a><span class="lineno">  930</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write status 1 timeout.\n&quot;</span>);                                <span class="comment">/* write status 1 timeout */</span></div>
+<div class="line"><a id="l00931" name="l00931"></a><span class="lineno">  931</span>               </div>
+<div class="line"><a id="l00932" name="l00932"></a><span class="lineno">  932</span>                <span class="keywordflow">return</span> 4;                                                                                <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l00933" name="l00933"></a><span class="lineno">  933</span>            }</div>
+<div class="line"><a id="l00934" name="l00934"></a><span class="lineno">  934</span>            <span class="keywordflow">else</span></div>
+<div class="line"><a id="l00935" name="l00935"></a><span class="lineno">  935</span>            {</div>
+<div class="line"><a id="l00936" name="l00936"></a><span class="lineno">  936</span>                <span class="keywordflow">return</span> 0;                                                                                <span class="comment">/* success return 0 */</span></div>
+<div class="line"><a id="l00937" name="l00937"></a><span class="lineno">  937</span>            }</div>
+<div class="line"><a id="l00938" name="l00938"></a><span class="lineno">  938</span>        }</div>
+<div class="line"><a id="l00939" name="l00939"></a><span class="lineno">  939</span>        <span class="keywordflow">else</span>                                                                                             <span class="comment">/* single spi */</span></div>
+<div class="line"><a id="l00940" name="l00940"></a><span class="lineno">  940</span>        {</div>
+<div class="line"><a id="l00941" name="l00941"></a><span class="lineno">  941</span>            buf[0] = <a class="code hl_define" href="driver__w25qxx_8c.html#a7c9e980e30f499dd97b02935c91f2c02">W25QXX_COMMAND_VOLATILE_SR_WRITE_ENABLE</a>;                                            <span class="comment">/* sr write enable command */</span></div>
+<div class="line"><a id="l00942" name="l00942"></a><span class="lineno">  942</span>            res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 1, NULL, 0);                           <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l00943" name="l00943"></a><span class="lineno">  943</span>            <span class="keywordflow">if</span> (res != 0)                                                                                <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l00944" name="l00944"></a><span class="lineno">  944</span>            {</div>
+<div class="line"><a id="l00945" name="l00945"></a><span class="lineno">  945</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                                   <span class="comment">/* write enable failed */</span></div>
+<div class="line"><a id="l00946" name="l00946"></a><span class="lineno">  946</span>               </div>
+<div class="line"><a id="l00947" name="l00947"></a><span class="lineno">  947</span>                <span class="keywordflow">return</span> 1;                                                                                <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l00948" name="l00948"></a><span class="lineno">  948</span>            }</div>
+<div class="line"><a id="l00949" name="l00949"></a><span class="lineno">  949</span>            buf[0] = <a class="code hl_define" href="driver__w25qxx_8c.html#a932f54ff92de8bbab4602ab85ac6c155">W25QXX_COMMAND_WRITE_STATUS_REG1</a>;                                                   <span class="comment">/* write status1 command */</span></div>
+<div class="line"><a id="l00950" name="l00950"></a><span class="lineno">  950</span>            buf[1] = status;                                                                             <span class="comment">/* set status */</span></div>
+<div class="line"><a id="l00951" name="l00951"></a><span class="lineno">  951</span>            res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 2, NULL, 0);                           <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l00952" name="l00952"></a><span class="lineno">  952</span>            <span class="keywordflow">if</span> (res != 0)                                                                                <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l00953" name="l00953"></a><span class="lineno">  953</span>            {</div>
+<div class="line"><a id="l00954" name="l00954"></a><span class="lineno">  954</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: set status1 failed.\n&quot;</span>);                                    <span class="comment">/* set status1 failed */</span></div>
+<div class="line"><a id="l00955" name="l00955"></a><span class="lineno">  955</span>               </div>
+<div class="line"><a id="l00956" name="l00956"></a><span class="lineno">  956</span>                <span class="keywordflow">return</span> 1;                                                                                <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l00957" name="l00957"></a><span class="lineno">  957</span>            }</div>
+<div class="line"><a id="l00958" name="l00958"></a><span class="lineno">  958</span>            </div>
+<div class="line"><a id="l00959" name="l00959"></a><span class="lineno">  959</span>            timeout = 1000;                                                                              <span class="comment">/* max 1000 ms */</span></div>
+<div class="line"><a id="l00960" name="l00960"></a><span class="lineno">  960</span>            <span class="keywordflow">while</span> (timeout != 0)                                                                         <span class="comment">/* check timeout */</span></div>
+<div class="line"><a id="l00961" name="l00961"></a><span class="lineno">  961</span>            {</div>
+<div class="line"><a id="l00962" name="l00962"></a><span class="lineno">  962</span>                buf[0] = <a class="code hl_define" href="driver__w25qxx_8c.html#adf682969c34f4b31a87dd92dd18ccea3">W25QXX_COMMAND_READ_STATUS_REG1</a>;                                                <span class="comment">/* read status1 command */</span></div>
+<div class="line"><a id="l00963" name="l00963"></a><span class="lineno">  963</span>                res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 1,</div>
+<div class="line"><a id="l00964" name="l00964"></a><span class="lineno">  964</span>                                             (uint8_t *)&amp;status_check, 1);                               <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l00965" name="l00965"></a><span class="lineno">  965</span>                <span class="keywordflow">if</span> (res != 0)                                                                            <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l00966" name="l00966"></a><span class="lineno">  966</span>                {</div>
+<div class="line"><a id="l00967" name="l00967"></a><span class="lineno">  967</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: get status1 failed.\n&quot;</span>);                                <span class="comment">/* get status1 failed */</span></div>
+<div class="line"><a id="l00968" name="l00968"></a><span class="lineno">  968</span>                   </div>
+<div class="line"><a id="l00969" name="l00969"></a><span class="lineno">  969</span>                    <span class="keywordflow">return</span> 1;                                                                            <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l00970" name="l00970"></a><span class="lineno">  970</span>                }</div>
+<div class="line"><a id="l00971" name="l00971"></a><span class="lineno">  971</span>                <span class="keywordflow">if</span> ((status_check &amp; 0x01) == 0x00)                                                       <span class="comment">/* check status */</span></div>
+<div class="line"><a id="l00972" name="l00972"></a><span class="lineno">  972</span>                {</div>
+<div class="line"><a id="l00973" name="l00973"></a><span class="lineno">  973</span>                    <span class="keywordflow">break</span>;                                                                               <span class="comment">/* break */</span></div>
+<div class="line"><a id="l00974" name="l00974"></a><span class="lineno">  974</span>                }</div>
+<div class="line"><a id="l00975" name="l00975"></a><span class="lineno">  975</span>                timeout--;                                                                               <span class="comment">/* timeout-- */</span></div>
+<div class="line"><a id="l00976" name="l00976"></a><span class="lineno">  976</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a406c9433252b7366de417b7a60915c81">delay_ms</a>(1);                                                                     <span class="comment">/* delay 1 ms */</span></div>
+<div class="line"><a id="l00977" name="l00977"></a><span class="lineno">  977</span>            }</div>
+<div class="line"><a id="l00978" name="l00978"></a><span class="lineno">  978</span>            <span class="keywordflow">if</span> (timeout == 0)                                                                            <span class="comment">/* check timeout */</span></div>
+<div class="line"><a id="l00979" name="l00979"></a><span class="lineno">  979</span>            {</div>
+<div class="line"><a id="l00980" name="l00980"></a><span class="lineno">  980</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write status 1 timeout.\n&quot;</span>);                                <span class="comment">/* write status 1 timeout */</span></div>
+<div class="line"><a id="l00981" name="l00981"></a><span class="lineno">  981</span>               </div>
+<div class="line"><a id="l00982" name="l00982"></a><span class="lineno">  982</span>                <span class="keywordflow">return</span> 4;                                                                                <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l00983" name="l00983"></a><span class="lineno">  983</span>            }</div>
+<div class="line"><a id="l00984" name="l00984"></a><span class="lineno">  984</span>            <span class="keywordflow">else</span></div>
+<div class="line"><a id="l00985" name="l00985"></a><span class="lineno">  985</span>            {</div>
+<div class="line"><a id="l00986" name="l00986"></a><span class="lineno">  986</span>                <span class="keywordflow">return</span> 0;                                                                                <span class="comment">/* success return 0 */</span></div>
+<div class="line"><a id="l00987" name="l00987"></a><span class="lineno">  987</span>            }</div>
+<div class="line"><a id="l00988" name="l00988"></a><span class="lineno">  988</span>        }</div>
+<div class="line"><a id="l00989" name="l00989"></a><span class="lineno">  989</span>    }</div>
+<div class="line"><a id="l00990" name="l00990"></a><span class="lineno">  990</span>    <span class="keywordflow">else</span>                                                                                                 <span class="comment">/* qspi interface */</span></div>
+<div class="line"><a id="l00991" name="l00991"></a><span class="lineno">  991</span>    {</div>
+<div class="line"><a id="l00992" name="l00992"></a><span class="lineno">  992</span>        res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#a7c9e980e30f499dd97b02935c91f2c02">W25QXX_COMMAND_VOLATILE_SR_WRITE_ENABLE</a>, 4,</div>
+<div class="line"><a id="l00993" name="l00993"></a><span class="lineno">  993</span>                                       0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l00994" name="l00994"></a><span class="lineno">  994</span>                                       0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l00995" name="l00995"></a><span class="lineno">  995</span>                                       0x00, NULL, 0x00,</div>
+<div class="line"><a id="l00996" name="l00996"></a><span class="lineno">  996</span>                                       NULL, 0x00, 0x00);                                                <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l00997" name="l00997"></a><span class="lineno">  997</span>        <span class="keywordflow">if</span> (res != 0)                                                                                    <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l00998" name="l00998"></a><span class="lineno">  998</span>        {</div>
+<div class="line"><a id="l00999" name="l00999"></a><span class="lineno">  999</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                                       <span class="comment">/* write enable failed */</span></div>
+<div class="line"><a id="l01000" name="l01000"></a><span class="lineno"> 1000</span>           </div>
+<div class="line"><a id="l01001" name="l01001"></a><span class="lineno"> 1001</span>            <span class="keywordflow">return</span> 1;                                                                                    <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l01002" name="l01002"></a><span class="lineno"> 1002</span>        }</div>
+<div class="line"><a id="l01003" name="l01003"></a><span class="lineno"> 1003</span>        buf[0] = status;                                                                                 <span class="comment">/* set status */</span></div>
+<div class="line"><a id="l01004" name="l01004"></a><span class="lineno"> 1004</span>        res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#a932f54ff92de8bbab4602ab85ac6c155">W25QXX_COMMAND_WRITE_STATUS_REG1</a>, 4,</div>
+<div class="line"><a id="l01005" name="l01005"></a><span class="lineno"> 1005</span>                                       0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l01006" name="l01006"></a><span class="lineno"> 1006</span>                                       0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l01007" name="l01007"></a><span class="lineno"> 1007</span>                                       0x00, (uint8_t *)buf, 1,</div>
+<div class="line"><a id="l01008" name="l01008"></a><span class="lineno"> 1008</span>                                       NULL, 0x00, 4);                                                   <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l01009" name="l01009"></a><span class="lineno"> 1009</span>        <span class="keywordflow">if</span> (res != 0)                                                                                    <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l01010" name="l01010"></a><span class="lineno"> 1010</span>        {</div>
+<div class="line"><a id="l01011" name="l01011"></a><span class="lineno"> 1011</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: set status1 failed.\n&quot;</span>);                                        <span class="comment">/* set status1 failed */</span></div>
+<div class="line"><a id="l01012" name="l01012"></a><span class="lineno"> 1012</span>           </div>
+<div class="line"><a id="l01013" name="l01013"></a><span class="lineno"> 1013</span>            <span class="keywordflow">return</span> 1;                                                                                    <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l01014" name="l01014"></a><span class="lineno"> 1014</span>        }</div>
+<div class="line"><a id="l01015" name="l01015"></a><span class="lineno"> 1015</span>        </div>
+<div class="line"><a id="l01016" name="l01016"></a><span class="lineno"> 1016</span>        timeout = 1000;                                                                                  <span class="comment">/* max 1000 ms */</span></div>
+<div class="line"><a id="l01017" name="l01017"></a><span class="lineno"> 1017</span>        <span class="keywordflow">while</span> (timeout != 0)                                                                             <span class="comment">/* check timeout */</span></div>
+<div class="line"><a id="l01018" name="l01018"></a><span class="lineno"> 1018</span>        {</div>
+<div class="line"><a id="l01019" name="l01019"></a><span class="lineno"> 1019</span>            res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#adf682969c34f4b31a87dd92dd18ccea3">W25QXX_COMMAND_READ_STATUS_REG1</a>, 4,</div>
+<div class="line"><a id="l01020" name="l01020"></a><span class="lineno"> 1020</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l01021" name="l01021"></a><span class="lineno"> 1021</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l01022" name="l01022"></a><span class="lineno"> 1022</span>                                           0x00, NULL, 0x00,</div>
+<div class="line"><a id="l01023" name="l01023"></a><span class="lineno"> 1023</span>                                          (uint8_t *)&amp;status_check, 1, 4);                               <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l01024" name="l01024"></a><span class="lineno"> 1024</span>            <span class="keywordflow">if</span> (res != 0)                                                                                <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l01025" name="l01025"></a><span class="lineno"> 1025</span>            {</div>
+<div class="line"><a id="l01026" name="l01026"></a><span class="lineno"> 1026</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: get status1 failed.\n&quot;</span>);                                    <span class="comment">/* get status1 failed */</span></div>
+<div class="line"><a id="l01027" name="l01027"></a><span class="lineno"> 1027</span>               </div>
+<div class="line"><a id="l01028" name="l01028"></a><span class="lineno"> 1028</span>                <span class="keywordflow">return</span> 1;                                                                                <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l01029" name="l01029"></a><span class="lineno"> 1029</span>            }</div>
+<div class="line"><a id="l01030" name="l01030"></a><span class="lineno"> 1030</span>            <span class="keywordflow">if</span> ((status_check &amp; 0x01) == 0x00)                                                           <span class="comment">/* check status */</span></div>
+<div class="line"><a id="l01031" name="l01031"></a><span class="lineno"> 1031</span>            {</div>
+<div class="line"><a id="l01032" name="l01032"></a><span class="lineno"> 1032</span>                <span class="keywordflow">break</span>;                                                                                   <span class="comment">/* break */</span></div>
+<div class="line"><a id="l01033" name="l01033"></a><span class="lineno"> 1033</span>            }</div>
+<div class="line"><a id="l01034" name="l01034"></a><span class="lineno"> 1034</span>            timeout--;                                                                                   <span class="comment">/* timeout-- */</span></div>
+<div class="line"><a id="l01035" name="l01035"></a><span class="lineno"> 1035</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a406c9433252b7366de417b7a60915c81">delay_ms</a>(1);                                                                         <span class="comment">/* delay 1 ms */</span></div>
+<div class="line"><a id="l01036" name="l01036"></a><span class="lineno"> 1036</span>        }</div>
+<div class="line"><a id="l01037" name="l01037"></a><span class="lineno"> 1037</span>        <span class="keywordflow">if</span> (timeout == 0)                                                                                <span class="comment">/* check timeout */</span></div>
+<div class="line"><a id="l01038" name="l01038"></a><span class="lineno"> 1038</span>        {</div>
+<div class="line"><a id="l01039" name="l01039"></a><span class="lineno"> 1039</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write status 1 timeout.\n&quot;</span>);                                    <span class="comment">/* write status 1 timeout */</span></div>
+<div class="line"><a id="l01040" name="l01040"></a><span class="lineno"> 1040</span>           </div>
+<div class="line"><a id="l01041" name="l01041"></a><span class="lineno"> 1041</span>            <span class="keywordflow">return</span> 4;                                                                                    <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l01042" name="l01042"></a><span class="lineno"> 1042</span>        }</div>
+<div class="line"><a id="l01043" name="l01043"></a><span class="lineno"> 1043</span>        <span class="keywordflow">else</span></div>
+<div class="line"><a id="l01044" name="l01044"></a><span class="lineno"> 1044</span>        {</div>
+<div class="line"><a id="l01045" name="l01045"></a><span class="lineno"> 1045</span>            <span class="keywordflow">return</span> 0;                                                                                    <span class="comment">/* success return 0 */</span></div>
+<div class="line"><a id="l01046" name="l01046"></a><span class="lineno"> 1046</span>        }</div>
+<div class="line"><a id="l01047" name="l01047"></a><span class="lineno"> 1047</span>    }</div>
+<div class="line"><a id="l01048" name="l01048"></a><span class="lineno"> 1048</span>}</div>
+</div>
+<div class="line"><a id="l01049" name="l01049"></a><span class="lineno"> 1049</span> </div>
+<div class="foldopen" id="foldopen01062" data-start="{" data-end="}">
+<div class="line"><a id="l01062" name="l01062"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#gaab5f28e8930d50dbc2178e39bc9fa456"> 1062</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__advance__driver.html#gaab5f28e8930d50dbc2178e39bc9fa456">w25qxx_set_status2</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint8_t status)</div>
+<div class="line"><a id="l01063" name="l01063"></a><span class="lineno"> 1063</span>{</div>
+<div class="line"><a id="l01064" name="l01064"></a><span class="lineno"> 1064</span>    uint8_t res;</div>
+<div class="line"><a id="l01065" name="l01065"></a><span class="lineno"> 1065</span>    uint8_t buf[2];</div>
+<div class="line"><a id="l01066" name="l01066"></a><span class="lineno"> 1066</span>    uint32_t timeout;</div>
+<div class="line"><a id="l01067" name="l01067"></a><span class="lineno"> 1067</span>    uint8_t status_check;</div>
+<div class="line"><a id="l01068" name="l01068"></a><span class="lineno"> 1068</span>    </div>
+<div class="line"><a id="l01069" name="l01069"></a><span class="lineno"> 1069</span>    <span class="keywordflow">if</span> (handle == NULL)                                                                                  <span class="comment">/* check handle */</span></div>
+<div class="line"><a id="l01070" name="l01070"></a><span class="lineno"> 1070</span>    {</div>
+<div class="line"><a id="l01071" name="l01071"></a><span class="lineno"> 1071</span>        <span class="keywordflow">return</span> 2;                                                                                        <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l01072" name="l01072"></a><span class="lineno"> 1072</span>    }   </div>
+<div class="line"><a id="l01073" name="l01073"></a><span class="lineno"> 1073</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">inited</a> != 1)                                                                             <span class="comment">/* check handle initialization */</span></div>
+<div class="line"><a id="l01074" name="l01074"></a><span class="lineno"> 1074</span>    {</div>
+<div class="line"><a id="l01075" name="l01075"></a><span class="lineno"> 1075</span>        <span class="keywordflow">return</span> 3;                                                                                        <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l01076" name="l01076"></a><span class="lineno"> 1076</span>    }</div>
+<div class="line"><a id="l01077" name="l01077"></a><span class="lineno"> 1077</span> </div>
+<div class="line"><a id="l01078" name="l01078"></a><span class="lineno"> 1078</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>)                                                        <span class="comment">/* spi interface */</span></div>
+<div class="line"><a id="l01079" name="l01079"></a><span class="lineno"> 1079</span>    {</div>
+<div class="line"><a id="l01080" name="l01080"></a><span class="lineno"> 1080</span>        <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">dual_quad_spi_enable</a> != 0)                                                           <span class="comment">/* enable dual quad spi */</span></div>
+<div class="line"><a id="l01081" name="l01081"></a><span class="lineno"> 1081</span>        {</div>
+<div class="line"><a id="l01082" name="l01082"></a><span class="lineno"> 1082</span>            res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#a7c9e980e30f499dd97b02935c91f2c02">W25QXX_COMMAND_VOLATILE_SR_WRITE_ENABLE</a>, 1,</div>
+<div class="line"><a id="l01083" name="l01083"></a><span class="lineno"> 1083</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l01084" name="l01084"></a><span class="lineno"> 1084</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l01085" name="l01085"></a><span class="lineno"> 1085</span>                                           0x00, NULL, 0x00,</div>
+<div class="line"><a id="l01086" name="l01086"></a><span class="lineno"> 1086</span>                                           NULL, 0x00, 0x00);                                            <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l01087" name="l01087"></a><span class="lineno"> 1087</span>            <span class="keywordflow">if</span> (res != 0)                                                                                <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l01088" name="l01088"></a><span class="lineno"> 1088</span>            {</div>
+<div class="line"><a id="l01089" name="l01089"></a><span class="lineno"> 1089</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                                   <span class="comment">/* write enable failed */</span></div>
+<div class="line"><a id="l01090" name="l01090"></a><span class="lineno"> 1090</span>               </div>
+<div class="line"><a id="l01091" name="l01091"></a><span class="lineno"> 1091</span>                <span class="keywordflow">return</span> 1;                                                                                <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l01092" name="l01092"></a><span class="lineno"> 1092</span>            }</div>
+<div class="line"><a id="l01093" name="l01093"></a><span class="lineno"> 1093</span>            buf[0] = status;                                                                             <span class="comment">/* set status */</span></div>
+<div class="line"><a id="l01094" name="l01094"></a><span class="lineno"> 1094</span>            res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#a4be10ed873d56bb183d9b1bde9105135">W25QXX_COMMAND_WRITE_STATUS_REG2</a>, 1,</div>
+<div class="line"><a id="l01095" name="l01095"></a><span class="lineno"> 1095</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l01096" name="l01096"></a><span class="lineno"> 1096</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l01097" name="l01097"></a><span class="lineno"> 1097</span>                                           0x00, (uint8_t *)buf, 1,</div>
+<div class="line"><a id="l01098" name="l01098"></a><span class="lineno"> 1098</span>                                           NULL, 0x00, 1);                                               <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l01099" name="l01099"></a><span class="lineno"> 1099</span>            <span class="keywordflow">if</span> (res != 0)                                                                                <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l01100" name="l01100"></a><span class="lineno"> 1100</span>            {</div>
+<div class="line"><a id="l01101" name="l01101"></a><span class="lineno"> 1101</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: set status2 failed.\n&quot;</span>);                                    <span class="comment">/* set status2 failed */</span></div>
+<div class="line"><a id="l01102" name="l01102"></a><span class="lineno"> 1102</span>               </div>
+<div class="line"><a id="l01103" name="l01103"></a><span class="lineno"> 1103</span>                <span class="keywordflow">return</span> 1;                                                                                <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l01104" name="l01104"></a><span class="lineno"> 1104</span>            }</div>
+<div class="line"><a id="l01105" name="l01105"></a><span class="lineno"> 1105</span>            </div>
+<div class="line"><a id="l01106" name="l01106"></a><span class="lineno"> 1106</span>            timeout = 1000;                                                                              <span class="comment">/* max 1000 ms */</span></div>
+<div class="line"><a id="l01107" name="l01107"></a><span class="lineno"> 1107</span>            <span class="keywordflow">while</span> (timeout != 0)                                                                         <span class="comment">/* check timeout */</span></div>
+<div class="line"><a id="l01108" name="l01108"></a><span class="lineno"> 1108</span>            {</div>
+<div class="line"><a id="l01109" name="l01109"></a><span class="lineno"> 1109</span>                res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#adf682969c34f4b31a87dd92dd18ccea3">W25QXX_COMMAND_READ_STATUS_REG1</a>, 1,</div>
+<div class="line"><a id="l01110" name="l01110"></a><span class="lineno"> 1110</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l01111" name="l01111"></a><span class="lineno"> 1111</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l01112" name="l01112"></a><span class="lineno"> 1112</span>                                               0x00, NULL, 0x00,</div>
+<div class="line"><a id="l01113" name="l01113"></a><span class="lineno"> 1113</span>                                              (uint8_t *)&amp;status_check, 1, 1);                           <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l01114" name="l01114"></a><span class="lineno"> 1114</span>                <span class="keywordflow">if</span> (res != 0)                                                                            <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l01115" name="l01115"></a><span class="lineno"> 1115</span>                {</div>
+<div class="line"><a id="l01116" name="l01116"></a><span class="lineno"> 1116</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: get status1 failed.\n&quot;</span>);                                <span class="comment">/* get status1 failed */</span></div>
+<div class="line"><a id="l01117" name="l01117"></a><span class="lineno"> 1117</span>                   </div>
+<div class="line"><a id="l01118" name="l01118"></a><span class="lineno"> 1118</span>                    <span class="keywordflow">return</span> 1;                                                                            <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l01119" name="l01119"></a><span class="lineno"> 1119</span>                }</div>
+<div class="line"><a id="l01120" name="l01120"></a><span class="lineno"> 1120</span>                <span class="keywordflow">if</span> ((status_check &amp; 0x01) == 0x00)                                                       <span class="comment">/* check status */</span></div>
+<div class="line"><a id="l01121" name="l01121"></a><span class="lineno"> 1121</span>                {</div>
+<div class="line"><a id="l01122" name="l01122"></a><span class="lineno"> 1122</span>                    <span class="keywordflow">break</span>;                                                                               <span class="comment">/* break */</span></div>
+<div class="line"><a id="l01123" name="l01123"></a><span class="lineno"> 1123</span>                }</div>
+<div class="line"><a id="l01124" name="l01124"></a><span class="lineno"> 1124</span>                timeout--;                                                                               <span class="comment">/* timeout-- */</span></div>
+<div class="line"><a id="l01125" name="l01125"></a><span class="lineno"> 1125</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a406c9433252b7366de417b7a60915c81">delay_ms</a>(1);                                                                     <span class="comment">/* delay 1 ms */</span></div>
+<div class="line"><a id="l01126" name="l01126"></a><span class="lineno"> 1126</span>            }</div>
+<div class="line"><a id="l01127" name="l01127"></a><span class="lineno"> 1127</span>            <span class="keywordflow">if</span> (timeout == 0)                                                                            <span class="comment">/* check timeout */</span></div>
+<div class="line"><a id="l01128" name="l01128"></a><span class="lineno"> 1128</span>            {</div>
+<div class="line"><a id="l01129" name="l01129"></a><span class="lineno"> 1129</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write status 2 timeout.\n&quot;</span>);                                <span class="comment">/* write status 2 timeout */</span></div>
+<div class="line"><a id="l01130" name="l01130"></a><span class="lineno"> 1130</span>               </div>
+<div class="line"><a id="l01131" name="l01131"></a><span class="lineno"> 1131</span>                <span class="keywordflow">return</span> 4;                                                                                <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l01132" name="l01132"></a><span class="lineno"> 1132</span>            }</div>
+<div class="line"><a id="l01133" name="l01133"></a><span class="lineno"> 1133</span>            <span class="keywordflow">else</span></div>
+<div class="line"><a id="l01134" name="l01134"></a><span class="lineno"> 1134</span>            {</div>
+<div class="line"><a id="l01135" name="l01135"></a><span class="lineno"> 1135</span>                <span class="keywordflow">return</span> 0;                                                                                <span class="comment">/* success return 0 */</span></div>
+<div class="line"><a id="l01136" name="l01136"></a><span class="lineno"> 1136</span>            }</div>
+<div class="line"><a id="l01137" name="l01137"></a><span class="lineno"> 1137</span>        }</div>
+<div class="line"><a id="l01138" name="l01138"></a><span class="lineno"> 1138</span>        <span class="keywordflow">else</span>                                                                                             <span class="comment">/* single spi */</span></div>
+<div class="line"><a id="l01139" name="l01139"></a><span class="lineno"> 1139</span>        {</div>
+<div class="line"><a id="l01140" name="l01140"></a><span class="lineno"> 1140</span>            buf[0] = <a class="code hl_define" href="driver__w25qxx_8c.html#a7c9e980e30f499dd97b02935c91f2c02">W25QXX_COMMAND_VOLATILE_SR_WRITE_ENABLE</a>;                                            <span class="comment">/* sr write enable command */</span></div>
+<div class="line"><a id="l01141" name="l01141"></a><span class="lineno"> 1141</span>            res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 1, NULL, 0);                           <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l01142" name="l01142"></a><span class="lineno"> 1142</span>            <span class="keywordflow">if</span> (res != 0)                                                                                <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l01143" name="l01143"></a><span class="lineno"> 1143</span>            {</div>
+<div class="line"><a id="l01144" name="l01144"></a><span class="lineno"> 1144</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                                   <span class="comment">/* write enable failed */</span></div>
+<div class="line"><a id="l01145" name="l01145"></a><span class="lineno"> 1145</span>               </div>
+<div class="line"><a id="l01146" name="l01146"></a><span class="lineno"> 1146</span>                <span class="keywordflow">return</span> 1;                                                                                <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l01147" name="l01147"></a><span class="lineno"> 1147</span>            }</div>
+<div class="line"><a id="l01148" name="l01148"></a><span class="lineno"> 1148</span>            buf[0] = <a class="code hl_define" href="driver__w25qxx_8c.html#a4be10ed873d56bb183d9b1bde9105135">W25QXX_COMMAND_WRITE_STATUS_REG2</a>;                                                   <span class="comment">/* write status2 command */</span></div>
+<div class="line"><a id="l01149" name="l01149"></a><span class="lineno"> 1149</span>            buf[1] = status;                                                                             <span class="comment">/* set status */</span></div>
+<div class="line"><a id="l01150" name="l01150"></a><span class="lineno"> 1150</span>            res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 2, NULL, 0);                           <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l01151" name="l01151"></a><span class="lineno"> 1151</span>            <span class="keywordflow">if</span> (res != 0)                                                                                <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l01152" name="l01152"></a><span class="lineno"> 1152</span>            {</div>
+<div class="line"><a id="l01153" name="l01153"></a><span class="lineno"> 1153</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: set status2 failed.\n&quot;</span>);                                    <span class="comment">/* set status2 failed */</span></div>
+<div class="line"><a id="l01154" name="l01154"></a><span class="lineno"> 1154</span>               </div>
+<div class="line"><a id="l01155" name="l01155"></a><span class="lineno"> 1155</span>                <span class="keywordflow">return</span> 1;                                                                                <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l01156" name="l01156"></a><span class="lineno"> 1156</span>            }</div>
+<div class="line"><a id="l01157" name="l01157"></a><span class="lineno"> 1157</span>            </div>
+<div class="line"><a id="l01158" name="l01158"></a><span class="lineno"> 1158</span>            timeout = 1000;                                                                              <span class="comment">/* max 1000 ms */</span></div>
+<div class="line"><a id="l01159" name="l01159"></a><span class="lineno"> 1159</span>            <span class="keywordflow">while</span> (timeout != 0)                                                                         <span class="comment">/* check timeout */</span></div>
+<div class="line"><a id="l01160" name="l01160"></a><span class="lineno"> 1160</span>            {</div>
+<div class="line"><a id="l01161" name="l01161"></a><span class="lineno"> 1161</span>                buf[0] = <a class="code hl_define" href="driver__w25qxx_8c.html#adf682969c34f4b31a87dd92dd18ccea3">W25QXX_COMMAND_READ_STATUS_REG1</a>;                                                <span class="comment">/* read status1 command */</span></div>
+<div class="line"><a id="l01162" name="l01162"></a><span class="lineno"> 1162</span>                res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 1,</div>
+<div class="line"><a id="l01163" name="l01163"></a><span class="lineno"> 1163</span>                                             (uint8_t *)&amp;status_check, 1);                               <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l01164" name="l01164"></a><span class="lineno"> 1164</span>                <span class="keywordflow">if</span> (res != 0)                                                                            <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l01165" name="l01165"></a><span class="lineno"> 1165</span>                {</div>
+<div class="line"><a id="l01166" name="l01166"></a><span class="lineno"> 1166</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: get status1 failed.\n&quot;</span>);                                <span class="comment">/* get status1 failed */</span></div>
+<div class="line"><a id="l01167" name="l01167"></a><span class="lineno"> 1167</span>                   </div>
+<div class="line"><a id="l01168" name="l01168"></a><span class="lineno"> 1168</span>                    <span class="keywordflow">return</span> 1;                                                                            <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l01169" name="l01169"></a><span class="lineno"> 1169</span>                }</div>
+<div class="line"><a id="l01170" name="l01170"></a><span class="lineno"> 1170</span>                <span class="keywordflow">if</span> ((status_check &amp; 0x01) == 0x00)                                                       <span class="comment">/* check status */</span></div>
+<div class="line"><a id="l01171" name="l01171"></a><span class="lineno"> 1171</span>                {</div>
+<div class="line"><a id="l01172" name="l01172"></a><span class="lineno"> 1172</span>                    <span class="keywordflow">break</span>;                                                                               <span class="comment">/* break */</span></div>
+<div class="line"><a id="l01173" name="l01173"></a><span class="lineno"> 1173</span>                }</div>
+<div class="line"><a id="l01174" name="l01174"></a><span class="lineno"> 1174</span>                timeout--;                                                                               <span class="comment">/* timeout-- */</span></div>
+<div class="line"><a id="l01175" name="l01175"></a><span class="lineno"> 1175</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a406c9433252b7366de417b7a60915c81">delay_ms</a>(1);                                                                     <span class="comment">/* delay 1 ms */</span></div>
+<div class="line"><a id="l01176" name="l01176"></a><span class="lineno"> 1176</span>            }</div>
+<div class="line"><a id="l01177" name="l01177"></a><span class="lineno"> 1177</span>            <span class="keywordflow">if</span> (timeout == 0)                                                                            <span class="comment">/* check timeout */</span></div>
+<div class="line"><a id="l01178" name="l01178"></a><span class="lineno"> 1178</span>            {</div>
+<div class="line"><a id="l01179" name="l01179"></a><span class="lineno"> 1179</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write status 2 timeout.\n&quot;</span>);                                <span class="comment">/* write status 2 timeout */</span></div>
+<div class="line"><a id="l01180" name="l01180"></a><span class="lineno"> 1180</span>               </div>
+<div class="line"><a id="l01181" name="l01181"></a><span class="lineno"> 1181</span>                <span class="keywordflow">return</span> 4;                                                                                <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l01182" name="l01182"></a><span class="lineno"> 1182</span>            }</div>
+<div class="line"><a id="l01183" name="l01183"></a><span class="lineno"> 1183</span>            <span class="keywordflow">else</span></div>
+<div class="line"><a id="l01184" name="l01184"></a><span class="lineno"> 1184</span>            {</div>
+<div class="line"><a id="l01185" name="l01185"></a><span class="lineno"> 1185</span>                <span class="keywordflow">return</span> 0;                                                                                <span class="comment">/* success return 0 */</span></div>
+<div class="line"><a id="l01186" name="l01186"></a><span class="lineno"> 1186</span>            }</div>
+<div class="line"><a id="l01187" name="l01187"></a><span class="lineno"> 1187</span>        }</div>
+<div class="line"><a id="l01188" name="l01188"></a><span class="lineno"> 1188</span>    }</div>
+<div class="line"><a id="l01189" name="l01189"></a><span class="lineno"> 1189</span>    <span class="keywordflow">else</span>                                                                                                 <span class="comment">/* qspi interface */</span></div>
+<div class="line"><a id="l01190" name="l01190"></a><span class="lineno"> 1190</span>    {</div>
+<div class="line"><a id="l01191" name="l01191"></a><span class="lineno"> 1191</span>        res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#a7c9e980e30f499dd97b02935c91f2c02">W25QXX_COMMAND_VOLATILE_SR_WRITE_ENABLE</a>, 4,</div>
+<div class="line"><a id="l01192" name="l01192"></a><span class="lineno"> 1192</span>                                       0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l01193" name="l01193"></a><span class="lineno"> 1193</span>                                       0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l01194" name="l01194"></a><span class="lineno"> 1194</span>                                       0x00, NULL, 0x00,</div>
+<div class="line"><a id="l01195" name="l01195"></a><span class="lineno"> 1195</span>                                       NULL, 0x00, 0x00);                                                <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l01196" name="l01196"></a><span class="lineno"> 1196</span>        <span class="keywordflow">if</span> (res != 0)                                                                                    <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l01197" name="l01197"></a><span class="lineno"> 1197</span>        {</div>
+<div class="line"><a id="l01198" name="l01198"></a><span class="lineno"> 1198</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                                       <span class="comment">/* write enable failed */</span></div>
+<div class="line"><a id="l01199" name="l01199"></a><span class="lineno"> 1199</span>           </div>
+<div class="line"><a id="l01200" name="l01200"></a><span class="lineno"> 1200</span>            <span class="keywordflow">return</span> 1;                                                                                    <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l01201" name="l01201"></a><span class="lineno"> 1201</span>        }</div>
+<div class="line"><a id="l01202" name="l01202"></a><span class="lineno"> 1202</span>        buf[0] = status;                                                                                 <span class="comment">/* set status */</span></div>
+<div class="line"><a id="l01203" name="l01203"></a><span class="lineno"> 1203</span>        res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#a4be10ed873d56bb183d9b1bde9105135">W25QXX_COMMAND_WRITE_STATUS_REG2</a>, 4,</div>
+<div class="line"><a id="l01204" name="l01204"></a><span class="lineno"> 1204</span>                                       0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l01205" name="l01205"></a><span class="lineno"> 1205</span>                                       0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l01206" name="l01206"></a><span class="lineno"> 1206</span>                                       0x00, (uint8_t *)buf, 1,</div>
+<div class="line"><a id="l01207" name="l01207"></a><span class="lineno"> 1207</span>                                       NULL, 0x00, 4);                                                   <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l01208" name="l01208"></a><span class="lineno"> 1208</span>        <span class="keywordflow">if</span> (res != 0)                                                                                    <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l01209" name="l01209"></a><span class="lineno"> 1209</span>        {</div>
+<div class="line"><a id="l01210" name="l01210"></a><span class="lineno"> 1210</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: set status2 failed.\n&quot;</span>);                                        <span class="comment">/* set status2 failed */</span></div>
+<div class="line"><a id="l01211" name="l01211"></a><span class="lineno"> 1211</span>           </div>
+<div class="line"><a id="l01212" name="l01212"></a><span class="lineno"> 1212</span>            <span class="keywordflow">return</span> 1;                                                                                    <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l01213" name="l01213"></a><span class="lineno"> 1213</span>        }</div>
+<div class="line"><a id="l01214" name="l01214"></a><span class="lineno"> 1214</span>        </div>
+<div class="line"><a id="l01215" name="l01215"></a><span class="lineno"> 1215</span>        timeout = 1000;                                                                                  <span class="comment">/* max 1000 ms */</span></div>
+<div class="line"><a id="l01216" name="l01216"></a><span class="lineno"> 1216</span>        <span class="keywordflow">while</span> (timeout != 0)                                                                             <span class="comment">/* check timeout */</span></div>
+<div class="line"><a id="l01217" name="l01217"></a><span class="lineno"> 1217</span>        {</div>
+<div class="line"><a id="l01218" name="l01218"></a><span class="lineno"> 1218</span>            res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#adf682969c34f4b31a87dd92dd18ccea3">W25QXX_COMMAND_READ_STATUS_REG1</a>, 4,</div>
+<div class="line"><a id="l01219" name="l01219"></a><span class="lineno"> 1219</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l01220" name="l01220"></a><span class="lineno"> 1220</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l01221" name="l01221"></a><span class="lineno"> 1221</span>                                           0x00, NULL, 0x00,</div>
+<div class="line"><a id="l01222" name="l01222"></a><span class="lineno"> 1222</span>                                          (uint8_t *)&amp;status_check, 1, 4);                               <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l01223" name="l01223"></a><span class="lineno"> 1223</span>            <span class="keywordflow">if</span> (res != 0)                                                                                <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l01224" name="l01224"></a><span class="lineno"> 1224</span>            {</div>
+<div class="line"><a id="l01225" name="l01225"></a><span class="lineno"> 1225</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: get status1 failed.\n&quot;</span>);                                    <span class="comment">/* get status1 failed */</span></div>
+<div class="line"><a id="l01226" name="l01226"></a><span class="lineno"> 1226</span>               </div>
+<div class="line"><a id="l01227" name="l01227"></a><span class="lineno"> 1227</span>                <span class="keywordflow">return</span> 1;                                                                                <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l01228" name="l01228"></a><span class="lineno"> 1228</span>            }</div>
+<div class="line"><a id="l01229" name="l01229"></a><span class="lineno"> 1229</span>            <span class="keywordflow">if</span> ((status_check &amp; 0x01) == 0x00)                                                           <span class="comment">/* check status */</span></div>
+<div class="line"><a id="l01230" name="l01230"></a><span class="lineno"> 1230</span>            {</div>
+<div class="line"><a id="l01231" name="l01231"></a><span class="lineno"> 1231</span>                <span class="keywordflow">break</span>;                                                                                   <span class="comment">/* break */</span></div>
+<div class="line"><a id="l01232" name="l01232"></a><span class="lineno"> 1232</span>            }</div>
+<div class="line"><a id="l01233" name="l01233"></a><span class="lineno"> 1233</span>            timeout--;                                                                                   <span class="comment">/* timeout-- */</span></div>
+<div class="line"><a id="l01234" name="l01234"></a><span class="lineno"> 1234</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a406c9433252b7366de417b7a60915c81">delay_ms</a>(1);                                                                         <span class="comment">/* delay 1 ms */</span></div>
+<div class="line"><a id="l01235" name="l01235"></a><span class="lineno"> 1235</span>        }</div>
+<div class="line"><a id="l01236" name="l01236"></a><span class="lineno"> 1236</span>        <span class="keywordflow">if</span> (timeout == 0)                                                                                <span class="comment">/* check timeout */</span></div>
+<div class="line"><a id="l01237" name="l01237"></a><span class="lineno"> 1237</span>        {</div>
+<div class="line"><a id="l01238" name="l01238"></a><span class="lineno"> 1238</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write status 2 timeout.\n&quot;</span>);                                    <span class="comment">/* write status 2 timeout */</span></div>
+<div class="line"><a id="l01239" name="l01239"></a><span class="lineno"> 1239</span>           </div>
+<div class="line"><a id="l01240" name="l01240"></a><span class="lineno"> 1240</span>            <span class="keywordflow">return</span> 4;                                                                                    <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l01241" name="l01241"></a><span class="lineno"> 1241</span>        }</div>
+<div class="line"><a id="l01242" name="l01242"></a><span class="lineno"> 1242</span>        <span class="keywordflow">else</span></div>
+<div class="line"><a id="l01243" name="l01243"></a><span class="lineno"> 1243</span>        {</div>
+<div class="line"><a id="l01244" name="l01244"></a><span class="lineno"> 1244</span>            <span class="keywordflow">return</span> 0;                                                                                    <span class="comment">/* success return 0 */</span></div>
+<div class="line"><a id="l01245" name="l01245"></a><span class="lineno"> 1245</span>        }</div>
+<div class="line"><a id="l01246" name="l01246"></a><span class="lineno"> 1246</span>    }</div>
+<div class="line"><a id="l01247" name="l01247"></a><span class="lineno"> 1247</span>}</div>
+</div>
+<div class="line"><a id="l01248" name="l01248"></a><span class="lineno"> 1248</span> </div>
+<div class="foldopen" id="foldopen01261" data-start="{" data-end="}">
+<div class="line"><a id="l01261" name="l01261"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#gada897a6c6d6acb99f4dd4ff9b65ad8ee"> 1261</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__advance__driver.html#gada897a6c6d6acb99f4dd4ff9b65ad8ee">w25qxx_set_status3</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint8_t status)</div>
+<div class="line"><a id="l01262" name="l01262"></a><span class="lineno"> 1262</span>{</div>
+<div class="line"><a id="l01263" name="l01263"></a><span class="lineno"> 1263</span>    uint8_t res;</div>
+<div class="line"><a id="l01264" name="l01264"></a><span class="lineno"> 1264</span>    uint8_t buf[2];</div>
+<div class="line"><a id="l01265" name="l01265"></a><span class="lineno"> 1265</span>    uint32_t timeout;</div>
+<div class="line"><a id="l01266" name="l01266"></a><span class="lineno"> 1266</span>    uint8_t status_check;</div>
+<div class="line"><a id="l01267" name="l01267"></a><span class="lineno"> 1267</span>    </div>
+<div class="line"><a id="l01268" name="l01268"></a><span class="lineno"> 1268</span>    <span class="keywordflow">if</span> (handle == NULL)                                                                                  <span class="comment">/* check handle */</span></div>
+<div class="line"><a id="l01269" name="l01269"></a><span class="lineno"> 1269</span>    {</div>
+<div class="line"><a id="l01270" name="l01270"></a><span class="lineno"> 1270</span>        <span class="keywordflow">return</span> 2;                                                                                        <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l01271" name="l01271"></a><span class="lineno"> 1271</span>    }   </div>
+<div class="line"><a id="l01272" name="l01272"></a><span class="lineno"> 1272</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">inited</a> != 1)                                                                             <span class="comment">/* check handle initialization */</span></div>
+<div class="line"><a id="l01273" name="l01273"></a><span class="lineno"> 1273</span>    {</div>
+<div class="line"><a id="l01274" name="l01274"></a><span class="lineno"> 1274</span>        <span class="keywordflow">return</span> 3;                                                                                        <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l01275" name="l01275"></a><span class="lineno"> 1275</span>    }</div>
+<div class="line"><a id="l01276" name="l01276"></a><span class="lineno"> 1276</span> </div>
+<div class="line"><a id="l01277" name="l01277"></a><span class="lineno"> 1277</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>)                                                        <span class="comment">/* spi interface */</span></div>
+<div class="line"><a id="l01278" name="l01278"></a><span class="lineno"> 1278</span>    {</div>
+<div class="line"><a id="l01279" name="l01279"></a><span class="lineno"> 1279</span>        <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">dual_quad_spi_enable</a> != 0)                                                           <span class="comment">/* enable dual quad spi */</span></div>
+<div class="line"><a id="l01280" name="l01280"></a><span class="lineno"> 1280</span>        {</div>
+<div class="line"><a id="l01281" name="l01281"></a><span class="lineno"> 1281</span>            res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#a7c9e980e30f499dd97b02935c91f2c02">W25QXX_COMMAND_VOLATILE_SR_WRITE_ENABLE</a>, 1,</div>
+<div class="line"><a id="l01282" name="l01282"></a><span class="lineno"> 1282</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l01283" name="l01283"></a><span class="lineno"> 1283</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l01284" name="l01284"></a><span class="lineno"> 1284</span>                                           0x00, NULL, 0x00,</div>
+<div class="line"><a id="l01285" name="l01285"></a><span class="lineno"> 1285</span>                                           NULL, 0x00, 0x00);                                            <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l01286" name="l01286"></a><span class="lineno"> 1286</span>            <span class="keywordflow">if</span> (res != 0)                                                                                <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l01287" name="l01287"></a><span class="lineno"> 1287</span>            {</div>
+<div class="line"><a id="l01288" name="l01288"></a><span class="lineno"> 1288</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                                   <span class="comment">/* write enable failed */</span></div>
+<div class="line"><a id="l01289" name="l01289"></a><span class="lineno"> 1289</span>               </div>
+<div class="line"><a id="l01290" name="l01290"></a><span class="lineno"> 1290</span>                <span class="keywordflow">return</span> 1;                                                                                <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l01291" name="l01291"></a><span class="lineno"> 1291</span>            }</div>
+<div class="line"><a id="l01292" name="l01292"></a><span class="lineno"> 1292</span>            buf[0] = status;                                                                             <span class="comment">/* set status */</span></div>
+<div class="line"><a id="l01293" name="l01293"></a><span class="lineno"> 1293</span>            res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#a6d099dc6afb59cc950d3abe96b840158">W25QXX_COMMAND_WRITE_STATUS_REG3</a>, 1,</div>
+<div class="line"><a id="l01294" name="l01294"></a><span class="lineno"> 1294</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l01295" name="l01295"></a><span class="lineno"> 1295</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l01296" name="l01296"></a><span class="lineno"> 1296</span>                                           0x00, (uint8_t *)buf, 1,</div>
+<div class="line"><a id="l01297" name="l01297"></a><span class="lineno"> 1297</span>                                           NULL, 0x00, 1);                                               <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l01298" name="l01298"></a><span class="lineno"> 1298</span>            <span class="keywordflow">if</span> (res != 0)                                                                                <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l01299" name="l01299"></a><span class="lineno"> 1299</span>            {</div>
+<div class="line"><a id="l01300" name="l01300"></a><span class="lineno"> 1300</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: set status3 failed.\n&quot;</span>);                                    <span class="comment">/* set status3 failed */</span></div>
+<div class="line"><a id="l01301" name="l01301"></a><span class="lineno"> 1301</span>               </div>
+<div class="line"><a id="l01302" name="l01302"></a><span class="lineno"> 1302</span>                <span class="keywordflow">return</span> 1;                                                                                <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l01303" name="l01303"></a><span class="lineno"> 1303</span>            }</div>
+<div class="line"><a id="l01304" name="l01304"></a><span class="lineno"> 1304</span>            </div>
+<div class="line"><a id="l01305" name="l01305"></a><span class="lineno"> 1305</span>            timeout = 1000;                                                                              <span class="comment">/* max 1000 ms */</span></div>
+<div class="line"><a id="l01306" name="l01306"></a><span class="lineno"> 1306</span>            <span class="keywordflow">while</span> (timeout != 0)                                                                         <span class="comment">/* check timeout */</span></div>
+<div class="line"><a id="l01307" name="l01307"></a><span class="lineno"> 1307</span>            {</div>
+<div class="line"><a id="l01308" name="l01308"></a><span class="lineno"> 1308</span>                res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#adf682969c34f4b31a87dd92dd18ccea3">W25QXX_COMMAND_READ_STATUS_REG1</a>, 1,</div>
+<div class="line"><a id="l01309" name="l01309"></a><span class="lineno"> 1309</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l01310" name="l01310"></a><span class="lineno"> 1310</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l01311" name="l01311"></a><span class="lineno"> 1311</span>                                               0x00, NULL, 0x00,</div>
+<div class="line"><a id="l01312" name="l01312"></a><span class="lineno"> 1312</span>                                              (uint8_t *)&amp;status_check, 1, 1);                           <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l01313" name="l01313"></a><span class="lineno"> 1313</span>                <span class="keywordflow">if</span> (res != 0)                                                                            <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l01314" name="l01314"></a><span class="lineno"> 1314</span>                {</div>
+<div class="line"><a id="l01315" name="l01315"></a><span class="lineno"> 1315</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: get status1 failed.\n&quot;</span>);                                <span class="comment">/* get status1 failed */</span></div>
+<div class="line"><a id="l01316" name="l01316"></a><span class="lineno"> 1316</span>                   </div>
+<div class="line"><a id="l01317" name="l01317"></a><span class="lineno"> 1317</span>                    <span class="keywordflow">return</span> 1;                                                                            <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l01318" name="l01318"></a><span class="lineno"> 1318</span>                }</div>
+<div class="line"><a id="l01319" name="l01319"></a><span class="lineno"> 1319</span>                <span class="keywordflow">if</span> ((status_check &amp; 0x01) == 0x00)                                                       <span class="comment">/* check status */</span></div>
+<div class="line"><a id="l01320" name="l01320"></a><span class="lineno"> 1320</span>                {</div>
+<div class="line"><a id="l01321" name="l01321"></a><span class="lineno"> 1321</span>                    <span class="keywordflow">break</span>;                                                                               <span class="comment">/* break */</span></div>
+<div class="line"><a id="l01322" name="l01322"></a><span class="lineno"> 1322</span>                }</div>
+<div class="line"><a id="l01323" name="l01323"></a><span class="lineno"> 1323</span>                timeout--;                                                                               <span class="comment">/* timeout-- */</span></div>
+<div class="line"><a id="l01324" name="l01324"></a><span class="lineno"> 1324</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a406c9433252b7366de417b7a60915c81">delay_ms</a>(1);                                                                     <span class="comment">/* delay 1 ms */</span></div>
+<div class="line"><a id="l01325" name="l01325"></a><span class="lineno"> 1325</span>            }</div>
+<div class="line"><a id="l01326" name="l01326"></a><span class="lineno"> 1326</span>            <span class="keywordflow">if</span> (timeout == 0)                                                                            <span class="comment">/* check timeout */</span></div>
+<div class="line"><a id="l01327" name="l01327"></a><span class="lineno"> 1327</span>            {</div>
+<div class="line"><a id="l01328" name="l01328"></a><span class="lineno"> 1328</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write status 3 timeout.\n&quot;</span>);                                <span class="comment">/* write status 3 timeout */</span></div>
+<div class="line"><a id="l01329" name="l01329"></a><span class="lineno"> 1329</span>               </div>
+<div class="line"><a id="l01330" name="l01330"></a><span class="lineno"> 1330</span>                <span class="keywordflow">return</span> 4;                                                                                <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l01331" name="l01331"></a><span class="lineno"> 1331</span>            }</div>
+<div class="line"><a id="l01332" name="l01332"></a><span class="lineno"> 1332</span>            <span class="keywordflow">else</span></div>
+<div class="line"><a id="l01333" name="l01333"></a><span class="lineno"> 1333</span>            {</div>
+<div class="line"><a id="l01334" name="l01334"></a><span class="lineno"> 1334</span>                <span class="keywordflow">return</span> 0;                                                                                <span class="comment">/* success return 0 */</span></div>
+<div class="line"><a id="l01335" name="l01335"></a><span class="lineno"> 1335</span>            }</div>
+<div class="line"><a id="l01336" name="l01336"></a><span class="lineno"> 1336</span>        }</div>
+<div class="line"><a id="l01337" name="l01337"></a><span class="lineno"> 1337</span>        <span class="keywordflow">else</span>                                                                                             <span class="comment">/* single spi */</span></div>
+<div class="line"><a id="l01338" name="l01338"></a><span class="lineno"> 1338</span>        {</div>
+<div class="line"><a id="l01339" name="l01339"></a><span class="lineno"> 1339</span>            buf[0] = <a class="code hl_define" href="driver__w25qxx_8c.html#a7c9e980e30f499dd97b02935c91f2c02">W25QXX_COMMAND_VOLATILE_SR_WRITE_ENABLE</a>;                                            <span class="comment">/* sr write enable command */</span></div>
+<div class="line"><a id="l01340" name="l01340"></a><span class="lineno"> 1340</span>            res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 1, NULL, 0);                           <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l01341" name="l01341"></a><span class="lineno"> 1341</span>            <span class="keywordflow">if</span> (res != 0)                                                                                <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l01342" name="l01342"></a><span class="lineno"> 1342</span>            {</div>
+<div class="line"><a id="l01343" name="l01343"></a><span class="lineno"> 1343</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                                   <span class="comment">/* write enable failed */</span></div>
+<div class="line"><a id="l01344" name="l01344"></a><span class="lineno"> 1344</span>               </div>
+<div class="line"><a id="l01345" name="l01345"></a><span class="lineno"> 1345</span>                <span class="keywordflow">return</span> 1;                                                                                <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l01346" name="l01346"></a><span class="lineno"> 1346</span>            }</div>
+<div class="line"><a id="l01347" name="l01347"></a><span class="lineno"> 1347</span>            buf[0] = <a class="code hl_define" href="driver__w25qxx_8c.html#a6d099dc6afb59cc950d3abe96b840158">W25QXX_COMMAND_WRITE_STATUS_REG3</a>;                                                   <span class="comment">/* write status3 command */</span></div>
+<div class="line"><a id="l01348" name="l01348"></a><span class="lineno"> 1348</span>            buf[1] = status;                                                                             <span class="comment">/* set status */</span></div>
+<div class="line"><a id="l01349" name="l01349"></a><span class="lineno"> 1349</span>            res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 2, NULL, 0);                           <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l01350" name="l01350"></a><span class="lineno"> 1350</span>            <span class="keywordflow">if</span> (res != 0)                                                                                <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l01351" name="l01351"></a><span class="lineno"> 1351</span>            {</div>
+<div class="line"><a id="l01352" name="l01352"></a><span class="lineno"> 1352</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: set status3 failed.\n&quot;</span>);                                    <span class="comment">/* set status3 failed */</span></div>
+<div class="line"><a id="l01353" name="l01353"></a><span class="lineno"> 1353</span>               </div>
+<div class="line"><a id="l01354" name="l01354"></a><span class="lineno"> 1354</span>                <span class="keywordflow">return</span> 1;                                                                                <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l01355" name="l01355"></a><span class="lineno"> 1355</span>            }</div>
+<div class="line"><a id="l01356" name="l01356"></a><span class="lineno"> 1356</span>            </div>
+<div class="line"><a id="l01357" name="l01357"></a><span class="lineno"> 1357</span>            timeout = 1000;                                                                              <span class="comment">/* max 1000 ms */</span></div>
+<div class="line"><a id="l01358" name="l01358"></a><span class="lineno"> 1358</span>            <span class="keywordflow">while</span> (timeout != 0)                                                                         <span class="comment">/* check timeout */</span></div>
+<div class="line"><a id="l01359" name="l01359"></a><span class="lineno"> 1359</span>            {</div>
+<div class="line"><a id="l01360" name="l01360"></a><span class="lineno"> 1360</span>                buf[0] = <a class="code hl_define" href="driver__w25qxx_8c.html#adf682969c34f4b31a87dd92dd18ccea3">W25QXX_COMMAND_READ_STATUS_REG1</a>;                                                <span class="comment">/* read status1 command */</span></div>
+<div class="line"><a id="l01361" name="l01361"></a><span class="lineno"> 1361</span>                res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 1,</div>
+<div class="line"><a id="l01362" name="l01362"></a><span class="lineno"> 1362</span>                                             (uint8_t *)&amp;status_check, 1);                               <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l01363" name="l01363"></a><span class="lineno"> 1363</span>                <span class="keywordflow">if</span> (res != 0)                                                                            <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l01364" name="l01364"></a><span class="lineno"> 1364</span>                {</div>
+<div class="line"><a id="l01365" name="l01365"></a><span class="lineno"> 1365</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: get status1 failed.\n&quot;</span>);                                <span class="comment">/* get status1 failed */</span></div>
+<div class="line"><a id="l01366" name="l01366"></a><span class="lineno"> 1366</span>                   </div>
+<div class="line"><a id="l01367" name="l01367"></a><span class="lineno"> 1367</span>                    <span class="keywordflow">return</span> 1;                                                                            <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l01368" name="l01368"></a><span class="lineno"> 1368</span>                }</div>
+<div class="line"><a id="l01369" name="l01369"></a><span class="lineno"> 1369</span>                <span class="keywordflow">if</span> ((status_check &amp; 0x01) == 0x00)                                                       <span class="comment">/* check status */</span></div>
+<div class="line"><a id="l01370" name="l01370"></a><span class="lineno"> 1370</span>                {</div>
+<div class="line"><a id="l01371" name="l01371"></a><span class="lineno"> 1371</span>                    <span class="keywordflow">break</span>;                                                                               <span class="comment">/* break */</span></div>
+<div class="line"><a id="l01372" name="l01372"></a><span class="lineno"> 1372</span>                }</div>
+<div class="line"><a id="l01373" name="l01373"></a><span class="lineno"> 1373</span>                timeout--;                                                                               <span class="comment">/* timeout-- */</span></div>
+<div class="line"><a id="l01374" name="l01374"></a><span class="lineno"> 1374</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a406c9433252b7366de417b7a60915c81">delay_ms</a>(1);                                                                     <span class="comment">/* delay 1 ms */</span></div>
+<div class="line"><a id="l01375" name="l01375"></a><span class="lineno"> 1375</span>            }</div>
+<div class="line"><a id="l01376" name="l01376"></a><span class="lineno"> 1376</span>            <span class="keywordflow">if</span> (timeout == 0)                                                                            <span class="comment">/* check timeout */</span></div>
+<div class="line"><a id="l01377" name="l01377"></a><span class="lineno"> 1377</span>            {</div>
+<div class="line"><a id="l01378" name="l01378"></a><span class="lineno"> 1378</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write status 3 timeout.\n&quot;</span>);                                <span class="comment">/* write status 3 timeout */</span></div>
+<div class="line"><a id="l01379" name="l01379"></a><span class="lineno"> 1379</span>               </div>
+<div class="line"><a id="l01380" name="l01380"></a><span class="lineno"> 1380</span>                <span class="keywordflow">return</span> 4;                                                                                <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l01381" name="l01381"></a><span class="lineno"> 1381</span>            }</div>
+<div class="line"><a id="l01382" name="l01382"></a><span class="lineno"> 1382</span>            <span class="keywordflow">else</span></div>
+<div class="line"><a id="l01383" name="l01383"></a><span class="lineno"> 1383</span>            {</div>
+<div class="line"><a id="l01384" name="l01384"></a><span class="lineno"> 1384</span>                <span class="keywordflow">return</span> 0;                                                                                <span class="comment">/* success return 0 */</span></div>
+<div class="line"><a id="l01385" name="l01385"></a><span class="lineno"> 1385</span>            }</div>
+<div class="line"><a id="l01386" name="l01386"></a><span class="lineno"> 1386</span>        }</div>
+<div class="line"><a id="l01387" name="l01387"></a><span class="lineno"> 1387</span>    }</div>
+<div class="line"><a id="l01388" name="l01388"></a><span class="lineno"> 1388</span>    <span class="keywordflow">else</span>                                                                                                 <span class="comment">/* qspi interface */</span></div>
+<div class="line"><a id="l01389" name="l01389"></a><span class="lineno"> 1389</span>    {</div>
+<div class="line"><a id="l01390" name="l01390"></a><span class="lineno"> 1390</span>        res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#a7c9e980e30f499dd97b02935c91f2c02">W25QXX_COMMAND_VOLATILE_SR_WRITE_ENABLE</a>, 4,</div>
+<div class="line"><a id="l01391" name="l01391"></a><span class="lineno"> 1391</span>                                       0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l01392" name="l01392"></a><span class="lineno"> 1392</span>                                       0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l01393" name="l01393"></a><span class="lineno"> 1393</span>                                       0x00, NULL, 0x00,</div>
+<div class="line"><a id="l01394" name="l01394"></a><span class="lineno"> 1394</span>                                       NULL, 0x00, 0x00);                                                <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l01395" name="l01395"></a><span class="lineno"> 1395</span>        <span class="keywordflow">if</span> (res != 0)                                                                                    <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l01396" name="l01396"></a><span class="lineno"> 1396</span>        {</div>
+<div class="line"><a id="l01397" name="l01397"></a><span class="lineno"> 1397</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                                       <span class="comment">/* write enable failed */</span></div>
+<div class="line"><a id="l01398" name="l01398"></a><span class="lineno"> 1398</span>           </div>
+<div class="line"><a id="l01399" name="l01399"></a><span class="lineno"> 1399</span>            <span class="keywordflow">return</span> 1;                                                                                    <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l01400" name="l01400"></a><span class="lineno"> 1400</span>        }</div>
+<div class="line"><a id="l01401" name="l01401"></a><span class="lineno"> 1401</span>        buf[0] = status;                                                                                 <span class="comment">/* set status */</span></div>
+<div class="line"><a id="l01402" name="l01402"></a><span class="lineno"> 1402</span>        res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#a6d099dc6afb59cc950d3abe96b840158">W25QXX_COMMAND_WRITE_STATUS_REG3</a>, 4,</div>
+<div class="line"><a id="l01403" name="l01403"></a><span class="lineno"> 1403</span>                                       0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l01404" name="l01404"></a><span class="lineno"> 1404</span>                                       0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l01405" name="l01405"></a><span class="lineno"> 1405</span>                                       0x00, (uint8_t *)buf, 1,</div>
+<div class="line"><a id="l01406" name="l01406"></a><span class="lineno"> 1406</span>                                       NULL, 0x00, 4);                                                   <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l01407" name="l01407"></a><span class="lineno"> 1407</span>        <span class="keywordflow">if</span> (res != 0)                                                                                    <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l01408" name="l01408"></a><span class="lineno"> 1408</span>        {</div>
+<div class="line"><a id="l01409" name="l01409"></a><span class="lineno"> 1409</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: set status3 failed.\n&quot;</span>);                                        <span class="comment">/* set status3 failed */</span></div>
+<div class="line"><a id="l01410" name="l01410"></a><span class="lineno"> 1410</span>           </div>
+<div class="line"><a id="l01411" name="l01411"></a><span class="lineno"> 1411</span>            <span class="keywordflow">return</span> 1;                                                                                    <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l01412" name="l01412"></a><span class="lineno"> 1412</span>        }</div>
+<div class="line"><a id="l01413" name="l01413"></a><span class="lineno"> 1413</span>        </div>
+<div class="line"><a id="l01414" name="l01414"></a><span class="lineno"> 1414</span>        timeout = 1000;                                                                                  <span class="comment">/* max 1000 ms */</span></div>
+<div class="line"><a id="l01415" name="l01415"></a><span class="lineno"> 1415</span>        <span class="keywordflow">while</span> (timeout != 0)                                                                             <span class="comment">/* check timeout */</span></div>
+<div class="line"><a id="l01416" name="l01416"></a><span class="lineno"> 1416</span>        {</div>
+<div class="line"><a id="l01417" name="l01417"></a><span class="lineno"> 1417</span>            res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#adf682969c34f4b31a87dd92dd18ccea3">W25QXX_COMMAND_READ_STATUS_REG1</a>, 4,</div>
+<div class="line"><a id="l01418" name="l01418"></a><span class="lineno"> 1418</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l01419" name="l01419"></a><span class="lineno"> 1419</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l01420" name="l01420"></a><span class="lineno"> 1420</span>                                           0x00, NULL, 0x00,</div>
+<div class="line"><a id="l01421" name="l01421"></a><span class="lineno"> 1421</span>                                          (uint8_t *)&amp;status_check, 1, 4);                               <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l01422" name="l01422"></a><span class="lineno"> 1422</span>            <span class="keywordflow">if</span> (res != 0)                                                                                <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l01423" name="l01423"></a><span class="lineno"> 1423</span>            {</div>
+<div class="line"><a id="l01424" name="l01424"></a><span class="lineno"> 1424</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: get status1 failed.\n&quot;</span>);                                    <span class="comment">/* get status1 failed */</span></div>
+<div class="line"><a id="l01425" name="l01425"></a><span class="lineno"> 1425</span>               </div>
+<div class="line"><a id="l01426" name="l01426"></a><span class="lineno"> 1426</span>                <span class="keywordflow">return</span> 1;                                                                                <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l01427" name="l01427"></a><span class="lineno"> 1427</span>            }</div>
+<div class="line"><a id="l01428" name="l01428"></a><span class="lineno"> 1428</span>            <span class="keywordflow">if</span> ((status_check &amp; 0x01) == 0x00)                                                           <span class="comment">/* check status */</span></div>
+<div class="line"><a id="l01429" name="l01429"></a><span class="lineno"> 1429</span>            {</div>
+<div class="line"><a id="l01430" name="l01430"></a><span class="lineno"> 1430</span>                <span class="keywordflow">break</span>;                                                                                   <span class="comment">/* break */</span></div>
+<div class="line"><a id="l01431" name="l01431"></a><span class="lineno"> 1431</span>            }</div>
+<div class="line"><a id="l01432" name="l01432"></a><span class="lineno"> 1432</span>            timeout--;                                                                                   <span class="comment">/* timeout-- */</span></div>
+<div class="line"><a id="l01433" name="l01433"></a><span class="lineno"> 1433</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a406c9433252b7366de417b7a60915c81">delay_ms</a>(1);                                                                         <span class="comment">/* delay 1 ms */</span></div>
+<div class="line"><a id="l01434" name="l01434"></a><span class="lineno"> 1434</span>        }</div>
+<div class="line"><a id="l01435" name="l01435"></a><span class="lineno"> 1435</span>        <span class="keywordflow">if</span> (timeout == 0)                                                                                <span class="comment">/* check timeout */</span></div>
+<div class="line"><a id="l01436" name="l01436"></a><span class="lineno"> 1436</span>        {</div>
+<div class="line"><a id="l01437" name="l01437"></a><span class="lineno"> 1437</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write status 3 timeout.\n&quot;</span>);                                    <span class="comment">/* write status 3 timeout */</span></div>
+<div class="line"><a id="l01438" name="l01438"></a><span class="lineno"> 1438</span>           </div>
+<div class="line"><a id="l01439" name="l01439"></a><span class="lineno"> 1439</span>            <span class="keywordflow">return</span> 4;                                                                                    <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l01440" name="l01440"></a><span class="lineno"> 1440</span>        }</div>
+<div class="line"><a id="l01441" name="l01441"></a><span class="lineno"> 1441</span>        <span class="keywordflow">else</span></div>
+<div class="line"><a id="l01442" name="l01442"></a><span class="lineno"> 1442</span>        {</div>
+<div class="line"><a id="l01443" name="l01443"></a><span class="lineno"> 1443</span>            <span class="keywordflow">return</span> 0;                                                                                    <span class="comment">/* success return 0 */</span></div>
+<div class="line"><a id="l01444" name="l01444"></a><span class="lineno"> 1444</span>        }</div>
+<div class="line"><a id="l01445" name="l01445"></a><span class="lineno"> 1445</span>    }</div>
+<div class="line"><a id="l01446" name="l01446"></a><span class="lineno"> 1446</span>}</div>
+</div>
+<div class="line"><a id="l01447" name="l01447"></a><span class="lineno"> 1447</span> </div>
+<div class="foldopen" id="foldopen01459" data-start="{" data-end="}">
+<div class="line"><a id="l01459" name="l01459"></a><span class="lineno"><a class="line" href="group__w25qxx__basic__driver.html#ga0862833b36831f92684980b2e21f2e39"> 1459</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__basic__driver.html#ga0862833b36831f92684980b2e21f2e39">w25qxx_chip_erase</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle)</div>
+<div class="line"><a id="l01460" name="l01460"></a><span class="lineno"> 1460</span>{</div>
+<div class="line"><a id="l01461" name="l01461"></a><span class="lineno"> 1461</span>    uint8_t res;</div>
+<div class="line"><a id="l01462" name="l01462"></a><span class="lineno"> 1462</span>    uint8_t status;</div>
+<div class="line"><a id="l01463" name="l01463"></a><span class="lineno"> 1463</span>    uint8_t buf[1];</div>
+<div class="line"><a id="l01464" name="l01464"></a><span class="lineno"> 1464</span>    uint32_t timeout;</div>
+<div class="line"><a id="l01465" name="l01465"></a><span class="lineno"> 1465</span>    </div>
+<div class="line"><a id="l01466" name="l01466"></a><span class="lineno"> 1466</span>    <span class="keywordflow">if</span> (handle == NULL)                                                                            <span class="comment">/* check handle */</span></div>
+<div class="line"><a id="l01467" name="l01467"></a><span class="lineno"> 1467</span>    {</div>
+<div class="line"><a id="l01468" name="l01468"></a><span class="lineno"> 1468</span>        <span class="keywordflow">return</span> 2;                                                                                  <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l01469" name="l01469"></a><span class="lineno"> 1469</span>    }   </div>
+<div class="line"><a id="l01470" name="l01470"></a><span class="lineno"> 1470</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">inited</a> != 1)                                                                       <span class="comment">/* check handle initialization */</span></div>
+<div class="line"><a id="l01471" name="l01471"></a><span class="lineno"> 1471</span>    {</div>
+<div class="line"><a id="l01472" name="l01472"></a><span class="lineno"> 1472</span>        <span class="keywordflow">return</span> 3;                                                                                  <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l01473" name="l01473"></a><span class="lineno"> 1473</span>    }</div>
+<div class="line"><a id="l01474" name="l01474"></a><span class="lineno"> 1474</span> </div>
+<div class="line"><a id="l01475" name="l01475"></a><span class="lineno"> 1475</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>)                                                  <span class="comment">/* spi interface */</span></div>
+<div class="line"><a id="l01476" name="l01476"></a><span class="lineno"> 1476</span>    {</div>
+<div class="line"><a id="l01477" name="l01477"></a><span class="lineno"> 1477</span>        <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">dual_quad_spi_enable</a> != 0)                                                     <span class="comment">/* enable dual quad spi */</span></div>
+<div class="line"><a id="l01478" name="l01478"></a><span class="lineno"> 1478</span>        {</div>
+<div class="line"><a id="l01479" name="l01479"></a><span class="lineno"> 1479</span>            res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>, 1,</div>
+<div class="line"><a id="l01480" name="l01480"></a><span class="lineno"> 1480</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l01481" name="l01481"></a><span class="lineno"> 1481</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l01482" name="l01482"></a><span class="lineno"> 1482</span>                                           0x00, NULL, 0x00,</div>
+<div class="line"><a id="l01483" name="l01483"></a><span class="lineno"> 1483</span>                                           NULL, 0x00, 0x00);                                      <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l01484" name="l01484"></a><span class="lineno"> 1484</span>            <span class="keywordflow">if</span> (res != 0)                                                                          <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l01485" name="l01485"></a><span class="lineno"> 1485</span>            {</div>
+<div class="line"><a id="l01486" name="l01486"></a><span class="lineno"> 1486</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                             <span class="comment">/* write enable failed */</span></div>
+<div class="line"><a id="l01487" name="l01487"></a><span class="lineno"> 1487</span>               </div>
+<div class="line"><a id="l01488" name="l01488"></a><span class="lineno"> 1488</span>                <span class="keywordflow">return</span> 1;                                                                          <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l01489" name="l01489"></a><span class="lineno"> 1489</span>            }</div>
+<div class="line"><a id="l01490" name="l01490"></a><span class="lineno"> 1490</span>            res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#a63ec9ecd709fcb69107756f253616a6e">W25QXX_COMMAND_CHIP_ERASE</a>, 1,</div>
+<div class="line"><a id="l01491" name="l01491"></a><span class="lineno"> 1491</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l01492" name="l01492"></a><span class="lineno"> 1492</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l01493" name="l01493"></a><span class="lineno"> 1493</span>                                           0x00, NULL, 0x00,</div>
+<div class="line"><a id="l01494" name="l01494"></a><span class="lineno"> 1494</span>                                           NULL, 0x00, 0x00);                                      <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l01495" name="l01495"></a><span class="lineno"> 1495</span>            <span class="keywordflow">if</span> (res != 0)                                                                          <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l01496" name="l01496"></a><span class="lineno"> 1496</span>            {</div>
+<div class="line"><a id="l01497" name="l01497"></a><span class="lineno"> 1497</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: chip erase failed.\n&quot;</span>);                               <span class="comment">/* chip erase failed */</span></div>
+<div class="line"><a id="l01498" name="l01498"></a><span class="lineno"> 1498</span>               </div>
+<div class="line"><a id="l01499" name="l01499"></a><span class="lineno"> 1499</span>                <span class="keywordflow">return</span> 1;                                                                          <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l01500" name="l01500"></a><span class="lineno"> 1500</span>            }</div>
+<div class="line"><a id="l01501" name="l01501"></a><span class="lineno"> 1501</span>            timeout = 400 * 1000;                                                                  <span class="comment">/* max 400s */</span></div>
+<div class="line"><a id="l01502" name="l01502"></a><span class="lineno"> 1502</span>            <span class="keywordflow">while</span> (timeout != 0)                                                                   <span class="comment">/* check timeout */</span></div>
+<div class="line"><a id="l01503" name="l01503"></a><span class="lineno"> 1503</span>            {</div>
+<div class="line"><a id="l01504" name="l01504"></a><span class="lineno"> 1504</span>                res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#adf682969c34f4b31a87dd92dd18ccea3">W25QXX_COMMAND_READ_STATUS_REG1</a>, 1,</div>
+<div class="line"><a id="l01505" name="l01505"></a><span class="lineno"> 1505</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l01506" name="l01506"></a><span class="lineno"> 1506</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l01507" name="l01507"></a><span class="lineno"> 1507</span>                                               0x00, NULL, 0x00,</div>
+<div class="line"><a id="l01508" name="l01508"></a><span class="lineno"> 1508</span>                                              (uint8_t *)&amp;status, 1, 1);                           <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l01509" name="l01509"></a><span class="lineno"> 1509</span>                <span class="keywordflow">if</span> (res != 0)                                                                      <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l01510" name="l01510"></a><span class="lineno"> 1510</span>                {</div>
+<div class="line"><a id="l01511" name="l01511"></a><span class="lineno"> 1511</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: get status1 failed.\n&quot;</span>);                          <span class="comment">/* get status1 failed */</span></div>
+<div class="line"><a id="l01512" name="l01512"></a><span class="lineno"> 1512</span>                   </div>
+<div class="line"><a id="l01513" name="l01513"></a><span class="lineno"> 1513</span>                    <span class="keywordflow">return</span> 1;                                                                      <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l01514" name="l01514"></a><span class="lineno"> 1514</span>                }</div>
+<div class="line"><a id="l01515" name="l01515"></a><span class="lineno"> 1515</span>                <span class="keywordflow">if</span> ((status &amp; 0x01) == 0x00)                                                       <span class="comment">/* check status */</span></div>
+<div class="line"><a id="l01516" name="l01516"></a><span class="lineno"> 1516</span>                {</div>
+<div class="line"><a id="l01517" name="l01517"></a><span class="lineno"> 1517</span>                    <span class="keywordflow">break</span>;                                                                         <span class="comment">/* break */</span></div>
+<div class="line"><a id="l01518" name="l01518"></a><span class="lineno"> 1518</span>                }</div>
+<div class="line"><a id="l01519" name="l01519"></a><span class="lineno"> 1519</span>                timeout--;                                                                         <span class="comment">/* timeout-- */</span></div>
+<div class="line"><a id="l01520" name="l01520"></a><span class="lineno"> 1520</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a406c9433252b7366de417b7a60915c81">delay_ms</a>(1);                                                               <span class="comment">/* delay 1 ms */</span></div>
+<div class="line"><a id="l01521" name="l01521"></a><span class="lineno"> 1521</span>            }</div>
+<div class="line"><a id="l01522" name="l01522"></a><span class="lineno"> 1522</span>            <span class="keywordflow">if</span> (timeout == 0)                                                                      <span class="comment">/* check timeout */</span></div>
+<div class="line"><a id="l01523" name="l01523"></a><span class="lineno"> 1523</span>            {</div>
+<div class="line"><a id="l01524" name="l01524"></a><span class="lineno"> 1524</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: erase timeout.\n&quot;</span>);                                   <span class="comment">/* erase timeout */</span></div>
+<div class="line"><a id="l01525" name="l01525"></a><span class="lineno"> 1525</span>               </div>
+<div class="line"><a id="l01526" name="l01526"></a><span class="lineno"> 1526</span>                <span class="keywordflow">return</span> 4;                                                                          <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l01527" name="l01527"></a><span class="lineno"> 1527</span>            }</div>
+<div class="line"><a id="l01528" name="l01528"></a><span class="lineno"> 1528</span>            <span class="keywordflow">else</span></div>
+<div class="line"><a id="l01529" name="l01529"></a><span class="lineno"> 1529</span>            {</div>
+<div class="line"><a id="l01530" name="l01530"></a><span class="lineno"> 1530</span>                <span class="keywordflow">return</span> 0;                                                                          <span class="comment">/* success return 0 */</span></div>
+<div class="line"><a id="l01531" name="l01531"></a><span class="lineno"> 1531</span>            }</div>
+<div class="line"><a id="l01532" name="l01532"></a><span class="lineno"> 1532</span>        }</div>
+<div class="line"><a id="l01533" name="l01533"></a><span class="lineno"> 1533</span>        <span class="keywordflow">else</span>                                                                                       <span class="comment">/* single spi */</span></div>
+<div class="line"><a id="l01534" name="l01534"></a><span class="lineno"> 1534</span>        {</div>
+<div class="line"><a id="l01535" name="l01535"></a><span class="lineno"> 1535</span>            buf[0] = <a class="code hl_define" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>;                                                  <span class="comment">/* write enable command */</span></div>
+<div class="line"><a id="l01536" name="l01536"></a><span class="lineno"> 1536</span>            res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 1, NULL, 0);                     <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l01537" name="l01537"></a><span class="lineno"> 1537</span>            <span class="keywordflow">if</span> (res != 0)                                                                          <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l01538" name="l01538"></a><span class="lineno"> 1538</span>            {</div>
+<div class="line"><a id="l01539" name="l01539"></a><span class="lineno"> 1539</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                             <span class="comment">/* write enable failed */</span></div>
+<div class="line"><a id="l01540" name="l01540"></a><span class="lineno"> 1540</span>               </div>
+<div class="line"><a id="l01541" name="l01541"></a><span class="lineno"> 1541</span>                <span class="keywordflow">return</span> 1;                                                                          <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l01542" name="l01542"></a><span class="lineno"> 1542</span>            }</div>
+<div class="line"><a id="l01543" name="l01543"></a><span class="lineno"> 1543</span>            buf[0] = <a class="code hl_define" href="driver__w25qxx_8c.html#a63ec9ecd709fcb69107756f253616a6e">W25QXX_COMMAND_CHIP_ERASE</a>;                                                    <span class="comment">/* chip erase command */</span></div>
+<div class="line"><a id="l01544" name="l01544"></a><span class="lineno"> 1544</span>            res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 1, NULL, 0);                     <span class="comment">/* spi qspi write read */</span></div>
+<div class="line"><a id="l01545" name="l01545"></a><span class="lineno"> 1545</span>            <span class="keywordflow">if</span> (res != 0)                                                                          <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l01546" name="l01546"></a><span class="lineno"> 1546</span>            {</div>
+<div class="line"><a id="l01547" name="l01547"></a><span class="lineno"> 1547</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: chip erase failed.\n&quot;</span>);                               <span class="comment">/* chip erase failed */</span></div>
+<div class="line"><a id="l01548" name="l01548"></a><span class="lineno"> 1548</span>               </div>
+<div class="line"><a id="l01549" name="l01549"></a><span class="lineno"> 1549</span>                <span class="keywordflow">return</span> 1;                                                                          <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l01550" name="l01550"></a><span class="lineno"> 1550</span>            }</div>
+<div class="line"><a id="l01551" name="l01551"></a><span class="lineno"> 1551</span>            timeout = 400 * 1000;                                                                  <span class="comment">/* max 400s */</span></div>
+<div class="line"><a id="l01552" name="l01552"></a><span class="lineno"> 1552</span>            <span class="keywordflow">while</span> (timeout != 0)                                                                   <span class="comment">/* check timeout */</span></div>
+<div class="line"><a id="l01553" name="l01553"></a><span class="lineno"> 1553</span>            {</div>
+<div class="line"><a id="l01554" name="l01554"></a><span class="lineno"> 1554</span>                buf[0] = <a class="code hl_define" href="driver__w25qxx_8c.html#adf682969c34f4b31a87dd92dd18ccea3">W25QXX_COMMAND_READ_STATUS_REG1</a>;                                          <span class="comment">/* read status1 command */</span></div>
+<div class="line"><a id="l01555" name="l01555"></a><span class="lineno"> 1555</span>                res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 1,</div>
+<div class="line"><a id="l01556" name="l01556"></a><span class="lineno"> 1556</span>                                             (uint8_t *)&amp;status, 1);                               <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l01557" name="l01557"></a><span class="lineno"> 1557</span>                <span class="keywordflow">if</span> (res != 0)                                                                      <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l01558" name="l01558"></a><span class="lineno"> 1558</span>                {</div>
+<div class="line"><a id="l01559" name="l01559"></a><span class="lineno"> 1559</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: get status1 failed.\n&quot;</span>);                          <span class="comment">/* get status1 failed */</span></div>
+<div class="line"><a id="l01560" name="l01560"></a><span class="lineno"> 1560</span>                   </div>
+<div class="line"><a id="l01561" name="l01561"></a><span class="lineno"> 1561</span>                    <span class="keywordflow">return</span> 1;                                                                      <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l01562" name="l01562"></a><span class="lineno"> 1562</span>                }</div>
+<div class="line"><a id="l01563" name="l01563"></a><span class="lineno"> 1563</span>                <span class="keywordflow">if</span> ((status &amp; 0x01) == 0x00)                                                       <span class="comment">/* check status */</span></div>
+<div class="line"><a id="l01564" name="l01564"></a><span class="lineno"> 1564</span>                {</div>
+<div class="line"><a id="l01565" name="l01565"></a><span class="lineno"> 1565</span>                    <span class="keywordflow">break</span>;                                                                         <span class="comment">/* break */</span></div>
+<div class="line"><a id="l01566" name="l01566"></a><span class="lineno"> 1566</span>                }</div>
+<div class="line"><a id="l01567" name="l01567"></a><span class="lineno"> 1567</span>                timeout--;                                                                         <span class="comment">/* timeout-- */</span></div>
+<div class="line"><a id="l01568" name="l01568"></a><span class="lineno"> 1568</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a406c9433252b7366de417b7a60915c81">delay_ms</a>(1);                                                               <span class="comment">/* delay 1 ms */</span></div>
+<div class="line"><a id="l01569" name="l01569"></a><span class="lineno"> 1569</span>            }</div>
+<div class="line"><a id="l01570" name="l01570"></a><span class="lineno"> 1570</span>            <span class="keywordflow">if</span> (timeout == 0)                                                                      <span class="comment">/* check timeout */</span></div>
+<div class="line"><a id="l01571" name="l01571"></a><span class="lineno"> 1571</span>            {</div>
+<div class="line"><a id="l01572" name="l01572"></a><span class="lineno"> 1572</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: erase timeout.\n&quot;</span>);                                   <span class="comment">/* erase timeout */</span></div>
+<div class="line"><a id="l01573" name="l01573"></a><span class="lineno"> 1573</span>               </div>
+<div class="line"><a id="l01574" name="l01574"></a><span class="lineno"> 1574</span>                <span class="keywordflow">return</span> 4;                                                                          <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l01575" name="l01575"></a><span class="lineno"> 1575</span>            }</div>
+<div class="line"><a id="l01576" name="l01576"></a><span class="lineno"> 1576</span>            <span class="keywordflow">else</span></div>
+<div class="line"><a id="l01577" name="l01577"></a><span class="lineno"> 1577</span>            {</div>
+<div class="line"><a id="l01578" name="l01578"></a><span class="lineno"> 1578</span>                <span class="keywordflow">return</span> 0;                                                                          <span class="comment">/* success return 0 */</span></div>
+<div class="line"><a id="l01579" name="l01579"></a><span class="lineno"> 1579</span>            }</div>
+<div class="line"><a id="l01580" name="l01580"></a><span class="lineno"> 1580</span>        }</div>
+<div class="line"><a id="l01581" name="l01581"></a><span class="lineno"> 1581</span>    }</div>
+<div class="line"><a id="l01582" name="l01582"></a><span class="lineno"> 1582</span>    <span class="keywordflow">else</span>                                                                                           <span class="comment">/* qspi interface */</span></div>
+<div class="line"><a id="l01583" name="l01583"></a><span class="lineno"> 1583</span>    {</div>
+<div class="line"><a id="l01584" name="l01584"></a><span class="lineno"> 1584</span>        res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>, 4,</div>
+<div class="line"><a id="l01585" name="l01585"></a><span class="lineno"> 1585</span>                                       0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l01586" name="l01586"></a><span class="lineno"> 1586</span>                                       0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l01587" name="l01587"></a><span class="lineno"> 1587</span>                                       0x00, NULL, 0x00,</div>
+<div class="line"><a id="l01588" name="l01588"></a><span class="lineno"> 1588</span>                                       NULL, 0x00, 0x00);                                          <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l01589" name="l01589"></a><span class="lineno"> 1589</span>        <span class="keywordflow">if</span> (res != 0)                                                                              <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l01590" name="l01590"></a><span class="lineno"> 1590</span>        {</div>
+<div class="line"><a id="l01591" name="l01591"></a><span class="lineno"> 1591</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                                 <span class="comment">/* write enable failed */</span></div>
+<div class="line"><a id="l01592" name="l01592"></a><span class="lineno"> 1592</span>           </div>
+<div class="line"><a id="l01593" name="l01593"></a><span class="lineno"> 1593</span>            <span class="keywordflow">return</span> 1;                                                                              <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l01594" name="l01594"></a><span class="lineno"> 1594</span>        }</div>
+<div class="line"><a id="l01595" name="l01595"></a><span class="lineno"> 1595</span>        res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#a63ec9ecd709fcb69107756f253616a6e">W25QXX_COMMAND_CHIP_ERASE</a>, 4,</div>
+<div class="line"><a id="l01596" name="l01596"></a><span class="lineno"> 1596</span>                                       0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l01597" name="l01597"></a><span class="lineno"> 1597</span>                                       0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l01598" name="l01598"></a><span class="lineno"> 1598</span>                                       0x00, NULL, 0x00,</div>
+<div class="line"><a id="l01599" name="l01599"></a><span class="lineno"> 1599</span>                                       NULL, 0x00, 0x00);                                          <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l01600" name="l01600"></a><span class="lineno"> 1600</span>        <span class="keywordflow">if</span> (res != 0)                                                                              <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l01601" name="l01601"></a><span class="lineno"> 1601</span>        {</div>
+<div class="line"><a id="l01602" name="l01602"></a><span class="lineno"> 1602</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: chip erase failed.\n&quot;</span>);                                   <span class="comment">/* chip erase failed */</span></div>
+<div class="line"><a id="l01603" name="l01603"></a><span class="lineno"> 1603</span>           </div>
+<div class="line"><a id="l01604" name="l01604"></a><span class="lineno"> 1604</span>            <span class="keywordflow">return</span> 1;                                                                              <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l01605" name="l01605"></a><span class="lineno"> 1605</span>        }</div>
+<div class="line"><a id="l01606" name="l01606"></a><span class="lineno"> 1606</span>        timeout = 400 * 1000;                                                                      <span class="comment">/* max 400s */</span></div>
+<div class="line"><a id="l01607" name="l01607"></a><span class="lineno"> 1607</span>        <span class="keywordflow">while</span> (timeout != 0)                                                                       <span class="comment">/* check timeout */</span></div>
+<div class="line"><a id="l01608" name="l01608"></a><span class="lineno"> 1608</span>        {</div>
+<div class="line"><a id="l01609" name="l01609"></a><span class="lineno"> 1609</span>            res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#adf682969c34f4b31a87dd92dd18ccea3">W25QXX_COMMAND_READ_STATUS_REG1</a>, 4,</div>
+<div class="line"><a id="l01610" name="l01610"></a><span class="lineno"> 1610</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l01611" name="l01611"></a><span class="lineno"> 1611</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l01612" name="l01612"></a><span class="lineno"> 1612</span>                                           0x00, NULL, 0x00,</div>
+<div class="line"><a id="l01613" name="l01613"></a><span class="lineno"> 1613</span>                                          (uint8_t *)&amp;status, 1, 4);                               <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l01614" name="l01614"></a><span class="lineno"> 1614</span>            <span class="keywordflow">if</span> (res != 0)                                                                          <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l01615" name="l01615"></a><span class="lineno"> 1615</span>            {</div>
+<div class="line"><a id="l01616" name="l01616"></a><span class="lineno"> 1616</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: get status1 failed.\n&quot;</span>);                              <span class="comment">/* get status1 failed */</span></div>
+<div class="line"><a id="l01617" name="l01617"></a><span class="lineno"> 1617</span>               </div>
+<div class="line"><a id="l01618" name="l01618"></a><span class="lineno"> 1618</span>                <span class="keywordflow">return</span> 1;                                                                          <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l01619" name="l01619"></a><span class="lineno"> 1619</span>            }</div>
+<div class="line"><a id="l01620" name="l01620"></a><span class="lineno"> 1620</span>            <span class="keywordflow">if</span> ((status &amp; 0x01) == 0x00)                                                           <span class="comment">/* check status */</span></div>
+<div class="line"><a id="l01621" name="l01621"></a><span class="lineno"> 1621</span>            {</div>
+<div class="line"><a id="l01622" name="l01622"></a><span class="lineno"> 1622</span>                <span class="keywordflow">break</span>;                                                                             <span class="comment">/* break */</span></div>
+<div class="line"><a id="l01623" name="l01623"></a><span class="lineno"> 1623</span>            }</div>
+<div class="line"><a id="l01624" name="l01624"></a><span class="lineno"> 1624</span>            timeout--;                                                                             <span class="comment">/* timeout-- */</span></div>
+<div class="line"><a id="l01625" name="l01625"></a><span class="lineno"> 1625</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a406c9433252b7366de417b7a60915c81">delay_ms</a>(1);                                                                   <span class="comment">/* delay 1 ms */</span></div>
+<div class="line"><a id="l01626" name="l01626"></a><span class="lineno"> 1626</span>        }</div>
+<div class="line"><a id="l01627" name="l01627"></a><span class="lineno"> 1627</span>        <span class="keywordflow">if</span> (timeout == 0)                                                                          <span class="comment">/* check timeout */</span></div>
+<div class="line"><a id="l01628" name="l01628"></a><span class="lineno"> 1628</span>        {</div>
+<div class="line"><a id="l01629" name="l01629"></a><span class="lineno"> 1629</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: erase timeout.\n&quot;</span>);                                       <span class="comment">/* erase timeout */</span></div>
+<div class="line"><a id="l01630" name="l01630"></a><span class="lineno"> 1630</span>           </div>
+<div class="line"><a id="l01631" name="l01631"></a><span class="lineno"> 1631</span>            <span class="keywordflow">return</span> 4;                                                                              <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l01632" name="l01632"></a><span class="lineno"> 1632</span>        }</div>
+<div class="line"><a id="l01633" name="l01633"></a><span class="lineno"> 1633</span>        <span class="keywordflow">else</span></div>
+<div class="line"><a id="l01634" name="l01634"></a><span class="lineno"> 1634</span>        {</div>
+<div class="line"><a id="l01635" name="l01635"></a><span class="lineno"> 1635</span>            <span class="keywordflow">return</span> 0;                                                                              <span class="comment">/* success return 0 */</span></div>
+<div class="line"><a id="l01636" name="l01636"></a><span class="lineno"> 1636</span>        }</div>
+<div class="line"><a id="l01637" name="l01637"></a><span class="lineno"> 1637</span>    }</div>
+<div class="line"><a id="l01638" name="l01638"></a><span class="lineno"> 1638</span>}</div>
+</div>
+<div class="line"><a id="l01639" name="l01639"></a><span class="lineno"> 1639</span> </div>
+<div class="foldopen" id="foldopen01650" data-start="{" data-end="}">
+<div class="line"><a id="l01650" name="l01650"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#gac7fbabc574c250eec100be861f5918ff"> 1650</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__advance__driver.html#gac7fbabc574c250eec100be861f5918ff">w25qxx_erase_program_suspend</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle)</div>
+<div class="line"><a id="l01651" name="l01651"></a><span class="lineno"> 1651</span>{</div>
+<div class="line"><a id="l01652" name="l01652"></a><span class="lineno"> 1652</span>    uint8_t res;</div>
+<div class="line"><a id="l01653" name="l01653"></a><span class="lineno"> 1653</span>    uint8_t buf[1];</div>
+<div class="line"><a id="l01654" name="l01654"></a><span class="lineno"> 1654</span>    </div>
+<div class="line"><a id="l01655" name="l01655"></a><span class="lineno"> 1655</span>    <span class="keywordflow">if</span> (handle == NULL)                                                                       <span class="comment">/* check handle */</span></div>
+<div class="line"><a id="l01656" name="l01656"></a><span class="lineno"> 1656</span>    {</div>
+<div class="line"><a id="l01657" name="l01657"></a><span class="lineno"> 1657</span>        <span class="keywordflow">return</span> 2;                                                                             <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l01658" name="l01658"></a><span class="lineno"> 1658</span>    }   </div>
+<div class="line"><a id="l01659" name="l01659"></a><span class="lineno"> 1659</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">inited</a> != 1)                                                                  <span class="comment">/* check handle initialization */</span></div>
+<div class="line"><a id="l01660" name="l01660"></a><span class="lineno"> 1660</span>    {</div>
+<div class="line"><a id="l01661" name="l01661"></a><span class="lineno"> 1661</span>        <span class="keywordflow">return</span> 3;                                                                             <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l01662" name="l01662"></a><span class="lineno"> 1662</span>    }</div>
+<div class="line"><a id="l01663" name="l01663"></a><span class="lineno"> 1663</span>    </div>
+<div class="line"><a id="l01664" name="l01664"></a><span class="lineno"> 1664</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>)                                             <span class="comment">/* spi interface */</span></div>
+<div class="line"><a id="l01665" name="l01665"></a><span class="lineno"> 1665</span>    {</div>
+<div class="line"><a id="l01666" name="l01666"></a><span class="lineno"> 1666</span>        <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">dual_quad_spi_enable</a> != 0)                                                <span class="comment">/* enable dual quad spi */</span></div>
+<div class="line"><a id="l01667" name="l01667"></a><span class="lineno"> 1667</span>        {</div>
+<div class="line"><a id="l01668" name="l01668"></a><span class="lineno"> 1668</span>            res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#a43f9a1e3c03d4a7d2a991e81f0e89f51">W25QXX_COMMAND_ERASE_PROGRAM_SUSPEND</a>, 1,</div>
+<div class="line"><a id="l01669" name="l01669"></a><span class="lineno"> 1669</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l01670" name="l01670"></a><span class="lineno"> 1670</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l01671" name="l01671"></a><span class="lineno"> 1671</span>                                           0x00, NULL, 0x00,</div>
+<div class="line"><a id="l01672" name="l01672"></a><span class="lineno"> 1672</span>                                           NULL, 0x00, 0x00);                                 <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l01673" name="l01673"></a><span class="lineno"> 1673</span>            <span class="keywordflow">if</span> (res != 0)                                                                     <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l01674" name="l01674"></a><span class="lineno"> 1674</span>            {</div>
+<div class="line"><a id="l01675" name="l01675"></a><span class="lineno"> 1675</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: erase program suspend failed.\n&quot;</span>);               <span class="comment">/* erase program suspend failed */</span></div>
+<div class="line"><a id="l01676" name="l01676"></a><span class="lineno"> 1676</span>               </div>
+<div class="line"><a id="l01677" name="l01677"></a><span class="lineno"> 1677</span>                <span class="keywordflow">return</span> 1;                                                                     <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l01678" name="l01678"></a><span class="lineno"> 1678</span>            }</div>
+<div class="line"><a id="l01679" name="l01679"></a><span class="lineno"> 1679</span>        }</div>
+<div class="line"><a id="l01680" name="l01680"></a><span class="lineno"> 1680</span>        <span class="keywordflow">else</span>                                                                                  <span class="comment">/* single spi */</span></div>
+<div class="line"><a id="l01681" name="l01681"></a><span class="lineno"> 1681</span>        {</div>
+<div class="line"><a id="l01682" name="l01682"></a><span class="lineno"> 1682</span>            buf[0] = <a class="code hl_define" href="driver__w25qxx_8c.html#a43f9a1e3c03d4a7d2a991e81f0e89f51">W25QXX_COMMAND_ERASE_PROGRAM_SUSPEND</a>;                                    <span class="comment">/* erase program suspend command */</span></div>
+<div class="line"><a id="l01683" name="l01683"></a><span class="lineno"> 1683</span>            res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 1, NULL, 0);                <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l01684" name="l01684"></a><span class="lineno"> 1684</span>            <span class="keywordflow">if</span> (res != 0)                                                                     <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l01685" name="l01685"></a><span class="lineno"> 1685</span>            {</div>
+<div class="line"><a id="l01686" name="l01686"></a><span class="lineno"> 1686</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: erase program suspend failed.\n&quot;</span>);               <span class="comment">/* erase program suspend failed */</span></div>
+<div class="line"><a id="l01687" name="l01687"></a><span class="lineno"> 1687</span>               </div>
+<div class="line"><a id="l01688" name="l01688"></a><span class="lineno"> 1688</span>                <span class="keywordflow">return</span> 1;                                                                     <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l01689" name="l01689"></a><span class="lineno"> 1689</span>            }</div>
+<div class="line"><a id="l01690" name="l01690"></a><span class="lineno"> 1690</span>            </div>
+<div class="line"><a id="l01691" name="l01691"></a><span class="lineno"> 1691</span>            <span class="keywordflow">return</span> 0;                                                                         <span class="comment">/* success return 0 */</span></div>
+<div class="line"><a id="l01692" name="l01692"></a><span class="lineno"> 1692</span>        }</div>
+<div class="line"><a id="l01693" name="l01693"></a><span class="lineno"> 1693</span>    }</div>
+<div class="line"><a id="l01694" name="l01694"></a><span class="lineno"> 1694</span>    <span class="keywordflow">else</span>                                                                                      <span class="comment">/* qspi interface */</span></div>
+<div class="line"><a id="l01695" name="l01695"></a><span class="lineno"> 1695</span>    {</div>
+<div class="line"><a id="l01696" name="l01696"></a><span class="lineno"> 1696</span>        res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#a43f9a1e3c03d4a7d2a991e81f0e89f51">W25QXX_COMMAND_ERASE_PROGRAM_SUSPEND</a>, 4,</div>
+<div class="line"><a id="l01697" name="l01697"></a><span class="lineno"> 1697</span>                                       0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l01698" name="l01698"></a><span class="lineno"> 1698</span>                                       0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l01699" name="l01699"></a><span class="lineno"> 1699</span>                                       0x00, NULL, 0x00,</div>
+<div class="line"><a id="l01700" name="l01700"></a><span class="lineno"> 1700</span>                                       NULL, 0x00, 0x00);                                     <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l01701" name="l01701"></a><span class="lineno"> 1701</span>        <span class="keywordflow">if</span> (res != 0)                                                                         <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l01702" name="l01702"></a><span class="lineno"> 1702</span>        {</div>
+<div class="line"><a id="l01703" name="l01703"></a><span class="lineno"> 1703</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: erase program suspend failed.\n&quot;</span>);                   <span class="comment">/* erase program suspend failed */</span></div>
+<div class="line"><a id="l01704" name="l01704"></a><span class="lineno"> 1704</span>           </div>
+<div class="line"><a id="l01705" name="l01705"></a><span class="lineno"> 1705</span>            <span class="keywordflow">return</span> 1;                                                                         <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l01706" name="l01706"></a><span class="lineno"> 1706</span>        }</div>
+<div class="line"><a id="l01707" name="l01707"></a><span class="lineno"> 1707</span>    }</div>
+<div class="line"><a id="l01708" name="l01708"></a><span class="lineno"> 1708</span>    </div>
+<div class="line"><a id="l01709" name="l01709"></a><span class="lineno"> 1709</span>    <span class="keywordflow">return</span> 0;                                                                                 <span class="comment">/* success return 0 */</span></div>
+<div class="line"><a id="l01710" name="l01710"></a><span class="lineno"> 1710</span>}</div>
+</div>
+<div class="line"><a id="l01711" name="l01711"></a><span class="lineno"> 1711</span> </div>
+<div class="foldopen" id="foldopen01722" data-start="{" data-end="}">
+<div class="line"><a id="l01722" name="l01722"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#ga05c69ac66309544eba4ff38a69f24c00"> 1722</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__advance__driver.html#ga05c69ac66309544eba4ff38a69f24c00">w25qxx_erase_program_resume</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle)</div>
+<div class="line"><a id="l01723" name="l01723"></a><span class="lineno"> 1723</span>{</div>
+<div class="line"><a id="l01724" name="l01724"></a><span class="lineno"> 1724</span>    uint8_t res;</div>
+<div class="line"><a id="l01725" name="l01725"></a><span class="lineno"> 1725</span>    uint8_t buf[1];</div>
+<div class="line"><a id="l01726" name="l01726"></a><span class="lineno"> 1726</span>    </div>
+<div class="line"><a id="l01727" name="l01727"></a><span class="lineno"> 1727</span>    <span class="keywordflow">if</span> (handle == NULL)                                                                       <span class="comment">/* check handle */</span></div>
+<div class="line"><a id="l01728" name="l01728"></a><span class="lineno"> 1728</span>    {</div>
+<div class="line"><a id="l01729" name="l01729"></a><span class="lineno"> 1729</span>        <span class="keywordflow">return</span> 2;                                                                             <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l01730" name="l01730"></a><span class="lineno"> 1730</span>    }   </div>
+<div class="line"><a id="l01731" name="l01731"></a><span class="lineno"> 1731</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">inited</a> != 1)                                                                  <span class="comment">/* check handle initialization */</span></div>
+<div class="line"><a id="l01732" name="l01732"></a><span class="lineno"> 1732</span>    {</div>
+<div class="line"><a id="l01733" name="l01733"></a><span class="lineno"> 1733</span>        <span class="keywordflow">return</span> 3;                                                                             <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l01734" name="l01734"></a><span class="lineno"> 1734</span>    }</div>
+<div class="line"><a id="l01735" name="l01735"></a><span class="lineno"> 1735</span>    </div>
+<div class="line"><a id="l01736" name="l01736"></a><span class="lineno"> 1736</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>)                                             <span class="comment">/* spi interface */</span></div>
+<div class="line"><a id="l01737" name="l01737"></a><span class="lineno"> 1737</span>    {</div>
+<div class="line"><a id="l01738" name="l01738"></a><span class="lineno"> 1738</span>        <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">dual_quad_spi_enable</a> != 0)                                                <span class="comment">/* enable dual quad spi */</span></div>
+<div class="line"><a id="l01739" name="l01739"></a><span class="lineno"> 1739</span>        {</div>
+<div class="line"><a id="l01740" name="l01740"></a><span class="lineno"> 1740</span>            res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#a0daeb46fb8b219a3d6b37d426c5c0e95">W25QXX_COMMAND_ERASE_PROGRAM_RESUME</a>, 1,</div>
+<div class="line"><a id="l01741" name="l01741"></a><span class="lineno"> 1741</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l01742" name="l01742"></a><span class="lineno"> 1742</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l01743" name="l01743"></a><span class="lineno"> 1743</span>                                           0x00, NULL, 0x00,</div>
+<div class="line"><a id="l01744" name="l01744"></a><span class="lineno"> 1744</span>                                           NULL, 0x00, 0x00);                                 <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l01745" name="l01745"></a><span class="lineno"> 1745</span>            <span class="keywordflow">if</span> (res != 0)                                                                     <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l01746" name="l01746"></a><span class="lineno"> 1746</span>            {</div>
+<div class="line"><a id="l01747" name="l01747"></a><span class="lineno"> 1747</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: erase program resume failed.\n&quot;</span>);                <span class="comment">/* erase program resume failed */</span></div>
+<div class="line"><a id="l01748" name="l01748"></a><span class="lineno"> 1748</span>               </div>
+<div class="line"><a id="l01749" name="l01749"></a><span class="lineno"> 1749</span>                <span class="keywordflow">return</span> 1;                                                                     <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l01750" name="l01750"></a><span class="lineno"> 1750</span>            }</div>
+<div class="line"><a id="l01751" name="l01751"></a><span class="lineno"> 1751</span>        }</div>
+<div class="line"><a id="l01752" name="l01752"></a><span class="lineno"> 1752</span>        <span class="keywordflow">else</span>                                                                                  <span class="comment">/* single spi */</span></div>
+<div class="line"><a id="l01753" name="l01753"></a><span class="lineno"> 1753</span>        {</div>
+<div class="line"><a id="l01754" name="l01754"></a><span class="lineno"> 1754</span>            buf[0] = <a class="code hl_define" href="driver__w25qxx_8c.html#a0daeb46fb8b219a3d6b37d426c5c0e95">W25QXX_COMMAND_ERASE_PROGRAM_RESUME</a>;                                     <span class="comment">/* erase program resume command */</span></div>
+<div class="line"><a id="l01755" name="l01755"></a><span class="lineno"> 1755</span>            res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 1, NULL, 0);                <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l01756" name="l01756"></a><span class="lineno"> 1756</span>            <span class="keywordflow">if</span> (res != 0)                                                                     <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l01757" name="l01757"></a><span class="lineno"> 1757</span>            {</div>
+<div class="line"><a id="l01758" name="l01758"></a><span class="lineno"> 1758</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: erase program resume failed.\n&quot;</span>);                <span class="comment">/* erase program resume failed */</span></div>
+<div class="line"><a id="l01759" name="l01759"></a><span class="lineno"> 1759</span>               </div>
+<div class="line"><a id="l01760" name="l01760"></a><span class="lineno"> 1760</span>                <span class="keywordflow">return</span> 1;                                                                     <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l01761" name="l01761"></a><span class="lineno"> 1761</span>            }</div>
+<div class="line"><a id="l01762" name="l01762"></a><span class="lineno"> 1762</span>        }</div>
+<div class="line"><a id="l01763" name="l01763"></a><span class="lineno"> 1763</span>    }</div>
+<div class="line"><a id="l01764" name="l01764"></a><span class="lineno"> 1764</span>    <span class="keywordflow">else</span>                                                                                      <span class="comment">/* qspi interface */</span></div>
+<div class="line"><a id="l01765" name="l01765"></a><span class="lineno"> 1765</span>    {</div>
+<div class="line"><a id="l01766" name="l01766"></a><span class="lineno"> 1766</span>        res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#a0daeb46fb8b219a3d6b37d426c5c0e95">W25QXX_COMMAND_ERASE_PROGRAM_RESUME</a>, 4,</div>
+<div class="line"><a id="l01767" name="l01767"></a><span class="lineno"> 1767</span>                                       0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l01768" name="l01768"></a><span class="lineno"> 1768</span>                                       0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l01769" name="l01769"></a><span class="lineno"> 1769</span>                                       0x00, NULL, 0x00,</div>
+<div class="line"><a id="l01770" name="l01770"></a><span class="lineno"> 1770</span>                                       NULL, 0x00, 0x00);                                     <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l01771" name="l01771"></a><span class="lineno"> 1771</span>        <span class="keywordflow">if</span> (res != 0)                                                                         <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l01772" name="l01772"></a><span class="lineno"> 1772</span>        {</div>
+<div class="line"><a id="l01773" name="l01773"></a><span class="lineno"> 1773</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: erase program resume failed.\n&quot;</span>);                    <span class="comment">/* erase program resume failed */</span></div>
+<div class="line"><a id="l01774" name="l01774"></a><span class="lineno"> 1774</span>           </div>
+<div class="line"><a id="l01775" name="l01775"></a><span class="lineno"> 1775</span>            <span class="keywordflow">return</span> 1;                                                                         <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l01776" name="l01776"></a><span class="lineno"> 1776</span>        }</div>
+<div class="line"><a id="l01777" name="l01777"></a><span class="lineno"> 1777</span>    }</div>
+<div class="line"><a id="l01778" name="l01778"></a><span class="lineno"> 1778</span>    </div>
+<div class="line"><a id="l01779" name="l01779"></a><span class="lineno"> 1779</span>    <span class="keywordflow">return</span> 0;                                                                                 <span class="comment">/* success return 0 */</span></div>
+<div class="line"><a id="l01780" name="l01780"></a><span class="lineno"> 1780</span>}</div>
+</div>
+<div class="line"><a id="l01781" name="l01781"></a><span class="lineno"> 1781</span> </div>
+<div class="foldopen" id="foldopen01792" data-start="{" data-end="}">
+<div class="line"><a id="l01792" name="l01792"></a><span class="lineno"><a class="line" href="group__w25qxx__basic__driver.html#gae4effce67e36120325e3c7b245b90142"> 1792</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__basic__driver.html#gae4effce67e36120325e3c7b245b90142">w25qxx_power_down</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle)</div>
+<div class="line"><a id="l01793" name="l01793"></a><span class="lineno"> 1793</span>{</div>
+<div class="line"><a id="l01794" name="l01794"></a><span class="lineno"> 1794</span>    uint8_t res;</div>
+<div class="line"><a id="l01795" name="l01795"></a><span class="lineno"> 1795</span>    uint8_t buf[1];</div>
+<div class="line"><a id="l01796" name="l01796"></a><span class="lineno"> 1796</span>    </div>
+<div class="line"><a id="l01797" name="l01797"></a><span class="lineno"> 1797</span>    <span class="keywordflow">if</span> (handle == NULL)                                                            <span class="comment">/* check handle */</span></div>
+<div class="line"><a id="l01798" name="l01798"></a><span class="lineno"> 1798</span>    {</div>
+<div class="line"><a id="l01799" name="l01799"></a><span class="lineno"> 1799</span>        <span class="keywordflow">return</span> 2;                                                                  <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l01800" name="l01800"></a><span class="lineno"> 1800</span>    }   </div>
+<div class="line"><a id="l01801" name="l01801"></a><span class="lineno"> 1801</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">inited</a> != 1)                                                       <span class="comment">/* check handle initialization */</span></div>
+<div class="line"><a id="l01802" name="l01802"></a><span class="lineno"> 1802</span>    {</div>
+<div class="line"><a id="l01803" name="l01803"></a><span class="lineno"> 1803</span>        <span class="keywordflow">return</span> 3;                                                                  <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l01804" name="l01804"></a><span class="lineno"> 1804</span>    }</div>
+<div class="line"><a id="l01805" name="l01805"></a><span class="lineno"> 1805</span> </div>
+<div class="line"><a id="l01806" name="l01806"></a><span class="lineno"> 1806</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>)                                  <span class="comment">/* spi interface */</span></div>
+<div class="line"><a id="l01807" name="l01807"></a><span class="lineno"> 1807</span>    {</div>
+<div class="line"><a id="l01808" name="l01808"></a><span class="lineno"> 1808</span>        <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">dual_quad_spi_enable</a> != 0)                                     <span class="comment">/* enable dual quad spi */</span></div>
+<div class="line"><a id="l01809" name="l01809"></a><span class="lineno"> 1809</span>        {</div>
+<div class="line"><a id="l01810" name="l01810"></a><span class="lineno"> 1810</span>            res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#a6fe4d603e33b7c8b8310a884e02a130b">W25QXX_COMMAND_POWER_DOWN</a>, 1,</div>
+<div class="line"><a id="l01811" name="l01811"></a><span class="lineno"> 1811</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l01812" name="l01812"></a><span class="lineno"> 1812</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l01813" name="l01813"></a><span class="lineno"> 1813</span>                                           0x00, NULL, 0x00,</div>
+<div class="line"><a id="l01814" name="l01814"></a><span class="lineno"> 1814</span>                                           NULL, 0x00, 0x00);                      <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l01815" name="l01815"></a><span class="lineno"> 1815</span>            <span class="keywordflow">if</span> (res != 0)                                                          <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l01816" name="l01816"></a><span class="lineno"> 1816</span>            {</div>
+<div class="line"><a id="l01817" name="l01817"></a><span class="lineno"> 1817</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: power down failed.\n&quot;</span>);               <span class="comment">/* power down failed */</span></div>
+<div class="line"><a id="l01818" name="l01818"></a><span class="lineno"> 1818</span>               </div>
+<div class="line"><a id="l01819" name="l01819"></a><span class="lineno"> 1819</span>                <span class="keywordflow">return</span> 1;                                                          <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l01820" name="l01820"></a><span class="lineno"> 1820</span>            }</div>
+<div class="line"><a id="l01821" name="l01821"></a><span class="lineno"> 1821</span>        }</div>
+<div class="line"><a id="l01822" name="l01822"></a><span class="lineno"> 1822</span>        <span class="keywordflow">else</span>                                                                       <span class="comment">/* single spi */</span></div>
+<div class="line"><a id="l01823" name="l01823"></a><span class="lineno"> 1823</span>        {</div>
+<div class="line"><a id="l01824" name="l01824"></a><span class="lineno"> 1824</span>            buf[0] = <a class="code hl_define" href="driver__w25qxx_8c.html#a6fe4d603e33b7c8b8310a884e02a130b">W25QXX_COMMAND_POWER_DOWN</a>;                                    <span class="comment">/* power down command */</span></div>
+<div class="line"><a id="l01825" name="l01825"></a><span class="lineno"> 1825</span>            res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf,</div>
+<div class="line"><a id="l01826" name="l01826"></a><span class="lineno"> 1826</span>                                          1, NULL, 0);                             <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l01827" name="l01827"></a><span class="lineno"> 1827</span>            <span class="keywordflow">if</span> (res != 0)                                                          <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l01828" name="l01828"></a><span class="lineno"> 1828</span>            {</div>
+<div class="line"><a id="l01829" name="l01829"></a><span class="lineno"> 1829</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: power down failed.\n&quot;</span>);               <span class="comment">/* power down failed */</span></div>
+<div class="line"><a id="l01830" name="l01830"></a><span class="lineno"> 1830</span>               </div>
+<div class="line"><a id="l01831" name="l01831"></a><span class="lineno"> 1831</span>                <span class="keywordflow">return</span> 1;                                                          <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l01832" name="l01832"></a><span class="lineno"> 1832</span>            }</div>
+<div class="line"><a id="l01833" name="l01833"></a><span class="lineno"> 1833</span>        }</div>
+<div class="line"><a id="l01834" name="l01834"></a><span class="lineno"> 1834</span>    }</div>
+<div class="line"><a id="l01835" name="l01835"></a><span class="lineno"> 1835</span>    <span class="keywordflow">else</span>                                                                           <span class="comment">/* qspi interface */</span></div>
+<div class="line"><a id="l01836" name="l01836"></a><span class="lineno"> 1836</span>    {</div>
+<div class="line"><a id="l01837" name="l01837"></a><span class="lineno"> 1837</span>        res = a_w25qxx_qspi_write_read(handle, 0xFF, 4,</div>
+<div class="line"><a id="l01838" name="l01838"></a><span class="lineno"> 1838</span>                                       0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l01839" name="l01839"></a><span class="lineno"> 1839</span>                                       0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l01840" name="l01840"></a><span class="lineno"> 1840</span>                                       0, NULL, 0x00,</div>
+<div class="line"><a id="l01841" name="l01841"></a><span class="lineno"> 1841</span>                                       NULL, 0x00, 0);                             <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l01842" name="l01842"></a><span class="lineno"> 1842</span>        <span class="keywordflow">if</span> (res != 0)                                                              <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l01843" name="l01843"></a><span class="lineno"> 1843</span>        {</div>
+<div class="line"><a id="l01844" name="l01844"></a><span class="lineno"> 1844</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: exit qspi mode failed.\n&quot;</span>);               <span class="comment">/* exit qspi mode failed */</span></div>
+<div class="line"><a id="l01845" name="l01845"></a><span class="lineno"> 1845</span>           </div>
+<div class="line"><a id="l01846" name="l01846"></a><span class="lineno"> 1846</span>            <span class="keywordflow">return</span> 1;                                                              <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l01847" name="l01847"></a><span class="lineno"> 1847</span>        }</div>
+<div class="line"><a id="l01848" name="l01848"></a><span class="lineno"> 1848</span>        handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a406c9433252b7366de417b7a60915c81">delay_ms</a>(10);                                                      <span class="comment">/* delay 10 ms */</span></div>
+<div class="line"><a id="l01849" name="l01849"></a><span class="lineno"> 1849</span>        res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#a6fe4d603e33b7c8b8310a884e02a130b">W25QXX_COMMAND_POWER_DOWN</a>, 4,</div>
+<div class="line"><a id="l01850" name="l01850"></a><span class="lineno"> 1850</span>                                       0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l01851" name="l01851"></a><span class="lineno"> 1851</span>                                       0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l01852" name="l01852"></a><span class="lineno"> 1852</span>                                       0x00, NULL, 0x00,</div>
+<div class="line"><a id="l01853" name="l01853"></a><span class="lineno"> 1853</span>                                       NULL, 0x00, 0x00);                          <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l01854" name="l01854"></a><span class="lineno"> 1854</span>        <span class="keywordflow">if</span> (res != 0)                                                              <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l01855" name="l01855"></a><span class="lineno"> 1855</span>        {</div>
+<div class="line"><a id="l01856" name="l01856"></a><span class="lineno"> 1856</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: power down failed.\n&quot;</span>);                   <span class="comment">/* power down failed */</span></div>
+<div class="line"><a id="l01857" name="l01857"></a><span class="lineno"> 1857</span>           </div>
+<div class="line"><a id="l01858" name="l01858"></a><span class="lineno"> 1858</span>            <span class="keywordflow">return</span> 1;                                                              <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l01859" name="l01859"></a><span class="lineno"> 1859</span>        }</div>
+<div class="line"><a id="l01860" name="l01860"></a><span class="lineno"> 1860</span>    }</div>
+<div class="line"><a id="l01861" name="l01861"></a><span class="lineno"> 1861</span>    </div>
+<div class="line"><a id="l01862" name="l01862"></a><span class="lineno"> 1862</span>    <span class="keywordflow">return</span> 0;                                                                      <span class="comment">/* success return 0 */</span></div>
+<div class="line"><a id="l01863" name="l01863"></a><span class="lineno"> 1863</span>}</div>
+</div>
+<div class="line"><a id="l01864" name="l01864"></a><span class="lineno"> 1864</span> </div>
+<div class="foldopen" id="foldopen01875" data-start="{" data-end="}">
+<div class="line"><a id="l01875" name="l01875"></a><span class="lineno"><a class="line" href="group__w25qxx__basic__driver.html#ga09c9b52877516a2ee4c080dc249e7331"> 1875</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__basic__driver.html#ga09c9b52877516a2ee4c080dc249e7331">w25qxx_release_power_down</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle)</div>
+<div class="line"><a id="l01876" name="l01876"></a><span class="lineno"> 1876</span>{</div>
+<div class="line"><a id="l01877" name="l01877"></a><span class="lineno"> 1877</span>    uint8_t res;</div>
+<div class="line"><a id="l01878" name="l01878"></a><span class="lineno"> 1878</span>    uint8_t id;</div>
+<div class="line"><a id="l01879" name="l01879"></a><span class="lineno"> 1879</span>    uint8_t buf[4];</div>
+<div class="line"><a id="l01880" name="l01880"></a><span class="lineno"> 1880</span>    </div>
+<div class="line"><a id="l01881" name="l01881"></a><span class="lineno"> 1881</span>    <span class="keywordflow">if</span> (handle == NULL)                                                                    <span class="comment">/* check handle */</span></div>
+<div class="line"><a id="l01882" name="l01882"></a><span class="lineno"> 1882</span>    {</div>
+<div class="line"><a id="l01883" name="l01883"></a><span class="lineno"> 1883</span>        <span class="keywordflow">return</span> 2;                                                                          <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l01884" name="l01884"></a><span class="lineno"> 1884</span>    }   </div>
+<div class="line"><a id="l01885" name="l01885"></a><span class="lineno"> 1885</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">inited</a> != 1)                                                               <span class="comment">/* check handle initialization */</span></div>
+<div class="line"><a id="l01886" name="l01886"></a><span class="lineno"> 1886</span>    {</div>
+<div class="line"><a id="l01887" name="l01887"></a><span class="lineno"> 1887</span>        <span class="keywordflow">return</span> 3;                                                                          <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l01888" name="l01888"></a><span class="lineno"> 1888</span>    }</div>
+<div class="line"><a id="l01889" name="l01889"></a><span class="lineno"> 1889</span>    </div>
+<div class="line"><a id="l01890" name="l01890"></a><span class="lineno"> 1890</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>)                                          <span class="comment">/* spi interface */</span></div>
+<div class="line"><a id="l01891" name="l01891"></a><span class="lineno"> 1891</span>    {</div>
+<div class="line"><a id="l01892" name="l01892"></a><span class="lineno"> 1892</span>        <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">dual_quad_spi_enable</a> != 0)                                             <span class="comment">/* enable dual quad spi */</span></div>
+<div class="line"><a id="l01893" name="l01893"></a><span class="lineno"> 1893</span>        {</div>
+<div class="line"><a id="l01894" name="l01894"></a><span class="lineno"> 1894</span>            res = a_w25qxx_qspi_write_read(handle,</div>
+<div class="line"><a id="l01895" name="l01895"></a><span class="lineno"> 1895</span>                                           <a class="code hl_define" href="driver__w25qxx_8c.html#ad344065461b2c71521017984f040b425">W25QXX_COMMAND_RELEASE_POWER_DOWN</a>, 1,</div>
+<div class="line"><a id="l01896" name="l01896"></a><span class="lineno"> 1896</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l01897" name="l01897"></a><span class="lineno"> 1897</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l01898" name="l01898"></a><span class="lineno"> 1898</span>                                           3 * 8, NULL, 0x00,</div>
+<div class="line"><a id="l01899" name="l01899"></a><span class="lineno"> 1899</span>                                          (uint8_t *)&amp;<span class="keywordtype">id</span>, 1, 1);                           <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l01900" name="l01900"></a><span class="lineno"> 1900</span>            <span class="keywordflow">if</span> (res != 0)                                                                  <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l01901" name="l01901"></a><span class="lineno"> 1901</span>            {</div>
+<div class="line"><a id="l01902" name="l01902"></a><span class="lineno"> 1902</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: release power down failed.\n&quot;</span>);               <span class="comment">/* release power down failed */</span></div>
+<div class="line"><a id="l01903" name="l01903"></a><span class="lineno"> 1903</span>               </div>
+<div class="line"><a id="l01904" name="l01904"></a><span class="lineno"> 1904</span>                <span class="keywordflow">return</span> 1;                                                                  <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l01905" name="l01905"></a><span class="lineno"> 1905</span>            }</div>
+<div class="line"><a id="l01906" name="l01906"></a><span class="lineno"> 1906</span>        }</div>
+<div class="line"><a id="l01907" name="l01907"></a><span class="lineno"> 1907</span>        <span class="keywordflow">else</span>                                                                               <span class="comment">/* single spi */</span></div>
+<div class="line"><a id="l01908" name="l01908"></a><span class="lineno"> 1908</span>        {</div>
+<div class="line"><a id="l01909" name="l01909"></a><span class="lineno"> 1909</span>            buf[0] = <a class="code hl_define" href="driver__w25qxx_8c.html#ad344065461b2c71521017984f040b425">W25QXX_COMMAND_RELEASE_POWER_DOWN</a>;                                    <span class="comment">/* release power down command */</span></div>
+<div class="line"><a id="l01910" name="l01910"></a><span class="lineno"> 1910</span>            buf[1] = 0xFF;                                                                 <span class="comment">/* dummy */</span></div>
+<div class="line"><a id="l01911" name="l01911"></a><span class="lineno"> 1911</span>            buf[2] = 0xFF;                                                                 <span class="comment">/* dummy */</span></div>
+<div class="line"><a id="l01912" name="l01912"></a><span class="lineno"> 1912</span>            buf[3] = 0xFF;                                                                 <span class="comment">/* dummy */</span></div>
+<div class="line"><a id="l01913" name="l01913"></a><span class="lineno"> 1913</span>            res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 4, (uint8_t *)&amp;<span class="keywordtype">id</span>, 1);   <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l01914" name="l01914"></a><span class="lineno"> 1914</span>            <span class="keywordflow">if</span> (res != 0)                                                                  <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l01915" name="l01915"></a><span class="lineno"> 1915</span>            {</div>
+<div class="line"><a id="l01916" name="l01916"></a><span class="lineno"> 1916</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: release power down failed.\n&quot;</span>);               <span class="comment">/* release power down failed */</span></div>
+<div class="line"><a id="l01917" name="l01917"></a><span class="lineno"> 1917</span>               </div>
+<div class="line"><a id="l01918" name="l01918"></a><span class="lineno"> 1918</span>                <span class="keywordflow">return</span> 1;                                                                  <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l01919" name="l01919"></a><span class="lineno"> 1919</span>            }</div>
+<div class="line"><a id="l01920" name="l01920"></a><span class="lineno"> 1920</span>        }</div>
+<div class="line"><a id="l01921" name="l01921"></a><span class="lineno"> 1921</span>    }</div>
+<div class="line"><a id="l01922" name="l01922"></a><span class="lineno"> 1922</span>    <span class="keywordflow">else</span>                                                                                   <span class="comment">/* qspi interface */</span></div>
+<div class="line"><a id="l01923" name="l01923"></a><span class="lineno"> 1923</span>    {</div>
+<div class="line"><a id="l01924" name="l01924"></a><span class="lineno"> 1924</span>        res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#ad344065461b2c71521017984f040b425">W25QXX_COMMAND_RELEASE_POWER_DOWN</a>, 4,</div>
+<div class="line"><a id="l01925" name="l01925"></a><span class="lineno"> 1925</span>                                       0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l01926" name="l01926"></a><span class="lineno"> 1926</span>                                       0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l01927" name="l01927"></a><span class="lineno"> 1927</span>                                       6, NULL, 0x00,</div>
+<div class="line"><a id="l01928" name="l01928"></a><span class="lineno"> 1928</span>                                      (uint8_t *)&amp;<span class="keywordtype">id</span>, 1, 4);                               <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l01929" name="l01929"></a><span class="lineno"> 1929</span>        <span class="keywordflow">if</span> (res != 0)                                                                      <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l01930" name="l01930"></a><span class="lineno"> 1930</span>        {</div>
+<div class="line"><a id="l01931" name="l01931"></a><span class="lineno"> 1931</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: release power down failed.\n&quot;</span>);                   <span class="comment">/* release power down failed */</span></div>
+<div class="line"><a id="l01932" name="l01932"></a><span class="lineno"> 1932</span>           </div>
+<div class="line"><a id="l01933" name="l01933"></a><span class="lineno"> 1933</span>            <span class="keywordflow">return</span> 1;                                                                      <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l01934" name="l01934"></a><span class="lineno"> 1934</span>        }</div>
+<div class="line"><a id="l01935" name="l01935"></a><span class="lineno"> 1935</span>    }</div>
+<div class="line"><a id="l01936" name="l01936"></a><span class="lineno"> 1936</span>    </div>
+<div class="line"><a id="l01937" name="l01937"></a><span class="lineno"> 1937</span>    <span class="keywordflow">return</span> 0;                                                                              <span class="comment">/* success return 0 */</span></div>
+<div class="line"><a id="l01938" name="l01938"></a><span class="lineno"> 1938</span>}</div>
+</div>
+<div class="line"><a id="l01939" name="l01939"></a><span class="lineno"> 1939</span> </div>
+<div class="foldopen" id="foldopen01952" data-start="{" data-end="}">
+<div class="line"><a id="l01952" name="l01952"></a><span class="lineno"><a class="line" href="group__w25qxx__basic__driver.html#ga921836a777b082ff4d0f322ccfda6b22"> 1952</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__basic__driver.html#ga921836a777b082ff4d0f322ccfda6b22">w25qxx_get_manufacturer_device_id</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint8_t *manufacturer, uint8_t *device_id)</div>
+<div class="line"><a id="l01953" name="l01953"></a><span class="lineno"> 1953</span>{</div>
+<div class="line"><a id="l01954" name="l01954"></a><span class="lineno"> 1954</span>    uint8_t res;</div>
+<div class="line"><a id="l01955" name="l01955"></a><span class="lineno"> 1955</span>    uint8_t buf[4];</div>
+<div class="line"><a id="l01956" name="l01956"></a><span class="lineno"> 1956</span>    uint8_t out[2];</div>
+<div class="line"><a id="l01957" name="l01957"></a><span class="lineno"> 1957</span>    </div>
+<div class="line"><a id="l01958" name="l01958"></a><span class="lineno"> 1958</span>    <span class="keywordflow">if</span> (handle == NULL)                                                                    <span class="comment">/* check handle */</span></div>
+<div class="line"><a id="l01959" name="l01959"></a><span class="lineno"> 1959</span>    {</div>
+<div class="line"><a id="l01960" name="l01960"></a><span class="lineno"> 1960</span>        <span class="keywordflow">return</span> 2;                                                                          <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l01961" name="l01961"></a><span class="lineno"> 1961</span>    }   </div>
+<div class="line"><a id="l01962" name="l01962"></a><span class="lineno"> 1962</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">inited</a> != 1)                                                               <span class="comment">/* check handle initialization */</span></div>
+<div class="line"><a id="l01963" name="l01963"></a><span class="lineno"> 1963</span>    {</div>
+<div class="line"><a id="l01964" name="l01964"></a><span class="lineno"> 1964</span>        <span class="keywordflow">return</span> 3;                                                                          <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l01965" name="l01965"></a><span class="lineno"> 1965</span>    }</div>
+<div class="line"><a id="l01966" name="l01966"></a><span class="lineno"> 1966</span>    </div>
+<div class="line"><a id="l01967" name="l01967"></a><span class="lineno"> 1967</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>)                                          <span class="comment">/* spi interface */</span></div>
+<div class="line"><a id="l01968" name="l01968"></a><span class="lineno"> 1968</span>    {</div>
+<div class="line"><a id="l01969" name="l01969"></a><span class="lineno"> 1969</span>        <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">dual_quad_spi_enable</a> != 0)                                             <span class="comment">/* enable dual quad spi */</span></div>
+<div class="line"><a id="l01970" name="l01970"></a><span class="lineno"> 1970</span>        {</div>
+<div class="line"><a id="l01971" name="l01971"></a><span class="lineno"> 1971</span>            res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#af6d9a5bc0b57b041e22af80b85e53f56">W25QXX_COMMAND_READ_MANUFACTURER</a>, 1,</div>
+<div class="line"><a id="l01972" name="l01972"></a><span class="lineno"> 1972</span>                                           0x00000000, 1, 3,</div>
+<div class="line"><a id="l01973" name="l01973"></a><span class="lineno"> 1973</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l01974" name="l01974"></a><span class="lineno"> 1974</span>                                           0, NULL, 0x00,</div>
+<div class="line"><a id="l01975" name="l01975"></a><span class="lineno"> 1975</span>                                          (uint8_t *)out, 2, 1);                           <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l01976" name="l01976"></a><span class="lineno"> 1976</span>            <span class="keywordflow">if</span> (res != 0)                                                                  <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l01977" name="l01977"></a><span class="lineno"> 1977</span>            {</div>
+<div class="line"><a id="l01978" name="l01978"></a><span class="lineno"> 1978</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: get manufacturer device id failed.\n&quot;</span>);       <span class="comment">/* get manufacturer device id failed */</span></div>
+<div class="line"><a id="l01979" name="l01979"></a><span class="lineno"> 1979</span>               </div>
+<div class="line"><a id="l01980" name="l01980"></a><span class="lineno"> 1980</span>                <span class="keywordflow">return</span> 1;                                                                  <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l01981" name="l01981"></a><span class="lineno"> 1981</span>            }</div>
+<div class="line"><a id="l01982" name="l01982"></a><span class="lineno"> 1982</span>            *manufacturer = out[0];                                                        <span class="comment">/* set manufacturer */</span></div>
+<div class="line"><a id="l01983" name="l01983"></a><span class="lineno"> 1983</span>            *device_id = out[1];                                                           <span class="comment">/* set device id */</span></div>
+<div class="line"><a id="l01984" name="l01984"></a><span class="lineno"> 1984</span>        }</div>
+<div class="line"><a id="l01985" name="l01985"></a><span class="lineno"> 1985</span>        <span class="keywordflow">else</span>                                                                               <span class="comment">/* single spi */</span></div>
+<div class="line"><a id="l01986" name="l01986"></a><span class="lineno"> 1986</span>        {</div>
+<div class="line"><a id="l01987" name="l01987"></a><span class="lineno"> 1987</span>            buf[0] = <a class="code hl_define" href="driver__w25qxx_8c.html#af6d9a5bc0b57b041e22af80b85e53f56">W25QXX_COMMAND_READ_MANUFACTURER</a>;                                     <span class="comment">/* read manufacturer command */</span></div>
+<div class="line"><a id="l01988" name="l01988"></a><span class="lineno"> 1988</span>            buf[1] = 0x00;                                                                 <span class="comment">/* dummy */</span></div>
+<div class="line"><a id="l01989" name="l01989"></a><span class="lineno"> 1989</span>            buf[2] = 0x00;                                                                 <span class="comment">/* dummy */</span></div>
+<div class="line"><a id="l01990" name="l01990"></a><span class="lineno"> 1990</span>            buf[3] = 0x00;                                                                 <span class="comment">/* dummy */</span></div>
+<div class="line"><a id="l01991" name="l01991"></a><span class="lineno"> 1991</span>            res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 4,</div>
+<div class="line"><a id="l01992" name="l01992"></a><span class="lineno"> 1992</span>                                         (uint8_t *)out, 2);                               <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l01993" name="l01993"></a><span class="lineno"> 1993</span>            <span class="keywordflow">if</span> (res != 0)                                                                  <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l01994" name="l01994"></a><span class="lineno"> 1994</span>            {</div>
+<div class="line"><a id="l01995" name="l01995"></a><span class="lineno"> 1995</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: get manufacturer device id failed.\n&quot;</span>);       <span class="comment">/* get manufacturer device id failed */</span></div>
+<div class="line"><a id="l01996" name="l01996"></a><span class="lineno"> 1996</span>               </div>
+<div class="line"><a id="l01997" name="l01997"></a><span class="lineno"> 1997</span>                <span class="keywordflow">return</span> 1;                                                                  <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l01998" name="l01998"></a><span class="lineno"> 1998</span>            }</div>
+<div class="line"><a id="l01999" name="l01999"></a><span class="lineno"> 1999</span>            *manufacturer = out[0];                                                        <span class="comment">/* set manufacturer */</span></div>
+<div class="line"><a id="l02000" name="l02000"></a><span class="lineno"> 2000</span>            *device_id = out[1];                                                           <span class="comment">/* set device id */</span></div>
+<div class="line"><a id="l02001" name="l02001"></a><span class="lineno"> 2001</span>        }</div>
+<div class="line"><a id="l02002" name="l02002"></a><span class="lineno"> 2002</span>    }</div>
+<div class="line"><a id="l02003" name="l02003"></a><span class="lineno"> 2003</span>    <span class="keywordflow">else</span>                                                                                   <span class="comment">/* qspi interface */</span></div>
+<div class="line"><a id="l02004" name="l02004"></a><span class="lineno"> 2004</span>    {</div>
+<div class="line"><a id="l02005" name="l02005"></a><span class="lineno"> 2005</span>        res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#af6d9a5bc0b57b041e22af80b85e53f56">W25QXX_COMMAND_READ_MANUFACTURER</a>, 4,</div>
+<div class="line"><a id="l02006" name="l02006"></a><span class="lineno"> 2006</span>                                       0x00000000, 4, 3,</div>
+<div class="line"><a id="l02007" name="l02007"></a><span class="lineno"> 2007</span>                                       0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l02008" name="l02008"></a><span class="lineno"> 2008</span>                                       0, NULL, 0x00,</div>
+<div class="line"><a id="l02009" name="l02009"></a><span class="lineno"> 2009</span>                                      (uint8_t *)out, 2, 4);                               <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l02010" name="l02010"></a><span class="lineno"> 2010</span>        <span class="keywordflow">if</span> (res != 0)                                                                      <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l02011" name="l02011"></a><span class="lineno"> 2011</span>        {</div>
+<div class="line"><a id="l02012" name="l02012"></a><span class="lineno"> 2012</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: get manufacturer device id failed.\n&quot;</span>);           <span class="comment">/* get manufacturer device id failed */</span></div>
+<div class="line"><a id="l02013" name="l02013"></a><span class="lineno"> 2013</span>           </div>
+<div class="line"><a id="l02014" name="l02014"></a><span class="lineno"> 2014</span>            <span class="keywordflow">return</span> 1;                                                                      <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l02015" name="l02015"></a><span class="lineno"> 2015</span>        }</div>
+<div class="line"><a id="l02016" name="l02016"></a><span class="lineno"> 2016</span>        *manufacturer = out[0];                                                            <span class="comment">/* set manufacturer */</span></div>
+<div class="line"><a id="l02017" name="l02017"></a><span class="lineno"> 2017</span>        *device_id = out[1];                                                               <span class="comment">/* set device id */</span></div>
+<div class="line"><a id="l02018" name="l02018"></a><span class="lineno"> 2018</span>    }</div>
+<div class="line"><a id="l02019" name="l02019"></a><span class="lineno"> 2019</span>    </div>
+<div class="line"><a id="l02020" name="l02020"></a><span class="lineno"> 2020</span>    <span class="keywordflow">return</span> 0;                                                                              <span class="comment">/* success return 0 */</span></div>
+<div class="line"><a id="l02021" name="l02021"></a><span class="lineno"> 2021</span>}</div>
+</div>
+<div class="line"><a id="l02022" name="l02022"></a><span class="lineno"> 2022</span> </div>
+<div class="foldopen" id="foldopen02038" data-start="{" data-end="}">
+<div class="line"><a id="l02038" name="l02038"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#ga1cd3aec1bdeabbaed5f049fbf83ceeb4"> 2038</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__advance__driver.html#ga1cd3aec1bdeabbaed5f049fbf83ceeb4">w25qxx_get_manufacturer_device_id_dual_io</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint8_t *manufacturer, uint8_t *device_id)</div>
+<div class="line"><a id="l02039" name="l02039"></a><span class="lineno"> 2039</span>{</div>
+<div class="line"><a id="l02040" name="l02040"></a><span class="lineno"> 2040</span>    uint8_t res;</div>
+<div class="line"><a id="l02041" name="l02041"></a><span class="lineno"> 2041</span>    uint8_t out[2];</div>
+<div class="line"><a id="l02042" name="l02042"></a><span class="lineno"> 2042</span>    </div>
+<div class="line"><a id="l02043" name="l02043"></a><span class="lineno"> 2043</span>    <span class="keywordflow">if</span> (handle == NULL)                                                                             <span class="comment">/* check handle */</span></div>
+<div class="line"><a id="l02044" name="l02044"></a><span class="lineno"> 2044</span>    {</div>
+<div class="line"><a id="l02045" name="l02045"></a><span class="lineno"> 2045</span>        <span class="keywordflow">return</span> 2;                                                                                   <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l02046" name="l02046"></a><span class="lineno"> 2046</span>    }   </div>
+<div class="line"><a id="l02047" name="l02047"></a><span class="lineno"> 2047</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">inited</a> != 1)                                                                        <span class="comment">/* check handle initialization */</span></div>
+<div class="line"><a id="l02048" name="l02048"></a><span class="lineno"> 2048</span>    {</div>
+<div class="line"><a id="l02049" name="l02049"></a><span class="lineno"> 2049</span>        <span class="keywordflow">return</span> 3;                                                                                   <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l02050" name="l02050"></a><span class="lineno"> 2050</span>    }</div>
+<div class="line"><a id="l02051" name="l02051"></a><span class="lineno"> 2051</span>    </div>
+<div class="line"><a id="l02052" name="l02052"></a><span class="lineno"> 2052</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>)                                                   <span class="comment">/* spi interface */</span></div>
+<div class="line"><a id="l02053" name="l02053"></a><span class="lineno"> 2053</span>    {</div>
+<div class="line"><a id="l02054" name="l02054"></a><span class="lineno"> 2054</span>        <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">dual_quad_spi_enable</a> == 0)                                                      <span class="comment">/* check spi */</span></div>
+<div class="line"><a id="l02055" name="l02055"></a><span class="lineno"> 2055</span>        {</div>
+<div class="line"><a id="l02056" name="l02056"></a><span class="lineno"> 2056</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: standard spi can&#39;t use this function failed.\n&quot;</span>);          <span class="comment">/* standard spi can&#39;t use this function failed */</span></div>
+<div class="line"><a id="l02057" name="l02057"></a><span class="lineno"> 2057</span>           </div>
+<div class="line"><a id="l02058" name="l02058"></a><span class="lineno"> 2058</span>            <span class="keywordflow">return</span> 6;                                                                               <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l02059" name="l02059"></a><span class="lineno"> 2059</span>        }</div>
+<div class="line"><a id="l02060" name="l02060"></a><span class="lineno"> 2060</span>        <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                     <span class="comment">/* 3 address mode */</span></div>
+<div class="line"><a id="l02061" name="l02061"></a><span class="lineno"> 2061</span>        {</div>
+<div class="line"><a id="l02062" name="l02062"></a><span class="lineno"> 2062</span>            res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#a374c09f79cc61a3e7ac374bca5122e25">W25QXX_COMMAND_DEVICE_ID_DUAL_IO</a>, 1,</div>
+<div class="line"><a id="l02063" name="l02063"></a><span class="lineno"> 2063</span>                                           0x00000000, 2, 3,</div>
+<div class="line"><a id="l02064" name="l02064"></a><span class="lineno"> 2064</span>                                           0x000000FF, 2, 1,</div>
+<div class="line"><a id="l02065" name="l02065"></a><span class="lineno"> 2065</span>                                           0x00, NULL, 0x00,</div>
+<div class="line"><a id="l02066" name="l02066"></a><span class="lineno"> 2066</span>                                          (uint8_t *)out, 2, 2);                                    <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l02067" name="l02067"></a><span class="lineno"> 2067</span>            <span class="keywordflow">if</span> (res != 0)                                                                           <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l02068" name="l02068"></a><span class="lineno"> 2068</span>            {</div>
+<div class="line"><a id="l02069" name="l02069"></a><span class="lineno"> 2069</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: get manufacturer device id dual io failed.\n&quot;</span>);        <span class="comment">/* get manufacturer device id dual io failed */</span></div>
+<div class="line"><a id="l02070" name="l02070"></a><span class="lineno"> 2070</span>               </div>
+<div class="line"><a id="l02071" name="l02071"></a><span class="lineno"> 2071</span>                <span class="keywordflow">return</span> 1;                                                                           <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l02072" name="l02072"></a><span class="lineno"> 2072</span>            }</div>
+<div class="line"><a id="l02073" name="l02073"></a><span class="lineno"> 2073</span>        }</div>
+<div class="line"><a id="l02074" name="l02074"></a><span class="lineno"> 2074</span>        <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>) &amp;&amp; (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>))</div>
+<div class="line"><a id="l02075" name="l02075"></a><span class="lineno"> 2075</span>        {</div>
+<div class="line"><a id="l02076" name="l02076"></a><span class="lineno"> 2076</span>            res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#a374c09f79cc61a3e7ac374bca5122e25">W25QXX_COMMAND_DEVICE_ID_DUAL_IO</a>, 1,</div>
+<div class="line"><a id="l02077" name="l02077"></a><span class="lineno"> 2077</span>                                           0x00000000, 2, 4,</div>
+<div class="line"><a id="l02078" name="l02078"></a><span class="lineno"> 2078</span>                                           0x000000FF, 2, 1,</div>
+<div class="line"><a id="l02079" name="l02079"></a><span class="lineno"> 2079</span>                                           0x00, NULL, 0x00,</div>
+<div class="line"><a id="l02080" name="l02080"></a><span class="lineno"> 2080</span>                                          (uint8_t *)out, 2, 2);                                    <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l02081" name="l02081"></a><span class="lineno"> 2081</span>            <span class="keywordflow">if</span> (res != 0)                                                                           <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l02082" name="l02082"></a><span class="lineno"> 2082</span>            {</div>
+<div class="line"><a id="l02083" name="l02083"></a><span class="lineno"> 2083</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: get manufacturer device id dual io failed.\n&quot;</span>);        <span class="comment">/* get manufacturer device id dual io failed */</span></div>
+<div class="line"><a id="l02084" name="l02084"></a><span class="lineno"> 2084</span>               </div>
+<div class="line"><a id="l02085" name="l02085"></a><span class="lineno"> 2085</span>                <span class="keywordflow">return</span> 1;                                                                           <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l02086" name="l02086"></a><span class="lineno"> 2086</span>            }</div>
+<div class="line"><a id="l02087" name="l02087"></a><span class="lineno"> 2087</span>        }</div>
+<div class="line"><a id="l02088" name="l02088"></a><span class="lineno"> 2088</span>        <span class="keywordflow">else</span></div>
+<div class="line"><a id="l02089" name="l02089"></a><span class="lineno"> 2089</span>        {</div>
+<div class="line"><a id="l02090" name="l02090"></a><span class="lineno"> 2090</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: address mode is invalid.\n&quot;</span>);                              <span class="comment">/* address mode is invalid */</span></div>
+<div class="line"><a id="l02091" name="l02091"></a><span class="lineno"> 2091</span>           </div>
+<div class="line"><a id="l02092" name="l02092"></a><span class="lineno"> 2092</span>            <span class="keywordflow">return</span> 4;                                                                               <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l02093" name="l02093"></a><span class="lineno"> 2093</span>        }</div>
+<div class="line"><a id="l02094" name="l02094"></a><span class="lineno"> 2094</span>        *manufacturer = out[0];                                                                     <span class="comment">/* set manufacturer */</span></div>
+<div class="line"><a id="l02095" name="l02095"></a><span class="lineno"> 2095</span>        *device_id = out[1];                                                                        <span class="comment">/* set device id */</span></div>
+<div class="line"><a id="l02096" name="l02096"></a><span class="lineno"> 2096</span>    }</div>
+<div class="line"><a id="l02097" name="l02097"></a><span class="lineno"> 2097</span>    <span class="keywordflow">else</span></div>
+<div class="line"><a id="l02098" name="l02098"></a><span class="lineno"> 2098</span>    {</div>
+<div class="line"><a id="l02099" name="l02099"></a><span class="lineno"> 2099</span>        handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: qspi can&#39;t use this function.\n&quot;</span>);                             <span class="comment">/* qspi can&#39;t use this function */</span></div>
+<div class="line"><a id="l02100" name="l02100"></a><span class="lineno"> 2100</span>       </div>
+<div class="line"><a id="l02101" name="l02101"></a><span class="lineno"> 2101</span>        <span class="keywordflow">return</span> 5;                                                                                   <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l02102" name="l02102"></a><span class="lineno"> 2102</span>    }</div>
+<div class="line"><a id="l02103" name="l02103"></a><span class="lineno"> 2103</span>    </div>
+<div class="line"><a id="l02104" name="l02104"></a><span class="lineno"> 2104</span>    <span class="keywordflow">return</span> 0;                                                                                       <span class="comment">/* success return 0 */</span></div>
+<div class="line"><a id="l02105" name="l02105"></a><span class="lineno"> 2105</span>}</div>
+</div>
+<div class="line"><a id="l02106" name="l02106"></a><span class="lineno"> 2106</span> </div>
+<div class="foldopen" id="foldopen02122" data-start="{" data-end="}">
+<div class="line"><a id="l02122" name="l02122"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#ga61bd3ce40b76b6862c6a53e0e37a3455"> 2122</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__advance__driver.html#ga61bd3ce40b76b6862c6a53e0e37a3455">w25qxx_get_manufacturer_device_id_quad_io</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint8_t *manufacturer, uint8_t *device_id)</div>
+<div class="line"><a id="l02123" name="l02123"></a><span class="lineno"> 2123</span>{</div>
+<div class="line"><a id="l02124" name="l02124"></a><span class="lineno"> 2124</span>    uint8_t res;</div>
+<div class="line"><a id="l02125" name="l02125"></a><span class="lineno"> 2125</span>    uint8_t out[2];</div>
+<div class="line"><a id="l02126" name="l02126"></a><span class="lineno"> 2126</span>    </div>
+<div class="line"><a id="l02127" name="l02127"></a><span class="lineno"> 2127</span>    <span class="keywordflow">if</span> (handle == NULL)                                                                             <span class="comment">/* check handle */</span></div>
+<div class="line"><a id="l02128" name="l02128"></a><span class="lineno"> 2128</span>    {</div>
+<div class="line"><a id="l02129" name="l02129"></a><span class="lineno"> 2129</span>        <span class="keywordflow">return</span> 2;                                                                                   <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l02130" name="l02130"></a><span class="lineno"> 2130</span>    }   </div>
+<div class="line"><a id="l02131" name="l02131"></a><span class="lineno"> 2131</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">inited</a> != 1)                                                                        <span class="comment">/* check handle initialization */</span></div>
+<div class="line"><a id="l02132" name="l02132"></a><span class="lineno"> 2132</span>    {</div>
+<div class="line"><a id="l02133" name="l02133"></a><span class="lineno"> 2133</span>        <span class="keywordflow">return</span> 3;                                                                                   <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l02134" name="l02134"></a><span class="lineno"> 2134</span>    }</div>
+<div class="line"><a id="l02135" name="l02135"></a><span class="lineno"> 2135</span>    </div>
+<div class="line"><a id="l02136" name="l02136"></a><span class="lineno"> 2136</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>)                                                   <span class="comment">/* spi interface */</span></div>
+<div class="line"><a id="l02137" name="l02137"></a><span class="lineno"> 2137</span>    {</div>
+<div class="line"><a id="l02138" name="l02138"></a><span class="lineno"> 2138</span>        <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">dual_quad_spi_enable</a> == 0)                                                      <span class="comment">/* check spi */</span></div>
+<div class="line"><a id="l02139" name="l02139"></a><span class="lineno"> 2139</span>        {</div>
+<div class="line"><a id="l02140" name="l02140"></a><span class="lineno"> 2140</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: standard spi can&#39;t use this function failed.\n&quot;</span>);          <span class="comment">/* standard spi can&#39;t use this function failed */</span></div>
+<div class="line"><a id="l02141" name="l02141"></a><span class="lineno"> 2141</span>           </div>
+<div class="line"><a id="l02142" name="l02142"></a><span class="lineno"> 2142</span>            <span class="keywordflow">return</span> 6;                                                                               <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l02143" name="l02143"></a><span class="lineno"> 2143</span>        }</div>
+<div class="line"><a id="l02144" name="l02144"></a><span class="lineno"> 2144</span>        <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                     <span class="comment">/* 3 address mode */</span></div>
+<div class="line"><a id="l02145" name="l02145"></a><span class="lineno"> 2145</span>        {</div>
+<div class="line"><a id="l02146" name="l02146"></a><span class="lineno"> 2146</span>            res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#a7573bc250d850078be3221c29521bc5c">W25QXX_COMMAND_DEVICE_ID_QUAD_IO</a>, 1,</div>
+<div class="line"><a id="l02147" name="l02147"></a><span class="lineno"> 2147</span>                                           0x00000000, 4, 3,</div>
+<div class="line"><a id="l02148" name="l02148"></a><span class="lineno"> 2148</span>                                           0x000000FF, 4, 1,</div>
+<div class="line"><a id="l02149" name="l02149"></a><span class="lineno"> 2149</span>                                           4, NULL, 0x00,</div>
+<div class="line"><a id="l02150" name="l02150"></a><span class="lineno"> 2150</span>                                          (uint8_t *)out, 2, 4);                                    <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l02151" name="l02151"></a><span class="lineno"> 2151</span>            <span class="keywordflow">if</span> (res != 0)                                                                           <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l02152" name="l02152"></a><span class="lineno"> 2152</span>            {</div>
+<div class="line"><a id="l02153" name="l02153"></a><span class="lineno"> 2153</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: get manufacturer device id quad io failed.\n&quot;</span>);        <span class="comment">/* get manufacturer device id quad io failed */</span></div>
+<div class="line"><a id="l02154" name="l02154"></a><span class="lineno"> 2154</span>               </div>
+<div class="line"><a id="l02155" name="l02155"></a><span class="lineno"> 2155</span>                <span class="keywordflow">return</span> 1;                                                                           <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l02156" name="l02156"></a><span class="lineno"> 2156</span>            }</div>
+<div class="line"><a id="l02157" name="l02157"></a><span class="lineno"> 2157</span>        }</div>
+<div class="line"><a id="l02158" name="l02158"></a><span class="lineno"> 2158</span>        <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>) &amp;&amp; (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>))</div>
+<div class="line"><a id="l02159" name="l02159"></a><span class="lineno"> 2159</span>        {</div>
+<div class="line"><a id="l02160" name="l02160"></a><span class="lineno"> 2160</span>            res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#a7573bc250d850078be3221c29521bc5c">W25QXX_COMMAND_DEVICE_ID_QUAD_IO</a>, 1,</div>
+<div class="line"><a id="l02161" name="l02161"></a><span class="lineno"> 2161</span>                                           0x00000000, 4, 4,</div>
+<div class="line"><a id="l02162" name="l02162"></a><span class="lineno"> 2162</span>                                           0x000000FF, 4, 1,</div>
+<div class="line"><a id="l02163" name="l02163"></a><span class="lineno"> 2163</span>                                           4, NULL, 0x00,</div>
+<div class="line"><a id="l02164" name="l02164"></a><span class="lineno"> 2164</span>                                          (uint8_t *)out, 2, 4);                                    <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l02165" name="l02165"></a><span class="lineno"> 2165</span>            <span class="keywordflow">if</span> (res != 0)                                                                           <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l02166" name="l02166"></a><span class="lineno"> 2166</span>            {</div>
+<div class="line"><a id="l02167" name="l02167"></a><span class="lineno"> 2167</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: get manufacturer device id quad io failed.\n&quot;</span>);        <span class="comment">/* get manufacturer device id quad io failed */</span></div>
+<div class="line"><a id="l02168" name="l02168"></a><span class="lineno"> 2168</span>               </div>
+<div class="line"><a id="l02169" name="l02169"></a><span class="lineno"> 2169</span>                <span class="keywordflow">return</span> 1;                                                                           <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l02170" name="l02170"></a><span class="lineno"> 2170</span>            }</div>
+<div class="line"><a id="l02171" name="l02171"></a><span class="lineno"> 2171</span>        }</div>
+<div class="line"><a id="l02172" name="l02172"></a><span class="lineno"> 2172</span>        <span class="keywordflow">else</span></div>
+<div class="line"><a id="l02173" name="l02173"></a><span class="lineno"> 2173</span>        {</div>
+<div class="line"><a id="l02174" name="l02174"></a><span class="lineno"> 2174</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: address mode is invalid.\n&quot;</span>);                              <span class="comment">/* address mode is invalid */</span></div>
+<div class="line"><a id="l02175" name="l02175"></a><span class="lineno"> 2175</span>           </div>
+<div class="line"><a id="l02176" name="l02176"></a><span class="lineno"> 2176</span>            <span class="keywordflow">return</span> 4;                                                                               <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l02177" name="l02177"></a><span class="lineno"> 2177</span>        }</div>
+<div class="line"><a id="l02178" name="l02178"></a><span class="lineno"> 2178</span>        *manufacturer = out[0];                                                                     <span class="comment">/* set manufacturer */</span></div>
+<div class="line"><a id="l02179" name="l02179"></a><span class="lineno"> 2179</span>        *device_id = out[1];                                                                        <span class="comment">/* set device id */</span></div>
+<div class="line"><a id="l02180" name="l02180"></a><span class="lineno"> 2180</span>    }</div>
+<div class="line"><a id="l02181" name="l02181"></a><span class="lineno"> 2181</span>    <span class="keywordflow">else</span></div>
+<div class="line"><a id="l02182" name="l02182"></a><span class="lineno"> 2182</span>    {</div>
+<div class="line"><a id="l02183" name="l02183"></a><span class="lineno"> 2183</span>        handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: qspi can&#39;t use this function.\n&quot;</span>);                             <span class="comment">/* qspi can&#39;t use this function */</span></div>
+<div class="line"><a id="l02184" name="l02184"></a><span class="lineno"> 2184</span>       </div>
+<div class="line"><a id="l02185" name="l02185"></a><span class="lineno"> 2185</span>        <span class="keywordflow">return</span> 5;                                                                                   <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l02186" name="l02186"></a><span class="lineno"> 2186</span>    }</div>
+<div class="line"><a id="l02187" name="l02187"></a><span class="lineno"> 2187</span>    </div>
+<div class="line"><a id="l02188" name="l02188"></a><span class="lineno"> 2188</span>    <span class="keywordflow">return</span> 0;                                                                                       <span class="comment">/* success return 0 */</span></div>
+<div class="line"><a id="l02189" name="l02189"></a><span class="lineno"> 2189</span>}</div>
+</div>
+<div class="line"><a id="l02190" name="l02190"></a><span class="lineno"> 2190</span> </div>
+<div class="foldopen" id="foldopen02203" data-start="{" data-end="}">
+<div class="line"><a id="l02203" name="l02203"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#ga8a93ba14a032e10a27f1495fdcf56058"> 2203</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__advance__driver.html#ga8a93ba14a032e10a27f1495fdcf56058">w25qxx_get_jedec_id</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint8_t *manufacturer, uint8_t device_id[2])</div>
+<div class="line"><a id="l02204" name="l02204"></a><span class="lineno"> 2204</span>{</div>
+<div class="line"><a id="l02205" name="l02205"></a><span class="lineno"> 2205</span>    uint8_t res;</div>
+<div class="line"><a id="l02206" name="l02206"></a><span class="lineno"> 2206</span>    uint8_t buf[1];</div>
+<div class="line"><a id="l02207" name="l02207"></a><span class="lineno"> 2207</span>    uint8_t out[3];</div>
+<div class="line"><a id="l02208" name="l02208"></a><span class="lineno"> 2208</span>    </div>
+<div class="line"><a id="l02209" name="l02209"></a><span class="lineno"> 2209</span>    <span class="keywordflow">if</span> (handle == NULL)                                                                    <span class="comment">/* check handle */</span></div>
+<div class="line"><a id="l02210" name="l02210"></a><span class="lineno"> 2210</span>    {</div>
+<div class="line"><a id="l02211" name="l02211"></a><span class="lineno"> 2211</span>        <span class="keywordflow">return</span> 2;                                                                          <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l02212" name="l02212"></a><span class="lineno"> 2212</span>    }   </div>
+<div class="line"><a id="l02213" name="l02213"></a><span class="lineno"> 2213</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">inited</a> != 1)                                                               <span class="comment">/* check handle initialization */</span></div>
+<div class="line"><a id="l02214" name="l02214"></a><span class="lineno"> 2214</span>    {</div>
+<div class="line"><a id="l02215" name="l02215"></a><span class="lineno"> 2215</span>        <span class="keywordflow">return</span> 3;                                                                          <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l02216" name="l02216"></a><span class="lineno"> 2216</span>    }</div>
+<div class="line"><a id="l02217" name="l02217"></a><span class="lineno"> 2217</span>    </div>
+<div class="line"><a id="l02218" name="l02218"></a><span class="lineno"> 2218</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>)                                          <span class="comment">/* spi interface */</span></div>
+<div class="line"><a id="l02219" name="l02219"></a><span class="lineno"> 2219</span>    {</div>
+<div class="line"><a id="l02220" name="l02220"></a><span class="lineno"> 2220</span>        <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">dual_quad_spi_enable</a> != 0)                                             <span class="comment">/* enable dual quad spi */</span></div>
+<div class="line"><a id="l02221" name="l02221"></a><span class="lineno"> 2221</span>        {</div>
+<div class="line"><a id="l02222" name="l02222"></a><span class="lineno"> 2222</span>            res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#a54f3ece548cd5eadc94642235442315a">W25QXX_COMMAND_JEDEC_ID</a>, 1,</div>
+<div class="line"><a id="l02223" name="l02223"></a><span class="lineno"> 2223</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l02224" name="l02224"></a><span class="lineno"> 2224</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l02225" name="l02225"></a><span class="lineno"> 2225</span>                                           0, NULL, 0x00,</div>
+<div class="line"><a id="l02226" name="l02226"></a><span class="lineno"> 2226</span>                                          (uint8_t *)out, 3, 1);                           <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l02227" name="l02227"></a><span class="lineno"> 2227</span>            <span class="keywordflow">if</span> (res != 0)                                                                  <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l02228" name="l02228"></a><span class="lineno"> 2228</span>            {</div>
+<div class="line"><a id="l02229" name="l02229"></a><span class="lineno"> 2229</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: get jedec id failed.\n&quot;</span>);                     <span class="comment">/* get jedec id failed */</span></div>
+<div class="line"><a id="l02230" name="l02230"></a><span class="lineno"> 2230</span>               </div>
+<div class="line"><a id="l02231" name="l02231"></a><span class="lineno"> 2231</span>                <span class="keywordflow">return</span> 1;                                                                  <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l02232" name="l02232"></a><span class="lineno"> 2232</span>            }</div>
+<div class="line"><a id="l02233" name="l02233"></a><span class="lineno"> 2233</span>            *manufacturer = out[0];                                                        <span class="comment">/* set manufacturer */</span></div>
+<div class="line"><a id="l02234" name="l02234"></a><span class="lineno"> 2234</span>            device_id[0] = out[1];                                                         <span class="comment">/* set device id 0 */</span></div>
+<div class="line"><a id="l02235" name="l02235"></a><span class="lineno"> 2235</span>            device_id[1] = out[2];                                                         <span class="comment">/* set device id 1 */</span></div>
+<div class="line"><a id="l02236" name="l02236"></a><span class="lineno"> 2236</span>        }</div>
+<div class="line"><a id="l02237" name="l02237"></a><span class="lineno"> 2237</span>        <span class="keywordflow">else</span>                                                                               <span class="comment">/* single spi */</span></div>
+<div class="line"><a id="l02238" name="l02238"></a><span class="lineno"> 2238</span>        {</div>
+<div class="line"><a id="l02239" name="l02239"></a><span class="lineno"> 2239</span>            buf[0] = <a class="code hl_define" href="driver__w25qxx_8c.html#a54f3ece548cd5eadc94642235442315a">W25QXX_COMMAND_JEDEC_ID</a>;                                              <span class="comment">/* jedec id command */</span></div>
+<div class="line"><a id="l02240" name="l02240"></a><span class="lineno"> 2240</span>            res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 1,</div>
+<div class="line"><a id="l02241" name="l02241"></a><span class="lineno"> 2241</span>                                         (uint8_t *)out, 3);                               <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l02242" name="l02242"></a><span class="lineno"> 2242</span>            <span class="keywordflow">if</span> (res != 0)                                                                  <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l02243" name="l02243"></a><span class="lineno"> 2243</span>            {</div>
+<div class="line"><a id="l02244" name="l02244"></a><span class="lineno"> 2244</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: get jedec id failed.\n&quot;</span>);                     <span class="comment">/* get jedec id  failed */</span></div>
+<div class="line"><a id="l02245" name="l02245"></a><span class="lineno"> 2245</span>               </div>
+<div class="line"><a id="l02246" name="l02246"></a><span class="lineno"> 2246</span>                <span class="keywordflow">return</span> 1;                                                                  <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l02247" name="l02247"></a><span class="lineno"> 2247</span>            }</div>
+<div class="line"><a id="l02248" name="l02248"></a><span class="lineno"> 2248</span>            *manufacturer = out[0];                                                        <span class="comment">/* set manufacturer */</span></div>
+<div class="line"><a id="l02249" name="l02249"></a><span class="lineno"> 2249</span>            device_id[0] = out[1];                                                         <span class="comment">/* set device id 0 */</span></div>
+<div class="line"><a id="l02250" name="l02250"></a><span class="lineno"> 2250</span>            device_id[1] = out[2];                                                         <span class="comment">/* set device id 1 */</span></div>
+<div class="line"><a id="l02251" name="l02251"></a><span class="lineno"> 2251</span>        }</div>
+<div class="line"><a id="l02252" name="l02252"></a><span class="lineno"> 2252</span>    }</div>
+<div class="line"><a id="l02253" name="l02253"></a><span class="lineno"> 2253</span>    <span class="keywordflow">else</span>                                                                                   <span class="comment">/* qspi interface */</span></div>
+<div class="line"><a id="l02254" name="l02254"></a><span class="lineno"> 2254</span>    {</div>
+<div class="line"><a id="l02255" name="l02255"></a><span class="lineno"> 2255</span>        res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#a54f3ece548cd5eadc94642235442315a">W25QXX_COMMAND_JEDEC_ID</a>, 4,</div>
+<div class="line"><a id="l02256" name="l02256"></a><span class="lineno"> 2256</span>                                       0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l02257" name="l02257"></a><span class="lineno"> 2257</span>                                       0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l02258" name="l02258"></a><span class="lineno"> 2258</span>                                       0, NULL, 0x00,</div>
+<div class="line"><a id="l02259" name="l02259"></a><span class="lineno"> 2259</span>                                      (uint8_t *)out, 3, 4);                               <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l02260" name="l02260"></a><span class="lineno"> 2260</span>        <span class="keywordflow">if</span> (res != 0)                                                                      <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l02261" name="l02261"></a><span class="lineno"> 2261</span>        {</div>
+<div class="line"><a id="l02262" name="l02262"></a><span class="lineno"> 2262</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: get jedec id failed.\n&quot;</span>);                         <span class="comment">/* get jedec id failed */</span></div>
+<div class="line"><a id="l02263" name="l02263"></a><span class="lineno"> 2263</span>           </div>
+<div class="line"><a id="l02264" name="l02264"></a><span class="lineno"> 2264</span>            <span class="keywordflow">return</span> 1;                                                                      <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l02265" name="l02265"></a><span class="lineno"> 2265</span>        }</div>
+<div class="line"><a id="l02266" name="l02266"></a><span class="lineno"> 2266</span>        *manufacturer = out[0];                                                            <span class="comment">/* set manufacturer */</span></div>
+<div class="line"><a id="l02267" name="l02267"></a><span class="lineno"> 2267</span>        device_id[0] = out[1];                                                             <span class="comment">/* set device id 0 */</span></div>
+<div class="line"><a id="l02268" name="l02268"></a><span class="lineno"> 2268</span>        device_id[1] = out[2];                                                             <span class="comment">/* set device id 1 */</span></div>
+<div class="line"><a id="l02269" name="l02269"></a><span class="lineno"> 2269</span>    }</div>
+<div class="line"><a id="l02270" name="l02270"></a><span class="lineno"> 2270</span>    </div>
+<div class="line"><a id="l02271" name="l02271"></a><span class="lineno"> 2271</span>    <span class="keywordflow">return</span> 0;                                                                              <span class="comment">/* success return 0 */</span></div>
+<div class="line"><a id="l02272" name="l02272"></a><span class="lineno"> 2272</span>}</div>
+</div>
+<div class="line"><a id="l02273" name="l02273"></a><span class="lineno"> 2273</span> </div>
+<div class="foldopen" id="foldopen02284" data-start="{" data-end="}">
+<div class="line"><a id="l02284" name="l02284"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#gab5579bc42bc07a7657848140888a817c"> 2284</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__advance__driver.html#gab5579bc42bc07a7657848140888a817c">w25qxx_global_block_lock</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle)</div>
+<div class="line"><a id="l02285" name="l02285"></a><span class="lineno"> 2285</span>{</div>
+<div class="line"><a id="l02286" name="l02286"></a><span class="lineno"> 2286</span>    uint8_t res;</div>
+<div class="line"><a id="l02287" name="l02287"></a><span class="lineno"> 2287</span>    uint8_t buf[1];</div>
+<div class="line"><a id="l02288" name="l02288"></a><span class="lineno"> 2288</span>    </div>
+<div class="line"><a id="l02289" name="l02289"></a><span class="lineno"> 2289</span>    <span class="keywordflow">if</span> (handle == NULL)                                                                          <span class="comment">/* check handle */</span></div>
+<div class="line"><a id="l02290" name="l02290"></a><span class="lineno"> 2290</span>    {</div>
+<div class="line"><a id="l02291" name="l02291"></a><span class="lineno"> 2291</span>        <span class="keywordflow">return</span> 2;                                                                                <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l02292" name="l02292"></a><span class="lineno"> 2292</span>    }   </div>
+<div class="line"><a id="l02293" name="l02293"></a><span class="lineno"> 2293</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">inited</a> != 1)                                                                     <span class="comment">/* check handle initialization */</span></div>
+<div class="line"><a id="l02294" name="l02294"></a><span class="lineno"> 2294</span>    {</div>
+<div class="line"><a id="l02295" name="l02295"></a><span class="lineno"> 2295</span>        <span class="keywordflow">return</span> 3;                                                                                <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l02296" name="l02296"></a><span class="lineno"> 2296</span>    }</div>
+<div class="line"><a id="l02297" name="l02297"></a><span class="lineno"> 2297</span>    </div>
+<div class="line"><a id="l02298" name="l02298"></a><span class="lineno"> 2298</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>)                                                <span class="comment">/* spi interface */</span></div>
+<div class="line"><a id="l02299" name="l02299"></a><span class="lineno"> 2299</span>    {</div>
+<div class="line"><a id="l02300" name="l02300"></a><span class="lineno"> 2300</span>        <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">dual_quad_spi_enable</a> != 0)                                                   <span class="comment">/* enable dual quad spi */</span></div>
+<div class="line"><a id="l02301" name="l02301"></a><span class="lineno"> 2301</span>        {</div>
+<div class="line"><a id="l02302" name="l02302"></a><span class="lineno"> 2302</span>            res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#af81bc9ddfc8da8eb911435e835536ffb">W25QXX_COMMAND_GLOBAL_BLOCK_SECTOR_LOCK</a>, 1,</div>
+<div class="line"><a id="l02303" name="l02303"></a><span class="lineno"> 2303</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l02304" name="l02304"></a><span class="lineno"> 2304</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l02305" name="l02305"></a><span class="lineno"> 2305</span>                                           0, NULL, 0x00,</div>
+<div class="line"><a id="l02306" name="l02306"></a><span class="lineno"> 2306</span>                                           NULL, 0x00, 0x00);                                    <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l02307" name="l02307"></a><span class="lineno"> 2307</span>            <span class="keywordflow">if</span> (res != 0)                                                                        <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l02308" name="l02308"></a><span class="lineno"> 2308</span>            {</div>
+<div class="line"><a id="l02309" name="l02309"></a><span class="lineno"> 2309</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: global block lock failed.\n&quot;</span>);                      <span class="comment">/* global block lock failed */</span></div>
+<div class="line"><a id="l02310" name="l02310"></a><span class="lineno"> 2310</span>               </div>
+<div class="line"><a id="l02311" name="l02311"></a><span class="lineno"> 2311</span>                <span class="keywordflow">return</span> 1;                                                                        <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l02312" name="l02312"></a><span class="lineno"> 2312</span>            }</div>
+<div class="line"><a id="l02313" name="l02313"></a><span class="lineno"> 2313</span>        }</div>
+<div class="line"><a id="l02314" name="l02314"></a><span class="lineno"> 2314</span>        <span class="keywordflow">else</span>                                                                                     <span class="comment">/* single spi */</span></div>
+<div class="line"><a id="l02315" name="l02315"></a><span class="lineno"> 2315</span>        {</div>
+<div class="line"><a id="l02316" name="l02316"></a><span class="lineno"> 2316</span>            buf[0] = <a class="code hl_define" href="driver__w25qxx_8c.html#af81bc9ddfc8da8eb911435e835536ffb">W25QXX_COMMAND_GLOBAL_BLOCK_SECTOR_LOCK</a>;                                    <span class="comment">/* global block lock command */</span></div>
+<div class="line"><a id="l02317" name="l02317"></a><span class="lineno"> 2317</span>            res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 1, NULL, 0);                   <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l02318" name="l02318"></a><span class="lineno"> 2318</span>            <span class="keywordflow">if</span> (res != 0)                                                                        <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l02319" name="l02319"></a><span class="lineno"> 2319</span>            {</div>
+<div class="line"><a id="l02320" name="l02320"></a><span class="lineno"> 2320</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: global block lock failed.\n&quot;</span>);                      <span class="comment">/* global block lock failed */</span></div>
+<div class="line"><a id="l02321" name="l02321"></a><span class="lineno"> 2321</span>               </div>
+<div class="line"><a id="l02322" name="l02322"></a><span class="lineno"> 2322</span>                <span class="keywordflow">return</span> 1;                                                                        <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l02323" name="l02323"></a><span class="lineno"> 2323</span>            }</div>
+<div class="line"><a id="l02324" name="l02324"></a><span class="lineno"> 2324</span>        }</div>
+<div class="line"><a id="l02325" name="l02325"></a><span class="lineno"> 2325</span>    }</div>
+<div class="line"><a id="l02326" name="l02326"></a><span class="lineno"> 2326</span>    <span class="keywordflow">else</span>                                                                                         <span class="comment">/* qspi interface */</span></div>
+<div class="line"><a id="l02327" name="l02327"></a><span class="lineno"> 2327</span>    {</div>
+<div class="line"><a id="l02328" name="l02328"></a><span class="lineno"> 2328</span>        res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#af81bc9ddfc8da8eb911435e835536ffb">W25QXX_COMMAND_GLOBAL_BLOCK_SECTOR_LOCK</a>, 4,</div>
+<div class="line"><a id="l02329" name="l02329"></a><span class="lineno"> 2329</span>                                       0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l02330" name="l02330"></a><span class="lineno"> 2330</span>                                       0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l02331" name="l02331"></a><span class="lineno"> 2331</span>                                       0, NULL, 0x00,</div>
+<div class="line"><a id="l02332" name="l02332"></a><span class="lineno"> 2332</span>                                       NULL, 0x00, 0x00);                                        <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l02333" name="l02333"></a><span class="lineno"> 2333</span>        <span class="keywordflow">if</span> (res != 0)                                                                            <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l02334" name="l02334"></a><span class="lineno"> 2334</span>        {</div>
+<div class="line"><a id="l02335" name="l02335"></a><span class="lineno"> 2335</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: global block lock failed.\n&quot;</span>);                          <span class="comment">/* global block lock failed */</span></div>
+<div class="line"><a id="l02336" name="l02336"></a><span class="lineno"> 2336</span>           </div>
+<div class="line"><a id="l02337" name="l02337"></a><span class="lineno"> 2337</span>            <span class="keywordflow">return</span> 1;                                                                            <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l02338" name="l02338"></a><span class="lineno"> 2338</span>        }</div>
+<div class="line"><a id="l02339" name="l02339"></a><span class="lineno"> 2339</span>    }</div>
+<div class="line"><a id="l02340" name="l02340"></a><span class="lineno"> 2340</span>    </div>
+<div class="line"><a id="l02341" name="l02341"></a><span class="lineno"> 2341</span>    <span class="keywordflow">return</span> 0;                                                                                    <span class="comment">/* success return 0 */</span></div>
+<div class="line"><a id="l02342" name="l02342"></a><span class="lineno"> 2342</span>}</div>
+</div>
+<div class="line"><a id="l02343" name="l02343"></a><span class="lineno"> 2343</span> </div>
+<div class="foldopen" id="foldopen02354" data-start="{" data-end="}">
+<div class="line"><a id="l02354" name="l02354"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#ga6d62f7d14945cfde7cde7a0e9a4e3afb"> 2354</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__advance__driver.html#ga6d62f7d14945cfde7cde7a0e9a4e3afb">w25qxx_global_block_unlock</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle)</div>
+<div class="line"><a id="l02355" name="l02355"></a><span class="lineno"> 2355</span>{</div>
+<div class="line"><a id="l02356" name="l02356"></a><span class="lineno"> 2356</span>    uint8_t res;</div>
+<div class="line"><a id="l02357" name="l02357"></a><span class="lineno"> 2357</span>    uint8_t buf[1];</div>
+<div class="line"><a id="l02358" name="l02358"></a><span class="lineno"> 2358</span>    </div>
+<div class="line"><a id="l02359" name="l02359"></a><span class="lineno"> 2359</span>    <span class="keywordflow">if</span> (handle == NULL)                                                                          <span class="comment">/* check handle */</span></div>
+<div class="line"><a id="l02360" name="l02360"></a><span class="lineno"> 2360</span>    {</div>
+<div class="line"><a id="l02361" name="l02361"></a><span class="lineno"> 2361</span>        <span class="keywordflow">return</span> 2;                                                                                <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l02362" name="l02362"></a><span class="lineno"> 2362</span>    }   </div>
+<div class="line"><a id="l02363" name="l02363"></a><span class="lineno"> 2363</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">inited</a> != 1)                                                                     <span class="comment">/* check handle initialization */</span></div>
+<div class="line"><a id="l02364" name="l02364"></a><span class="lineno"> 2364</span>    {</div>
+<div class="line"><a id="l02365" name="l02365"></a><span class="lineno"> 2365</span>        <span class="keywordflow">return</span> 3;                                                                                <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l02366" name="l02366"></a><span class="lineno"> 2366</span>    }</div>
+<div class="line"><a id="l02367" name="l02367"></a><span class="lineno"> 2367</span>    </div>
+<div class="line"><a id="l02368" name="l02368"></a><span class="lineno"> 2368</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>)                                                <span class="comment">/* spi interface */</span></div>
+<div class="line"><a id="l02369" name="l02369"></a><span class="lineno"> 2369</span>    {</div>
+<div class="line"><a id="l02370" name="l02370"></a><span class="lineno"> 2370</span>        <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">dual_quad_spi_enable</a> != 0)                                                   <span class="comment">/* enable dual quad spi */</span></div>
+<div class="line"><a id="l02371" name="l02371"></a><span class="lineno"> 2371</span>        {</div>
+<div class="line"><a id="l02372" name="l02372"></a><span class="lineno"> 2372</span>            res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#ab96d2ad8602a5a50c988b8c09d4bbbc5">W25QXX_COMMAND_GLOBAL_BLOCK_SECTOR_UNLOCK</a>, 1,</div>
+<div class="line"><a id="l02373" name="l02373"></a><span class="lineno"> 2373</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l02374" name="l02374"></a><span class="lineno"> 2374</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l02375" name="l02375"></a><span class="lineno"> 2375</span>                                           0, NULL, 0x00,</div>
+<div class="line"><a id="l02376" name="l02376"></a><span class="lineno"> 2376</span>                                           NULL, 0x00, 0x00);                                    <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l02377" name="l02377"></a><span class="lineno"> 2377</span>            <span class="keywordflow">if</span> (res != 0)                                                                        <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l02378" name="l02378"></a><span class="lineno"> 2378</span>            {</div>
+<div class="line"><a id="l02379" name="l02379"></a><span class="lineno"> 2379</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: global block unlock failed.\n&quot;</span>);                    <span class="comment">/* global block unlock failed */</span></div>
+<div class="line"><a id="l02380" name="l02380"></a><span class="lineno"> 2380</span>               </div>
+<div class="line"><a id="l02381" name="l02381"></a><span class="lineno"> 2381</span>                <span class="keywordflow">return</span> 1;                                                                        <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l02382" name="l02382"></a><span class="lineno"> 2382</span>            }</div>
+<div class="line"><a id="l02383" name="l02383"></a><span class="lineno"> 2383</span>        }</div>
+<div class="line"><a id="l02384" name="l02384"></a><span class="lineno"> 2384</span>        <span class="keywordflow">else</span>                                                                                     <span class="comment">/* single spi */</span></div>
+<div class="line"><a id="l02385" name="l02385"></a><span class="lineno"> 2385</span>        {</div>
+<div class="line"><a id="l02386" name="l02386"></a><span class="lineno"> 2386</span>            buf[0] = <a class="code hl_define" href="driver__w25qxx_8c.html#ab96d2ad8602a5a50c988b8c09d4bbbc5">W25QXX_COMMAND_GLOBAL_BLOCK_SECTOR_UNLOCK</a>;                                  <span class="comment">/* global block unlock command */</span></div>
+<div class="line"><a id="l02387" name="l02387"></a><span class="lineno"> 2387</span>            res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 1, NULL, 0);                   <span class="comment">/* spi qspi write read */</span></div>
+<div class="line"><a id="l02388" name="l02388"></a><span class="lineno"> 2388</span>            <span class="keywordflow">if</span> (res != 0)                                                                        <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l02389" name="l02389"></a><span class="lineno"> 2389</span>            {</div>
+<div class="line"><a id="l02390" name="l02390"></a><span class="lineno"> 2390</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: global block unlock failed.\n&quot;</span>);                    <span class="comment">/* global block unlock failed */</span></div>
+<div class="line"><a id="l02391" name="l02391"></a><span class="lineno"> 2391</span>               </div>
+<div class="line"><a id="l02392" name="l02392"></a><span class="lineno"> 2392</span>                <span class="keywordflow">return</span> 1;                                                                        <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l02393" name="l02393"></a><span class="lineno"> 2393</span>            }</div>
+<div class="line"><a id="l02394" name="l02394"></a><span class="lineno"> 2394</span>        }</div>
+<div class="line"><a id="l02395" name="l02395"></a><span class="lineno"> 2395</span>    }</div>
+<div class="line"><a id="l02396" name="l02396"></a><span class="lineno"> 2396</span>    <span class="keywordflow">else</span>                                                                                         <span class="comment">/* qspi interface */</span></div>
+<div class="line"><a id="l02397" name="l02397"></a><span class="lineno"> 2397</span>    {</div>
+<div class="line"><a id="l02398" name="l02398"></a><span class="lineno"> 2398</span>        res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#ab96d2ad8602a5a50c988b8c09d4bbbc5">W25QXX_COMMAND_GLOBAL_BLOCK_SECTOR_UNLOCK</a>, 4,</div>
+<div class="line"><a id="l02399" name="l02399"></a><span class="lineno"> 2399</span>                                       0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l02400" name="l02400"></a><span class="lineno"> 2400</span>                                       0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l02401" name="l02401"></a><span class="lineno"> 2401</span>                                       0, NULL, 0x00,</div>
+<div class="line"><a id="l02402" name="l02402"></a><span class="lineno"> 2402</span>                                       NULL, 0x00, 0x00);                                        <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l02403" name="l02403"></a><span class="lineno"> 2403</span>        <span class="keywordflow">if</span> (res != 0)                                                                            <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l02404" name="l02404"></a><span class="lineno"> 2404</span>        {</div>
+<div class="line"><a id="l02405" name="l02405"></a><span class="lineno"> 2405</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: global block unlock failed.\n&quot;</span>);                        <span class="comment">/* global block unlock failed */</span></div>
+<div class="line"><a id="l02406" name="l02406"></a><span class="lineno"> 2406</span>           </div>
+<div class="line"><a id="l02407" name="l02407"></a><span class="lineno"> 2407</span>            <span class="keywordflow">return</span> 1;                                                                            <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l02408" name="l02408"></a><span class="lineno"> 2408</span>        }</div>
+<div class="line"><a id="l02409" name="l02409"></a><span class="lineno"> 2409</span>    }</div>
+<div class="line"><a id="l02410" name="l02410"></a><span class="lineno"> 2410</span>    </div>
+<div class="line"><a id="l02411" name="l02411"></a><span class="lineno"> 2411</span>    <span class="keywordflow">return</span> 0;                                                                                    <span class="comment">/* success return 0 */</span></div>
+<div class="line"><a id="l02412" name="l02412"></a><span class="lineno"> 2412</span>}</div>
+</div>
+<div class="line"><a id="l02413" name="l02413"></a><span class="lineno"> 2413</span> </div>
+<div class="foldopen" id="foldopen02427" data-start="{" data-end="}">
+<div class="line"><a id="l02427" name="l02427"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#ga9ad10781d888b32b43b9eba45d049624"> 2427</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__advance__driver.html#ga9ad10781d888b32b43b9eba45d049624">w25qxx_set_read_parameters</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, <a class="code hl_enumeration" href="group__w25qxx__advance__driver.html#ga6ff284154302248f00db269146545443">w25qxx_qspi_read_dummy_t</a> dummy, <a class="code hl_enumeration" href="group__w25qxx__advance__driver.html#ga2fd3023819e1aebe089a4a72eb136da3">w25qxx_qspi_read_wrap_length_t</a> length)</div>
+<div class="line"><a id="l02428" name="l02428"></a><span class="lineno"> 2428</span>{</div>
+<div class="line"><a id="l02429" name="l02429"></a><span class="lineno"> 2429</span>    uint8_t res;</div>
+<div class="line"><a id="l02430" name="l02430"></a><span class="lineno"> 2430</span>    uint8_t buf[1];</div>
+<div class="line"><a id="l02431" name="l02431"></a><span class="lineno"> 2431</span>    </div>
+<div class="line"><a id="l02432" name="l02432"></a><span class="lineno"> 2432</span>    <span class="keywordflow">if</span> (handle == NULL)                                                                 <span class="comment">/* check handle */</span></div>
+<div class="line"><a id="l02433" name="l02433"></a><span class="lineno"> 2433</span>    {</div>
+<div class="line"><a id="l02434" name="l02434"></a><span class="lineno"> 2434</span>        <span class="keywordflow">return</span> 2;                                                                       <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l02435" name="l02435"></a><span class="lineno"> 2435</span>    }   </div>
+<div class="line"><a id="l02436" name="l02436"></a><span class="lineno"> 2436</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">inited</a> != 1)                                                            <span class="comment">/* check handle initialization */</span></div>
+<div class="line"><a id="l02437" name="l02437"></a><span class="lineno"> 2437</span>    {</div>
+<div class="line"><a id="l02438" name="l02438"></a><span class="lineno"> 2438</span>        <span class="keywordflow">return</span> 3;                                                                       <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l02439" name="l02439"></a><span class="lineno"> 2439</span>    }</div>
+<div class="line"><a id="l02440" name="l02440"></a><span class="lineno"> 2440</span>    </div>
+<div class="line"><a id="l02441" name="l02441"></a><span class="lineno"> 2441</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>)                                       <span class="comment">/* spi interface */</span></div>
+<div class="line"><a id="l02442" name="l02442"></a><span class="lineno"> 2442</span>    {</div>
+<div class="line"><a id="l02443" name="l02443"></a><span class="lineno"> 2443</span>        handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: spi interface can&#39;t use this function.\n&quot;</span>);        <span class="comment">/* spi interface can&#39;t use this function */</span></div>
+<div class="line"><a id="l02444" name="l02444"></a><span class="lineno"> 2444</span>       </div>
+<div class="line"><a id="l02445" name="l02445"></a><span class="lineno"> 2445</span>        <span class="keywordflow">return</span> 4;                                                                       <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l02446" name="l02446"></a><span class="lineno"> 2446</span>    }</div>
+<div class="line"><a id="l02447" name="l02447"></a><span class="lineno"> 2447</span>    <span class="keywordflow">else</span></div>
+<div class="line"><a id="l02448" name="l02448"></a><span class="lineno"> 2448</span>    {</div>
+<div class="line"><a id="l02449" name="l02449"></a><span class="lineno"> 2449</span>        handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a3d28993689552e18d554dc0644efcf16">param</a> = (uint8_t)((dummy &lt;&lt; 4) | (length &lt;&lt; 0));                        <span class="comment">/* set param */</span></div>
+<div class="line"><a id="l02450" name="l02450"></a><span class="lineno"> 2450</span>        buf[0] = handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a3d28993689552e18d554dc0644efcf16">param</a>;                                                         <span class="comment">/* set param */</span></div>
+<div class="line"><a id="l02451" name="l02451"></a><span class="lineno"> 2451</span>        res = a_w25qxx_qspi_write_read(handle, 0xC0, 4,</div>
+<div class="line"><a id="l02452" name="l02452"></a><span class="lineno"> 2452</span>                                       0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l02453" name="l02453"></a><span class="lineno"> 2453</span>                                       0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l02454" name="l02454"></a><span class="lineno"> 2454</span>                                       0, (uint8_t *)buf, 1,</div>
+<div class="line"><a id="l02455" name="l02455"></a><span class="lineno"> 2455</span>                                       NULL, 0x00, 4);                                  <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l02456" name="l02456"></a><span class="lineno"> 2456</span>        <span class="keywordflow">if</span> (res != 0)                                                                   <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l02457" name="l02457"></a><span class="lineno"> 2457</span>        {</div>
+<div class="line"><a id="l02458" name="l02458"></a><span class="lineno"> 2458</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: set read parameters failed.\n&quot;</span>);               <span class="comment">/* set read parameters failed */</span></div>
+<div class="line"><a id="l02459" name="l02459"></a><span class="lineno"> 2459</span>           </div>
+<div class="line"><a id="l02460" name="l02460"></a><span class="lineno"> 2460</span>            <span class="keywordflow">return</span> 5;                                                                   <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l02461" name="l02461"></a><span class="lineno"> 2461</span>        }</div>
+<div class="line"><a id="l02462" name="l02462"></a><span class="lineno"> 2462</span>        <span class="keywordflow">if</span> (((buf[0] &gt;&gt; 4) &amp; 0x03) == 0x00)                                             <span class="comment">/* if 0x00 */</span></div>
+<div class="line"><a id="l02463" name="l02463"></a><span class="lineno"> 2463</span>        {</div>
+<div class="line"><a id="l02464" name="l02464"></a><span class="lineno"> 2464</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#aff7b59f569ec689a7580bd6911daafd5">dummy</a> = 2;                                                          <span class="comment">/* dummy 2 */</span></div>
+<div class="line"><a id="l02465" name="l02465"></a><span class="lineno"> 2465</span>        }</div>
+<div class="line"><a id="l02466" name="l02466"></a><span class="lineno"> 2466</span>        <span class="keywordflow">else</span> <span class="keywordflow">if</span> (((buf[0] &gt;&gt; 4) &amp; 0x03) == 0x01)                                        <span class="comment">/* if 0x01 */</span></div>
+<div class="line"><a id="l02467" name="l02467"></a><span class="lineno"> 2467</span>        {</div>
+<div class="line"><a id="l02468" name="l02468"></a><span class="lineno"> 2468</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#aff7b59f569ec689a7580bd6911daafd5">dummy</a> = 4;                                                          <span class="comment">/* dummy 4 */</span></div>
+<div class="line"><a id="l02469" name="l02469"></a><span class="lineno"> 2469</span>        }</div>
+<div class="line"><a id="l02470" name="l02470"></a><span class="lineno"> 2470</span>        <span class="keywordflow">else</span> <span class="keywordflow">if</span> (((buf[0] &gt;&gt; 4) &amp; 0x03) == 0x02)                                        <span class="comment">/* if 0x02 */</span></div>
+<div class="line"><a id="l02471" name="l02471"></a><span class="lineno"> 2471</span>        {</div>
+<div class="line"><a id="l02472" name="l02472"></a><span class="lineno"> 2472</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#aff7b59f569ec689a7580bd6911daafd5">dummy</a> = 6;                                                          <span class="comment">/* dummy 6 */</span></div>
+<div class="line"><a id="l02473" name="l02473"></a><span class="lineno"> 2473</span>        }</div>
+<div class="line"><a id="l02474" name="l02474"></a><span class="lineno"> 2474</span>        <span class="keywordflow">else</span>                                                                            <span class="comment">/* if 0x03 */</span></div>
+<div class="line"><a id="l02475" name="l02475"></a><span class="lineno"> 2475</span>        {</div>
+<div class="line"><a id="l02476" name="l02476"></a><span class="lineno"> 2476</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#aff7b59f569ec689a7580bd6911daafd5">dummy</a> = 8;                                                          <span class="comment">/* dummy 8 */</span></div>
+<div class="line"><a id="l02477" name="l02477"></a><span class="lineno"> 2477</span>        }</div>
+<div class="line"><a id="l02478" name="l02478"></a><span class="lineno"> 2478</span>    }</div>
+<div class="line"><a id="l02479" name="l02479"></a><span class="lineno"> 2479</span>    </div>
+<div class="line"><a id="l02480" name="l02480"></a><span class="lineno"> 2480</span>    <span class="keywordflow">return</span> 0;                                                                           <span class="comment">/* success return 0 */</span></div>
+<div class="line"><a id="l02481" name="l02481"></a><span class="lineno"> 2481</span>}</div>
+</div>
+<div class="line"><a id="l02482" name="l02482"></a><span class="lineno"> 2482</span> </div>
+<div class="foldopen" id="foldopen02494" data-start="{" data-end="}">
+<div class="line"><a id="l02494" name="l02494"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#gaa5ab3548707a95ded115255432224c5a"> 2494</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__advance__driver.html#gaa5ab3548707a95ded115255432224c5a">w25qxx_enter_qspi_mode</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle)</div>
+<div class="line"><a id="l02495" name="l02495"></a><span class="lineno"> 2495</span>{</div>
+<div class="line"><a id="l02496" name="l02496"></a><span class="lineno"> 2496</span>    uint8_t res;</div>
+<div class="line"><a id="l02497" name="l02497"></a><span class="lineno"> 2497</span>    uint8_t buf[1];</div>
+<div class="line"><a id="l02498" name="l02498"></a><span class="lineno"> 2498</span>    </div>
+<div class="line"><a id="l02499" name="l02499"></a><span class="lineno"> 2499</span>    <span class="keywordflow">if</span> (handle == NULL)                                                                 <span class="comment">/* check handle */</span></div>
+<div class="line"><a id="l02500" name="l02500"></a><span class="lineno"> 2500</span>    {</div>
+<div class="line"><a id="l02501" name="l02501"></a><span class="lineno"> 2501</span>        <span class="keywordflow">return</span> 2;                                                                       <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l02502" name="l02502"></a><span class="lineno"> 2502</span>    }   </div>
+<div class="line"><a id="l02503" name="l02503"></a><span class="lineno"> 2503</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">inited</a> != 1)                                                            <span class="comment">/* check handle initialization */</span></div>
+<div class="line"><a id="l02504" name="l02504"></a><span class="lineno"> 2504</span>    {</div>
+<div class="line"><a id="l02505" name="l02505"></a><span class="lineno"> 2505</span>        <span class="keywordflow">return</span> 3;                                                                       <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l02506" name="l02506"></a><span class="lineno"> 2506</span>    }</div>
+<div class="line"><a id="l02507" name="l02507"></a><span class="lineno"> 2507</span>    </div>
+<div class="line"><a id="l02508" name="l02508"></a><span class="lineno"> 2508</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2fea895dcb5c91da89fad1c12161ffd2d5d4">W25QXX_INTERFACE_QSPI</a>)                                      <span class="comment">/* qspi interface */</span></div>
+<div class="line"><a id="l02509" name="l02509"></a><span class="lineno"> 2509</span>    {</div>
+<div class="line"><a id="l02510" name="l02510"></a><span class="lineno"> 2510</span>        handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: qspi interface can&#39;t use this function.\n&quot;</span>);       <span class="comment">/* qspi interface can&#39;t use this function */</span></div>
+<div class="line"><a id="l02511" name="l02511"></a><span class="lineno"> 2511</span>       </div>
+<div class="line"><a id="l02512" name="l02512"></a><span class="lineno"> 2512</span>        <span class="keywordflow">return</span> 4;                                                                       <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l02513" name="l02513"></a><span class="lineno"> 2513</span>    }</div>
+<div class="line"><a id="l02514" name="l02514"></a><span class="lineno"> 2514</span>    <span class="keywordflow">else</span></div>
+<div class="line"><a id="l02515" name="l02515"></a><span class="lineno"> 2515</span>    {</div>
+<div class="line"><a id="l02516" name="l02516"></a><span class="lineno"> 2516</span>        res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#a052d5373086b473bf0d450ea1bd73828">W25QXX_COMMAND_ENTER_QSPI_MODE</a>, 1,</div>
+<div class="line"><a id="l02517" name="l02517"></a><span class="lineno"> 2517</span>                                       0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l02518" name="l02518"></a><span class="lineno"> 2518</span>                                       0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l02519" name="l02519"></a><span class="lineno"> 2519</span>                                       0, NULL, 0x00,</div>
+<div class="line"><a id="l02520" name="l02520"></a><span class="lineno"> 2520</span>                                       NULL, 0x00, 0x00);                               <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l02521" name="l02521"></a><span class="lineno"> 2521</span>        <span class="keywordflow">if</span> (res != 0)                                                                   <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l02522" name="l02522"></a><span class="lineno"> 2522</span>        {</div>
+<div class="line"><a id="l02523" name="l02523"></a><span class="lineno"> 2523</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: enter qspi mode failed.\n&quot;</span>);                   <span class="comment">/* enter qspi mode failed */</span></div>
+<div class="line"><a id="l02524" name="l02524"></a><span class="lineno"> 2524</span>           </div>
+<div class="line"><a id="l02525" name="l02525"></a><span class="lineno"> 2525</span>            <span class="keywordflow">return</span> 1;                                                                   <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l02526" name="l02526"></a><span class="lineno"> 2526</span>        }</div>
+<div class="line"><a id="l02527" name="l02527"></a><span class="lineno"> 2527</span>        handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a406c9433252b7366de417b7a60915c81">delay_ms</a>(10);                                                           <span class="comment">/* delay 10 ms */</span></div>
+<div class="line"><a id="l02528" name="l02528"></a><span class="lineno"> 2528</span>        buf[0] = handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a3d28993689552e18d554dc0644efcf16">param</a>;                                                         <span class="comment">/* set param */</span></div>
+<div class="line"><a id="l02529" name="l02529"></a><span class="lineno"> 2529</span>        res = a_w25qxx_qspi_write_read(handle, 0xC0, 4,</div>
+<div class="line"><a id="l02530" name="l02530"></a><span class="lineno"> 2530</span>                                       0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l02531" name="l02531"></a><span class="lineno"> 2531</span>                                       0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l02532" name="l02532"></a><span class="lineno"> 2532</span>                                       0, (uint8_t *)buf, 1,</div>
+<div class="line"><a id="l02533" name="l02533"></a><span class="lineno"> 2533</span>                                       NULL, 0x00, 4);                                  <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l02534" name="l02534"></a><span class="lineno"> 2534</span>        <span class="keywordflow">if</span> (res != 0)                                                                   <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l02535" name="l02535"></a><span class="lineno"> 2535</span>        {</div>
+<div class="line"><a id="l02536" name="l02536"></a><span class="lineno"> 2536</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: set read parameters failed.\n&quot;</span>);               <span class="comment">/* set read parameters failed */</span></div>
+<div class="line"><a id="l02537" name="l02537"></a><span class="lineno"> 2537</span>           </div>
+<div class="line"><a id="l02538" name="l02538"></a><span class="lineno"> 2538</span>            <span class="keywordflow">return</span> 5;                                                                   <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l02539" name="l02539"></a><span class="lineno"> 2539</span>        }</div>
+<div class="line"><a id="l02540" name="l02540"></a><span class="lineno"> 2540</span>        <span class="keywordflow">if</span> (((buf[0] &gt;&gt; 4) &amp; 0x03) == 0x00)                                             <span class="comment">/* if 0x00 */</span></div>
+<div class="line"><a id="l02541" name="l02541"></a><span class="lineno"> 2541</span>        {</div>
+<div class="line"><a id="l02542" name="l02542"></a><span class="lineno"> 2542</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#aff7b59f569ec689a7580bd6911daafd5">dummy</a> = 2;                                                          <span class="comment">/* dummy 2 */</span></div>
+<div class="line"><a id="l02543" name="l02543"></a><span class="lineno"> 2543</span>        }</div>
+<div class="line"><a id="l02544" name="l02544"></a><span class="lineno"> 2544</span>        <span class="keywordflow">else</span> <span class="keywordflow">if</span> (((buf[0] &gt;&gt; 4) &amp; 0x03) == 0x01)                                        <span class="comment">/* if 0x01 */</span></div>
+<div class="line"><a id="l02545" name="l02545"></a><span class="lineno"> 2545</span>        {</div>
+<div class="line"><a id="l02546" name="l02546"></a><span class="lineno"> 2546</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#aff7b59f569ec689a7580bd6911daafd5">dummy</a> = 4;                                                          <span class="comment">/* dummy 4 */</span></div>
+<div class="line"><a id="l02547" name="l02547"></a><span class="lineno"> 2547</span>        }</div>
+<div class="line"><a id="l02548" name="l02548"></a><span class="lineno"> 2548</span>        <span class="keywordflow">else</span> <span class="keywordflow">if</span> (((buf[0] &gt;&gt; 4) &amp; 0x03) == 0x02)                                        <span class="comment">/* if 0x02 */</span></div>
+<div class="line"><a id="l02549" name="l02549"></a><span class="lineno"> 2549</span>        {</div>
+<div class="line"><a id="l02550" name="l02550"></a><span class="lineno"> 2550</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#aff7b59f569ec689a7580bd6911daafd5">dummy</a> = 6;                                                          <span class="comment">/* dummy 6 */</span></div>
+<div class="line"><a id="l02551" name="l02551"></a><span class="lineno"> 2551</span>        }</div>
+<div class="line"><a id="l02552" name="l02552"></a><span class="lineno"> 2552</span>        <span class="keywordflow">else</span>                                                                            <span class="comment">/* if 0x03 */</span></div>
+<div class="line"><a id="l02553" name="l02553"></a><span class="lineno"> 2553</span>        {</div>
+<div class="line"><a id="l02554" name="l02554"></a><span class="lineno"> 2554</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#aff7b59f569ec689a7580bd6911daafd5">dummy</a> = 8;                                                          <span class="comment">/* dummy 8 */</span></div>
+<div class="line"><a id="l02555" name="l02555"></a><span class="lineno"> 2555</span>        }</div>
+<div class="line"><a id="l02556" name="l02556"></a><span class="lineno"> 2556</span>    }</div>
+<div class="line"><a id="l02557" name="l02557"></a><span class="lineno"> 2557</span>    </div>
+<div class="line"><a id="l02558" name="l02558"></a><span class="lineno"> 2558</span>    <span class="keywordflow">return</span> 0;                                                                           <span class="comment">/* success return 0 */</span></div>
+<div class="line"><a id="l02559" name="l02559"></a><span class="lineno"> 2559</span>}</div>
+</div>
+<div class="line"><a id="l02560" name="l02560"></a><span class="lineno"> 2560</span> </div>
+<div class="foldopen" id="foldopen02572" data-start="{" data-end="}">
+<div class="line"><a id="l02572" name="l02572"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#ga6b9f75f7426a54ffdb1f5a057f8188f4"> 2572</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__advance__driver.html#ga6b9f75f7426a54ffdb1f5a057f8188f4">w25qxx_exit_qspi_mode</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle)</div>
+<div class="line"><a id="l02573" name="l02573"></a><span class="lineno"> 2573</span>{</div>
+<div class="line"><a id="l02574" name="l02574"></a><span class="lineno"> 2574</span>    uint8_t res;</div>
+<div class="line"><a id="l02575" name="l02575"></a><span class="lineno"> 2575</span>    </div>
+<div class="line"><a id="l02576" name="l02576"></a><span class="lineno"> 2576</span>    <span class="keywordflow">if</span> (handle == NULL)                                                                 <span class="comment">/* check handle */</span></div>
+<div class="line"><a id="l02577" name="l02577"></a><span class="lineno"> 2577</span>    {</div>
+<div class="line"><a id="l02578" name="l02578"></a><span class="lineno"> 2578</span>        <span class="keywordflow">return</span> 2;                                                                       <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l02579" name="l02579"></a><span class="lineno"> 2579</span>    }   </div>
+<div class="line"><a id="l02580" name="l02580"></a><span class="lineno"> 2580</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">inited</a> != 1)                                                            <span class="comment">/* check handle initialization */</span></div>
+<div class="line"><a id="l02581" name="l02581"></a><span class="lineno"> 2581</span>    {</div>
+<div class="line"><a id="l02582" name="l02582"></a><span class="lineno"> 2582</span>        <span class="keywordflow">return</span> 3;                                                                       <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l02583" name="l02583"></a><span class="lineno"> 2583</span>    }</div>
+<div class="line"><a id="l02584" name="l02584"></a><span class="lineno"> 2584</span>    </div>
+<div class="line"><a id="l02585" name="l02585"></a><span class="lineno"> 2585</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>)                                       <span class="comment">/* spi interface */</span></div>
+<div class="line"><a id="l02586" name="l02586"></a><span class="lineno"> 2586</span>    {</div>
+<div class="line"><a id="l02587" name="l02587"></a><span class="lineno"> 2587</span>        handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: spi interface can&#39;t use this function.\n&quot;</span>);        <span class="comment">/* spi interface can&#39;t use this function */</span></div>
+<div class="line"><a id="l02588" name="l02588"></a><span class="lineno"> 2588</span>       </div>
+<div class="line"><a id="l02589" name="l02589"></a><span class="lineno"> 2589</span>        <span class="keywordflow">return</span> 4;                                                                       <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l02590" name="l02590"></a><span class="lineno"> 2590</span>    }</div>
+<div class="line"><a id="l02591" name="l02591"></a><span class="lineno"> 2591</span>    <span class="keywordflow">else</span></div>
+<div class="line"><a id="l02592" name="l02592"></a><span class="lineno"> 2592</span>    {</div>
+<div class="line"><a id="l02593" name="l02593"></a><span class="lineno"> 2593</span>        res = a_w25qxx_qspi_write_read(handle, 0xFF, 4,</div>
+<div class="line"><a id="l02594" name="l02594"></a><span class="lineno"> 2594</span>                                       0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l02595" name="l02595"></a><span class="lineno"> 2595</span>                                       0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l02596" name="l02596"></a><span class="lineno"> 2596</span>                                       0, NULL, 0x00,</div>
+<div class="line"><a id="l02597" name="l02597"></a><span class="lineno"> 2597</span>                                       NULL, 0x00, 0x00);                               <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l02598" name="l02598"></a><span class="lineno"> 2598</span>        <span class="keywordflow">if</span> (res != 0)                                                                   <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l02599" name="l02599"></a><span class="lineno"> 2599</span>        {</div>
+<div class="line"><a id="l02600" name="l02600"></a><span class="lineno"> 2600</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: exit qspi mode failed.\n&quot;</span>);                    <span class="comment">/* exit qspi mode failed */</span></div>
+<div class="line"><a id="l02601" name="l02601"></a><span class="lineno"> 2601</span>           </div>
+<div class="line"><a id="l02602" name="l02602"></a><span class="lineno"> 2602</span>            <span class="keywordflow">return</span> 1;                                                                   <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l02603" name="l02603"></a><span class="lineno"> 2603</span>        }</div>
+<div class="line"><a id="l02604" name="l02604"></a><span class="lineno"> 2604</span>    }</div>
+<div class="line"><a id="l02605" name="l02605"></a><span class="lineno"> 2605</span>    </div>
+<div class="line"><a id="l02606" name="l02606"></a><span class="lineno"> 2606</span>    <span class="keywordflow">return</span> 0;                                                                           <span class="comment">/* success return 0 */</span></div>
+<div class="line"><a id="l02607" name="l02607"></a><span class="lineno"> 2607</span>}</div>
+</div>
+<div class="line"><a id="l02608" name="l02608"></a><span class="lineno"> 2608</span> </div>
+<div class="foldopen" id="foldopen02619" data-start="{" data-end="}">
+<div class="line"><a id="l02619" name="l02619"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#gab55b4e071e20feb58584025287949438"> 2619</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__advance__driver.html#gab55b4e071e20feb58584025287949438">w25qxx_enable_reset</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle)</div>
+<div class="line"><a id="l02620" name="l02620"></a><span class="lineno"> 2620</span>{</div>
+<div class="line"><a id="l02621" name="l02621"></a><span class="lineno"> 2621</span>    uint8_t res;</div>
+<div class="line"><a id="l02622" name="l02622"></a><span class="lineno"> 2622</span>    uint8_t buf[1];</div>
+<div class="line"><a id="l02623" name="l02623"></a><span class="lineno"> 2623</span>    </div>
+<div class="line"><a id="l02624" name="l02624"></a><span class="lineno"> 2624</span>    <span class="keywordflow">if</span> (handle == NULL)                                                              <span class="comment">/* check handle */</span></div>
+<div class="line"><a id="l02625" name="l02625"></a><span class="lineno"> 2625</span>    {</div>
+<div class="line"><a id="l02626" name="l02626"></a><span class="lineno"> 2626</span>        <span class="keywordflow">return</span> 2;                                                                    <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l02627" name="l02627"></a><span class="lineno"> 2627</span>    }   </div>
+<div class="line"><a id="l02628" name="l02628"></a><span class="lineno"> 2628</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">inited</a> != 1)                                                         <span class="comment">/* check handle initialization */</span></div>
+<div class="line"><a id="l02629" name="l02629"></a><span class="lineno"> 2629</span>    {</div>
+<div class="line"><a id="l02630" name="l02630"></a><span class="lineno"> 2630</span>        <span class="keywordflow">return</span> 3;                                                                    <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l02631" name="l02631"></a><span class="lineno"> 2631</span>    }</div>
+<div class="line"><a id="l02632" name="l02632"></a><span class="lineno"> 2632</span>    </div>
+<div class="line"><a id="l02633" name="l02633"></a><span class="lineno"> 2633</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>)                                    <span class="comment">/* spi interface */</span></div>
+<div class="line"><a id="l02634" name="l02634"></a><span class="lineno"> 2634</span>    {</div>
+<div class="line"><a id="l02635" name="l02635"></a><span class="lineno"> 2635</span>        <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">dual_quad_spi_enable</a> != 0)                                       <span class="comment">/* enable dual quad spi */</span></div>
+<div class="line"><a id="l02636" name="l02636"></a><span class="lineno"> 2636</span>        {</div>
+<div class="line"><a id="l02637" name="l02637"></a><span class="lineno"> 2637</span>            res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#a6dae3a832abc19d1861fafb32f231d94">W25QXX_COMMAND_ENABLE_RESET</a>, 1,</div>
+<div class="line"><a id="l02638" name="l02638"></a><span class="lineno"> 2638</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l02639" name="l02639"></a><span class="lineno"> 2639</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l02640" name="l02640"></a><span class="lineno"> 2640</span>                                           0, NULL, 0x00,</div>
+<div class="line"><a id="l02641" name="l02641"></a><span class="lineno"> 2641</span>                                           NULL, 0x00, 0x00);                        <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l02642" name="l02642"></a><span class="lineno"> 2642</span>            <span class="keywordflow">if</span> (res != 0)                                                            <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l02643" name="l02643"></a><span class="lineno"> 2643</span>            {</div>
+<div class="line"><a id="l02644" name="l02644"></a><span class="lineno"> 2644</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: enable reset failed.\n&quot;</span>);               <span class="comment">/* enable reset failed */</span></div>
+<div class="line"><a id="l02645" name="l02645"></a><span class="lineno"> 2645</span>               </div>
+<div class="line"><a id="l02646" name="l02646"></a><span class="lineno"> 2646</span>                <span class="keywordflow">return</span> 1;                                                            <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l02647" name="l02647"></a><span class="lineno"> 2647</span>            }</div>
+<div class="line"><a id="l02648" name="l02648"></a><span class="lineno"> 2648</span>        }</div>
+<div class="line"><a id="l02649" name="l02649"></a><span class="lineno"> 2649</span>        <span class="keywordflow">else</span>                                                                         <span class="comment">/* single spi */</span></div>
+<div class="line"><a id="l02650" name="l02650"></a><span class="lineno"> 2650</span>        {</div>
+<div class="line"><a id="l02651" name="l02651"></a><span class="lineno"> 2651</span>            buf[0] = <a class="code hl_define" href="driver__w25qxx_8c.html#a6dae3a832abc19d1861fafb32f231d94">W25QXX_COMMAND_ENABLE_RESET</a>;                                    <span class="comment">/* enable reset command */</span></div>
+<div class="line"><a id="l02652" name="l02652"></a><span class="lineno"> 2652</span>            res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf,</div>
+<div class="line"><a id="l02653" name="l02653"></a><span class="lineno"> 2653</span>                                          1, NULL, 0);                               <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l02654" name="l02654"></a><span class="lineno"> 2654</span>            <span class="keywordflow">if</span> (res != 0)                                                            <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l02655" name="l02655"></a><span class="lineno"> 2655</span>            {</div>
+<div class="line"><a id="l02656" name="l02656"></a><span class="lineno"> 2656</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: enable reset failed.\n&quot;</span>);               <span class="comment">/* enable reset failed */</span></div>
+<div class="line"><a id="l02657" name="l02657"></a><span class="lineno"> 2657</span>               </div>
+<div class="line"><a id="l02658" name="l02658"></a><span class="lineno"> 2658</span>                <span class="keywordflow">return</span> 1;                                                            <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l02659" name="l02659"></a><span class="lineno"> 2659</span>            }</div>
+<div class="line"><a id="l02660" name="l02660"></a><span class="lineno"> 2660</span>        }</div>
+<div class="line"><a id="l02661" name="l02661"></a><span class="lineno"> 2661</span>    }</div>
+<div class="line"><a id="l02662" name="l02662"></a><span class="lineno"> 2662</span>    <span class="keywordflow">else</span>                                                                             <span class="comment">/* qspi interface */</span></div>
+<div class="line"><a id="l02663" name="l02663"></a><span class="lineno"> 2663</span>    {</div>
+<div class="line"><a id="l02664" name="l02664"></a><span class="lineno"> 2664</span>        res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#a6dae3a832abc19d1861fafb32f231d94">W25QXX_COMMAND_ENABLE_RESET</a>, 4,</div>
+<div class="line"><a id="l02665" name="l02665"></a><span class="lineno"> 2665</span>                                       0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l02666" name="l02666"></a><span class="lineno"> 2666</span>                                       0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l02667" name="l02667"></a><span class="lineno"> 2667</span>                                       0, NULL, 0x00,</div>
+<div class="line"><a id="l02668" name="l02668"></a><span class="lineno"> 2668</span>                                       NULL, 0x00, 0x00);                            <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l02669" name="l02669"></a><span class="lineno"> 2669</span>        <span class="keywordflow">if</span> (res != 0)                                                                <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l02670" name="l02670"></a><span class="lineno"> 2670</span>        {</div>
+<div class="line"><a id="l02671" name="l02671"></a><span class="lineno"> 2671</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: enable reset failed.\n&quot;</span>);                   <span class="comment">/* enable reset failed */</span></div>
+<div class="line"><a id="l02672" name="l02672"></a><span class="lineno"> 2672</span>           </div>
+<div class="line"><a id="l02673" name="l02673"></a><span class="lineno"> 2673</span>            <span class="keywordflow">return</span> 1;                                                                <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l02674" name="l02674"></a><span class="lineno"> 2674</span>        }</div>
+<div class="line"><a id="l02675" name="l02675"></a><span class="lineno"> 2675</span>    }</div>
+<div class="line"><a id="l02676" name="l02676"></a><span class="lineno"> 2676</span>    </div>
+<div class="line"><a id="l02677" name="l02677"></a><span class="lineno"> 2677</span>    <span class="keywordflow">return</span> 0;                                                                        <span class="comment">/* success return 0 */</span></div>
+<div class="line"><a id="l02678" name="l02678"></a><span class="lineno"> 2678</span>}</div>
+</div>
+<div class="line"><a id="l02679" name="l02679"></a><span class="lineno"> 2679</span> </div>
+<div class="foldopen" id="foldopen02690" data-start="{" data-end="}">
+<div class="line"><a id="l02690" name="l02690"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#ga2abebfe2a8d9377eb88448ffca73f222"> 2690</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__advance__driver.html#ga2abebfe2a8d9377eb88448ffca73f222">w25qxx_reset_device</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle)</div>
+<div class="line"><a id="l02691" name="l02691"></a><span class="lineno"> 2691</span>{</div>
+<div class="line"><a id="l02692" name="l02692"></a><span class="lineno"> 2692</span>    uint8_t res;</div>
+<div class="line"><a id="l02693" name="l02693"></a><span class="lineno"> 2693</span>    uint8_t buf[1];</div>
+<div class="line"><a id="l02694" name="l02694"></a><span class="lineno"> 2694</span>    </div>
+<div class="line"><a id="l02695" name="l02695"></a><span class="lineno"> 2695</span>    <span class="keywordflow">if</span> (handle == NULL)                                                              <span class="comment">/* check handle */</span></div>
+<div class="line"><a id="l02696" name="l02696"></a><span class="lineno"> 2696</span>    {</div>
+<div class="line"><a id="l02697" name="l02697"></a><span class="lineno"> 2697</span>        <span class="keywordflow">return</span> 2;                                                                    <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l02698" name="l02698"></a><span class="lineno"> 2698</span>    }   </div>
+<div class="line"><a id="l02699" name="l02699"></a><span class="lineno"> 2699</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">inited</a> != 1)                                                         <span class="comment">/* check handle initialization */</span></div>
+<div class="line"><a id="l02700" name="l02700"></a><span class="lineno"> 2700</span>    {</div>
+<div class="line"><a id="l02701" name="l02701"></a><span class="lineno"> 2701</span>        <span class="keywordflow">return</span> 3;                                                                    <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l02702" name="l02702"></a><span class="lineno"> 2702</span>    }</div>
+<div class="line"><a id="l02703" name="l02703"></a><span class="lineno"> 2703</span>    </div>
+<div class="line"><a id="l02704" name="l02704"></a><span class="lineno"> 2704</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>)                                    <span class="comment">/* spi interface */</span></div>
+<div class="line"><a id="l02705" name="l02705"></a><span class="lineno"> 2705</span>    {</div>
+<div class="line"><a id="l02706" name="l02706"></a><span class="lineno"> 2706</span>        <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">dual_quad_spi_enable</a> != 0)                                       <span class="comment">/* enable dual quad spi */</span></div>
+<div class="line"><a id="l02707" name="l02707"></a><span class="lineno"> 2707</span>        {</div>
+<div class="line"><a id="l02708" name="l02708"></a><span class="lineno"> 2708</span>            res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#ab25182298c921c8f7f42216e0d5aa56b">W25QXX_COMMAND_RESET_DEVICE</a>, 1,</div>
+<div class="line"><a id="l02709" name="l02709"></a><span class="lineno"> 2709</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l02710" name="l02710"></a><span class="lineno"> 2710</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l02711" name="l02711"></a><span class="lineno"> 2711</span>                                           0, NULL, 0x00,</div>
+<div class="line"><a id="l02712" name="l02712"></a><span class="lineno"> 2712</span>                                           NULL, 0x00, 0x00);                        <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l02713" name="l02713"></a><span class="lineno"> 2713</span>            <span class="keywordflow">if</span> (res != 0)                                                            <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l02714" name="l02714"></a><span class="lineno"> 2714</span>            {</div>
+<div class="line"><a id="l02715" name="l02715"></a><span class="lineno"> 2715</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: reset device failed.\n&quot;</span>);               <span class="comment">/* reset device failed */</span></div>
+<div class="line"><a id="l02716" name="l02716"></a><span class="lineno"> 2716</span>               </div>
+<div class="line"><a id="l02717" name="l02717"></a><span class="lineno"> 2717</span>                <span class="keywordflow">return</span> 1;                                                            <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l02718" name="l02718"></a><span class="lineno"> 2718</span>            }</div>
+<div class="line"><a id="l02719" name="l02719"></a><span class="lineno"> 2719</span>        }</div>
+<div class="line"><a id="l02720" name="l02720"></a><span class="lineno"> 2720</span>        <span class="keywordflow">else</span>                                                                         <span class="comment">/* single spi */</span></div>
+<div class="line"><a id="l02721" name="l02721"></a><span class="lineno"> 2721</span>        {</div>
+<div class="line"><a id="l02722" name="l02722"></a><span class="lineno"> 2722</span>            buf[0] = <a class="code hl_define" href="driver__w25qxx_8c.html#ab25182298c921c8f7f42216e0d5aa56b">W25QXX_COMMAND_RESET_DEVICE</a>;                                    <span class="comment">/* reset device command */</span></div>
+<div class="line"><a id="l02723" name="l02723"></a><span class="lineno"> 2723</span>            res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf,</div>
+<div class="line"><a id="l02724" name="l02724"></a><span class="lineno"> 2724</span>                                          1, NULL, 0);                               <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l02725" name="l02725"></a><span class="lineno"> 2725</span>            <span class="keywordflow">if</span> (res != 0)                                                            <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l02726" name="l02726"></a><span class="lineno"> 2726</span>            {</div>
+<div class="line"><a id="l02727" name="l02727"></a><span class="lineno"> 2727</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: reset device failed.\n&quot;</span>);               <span class="comment">/* reset device failed */</span></div>
+<div class="line"><a id="l02728" name="l02728"></a><span class="lineno"> 2728</span>               </div>
+<div class="line"><a id="l02729" name="l02729"></a><span class="lineno"> 2729</span>                <span class="keywordflow">return</span> 1;                                                            <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l02730" name="l02730"></a><span class="lineno"> 2730</span>            }</div>
+<div class="line"><a id="l02731" name="l02731"></a><span class="lineno"> 2731</span>        }</div>
+<div class="line"><a id="l02732" name="l02732"></a><span class="lineno"> 2732</span>    }</div>
+<div class="line"><a id="l02733" name="l02733"></a><span class="lineno"> 2733</span>    <span class="keywordflow">else</span>                                                                             <span class="comment">/* qspi interface */</span></div>
+<div class="line"><a id="l02734" name="l02734"></a><span class="lineno"> 2734</span>    {</div>
+<div class="line"><a id="l02735" name="l02735"></a><span class="lineno"> 2735</span>        res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#ab25182298c921c8f7f42216e0d5aa56b">W25QXX_COMMAND_RESET_DEVICE</a>, 4,</div>
+<div class="line"><a id="l02736" name="l02736"></a><span class="lineno"> 2736</span>                                       0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l02737" name="l02737"></a><span class="lineno"> 2737</span>                                       0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l02738" name="l02738"></a><span class="lineno"> 2738</span>                                       0, NULL, 0x00,</div>
+<div class="line"><a id="l02739" name="l02739"></a><span class="lineno"> 2739</span>                                       NULL, 0x00, 0x00);                            <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l02740" name="l02740"></a><span class="lineno"> 2740</span>        <span class="keywordflow">if</span> (res != 0)                                                                <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l02741" name="l02741"></a><span class="lineno"> 2741</span>        {</div>
+<div class="line"><a id="l02742" name="l02742"></a><span class="lineno"> 2742</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: reset device failed.\n&quot;</span>);                   <span class="comment">/* reset device failed */</span></div>
+<div class="line"><a id="l02743" name="l02743"></a><span class="lineno"> 2743</span>           </div>
+<div class="line"><a id="l02744" name="l02744"></a><span class="lineno"> 2744</span>            <span class="keywordflow">return</span> 1;                                                                <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l02745" name="l02745"></a><span class="lineno"> 2745</span>        }</div>
+<div class="line"><a id="l02746" name="l02746"></a><span class="lineno"> 2746</span>    }</div>
+<div class="line"><a id="l02747" name="l02747"></a><span class="lineno"> 2747</span>    </div>
+<div class="line"><a id="l02748" name="l02748"></a><span class="lineno"> 2748</span>    <span class="keywordflow">return</span> 0;                                                                        <span class="comment">/* success return 0 */</span></div>
+<div class="line"><a id="l02749" name="l02749"></a><span class="lineno"> 2749</span>}</div>
+</div>
+<div class="line"><a id="l02750" name="l02750"></a><span class="lineno"> 2750</span> </div>
+<div class="foldopen" id="foldopen02764" data-start="{" data-end="}">
+<div class="line"><a id="l02764" name="l02764"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#ga11af244389478de68a6777076ee82d69"> 2764</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__advance__driver.html#ga11af244389478de68a6777076ee82d69">w25qxx_get_unique_id</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint8_t <span class="keywordtype">id</span>[8])</div>
+<div class="line"><a id="l02765" name="l02765"></a><span class="lineno"> 2765</span>{</div>
+<div class="line"><a id="l02766" name="l02766"></a><span class="lineno"> 2766</span>    uint8_t res;</div>
+<div class="line"><a id="l02767" name="l02767"></a><span class="lineno"> 2767</span>    uint8_t buf[6];</div>
+<div class="line"><a id="l02768" name="l02768"></a><span class="lineno"> 2768</span>    </div>
+<div class="line"><a id="l02769" name="l02769"></a><span class="lineno"> 2769</span>    <span class="keywordflow">if</span> (handle == NULL)                                                                                           <span class="comment">/* check handle */</span></div>
+<div class="line"><a id="l02770" name="l02770"></a><span class="lineno"> 2770</span>    {</div>
+<div class="line"><a id="l02771" name="l02771"></a><span class="lineno"> 2771</span>        <span class="keywordflow">return</span> 2;                                                                                                 <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l02772" name="l02772"></a><span class="lineno"> 2772</span>    }   </div>
+<div class="line"><a id="l02773" name="l02773"></a><span class="lineno"> 2773</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">inited</a> != 1)                                                                                      <span class="comment">/* check handle initialization */</span></div>
+<div class="line"><a id="l02774" name="l02774"></a><span class="lineno"> 2774</span>    {</div>
+<div class="line"><a id="l02775" name="l02775"></a><span class="lineno"> 2775</span>        <span class="keywordflow">return</span> 3;                                                                                                 <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l02776" name="l02776"></a><span class="lineno"> 2776</span>    }</div>
+<div class="line"><a id="l02777" name="l02777"></a><span class="lineno"> 2777</span>    </div>
+<div class="line"><a id="l02778" name="l02778"></a><span class="lineno"> 2778</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>)                                                                 <span class="comment">/* spi interface */</span></div>
+<div class="line"><a id="l02779" name="l02779"></a><span class="lineno"> 2779</span>    {</div>
+<div class="line"><a id="l02780" name="l02780"></a><span class="lineno"> 2780</span>        <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">dual_quad_spi_enable</a> != 0)                                                                    <span class="comment">/* enable dual quad spi */</span></div>
+<div class="line"><a id="l02781" name="l02781"></a><span class="lineno"> 2781</span>        {</div>
+<div class="line"><a id="l02782" name="l02782"></a><span class="lineno"> 2782</span>            <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                               <span class="comment">/* 3 address mode */</span></div>
+<div class="line"><a id="l02783" name="l02783"></a><span class="lineno"> 2783</span>            {</div>
+<div class="line"><a id="l02784" name="l02784"></a><span class="lineno"> 2784</span>                res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#a6aeed0a651b31064f25ab2f57fdacf2f">W25QXX_COMMAND_READ_UNIQUE_ID</a>, 1,</div>
+<div class="line"><a id="l02785" name="l02785"></a><span class="lineno"> 2785</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l02786" name="l02786"></a><span class="lineno"> 2786</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l02787" name="l02787"></a><span class="lineno"> 2787</span>                                               4 * 8, NULL, 0x00,</div>
+<div class="line"><a id="l02788" name="l02788"></a><span class="lineno"> 2788</span>                                              (uint8_t *)<span class="keywordtype">id</span>, 8, 1);                                               <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l02789" name="l02789"></a><span class="lineno"> 2789</span>                <span class="keywordflow">if</span> (res != 0)                                                                                     <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l02790" name="l02790"></a><span class="lineno"> 2790</span>                {</div>
+<div class="line"><a id="l02791" name="l02791"></a><span class="lineno"> 2791</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: read unique id failed.\n&quot;</span>);                                      <span class="comment">/* read unique id failed */</span></div>
+<div class="line"><a id="l02792" name="l02792"></a><span class="lineno"> 2792</span>                   </div>
+<div class="line"><a id="l02793" name="l02793"></a><span class="lineno"> 2793</span>                    <span class="keywordflow">return</span> 1;                                                                                     <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l02794" name="l02794"></a><span class="lineno"> 2794</span>                }</div>
+<div class="line"><a id="l02795" name="l02795"></a><span class="lineno"> 2795</span>            }</div>
+<div class="line"><a id="l02796" name="l02796"></a><span class="lineno"> 2796</span>            <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>) &amp;&amp; (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>))</div>
+<div class="line"><a id="l02797" name="l02797"></a><span class="lineno"> 2797</span>            {</div>
+<div class="line"><a id="l02798" name="l02798"></a><span class="lineno"> 2798</span>                res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#a6aeed0a651b31064f25ab2f57fdacf2f">W25QXX_COMMAND_READ_UNIQUE_ID</a>, 1,</div>
+<div class="line"><a id="l02799" name="l02799"></a><span class="lineno"> 2799</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l02800" name="l02800"></a><span class="lineno"> 2800</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l02801" name="l02801"></a><span class="lineno"> 2801</span>                                               5 * 8, NULL, 0x00,</div>
+<div class="line"><a id="l02802" name="l02802"></a><span class="lineno"> 2802</span>                                              (uint8_t *)<span class="keywordtype">id</span>, 8, 1);                                               <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l02803" name="l02803"></a><span class="lineno"> 2803</span>                <span class="keywordflow">if</span> (res != 0)                                                                                     <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l02804" name="l02804"></a><span class="lineno"> 2804</span>                {</div>
+<div class="line"><a id="l02805" name="l02805"></a><span class="lineno"> 2805</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: read unique id failed.\n&quot;</span>);                                      <span class="comment">/* read unique id failed */</span></div>
+<div class="line"><a id="l02806" name="l02806"></a><span class="lineno"> 2806</span>                   </div>
+<div class="line"><a id="l02807" name="l02807"></a><span class="lineno"> 2807</span>                    <span class="keywordflow">return</span> 1;                                                                                     <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l02808" name="l02808"></a><span class="lineno"> 2808</span>                }</div>
+<div class="line"><a id="l02809" name="l02809"></a><span class="lineno"> 2809</span>            }</div>
+<div class="line"><a id="l02810" name="l02810"></a><span class="lineno"> 2810</span>            <span class="keywordflow">else</span></div>
+<div class="line"><a id="l02811" name="l02811"></a><span class="lineno"> 2811</span>            {</div>
+<div class="line"><a id="l02812" name="l02812"></a><span class="lineno"> 2812</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: address mode is invalid.\n&quot;</span>);                                        <span class="comment">/* address mode is invalid */</span></div>
+<div class="line"><a id="l02813" name="l02813"></a><span class="lineno"> 2813</span>               </div>
+<div class="line"><a id="l02814" name="l02814"></a><span class="lineno"> 2814</span>                <span class="keywordflow">return</span> 4;                                                                                         <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l02815" name="l02815"></a><span class="lineno"> 2815</span>            }</div>
+<div class="line"><a id="l02816" name="l02816"></a><span class="lineno"> 2816</span>        }</div>
+<div class="line"><a id="l02817" name="l02817"></a><span class="lineno"> 2817</span>        <span class="keywordflow">else</span>                                                                                                      <span class="comment">/* single spi */</span></div>
+<div class="line"><a id="l02818" name="l02818"></a><span class="lineno"> 2818</span>        {</div>
+<div class="line"><a id="l02819" name="l02819"></a><span class="lineno"> 2819</span>            <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                               <span class="comment">/* 3 address mode */</span></div>
+<div class="line"><a id="l02820" name="l02820"></a><span class="lineno"> 2820</span>            {</div>
+<div class="line"><a id="l02821" name="l02821"></a><span class="lineno"> 2821</span>                buf[0] = <a class="code hl_define" href="driver__w25qxx_8c.html#a6aeed0a651b31064f25ab2f57fdacf2f">W25QXX_COMMAND_READ_UNIQUE_ID</a>;                                                           <span class="comment">/* read unique id command */</span></div>
+<div class="line"><a id="l02822" name="l02822"></a><span class="lineno"> 2822</span>                buf[1] = 0x00;                                                                                    <span class="comment">/* dummy */</span></div>
+<div class="line"><a id="l02823" name="l02823"></a><span class="lineno"> 2823</span>                buf[2] = 0x00;                                                                                    <span class="comment">/* dummy */</span></div>
+<div class="line"><a id="l02824" name="l02824"></a><span class="lineno"> 2824</span>                buf[3] = 0x00;                                                                                    <span class="comment">/* dummy */</span></div>
+<div class="line"><a id="l02825" name="l02825"></a><span class="lineno"> 2825</span>                buf[4] = 0x00;                                                                                    <span class="comment">/* dummy */</span></div>
+<div class="line"><a id="l02826" name="l02826"></a><span class="lineno"> 2826</span>                res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 5, (uint8_t *)<span class="keywordtype">id</span>, 8);                       <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l02827" name="l02827"></a><span class="lineno"> 2827</span>                <span class="keywordflow">if</span> (res != 0)                                                                                     <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l02828" name="l02828"></a><span class="lineno"> 2828</span>                {</div>
+<div class="line"><a id="l02829" name="l02829"></a><span class="lineno"> 2829</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: read unique id failed.\n&quot;</span>);                                      <span class="comment">/* read unique id failed */</span></div>
+<div class="line"><a id="l02830" name="l02830"></a><span class="lineno"> 2830</span>                   </div>
+<div class="line"><a id="l02831" name="l02831"></a><span class="lineno"> 2831</span>                    <span class="keywordflow">return</span> 1;                                                                                     <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l02832" name="l02832"></a><span class="lineno"> 2832</span>                }</div>
+<div class="line"><a id="l02833" name="l02833"></a><span class="lineno"> 2833</span>            }</div>
+<div class="line"><a id="l02834" name="l02834"></a><span class="lineno"> 2834</span>            <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>) &amp;&amp; (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>))</div>
+<div class="line"><a id="l02835" name="l02835"></a><span class="lineno"> 2835</span>            {</div>
+<div class="line"><a id="l02836" name="l02836"></a><span class="lineno"> 2836</span>                buf[0] = <a class="code hl_define" href="driver__w25qxx_8c.html#a6aeed0a651b31064f25ab2f57fdacf2f">W25QXX_COMMAND_READ_UNIQUE_ID</a>;                                                           <span class="comment">/* read unique id command */</span></div>
+<div class="line"><a id="l02837" name="l02837"></a><span class="lineno"> 2837</span>                buf[1] = 0x00;                                                                                    <span class="comment">/* dummy */</span></div>
+<div class="line"><a id="l02838" name="l02838"></a><span class="lineno"> 2838</span>                buf[2] = 0x00;                                                                                    <span class="comment">/* dummy */</span></div>
+<div class="line"><a id="l02839" name="l02839"></a><span class="lineno"> 2839</span>                buf[3] = 0x00;                                                                                    <span class="comment">/* dummy */</span></div>
+<div class="line"><a id="l02840" name="l02840"></a><span class="lineno"> 2840</span>                buf[4] = 0x00;                                                                                    <span class="comment">/* dummy */</span></div>
+<div class="line"><a id="l02841" name="l02841"></a><span class="lineno"> 2841</span>                buf[5] = 0x00;                                                                                    <span class="comment">/* dummy */</span></div>
+<div class="line"><a id="l02842" name="l02842"></a><span class="lineno"> 2842</span>                res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 6, (uint8_t *)<span class="keywordtype">id</span>, 8);                       <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l02843" name="l02843"></a><span class="lineno"> 2843</span>                <span class="keywordflow">if</span> (res != 0)                                                                                     <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l02844" name="l02844"></a><span class="lineno"> 2844</span>                {</div>
+<div class="line"><a id="l02845" name="l02845"></a><span class="lineno"> 2845</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: read unique id failed.\n&quot;</span>);                                      <span class="comment">/* read unique id failed */</span></div>
+<div class="line"><a id="l02846" name="l02846"></a><span class="lineno"> 2846</span>                   </div>
+<div class="line"><a id="l02847" name="l02847"></a><span class="lineno"> 2847</span>                    <span class="keywordflow">return</span> 1;                                                                                     <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l02848" name="l02848"></a><span class="lineno"> 2848</span>                }</div>
+<div class="line"><a id="l02849" name="l02849"></a><span class="lineno"> 2849</span>            }</div>
+<div class="line"><a id="l02850" name="l02850"></a><span class="lineno"> 2850</span>            <span class="keywordflow">else</span></div>
+<div class="line"><a id="l02851" name="l02851"></a><span class="lineno"> 2851</span>            {</div>
+<div class="line"><a id="l02852" name="l02852"></a><span class="lineno"> 2852</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: address mode is invalid.\n&quot;</span>);                                        <span class="comment">/* address mode is invalid */</span></div>
+<div class="line"><a id="l02853" name="l02853"></a><span class="lineno"> 2853</span>               </div>
+<div class="line"><a id="l02854" name="l02854"></a><span class="lineno"> 2854</span>                <span class="keywordflow">return</span> 4;                                                                                         <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l02855" name="l02855"></a><span class="lineno"> 2855</span>            }</div>
+<div class="line"><a id="l02856" name="l02856"></a><span class="lineno"> 2856</span>        }</div>
+<div class="line"><a id="l02857" name="l02857"></a><span class="lineno"> 2857</span>    }</div>
+<div class="line"><a id="l02858" name="l02858"></a><span class="lineno"> 2858</span>    <span class="keywordflow">else</span>                                                                                                          <span class="comment">/* qspi interface */</span></div>
+<div class="line"><a id="l02859" name="l02859"></a><span class="lineno"> 2859</span>    {</div>
+<div class="line"><a id="l02860" name="l02860"></a><span class="lineno"> 2860</span>        handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: qspi can&#39;t use this function.\n&quot;</span>);                                           <span class="comment">/* qspi can&#39;t use this function */</span></div>
+<div class="line"><a id="l02861" name="l02861"></a><span class="lineno"> 2861</span>       </div>
+<div class="line"><a id="l02862" name="l02862"></a><span class="lineno"> 2862</span>        <span class="keywordflow">return</span> 5;                                                                                                 <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l02863" name="l02863"></a><span class="lineno"> 2863</span>    }</div>
+<div class="line"><a id="l02864" name="l02864"></a><span class="lineno"> 2864</span>    </div>
+<div class="line"><a id="l02865" name="l02865"></a><span class="lineno"> 2865</span>    <span class="keywordflow">return</span> 0;                                                                                                     <span class="comment">/* success return 0 */</span></div>
+<div class="line"><a id="l02866" name="l02866"></a><span class="lineno"> 2866</span>}</div>
+</div>
+<div class="line"><a id="l02867" name="l02867"></a><span class="lineno"> 2867</span> </div>
+<div class="foldopen" id="foldopen02880" data-start="{" data-end="}">
+<div class="line"><a id="l02880" name="l02880"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#ga244a91b9c0c32e899ca89e1943045624"> 2880</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__advance__driver.html#ga244a91b9c0c32e899ca89e1943045624">w25qxx_get_sfdp</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint8_t sfdp[256])</div>
+<div class="line"><a id="l02881" name="l02881"></a><span class="lineno"> 2881</span>{</div>
+<div class="line"><a id="l02882" name="l02882"></a><span class="lineno"> 2882</span>    uint8_t res;</div>
+<div class="line"><a id="l02883" name="l02883"></a><span class="lineno"> 2883</span>    uint8_t buf[5];</div>
+<div class="line"><a id="l02884" name="l02884"></a><span class="lineno"> 2884</span>    </div>
+<div class="line"><a id="l02885" name="l02885"></a><span class="lineno"> 2885</span>    <span class="keywordflow">if</span> (handle == NULL)                                                                       <span class="comment">/* check handle */</span></div>
+<div class="line"><a id="l02886" name="l02886"></a><span class="lineno"> 2886</span>    {</div>
+<div class="line"><a id="l02887" name="l02887"></a><span class="lineno"> 2887</span>        <span class="keywordflow">return</span> 2;                                                                             <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l02888" name="l02888"></a><span class="lineno"> 2888</span>    }   </div>
+<div class="line"><a id="l02889" name="l02889"></a><span class="lineno"> 2889</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">inited</a> != 1)                                                                  <span class="comment">/* check handle initialization */</span></div>
+<div class="line"><a id="l02890" name="l02890"></a><span class="lineno"> 2890</span>    {</div>
+<div class="line"><a id="l02891" name="l02891"></a><span class="lineno"> 2891</span>        <span class="keywordflow">return</span> 3;                                                                             <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l02892" name="l02892"></a><span class="lineno"> 2892</span>    }</div>
+<div class="line"><a id="l02893" name="l02893"></a><span class="lineno"> 2893</span>    </div>
+<div class="line"><a id="l02894" name="l02894"></a><span class="lineno"> 2894</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>)                                             <span class="comment">/* spi interface */</span></div>
+<div class="line"><a id="l02895" name="l02895"></a><span class="lineno"> 2895</span>    {</div>
+<div class="line"><a id="l02896" name="l02896"></a><span class="lineno"> 2896</span>        <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">dual_quad_spi_enable</a> != 0)                                                <span class="comment">/* enable dual quad spi */</span></div>
+<div class="line"><a id="l02897" name="l02897"></a><span class="lineno"> 2897</span>        {</div>
+<div class="line"><a id="l02898" name="l02898"></a><span class="lineno"> 2898</span>            res = a_w25qxx_qspi_write_read(handle,</div>
+<div class="line"><a id="l02899" name="l02899"></a><span class="lineno"> 2899</span>                                           <a class="code hl_define" href="driver__w25qxx_8c.html#a63774c5ebbdf5445466d840fad567bf6">W25QXX_COMMAND_READ_SFDP_REGISTER</a>, 1,</div>
+<div class="line"><a id="l02900" name="l02900"></a><span class="lineno"> 2900</span>                                           0x00000000, 1, 3,</div>
+<div class="line"><a id="l02901" name="l02901"></a><span class="lineno"> 2901</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l02902" name="l02902"></a><span class="lineno"> 2902</span>                                           8, NULL, 0x00,</div>
+<div class="line"><a id="l02903" name="l02903"></a><span class="lineno"> 2903</span>                                          (uint8_t *)sfdp, 256, 1);                           <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l02904" name="l02904"></a><span class="lineno"> 2904</span>            <span class="keywordflow">if</span> (res != 0)                                                                     <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l02905" name="l02905"></a><span class="lineno"> 2905</span>            {</div>
+<div class="line"><a id="l02906" name="l02906"></a><span class="lineno"> 2906</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: read unique id failed.\n&quot;</span>);                      <span class="comment">/* read unique id failed */</span></div>
+<div class="line"><a id="l02907" name="l02907"></a><span class="lineno"> 2907</span>               </div>
+<div class="line"><a id="l02908" name="l02908"></a><span class="lineno"> 2908</span>                <span class="keywordflow">return</span> 1;                                                                     <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l02909" name="l02909"></a><span class="lineno"> 2909</span>            }</div>
+<div class="line"><a id="l02910" name="l02910"></a><span class="lineno"> 2910</span>        }</div>
+<div class="line"><a id="l02911" name="l02911"></a><span class="lineno"> 2911</span>        <span class="keywordflow">else</span>                                                                                  <span class="comment">/* single spi */</span></div>
+<div class="line"><a id="l02912" name="l02912"></a><span class="lineno"> 2912</span>        {</div>
+<div class="line"><a id="l02913" name="l02913"></a><span class="lineno"> 2913</span>            buf[0] = <a class="code hl_define" href="driver__w25qxx_8c.html#a63774c5ebbdf5445466d840fad567bf6">W25QXX_COMMAND_READ_SFDP_REGISTER</a>;                                       <span class="comment">/* read sfdp command */</span></div>
+<div class="line"><a id="l02914" name="l02914"></a><span class="lineno"> 2914</span>            buf[1] = 0x00;                                                                    <span class="comment">/* 0x00 */</span></div>
+<div class="line"><a id="l02915" name="l02915"></a><span class="lineno"> 2915</span>            buf[2] = 0x00;                                                                    <span class="comment">/* 0x00 */</span></div>
+<div class="line"><a id="l02916" name="l02916"></a><span class="lineno"> 2916</span>            buf[3] = 0x00;                                                                    <span class="comment">/* 0x00 */</span></div>
+<div class="line"><a id="l02917" name="l02917"></a><span class="lineno"> 2917</span>            buf[4] = 0x00;                                                                    <span class="comment">/* dummy */</span></div>
+<div class="line"><a id="l02918" name="l02918"></a><span class="lineno"> 2918</span>            res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 5,</div>
+<div class="line"><a id="l02919" name="l02919"></a><span class="lineno"> 2919</span>                                         (uint8_t *)sfdp, 256);                               <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l02920" name="l02920"></a><span class="lineno"> 2920</span>            <span class="keywordflow">if</span> (res != 0)                                                                     <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l02921" name="l02921"></a><span class="lineno"> 2921</span>            {</div>
+<div class="line"><a id="l02922" name="l02922"></a><span class="lineno"> 2922</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: get sfdp failed.\n&quot;</span>);                            <span class="comment">/* get sfdp failed */</span></div>
+<div class="line"><a id="l02923" name="l02923"></a><span class="lineno"> 2923</span>               </div>
+<div class="line"><a id="l02924" name="l02924"></a><span class="lineno"> 2924</span>                <span class="keywordflow">return</span> 1;                                                                     <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l02925" name="l02925"></a><span class="lineno"> 2925</span>            }</div>
+<div class="line"><a id="l02926" name="l02926"></a><span class="lineno"> 2926</span>        }</div>
+<div class="line"><a id="l02927" name="l02927"></a><span class="lineno"> 2927</span>    }</div>
+<div class="line"><a id="l02928" name="l02928"></a><span class="lineno"> 2928</span>    <span class="keywordflow">else</span>                                                                                      <span class="comment">/* qspi interface */</span></div>
+<div class="line"><a id="l02929" name="l02929"></a><span class="lineno"> 2929</span>    {</div>
+<div class="line"><a id="l02930" name="l02930"></a><span class="lineno"> 2930</span>        handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: qspi can&#39;t use this function.\n&quot;</span>);                       <span class="comment">/* qspi can&#39;t use this function */</span></div>
+<div class="line"><a id="l02931" name="l02931"></a><span class="lineno"> 2931</span>       </div>
+<div class="line"><a id="l02932" name="l02932"></a><span class="lineno"> 2932</span>        <span class="keywordflow">return</span> 4;                                                                             <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l02933" name="l02933"></a><span class="lineno"> 2933</span>    }</div>
+<div class="line"><a id="l02934" name="l02934"></a><span class="lineno"> 2934</span>    </div>
+<div class="line"><a id="l02935" name="l02935"></a><span class="lineno"> 2935</span>    <span class="keywordflow">return</span> 0;                                                                                 <span class="comment">/* success return 0 */</span></div>
+<div class="line"><a id="l02936" name="l02936"></a><span class="lineno"> 2936</span>}</div>
+</div>
+<div class="line"><a id="l02937" name="l02937"></a><span class="lineno"> 2937</span> </div>
+<div class="foldopen" id="foldopen02952" data-start="{" data-end="}">
+<div class="line"><a id="l02952" name="l02952"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#gaf297e2c6877c64f8fd10a555f783ddaf"> 2952</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__advance__driver.html#gaf297e2c6877c64f8fd10a555f783ddaf">w25qxx_erase_security_register</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, <a class="code hl_enumeration" href="group__w25qxx__advance__driver.html#ga81ddc7d4b9f4f124163beea19cc33c7e">w25qxx_security_register_t</a> num)</div>
+<div class="line"><a id="l02953" name="l02953"></a><span class="lineno"> 2953</span>{</div>
+<div class="line"><a id="l02954" name="l02954"></a><span class="lineno"> 2954</span>    uint8_t res;</div>
+<div class="line"><a id="l02955" name="l02955"></a><span class="lineno"> 2955</span>    uint8_t status;</div>
+<div class="line"><a id="l02956" name="l02956"></a><span class="lineno"> 2956</span>    uint32_t timeout;</div>
+<div class="line"><a id="l02957" name="l02957"></a><span class="lineno"> 2957</span>    uint8_t buf[5];</div>
+<div class="line"><a id="l02958" name="l02958"></a><span class="lineno"> 2958</span>    </div>
+<div class="line"><a id="l02959" name="l02959"></a><span class="lineno"> 2959</span>    <span class="keywordflow">if</span> (handle == NULL)                                                                                       <span class="comment">/* check handle */</span></div>
+<div class="line"><a id="l02960" name="l02960"></a><span class="lineno"> 2960</span>    {</div>
+<div class="line"><a id="l02961" name="l02961"></a><span class="lineno"> 2961</span>        <span class="keywordflow">return</span> 2;                                                                                             <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l02962" name="l02962"></a><span class="lineno"> 2962</span>    }   </div>
+<div class="line"><a id="l02963" name="l02963"></a><span class="lineno"> 2963</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">inited</a> != 1)                                                                                  <span class="comment">/* check handle initialization */</span></div>
+<div class="line"><a id="l02964" name="l02964"></a><span class="lineno"> 2964</span>    {</div>
+<div class="line"><a id="l02965" name="l02965"></a><span class="lineno"> 2965</span>        <span class="keywordflow">return</span> 3;                                                                                             <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l02966" name="l02966"></a><span class="lineno"> 2966</span>    }</div>
+<div class="line"><a id="l02967" name="l02967"></a><span class="lineno"> 2967</span>    </div>
+<div class="line"><a id="l02968" name="l02968"></a><span class="lineno"> 2968</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>)                                                             <span class="comment">/* spi interface */</span></div>
+<div class="line"><a id="l02969" name="l02969"></a><span class="lineno"> 2969</span>    {</div>
+<div class="line"><a id="l02970" name="l02970"></a><span class="lineno"> 2970</span>        <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">dual_quad_spi_enable</a> != 0)                                                                <span class="comment">/* enable dual quad spi */</span></div>
+<div class="line"><a id="l02971" name="l02971"></a><span class="lineno"> 2971</span>        {</div>
+<div class="line"><a id="l02972" name="l02972"></a><span class="lineno"> 2972</span>            res = a_w25qxx_qspi_write_read(handle,</div>
+<div class="line"><a id="l02973" name="l02973"></a><span class="lineno"> 2973</span>                                           <a class="code hl_define" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>, 1,</div>
+<div class="line"><a id="l02974" name="l02974"></a><span class="lineno"> 2974</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l02975" name="l02975"></a><span class="lineno"> 2975</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l02976" name="l02976"></a><span class="lineno"> 2976</span>                                           0x00, NULL, 0x00,</div>
+<div class="line"><a id="l02977" name="l02977"></a><span class="lineno"> 2977</span>                                           NULL, 0x00, 0x00);                                                 <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l02978" name="l02978"></a><span class="lineno"> 2978</span>            <span class="keywordflow">if</span> (res != 0)                                                                                     <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l02979" name="l02979"></a><span class="lineno"> 2979</span>            {</div>
+<div class="line"><a id="l02980" name="l02980"></a><span class="lineno"> 2980</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                                        <span class="comment">/* write enable failed */</span></div>
+<div class="line"><a id="l02981" name="l02981"></a><span class="lineno"> 2981</span>               </div>
+<div class="line"><a id="l02982" name="l02982"></a><span class="lineno"> 2982</span>                <span class="keywordflow">return</span> 1;                                                                                     <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l02983" name="l02983"></a><span class="lineno"> 2983</span>            }</div>
+<div class="line"><a id="l02984" name="l02984"></a><span class="lineno"> 2984</span>            <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                           <span class="comment">/* 3 address mode */</span></div>
+<div class="line"><a id="l02985" name="l02985"></a><span class="lineno"> 2985</span>            {</div>
+<div class="line"><a id="l02986" name="l02986"></a><span class="lineno"> 2986</span>                res = a_w25qxx_qspi_write_read(handle,</div>
+<div class="line"><a id="l02987" name="l02987"></a><span class="lineno"> 2987</span>                                               <a class="code hl_define" href="driver__w25qxx_8c.html#a842f8d646fc8f8ed72422fc1d789498c">W25QXX_COMMAND_ERASE_SECURITY_REGISTER</a>, 1,</div>
+<div class="line"><a id="l02988" name="l02988"></a><span class="lineno"> 2988</span>                                               num &lt;&lt; 8, 1, 3,</div>
+<div class="line"><a id="l02989" name="l02989"></a><span class="lineno"> 2989</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l02990" name="l02990"></a><span class="lineno"> 2990</span>                                               0x00, NULL, 0x00,</div>
+<div class="line"><a id="l02991" name="l02991"></a><span class="lineno"> 2991</span>                                               NULL, 0x00, 0x00);                                             <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l02992" name="l02992"></a><span class="lineno"> 2992</span>                <span class="keywordflow">if</span> (res != 0)                                                                                 <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l02993" name="l02993"></a><span class="lineno"> 2993</span>                {</div>
+<div class="line"><a id="l02994" name="l02994"></a><span class="lineno"> 2994</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: erase security register failed.\n&quot;</span>);                         <span class="comment">/* erase security register failed */</span></div>
+<div class="line"><a id="l02995" name="l02995"></a><span class="lineno"> 2995</span>                   </div>
+<div class="line"><a id="l02996" name="l02996"></a><span class="lineno"> 2996</span>                    <span class="keywordflow">return</span> 1;                                                                                 <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l02997" name="l02997"></a><span class="lineno"> 2997</span>                }</div>
+<div class="line"><a id="l02998" name="l02998"></a><span class="lineno"> 2998</span>            }</div>
+<div class="line"><a id="l02999" name="l02999"></a><span class="lineno"> 2999</span>            <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>) &amp;&amp; (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>))</div>
+<div class="line"><a id="l03000" name="l03000"></a><span class="lineno"> 3000</span>            {</div>
+<div class="line"><a id="l03001" name="l03001"></a><span class="lineno"> 3001</span>                res = a_w25qxx_qspi_write_read(handle,</div>
+<div class="line"><a id="l03002" name="l03002"></a><span class="lineno"> 3002</span>                                               <a class="code hl_define" href="driver__w25qxx_8c.html#a842f8d646fc8f8ed72422fc1d789498c">W25QXX_COMMAND_ERASE_SECURITY_REGISTER</a>, 1,</div>
+<div class="line"><a id="l03003" name="l03003"></a><span class="lineno"> 3003</span>                                               num &lt;&lt; 8, 1, 4,</div>
+<div class="line"><a id="l03004" name="l03004"></a><span class="lineno"> 3004</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l03005" name="l03005"></a><span class="lineno"> 3005</span>                                               0x00, NULL, 0x00,</div>
+<div class="line"><a id="l03006" name="l03006"></a><span class="lineno"> 3006</span>                                               NULL, 0x00, 0x00);                                             <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l03007" name="l03007"></a><span class="lineno"> 3007</span>                <span class="keywordflow">if</span> (res != 0)                                                                                 <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l03008" name="l03008"></a><span class="lineno"> 3008</span>                {</div>
+<div class="line"><a id="l03009" name="l03009"></a><span class="lineno"> 3009</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: erase security register failed.\n&quot;</span>);                         <span class="comment">/* erase security register failed */</span></div>
+<div class="line"><a id="l03010" name="l03010"></a><span class="lineno"> 3010</span>                   </div>
+<div class="line"><a id="l03011" name="l03011"></a><span class="lineno"> 3011</span>                    <span class="keywordflow">return</span> 1;                                                                                 <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l03012" name="l03012"></a><span class="lineno"> 3012</span>                }</div>
+<div class="line"><a id="l03013" name="l03013"></a><span class="lineno"> 3013</span>            }</div>
+<div class="line"><a id="l03014" name="l03014"></a><span class="lineno"> 3014</span>            <span class="keywordflow">else</span></div>
+<div class="line"><a id="l03015" name="l03015"></a><span class="lineno"> 3015</span>            {</div>
+<div class="line"><a id="l03016" name="l03016"></a><span class="lineno"> 3016</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: address mode is invalid.\n&quot;</span>);                                    <span class="comment">/* address mode is invalid */</span></div>
+<div class="line"><a id="l03017" name="l03017"></a><span class="lineno"> 3017</span>               </div>
+<div class="line"><a id="l03018" name="l03018"></a><span class="lineno"> 3018</span>                <span class="keywordflow">return</span> 4;                                                                                     <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l03019" name="l03019"></a><span class="lineno"> 3019</span>            }</div>
+<div class="line"><a id="l03020" name="l03020"></a><span class="lineno"> 3020</span>            </div>
+<div class="line"><a id="l03021" name="l03021"></a><span class="lineno"> 3021</span>            timeout = 100 * 100;                                                                              <span class="comment">/* max 1000 ms */</span></div>
+<div class="line"><a id="l03022" name="l03022"></a><span class="lineno"> 3022</span>            <span class="keywordflow">while</span> (timeout != 0)                                                                              <span class="comment">/* check timeout */</span></div>
+<div class="line"><a id="l03023" name="l03023"></a><span class="lineno"> 3023</span>            {</div>
+<div class="line"><a id="l03024" name="l03024"></a><span class="lineno"> 3024</span>                res = a_w25qxx_qspi_write_read(handle,</div>
+<div class="line"><a id="l03025" name="l03025"></a><span class="lineno"> 3025</span>                                               <a class="code hl_define" href="driver__w25qxx_8c.html#adf682969c34f4b31a87dd92dd18ccea3">W25QXX_COMMAND_READ_STATUS_REG1</a>, 1,</div>
+<div class="line"><a id="l03026" name="l03026"></a><span class="lineno"> 3026</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l03027" name="l03027"></a><span class="lineno"> 3027</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l03028" name="l03028"></a><span class="lineno"> 3028</span>                                               0x00, NULL, 0x00,</div>
+<div class="line"><a id="l03029" name="l03029"></a><span class="lineno"> 3029</span>                                              (uint8_t *)&amp;status, 1, 1);                                      <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l03030" name="l03030"></a><span class="lineno"> 3030</span>                <span class="keywordflow">if</span> (res != 0)                                                                                 <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l03031" name="l03031"></a><span class="lineno"> 3031</span>                {</div>
+<div class="line"><a id="l03032" name="l03032"></a><span class="lineno"> 3032</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: get status1 failed.\n&quot;</span>);                                     <span class="comment">/* get status1 failed */</span></div>
+<div class="line"><a id="l03033" name="l03033"></a><span class="lineno"> 3033</span>                   </div>
+<div class="line"><a id="l03034" name="l03034"></a><span class="lineno"> 3034</span>                    <span class="keywordflow">return</span> 1;                                                                                 <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l03035" name="l03035"></a><span class="lineno"> 3035</span>                }</div>
+<div class="line"><a id="l03036" name="l03036"></a><span class="lineno"> 3036</span>                <span class="keywordflow">if</span> ((status &amp; 0x01) == 0x00)                                                                  <span class="comment">/* check status */</span></div>
+<div class="line"><a id="l03037" name="l03037"></a><span class="lineno"> 3037</span>                {</div>
+<div class="line"><a id="l03038" name="l03038"></a><span class="lineno"> 3038</span>                    <span class="keywordflow">break</span>;                                                                                    <span class="comment">/* break */</span></div>
+<div class="line"><a id="l03039" name="l03039"></a><span class="lineno"> 3039</span>                }</div>
+<div class="line"><a id="l03040" name="l03040"></a><span class="lineno"> 3040</span>                timeout--;                                                                                    <span class="comment">/* timeout-- */</span></div>
+<div class="line"><a id="l03041" name="l03041"></a><span class="lineno"> 3041</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a97ffc4fce945527bd6ab25a3596caef7">delay_us</a>(10);                                                                         <span class="comment">/* delay 10 us */</span></div>
+<div class="line"><a id="l03042" name="l03042"></a><span class="lineno"> 3042</span>            }</div>
+<div class="line"><a id="l03043" name="l03043"></a><span class="lineno"> 3043</span>            <span class="keywordflow">if</span> (timeout == 0)</div>
+<div class="line"><a id="l03044" name="l03044"></a><span class="lineno"> 3044</span>            {</div>
+<div class="line"><a id="l03045" name="l03045"></a><span class="lineno"> 3045</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: erase security register timeout.\n&quot;</span>);                            <span class="comment">/* erase security register timeout */</span></div>
+<div class="line"><a id="l03046" name="l03046"></a><span class="lineno"> 3046</span>               </div>
+<div class="line"><a id="l03047" name="l03047"></a><span class="lineno"> 3047</span>                <span class="keywordflow">return</span> 6;                                                                                     <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l03048" name="l03048"></a><span class="lineno"> 3048</span>            }</div>
+<div class="line"><a id="l03049" name="l03049"></a><span class="lineno"> 3049</span>        }</div>
+<div class="line"><a id="l03050" name="l03050"></a><span class="lineno"> 3050</span>        <span class="keywordflow">else</span>                                                                                                  <span class="comment">/* single spi */</span></div>
+<div class="line"><a id="l03051" name="l03051"></a><span class="lineno"> 3051</span>        {</div>
+<div class="line"><a id="l03052" name="l03052"></a><span class="lineno"> 3052</span>            buf[0] = <a class="code hl_define" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>;                                                             <span class="comment">/* write enable command */</span></div>
+<div class="line"><a id="l03053" name="l03053"></a><span class="lineno"> 3053</span>            res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 1, NULL, 0);                                <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l03054" name="l03054"></a><span class="lineno"> 3054</span>            <span class="keywordflow">if</span> (res != 0)                                                                                     <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l03055" name="l03055"></a><span class="lineno"> 3055</span>            {</div>
+<div class="line"><a id="l03056" name="l03056"></a><span class="lineno"> 3056</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                                        <span class="comment">/* write enable failed */</span></div>
+<div class="line"><a id="l03057" name="l03057"></a><span class="lineno"> 3057</span>               </div>
+<div class="line"><a id="l03058" name="l03058"></a><span class="lineno"> 3058</span>                <span class="keywordflow">return</span> 1;                                                                                     <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l03059" name="l03059"></a><span class="lineno"> 3059</span>            }</div>
+<div class="line"><a id="l03060" name="l03060"></a><span class="lineno"> 3060</span>            <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                           <span class="comment">/* 3 address mode */</span></div>
+<div class="line"><a id="l03061" name="l03061"></a><span class="lineno"> 3061</span>            {</div>
+<div class="line"><a id="l03062" name="l03062"></a><span class="lineno"> 3062</span>                buf[0] = <a class="code hl_define" href="driver__w25qxx_8c.html#a842f8d646fc8f8ed72422fc1d789498c">W25QXX_COMMAND_ERASE_SECURITY_REGISTER</a>;                                              <span class="comment">/* erase security register command */</span></div>
+<div class="line"><a id="l03063" name="l03063"></a><span class="lineno"> 3063</span>                buf[1] = 0x00;                                                                                <span class="comment">/* 0x00 */</span></div>
+<div class="line"><a id="l03064" name="l03064"></a><span class="lineno"> 3064</span>                buf[2] = num;                                                                                 <span class="comment">/* num */</span></div>
+<div class="line"><a id="l03065" name="l03065"></a><span class="lineno"> 3065</span>                buf[3] = 0x00;                                                                                <span class="comment">/* 0x00 */</span></div>
+<div class="line"><a id="l03066" name="l03066"></a><span class="lineno"> 3066</span>                res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 4, NULL, 0);                            <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l03067" name="l03067"></a><span class="lineno"> 3067</span>                <span class="keywordflow">if</span> (res != 0)                                                                                 <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l03068" name="l03068"></a><span class="lineno"> 3068</span>                {</div>
+<div class="line"><a id="l03069" name="l03069"></a><span class="lineno"> 3069</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: erase security register failed.\n&quot;</span>);                         <span class="comment">/* erase security register failed */</span></div>
+<div class="line"><a id="l03070" name="l03070"></a><span class="lineno"> 3070</span>                   </div>
+<div class="line"><a id="l03071" name="l03071"></a><span class="lineno"> 3071</span>                    <span class="keywordflow">return</span> 1;                                                                                 <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l03072" name="l03072"></a><span class="lineno"> 3072</span>                }</div>
+<div class="line"><a id="l03073" name="l03073"></a><span class="lineno"> 3073</span>            }</div>
+<div class="line"><a id="l03074" name="l03074"></a><span class="lineno"> 3074</span>            <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>) &amp;&amp; (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>))</div>
+<div class="line"><a id="l03075" name="l03075"></a><span class="lineno"> 3075</span>            {</div>
+<div class="line"><a id="l03076" name="l03076"></a><span class="lineno"> 3076</span>                buf[0] = <a class="code hl_define" href="driver__w25qxx_8c.html#a842f8d646fc8f8ed72422fc1d789498c">W25QXX_COMMAND_ERASE_SECURITY_REGISTER</a>;                                              <span class="comment">/* erase security register command */</span></div>
+<div class="line"><a id="l03077" name="l03077"></a><span class="lineno"> 3077</span>                buf[1] = 0x00;                                                                                <span class="comment">/* 0x00 */</span></div>
+<div class="line"><a id="l03078" name="l03078"></a><span class="lineno"> 3078</span>                buf[2] = 0x00;                                                                                <span class="comment">/* 0x00 */</span></div>
+<div class="line"><a id="l03079" name="l03079"></a><span class="lineno"> 3079</span>                buf[3] = num;                                                                                 <span class="comment">/* num */</span></div>
+<div class="line"><a id="l03080" name="l03080"></a><span class="lineno"> 3080</span>                buf[4] = 0x00;                                                                                <span class="comment">/* 0x00 */</span></div>
+<div class="line"><a id="l03081" name="l03081"></a><span class="lineno"> 3081</span>                res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 5, NULL, 0);                            <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l03082" name="l03082"></a><span class="lineno"> 3082</span>                <span class="keywordflow">if</span> (res != 0)                                                                                 <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l03083" name="l03083"></a><span class="lineno"> 3083</span>                {</div>
+<div class="line"><a id="l03084" name="l03084"></a><span class="lineno"> 3084</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: erase security register failed.\n&quot;</span>);                         <span class="comment">/* erase security register failed */</span></div>
+<div class="line"><a id="l03085" name="l03085"></a><span class="lineno"> 3085</span>                   </div>
+<div class="line"><a id="l03086" name="l03086"></a><span class="lineno"> 3086</span>                    <span class="keywordflow">return</span> 1;                                                                                 <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l03087" name="l03087"></a><span class="lineno"> 3087</span>                }</div>
+<div class="line"><a id="l03088" name="l03088"></a><span class="lineno"> 3088</span>            }</div>
+<div class="line"><a id="l03089" name="l03089"></a><span class="lineno"> 3089</span>            <span class="keywordflow">else</span></div>
+<div class="line"><a id="l03090" name="l03090"></a><span class="lineno"> 3090</span>            {</div>
+<div class="line"><a id="l03091" name="l03091"></a><span class="lineno"> 3091</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: address mode is invalid.\n&quot;</span>);                                    <span class="comment">/* address mode is invalid */</span></div>
+<div class="line"><a id="l03092" name="l03092"></a><span class="lineno"> 3092</span>               </div>
+<div class="line"><a id="l03093" name="l03093"></a><span class="lineno"> 3093</span>                <span class="keywordflow">return</span> 4;                                                                                     <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l03094" name="l03094"></a><span class="lineno"> 3094</span>            }</div>
+<div class="line"><a id="l03095" name="l03095"></a><span class="lineno"> 3095</span>            </div>
+<div class="line"><a id="l03096" name="l03096"></a><span class="lineno"> 3096</span>            timeout = 100 * 100;                                                                              <span class="comment">/* max 1000 ms */</span></div>
+<div class="line"><a id="l03097" name="l03097"></a><span class="lineno"> 3097</span>            <span class="keywordflow">while</span> (timeout != 0)                                                                              <span class="comment">/* check timeout */</span></div>
+<div class="line"><a id="l03098" name="l03098"></a><span class="lineno"> 3098</span>            {</div>
+<div class="line"><a id="l03099" name="l03099"></a><span class="lineno"> 3099</span>                buf[0] = <a class="code hl_define" href="driver__w25qxx_8c.html#adf682969c34f4b31a87dd92dd18ccea3">W25QXX_COMMAND_READ_STATUS_REG1</a>;                                                     <span class="comment">/* read status1 command */</span></div>
+<div class="line"><a id="l03100" name="l03100"></a><span class="lineno"> 3100</span>                res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 1, (uint8_t *)&amp;status, 1);              <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l03101" name="l03101"></a><span class="lineno"> 3101</span>                <span class="keywordflow">if</span> (res != 0)                                                                                 <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l03102" name="l03102"></a><span class="lineno"> 3102</span>                {</div>
+<div class="line"><a id="l03103" name="l03103"></a><span class="lineno"> 3103</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: get status1 failed.\n&quot;</span>);                                     <span class="comment">/* get status1 failed */</span></div>
+<div class="line"><a id="l03104" name="l03104"></a><span class="lineno"> 3104</span>                   </div>
+<div class="line"><a id="l03105" name="l03105"></a><span class="lineno"> 3105</span>                    <span class="keywordflow">return</span> 1;                                                                                 <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l03106" name="l03106"></a><span class="lineno"> 3106</span>                }</div>
+<div class="line"><a id="l03107" name="l03107"></a><span class="lineno"> 3107</span>                <span class="keywordflow">if</span> ((status &amp; 0x01) == 0x00)                                                                  <span class="comment">/* check status */</span></div>
+<div class="line"><a id="l03108" name="l03108"></a><span class="lineno"> 3108</span>                {</div>
+<div class="line"><a id="l03109" name="l03109"></a><span class="lineno"> 3109</span>                    <span class="keywordflow">break</span>;                                                                                    <span class="comment">/* break */</span></div>
+<div class="line"><a id="l03110" name="l03110"></a><span class="lineno"> 3110</span>                }</div>
+<div class="line"><a id="l03111" name="l03111"></a><span class="lineno"> 3111</span>                timeout--;                                                                                    <span class="comment">/* timeout-- */</span></div>
+<div class="line"><a id="l03112" name="l03112"></a><span class="lineno"> 3112</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a97ffc4fce945527bd6ab25a3596caef7">delay_us</a>(10);                                                                         <span class="comment">/* delay 10 us */</span></div>
+<div class="line"><a id="l03113" name="l03113"></a><span class="lineno"> 3113</span>            }</div>
+<div class="line"><a id="l03114" name="l03114"></a><span class="lineno"> 3114</span>            <span class="keywordflow">if</span> (timeout == 0)</div>
+<div class="line"><a id="l03115" name="l03115"></a><span class="lineno"> 3115</span>            {</div>
+<div class="line"><a id="l03116" name="l03116"></a><span class="lineno"> 3116</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: erase security register timeout.\n&quot;</span>);                            <span class="comment">/* erase security register timeout */</span></div>
+<div class="line"><a id="l03117" name="l03117"></a><span class="lineno"> 3117</span>               </div>
+<div class="line"><a id="l03118" name="l03118"></a><span class="lineno"> 3118</span>                <span class="keywordflow">return</span> 6;                                                                                     <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l03119" name="l03119"></a><span class="lineno"> 3119</span>            }</div>
+<div class="line"><a id="l03120" name="l03120"></a><span class="lineno"> 3120</span>        }</div>
+<div class="line"><a id="l03121" name="l03121"></a><span class="lineno"> 3121</span>    }</div>
+<div class="line"><a id="l03122" name="l03122"></a><span class="lineno"> 3122</span>    <span class="keywordflow">else</span>                                                                                                      <span class="comment">/* qspi interface */</span></div>
+<div class="line"><a id="l03123" name="l03123"></a><span class="lineno"> 3123</span>    {</div>
+<div class="line"><a id="l03124" name="l03124"></a><span class="lineno"> 3124</span>        handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: qspi can&#39;t use this function.\n&quot;</span>);                                       <span class="comment">/* qspi can&#39;t use this function */</span></div>
+<div class="line"><a id="l03125" name="l03125"></a><span class="lineno"> 3125</span>       </div>
+<div class="line"><a id="l03126" name="l03126"></a><span class="lineno"> 3126</span>        <span class="keywordflow">return</span> 5;                                                                                             <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l03127" name="l03127"></a><span class="lineno"> 3127</span>    }</div>
+<div class="line"><a id="l03128" name="l03128"></a><span class="lineno"> 3128</span>    </div>
+<div class="line"><a id="l03129" name="l03129"></a><span class="lineno"> 3129</span>    <span class="keywordflow">return</span> 0;                                                                                                 <span class="comment">/* success return 0 */</span></div>
+<div class="line"><a id="l03130" name="l03130"></a><span class="lineno"> 3130</span>}</div>
+</div>
+<div class="line"><a id="l03131" name="l03131"></a><span class="lineno"> 3131</span> </div>
+<div class="foldopen" id="foldopen03147" data-start="{" data-end="}">
+<div class="line"><a id="l03147" name="l03147"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#ga4e9c059ff78866e478e835cb27a92899"> 3147</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__advance__driver.html#ga4e9c059ff78866e478e835cb27a92899">w25qxx_program_security_register</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, <a class="code hl_enumeration" href="group__w25qxx__advance__driver.html#ga81ddc7d4b9f4f124163beea19cc33c7e">w25qxx_security_register_t</a> num, uint8_t data[256])</div>
+<div class="line"><a id="l03148" name="l03148"></a><span class="lineno"> 3148</span>{</div>
+<div class="line"><a id="l03149" name="l03149"></a><span class="lineno"> 3149</span>    uint8_t res;</div>
+<div class="line"><a id="l03150" name="l03150"></a><span class="lineno"> 3150</span>    uint8_t status;</div>
+<div class="line"><a id="l03151" name="l03151"></a><span class="lineno"> 3151</span>    uint32_t timeout;</div>
+<div class="line"><a id="l03152" name="l03152"></a><span class="lineno"> 3152</span>    uint8_t buf[5];</div>
+<div class="line"><a id="l03153" name="l03153"></a><span class="lineno"> 3153</span>    </div>
+<div class="line"><a id="l03154" name="l03154"></a><span class="lineno"> 3154</span>    <span class="keywordflow">if</span> (handle == NULL)                                                                                       <span class="comment">/* check handle */</span></div>
+<div class="line"><a id="l03155" name="l03155"></a><span class="lineno"> 3155</span>    {</div>
+<div class="line"><a id="l03156" name="l03156"></a><span class="lineno"> 3156</span>        <span class="keywordflow">return</span> 2;                                                                                             <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l03157" name="l03157"></a><span class="lineno"> 3157</span>    }   </div>
+<div class="line"><a id="l03158" name="l03158"></a><span class="lineno"> 3158</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">inited</a> != 1)                                                                                  <span class="comment">/* check handle initialization */</span></div>
+<div class="line"><a id="l03159" name="l03159"></a><span class="lineno"> 3159</span>    {</div>
+<div class="line"><a id="l03160" name="l03160"></a><span class="lineno"> 3160</span>        <span class="keywordflow">return</span> 3;                                                                                             <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l03161" name="l03161"></a><span class="lineno"> 3161</span>    }</div>
+<div class="line"><a id="l03162" name="l03162"></a><span class="lineno"> 3162</span>    </div>
+<div class="line"><a id="l03163" name="l03163"></a><span class="lineno"> 3163</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>)                                                             <span class="comment">/* spi interface */</span></div>
+<div class="line"><a id="l03164" name="l03164"></a><span class="lineno"> 3164</span>    {</div>
+<div class="line"><a id="l03165" name="l03165"></a><span class="lineno"> 3165</span>        <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">dual_quad_spi_enable</a> != 0)                                                                <span class="comment">/* enable dual quad spi */</span></div>
+<div class="line"><a id="l03166" name="l03166"></a><span class="lineno"> 3166</span>        {</div>
+<div class="line"><a id="l03167" name="l03167"></a><span class="lineno"> 3167</span>            res = a_w25qxx_qspi_write_read(handle,</div>
+<div class="line"><a id="l03168" name="l03168"></a><span class="lineno"> 3168</span>                                           <a class="code hl_define" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>, 1,</div>
+<div class="line"><a id="l03169" name="l03169"></a><span class="lineno"> 3169</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l03170" name="l03170"></a><span class="lineno"> 3170</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l03171" name="l03171"></a><span class="lineno"> 3171</span>                                           0x00, NULL, 0x00,</div>
+<div class="line"><a id="l03172" name="l03172"></a><span class="lineno"> 3172</span>                                           NULL, 0x00, 0x00);                                                 <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l03173" name="l03173"></a><span class="lineno"> 3173</span>            <span class="keywordflow">if</span> (res != 0)                                                                                     <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l03174" name="l03174"></a><span class="lineno"> 3174</span>            {</div>
+<div class="line"><a id="l03175" name="l03175"></a><span class="lineno"> 3175</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                                        <span class="comment">/* write enable failed */</span></div>
+<div class="line"><a id="l03176" name="l03176"></a><span class="lineno"> 3176</span>               </div>
+<div class="line"><a id="l03177" name="l03177"></a><span class="lineno"> 3177</span>                <span class="keywordflow">return</span> 1;                                                                                     <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l03178" name="l03178"></a><span class="lineno"> 3178</span>            }</div>
+<div class="line"><a id="l03179" name="l03179"></a><span class="lineno"> 3179</span>            <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                           <span class="comment">/* 3 address mode */</span></div>
+<div class="line"><a id="l03180" name="l03180"></a><span class="lineno"> 3180</span>            {</div>
+<div class="line"><a id="l03181" name="l03181"></a><span class="lineno"> 3181</span>                res = a_w25qxx_qspi_write_read(handle,</div>
+<div class="line"><a id="l03182" name="l03182"></a><span class="lineno"> 3182</span>                                               <a class="code hl_define" href="driver__w25qxx_8c.html#a915ab53f5f2d1cad6b954205e76cb4d5">W25QXX_COMMAND_PROGRAM_SECURITY_REGISTER</a>, 1,</div>
+<div class="line"><a id="l03183" name="l03183"></a><span class="lineno"> 3183</span>                                               num &lt;&lt; 8, 1, 3,</div>
+<div class="line"><a id="l03184" name="l03184"></a><span class="lineno"> 3184</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l03185" name="l03185"></a><span class="lineno"> 3185</span>                                               0x00, data, 256,</div>
+<div class="line"><a id="l03186" name="l03186"></a><span class="lineno"> 3186</span>                                               NULL, 0x00, 1);                                                <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l03187" name="l03187"></a><span class="lineno"> 3187</span>                <span class="keywordflow">if</span> (res != 0)                                                                                 <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l03188" name="l03188"></a><span class="lineno"> 3188</span>                {</div>
+<div class="line"><a id="l03189" name="l03189"></a><span class="lineno"> 3189</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: program security register failed.\n&quot;</span>);                       <span class="comment">/* program security register failed */</span></div>
+<div class="line"><a id="l03190" name="l03190"></a><span class="lineno"> 3190</span>                   </div>
+<div class="line"><a id="l03191" name="l03191"></a><span class="lineno"> 3191</span>                    <span class="keywordflow">return</span> 1;                                                                                 <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l03192" name="l03192"></a><span class="lineno"> 3192</span>                }</div>
+<div class="line"><a id="l03193" name="l03193"></a><span class="lineno"> 3193</span>            }</div>
+<div class="line"><a id="l03194" name="l03194"></a><span class="lineno"> 3194</span>            <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>) &amp;&amp; (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>))</div>
+<div class="line"><a id="l03195" name="l03195"></a><span class="lineno"> 3195</span>            {</div>
+<div class="line"><a id="l03196" name="l03196"></a><span class="lineno"> 3196</span>                res = a_w25qxx_qspi_write_read(handle,</div>
+<div class="line"><a id="l03197" name="l03197"></a><span class="lineno"> 3197</span>                                               <a class="code hl_define" href="driver__w25qxx_8c.html#a915ab53f5f2d1cad6b954205e76cb4d5">W25QXX_COMMAND_PROGRAM_SECURITY_REGISTER</a>, 1,</div>
+<div class="line"><a id="l03198" name="l03198"></a><span class="lineno"> 3198</span>                                               num &lt;&lt; 8, 1, 4,</div>
+<div class="line"><a id="l03199" name="l03199"></a><span class="lineno"> 3199</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l03200" name="l03200"></a><span class="lineno"> 3200</span>                                               0x00, data, 256,</div>
+<div class="line"><a id="l03201" name="l03201"></a><span class="lineno"> 3201</span>                                               NULL, 0x00, 1);                                                <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l03202" name="l03202"></a><span class="lineno"> 3202</span>                <span class="keywordflow">if</span> (res != 0)                                                                                 <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l03203" name="l03203"></a><span class="lineno"> 3203</span>                {</div>
+<div class="line"><a id="l03204" name="l03204"></a><span class="lineno"> 3204</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: program security register failed.\n&quot;</span>);                       <span class="comment">/* program security register failed */</span></div>
+<div class="line"><a id="l03205" name="l03205"></a><span class="lineno"> 3205</span>                   </div>
+<div class="line"><a id="l03206" name="l03206"></a><span class="lineno"> 3206</span>                    <span class="keywordflow">return</span> 1;                                                                                 <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l03207" name="l03207"></a><span class="lineno"> 3207</span>                }</div>
+<div class="line"><a id="l03208" name="l03208"></a><span class="lineno"> 3208</span>            }</div>
+<div class="line"><a id="l03209" name="l03209"></a><span class="lineno"> 3209</span>            <span class="keywordflow">else</span></div>
+<div class="line"><a id="l03210" name="l03210"></a><span class="lineno"> 3210</span>            {</div>
+<div class="line"><a id="l03211" name="l03211"></a><span class="lineno"> 3211</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: address mode is invalid.\n&quot;</span>);                                    <span class="comment">/* address mode is invalid */</span></div>
+<div class="line"><a id="l03212" name="l03212"></a><span class="lineno"> 3212</span>               </div>
+<div class="line"><a id="l03213" name="l03213"></a><span class="lineno"> 3213</span>                <span class="keywordflow">return</span> 4;                                                                                     <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l03214" name="l03214"></a><span class="lineno"> 3214</span>            }</div>
+<div class="line"><a id="l03215" name="l03215"></a><span class="lineno"> 3215</span>            </div>
+<div class="line"><a id="l03216" name="l03216"></a><span class="lineno"> 3216</span>            timeout = 3 * 100;                                                                                <span class="comment">/* max 3 ms */</span></div>
+<div class="line"><a id="l03217" name="l03217"></a><span class="lineno"> 3217</span>            <span class="keywordflow">while</span> (timeout != 0)                                                                              <span class="comment">/* check timeout */</span></div>
+<div class="line"><a id="l03218" name="l03218"></a><span class="lineno"> 3218</span>            {</div>
+<div class="line"><a id="l03219" name="l03219"></a><span class="lineno"> 3219</span>                res = a_w25qxx_qspi_write_read(handle,</div>
+<div class="line"><a id="l03220" name="l03220"></a><span class="lineno"> 3220</span>                                               <a class="code hl_define" href="driver__w25qxx_8c.html#adf682969c34f4b31a87dd92dd18ccea3">W25QXX_COMMAND_READ_STATUS_REG1</a>, 1,</div>
+<div class="line"><a id="l03221" name="l03221"></a><span class="lineno"> 3221</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l03222" name="l03222"></a><span class="lineno"> 3222</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l03223" name="l03223"></a><span class="lineno"> 3223</span>                                               0x00, NULL, 0x00,</div>
+<div class="line"><a id="l03224" name="l03224"></a><span class="lineno"> 3224</span>                                              (uint8_t *)&amp;status, 1, 1);                                      <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l03225" name="l03225"></a><span class="lineno"> 3225</span>                <span class="keywordflow">if</span> (res != 0)                                                                                 <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l03226" name="l03226"></a><span class="lineno"> 3226</span>                {</div>
+<div class="line"><a id="l03227" name="l03227"></a><span class="lineno"> 3227</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: get status1 failed.\n&quot;</span>);                                     <span class="comment">/* get status1 failed */</span></div>
+<div class="line"><a id="l03228" name="l03228"></a><span class="lineno"> 3228</span>                   </div>
+<div class="line"><a id="l03229" name="l03229"></a><span class="lineno"> 3229</span>                    <span class="keywordflow">return</span> 1;                                                                                 <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l03230" name="l03230"></a><span class="lineno"> 3230</span>                }</div>
+<div class="line"><a id="l03231" name="l03231"></a><span class="lineno"> 3231</span>                <span class="keywordflow">if</span> ((status &amp; 0x01) == 0x00)                                                                  <span class="comment">/* check status */</span></div>
+<div class="line"><a id="l03232" name="l03232"></a><span class="lineno"> 3232</span>                {</div>
+<div class="line"><a id="l03233" name="l03233"></a><span class="lineno"> 3233</span>                    <span class="keywordflow">break</span>;                                                                                    <span class="comment">/* break */</span></div>
+<div class="line"><a id="l03234" name="l03234"></a><span class="lineno"> 3234</span>                }</div>
+<div class="line"><a id="l03235" name="l03235"></a><span class="lineno"> 3235</span>                timeout--;                                                                                    <span class="comment">/* timeout-- */</span></div>
+<div class="line"><a id="l03236" name="l03236"></a><span class="lineno"> 3236</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a97ffc4fce945527bd6ab25a3596caef7">delay_us</a>(10);                                                                         <span class="comment">/* delay 10 us */</span></div>
+<div class="line"><a id="l03237" name="l03237"></a><span class="lineno"> 3237</span>            }</div>
+<div class="line"><a id="l03238" name="l03238"></a><span class="lineno"> 3238</span>            <span class="keywordflow">if</span> (timeout == 0)</div>
+<div class="line"><a id="l03239" name="l03239"></a><span class="lineno"> 3239</span>            {</div>
+<div class="line"><a id="l03240" name="l03240"></a><span class="lineno"> 3240</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: program security register timeout.\n&quot;</span>);                          <span class="comment">/* program security register timeout */</span></div>
+<div class="line"><a id="l03241" name="l03241"></a><span class="lineno"> 3241</span>               </div>
+<div class="line"><a id="l03242" name="l03242"></a><span class="lineno"> 3242</span>                <span class="keywordflow">return</span> 6;                                                                                     <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l03243" name="l03243"></a><span class="lineno"> 3243</span>            }</div>
+<div class="line"><a id="l03244" name="l03244"></a><span class="lineno"> 3244</span>        }</div>
+<div class="line"><a id="l03245" name="l03245"></a><span class="lineno"> 3245</span>        <span class="keywordflow">else</span>                                                                                                  <span class="comment">/* single spi */</span></div>
+<div class="line"><a id="l03246" name="l03246"></a><span class="lineno"> 3246</span>        {</div>
+<div class="line"><a id="l03247" name="l03247"></a><span class="lineno"> 3247</span>            buf[0] = <a class="code hl_define" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>;                                                             <span class="comment">/* write enable command */</span></div>
+<div class="line"><a id="l03248" name="l03248"></a><span class="lineno"> 3248</span>            res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 1, NULL, 0);                                <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l03249" name="l03249"></a><span class="lineno"> 3249</span>            <span class="keywordflow">if</span> (res != 0)                                                                                     <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l03250" name="l03250"></a><span class="lineno"> 3250</span>            {</div>
+<div class="line"><a id="l03251" name="l03251"></a><span class="lineno"> 3251</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                                        <span class="comment">/* write enable failed */</span></div>
+<div class="line"><a id="l03252" name="l03252"></a><span class="lineno"> 3252</span>               </div>
+<div class="line"><a id="l03253" name="l03253"></a><span class="lineno"> 3253</span>                <span class="keywordflow">return</span> 1;                                                                                     <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l03254" name="l03254"></a><span class="lineno"> 3254</span>            }</div>
+<div class="line"><a id="l03255" name="l03255"></a><span class="lineno"> 3255</span>            <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                           <span class="comment">/* 3 address mode */</span></div>
+<div class="line"><a id="l03256" name="l03256"></a><span class="lineno"> 3256</span>            {</div>
+<div class="line"><a id="l03257" name="l03257"></a><span class="lineno"> 3257</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a2121914a1858618e9216fa2daf0a42a2">buf</a>[0] = <a class="code hl_define" href="driver__w25qxx_8c.html#a915ab53f5f2d1cad6b954205e76cb4d5">W25QXX_COMMAND_PROGRAM_SECURITY_REGISTER</a>;                                    <span class="comment">/* program security register command */</span></div>
+<div class="line"><a id="l03258" name="l03258"></a><span class="lineno"> 3258</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a2121914a1858618e9216fa2daf0a42a2">buf</a>[1] = 0x00;                                                                        <span class="comment">/* 0x00 */</span></div>
+<div class="line"><a id="l03259" name="l03259"></a><span class="lineno"> 3259</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a2121914a1858618e9216fa2daf0a42a2">buf</a>[2] = num;                                                                         <span class="comment">/* num */</span></div>
+<div class="line"><a id="l03260" name="l03260"></a><span class="lineno"> 3260</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a2121914a1858618e9216fa2daf0a42a2">buf</a>[3] = 0x00;                                                                        <span class="comment">/* 0x00 */</span></div>
+<div class="line"><a id="l03261" name="l03261"></a><span class="lineno"> 3261</span>                memcpy(&amp;handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a2121914a1858618e9216fa2daf0a42a2">buf</a>[4], data, 256);                                                           <span class="comment">/* copy data */</span></div>
+<div class="line"><a id="l03262" name="l03262"></a><span class="lineno"> 3262</span>                res = a_w25qxx_spi_write_read(handle, (uint8_t *)handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a2121914a1858618e9216fa2daf0a42a2">buf</a>, 260, NULL, 0);                  <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l03263" name="l03263"></a><span class="lineno"> 3263</span>                <span class="keywordflow">if</span> (res != 0)                                                                                 <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l03264" name="l03264"></a><span class="lineno"> 3264</span>                {</div>
+<div class="line"><a id="l03265" name="l03265"></a><span class="lineno"> 3265</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: program security register failed.\n&quot;</span>);                       <span class="comment">/* program security register failed */</span></div>
+<div class="line"><a id="l03266" name="l03266"></a><span class="lineno"> 3266</span>                   </div>
+<div class="line"><a id="l03267" name="l03267"></a><span class="lineno"> 3267</span>                    <span class="keywordflow">return</span> 1;                                                                                 <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l03268" name="l03268"></a><span class="lineno"> 3268</span>                }</div>
+<div class="line"><a id="l03269" name="l03269"></a><span class="lineno"> 3269</span>            }</div>
+<div class="line"><a id="l03270" name="l03270"></a><span class="lineno"> 3270</span>            <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>) &amp;&amp; (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>))</div>
+<div class="line"><a id="l03271" name="l03271"></a><span class="lineno"> 3271</span>            {</div>
+<div class="line"><a id="l03272" name="l03272"></a><span class="lineno"> 3272</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a2121914a1858618e9216fa2daf0a42a2">buf</a>[0] = <a class="code hl_define" href="driver__w25qxx_8c.html#a915ab53f5f2d1cad6b954205e76cb4d5">W25QXX_COMMAND_PROGRAM_SECURITY_REGISTER</a>;                                    <span class="comment">/* program security register command */</span></div>
+<div class="line"><a id="l03273" name="l03273"></a><span class="lineno"> 3273</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a2121914a1858618e9216fa2daf0a42a2">buf</a>[1] = 0x00;                                                                        <span class="comment">/* 0x00 */</span></div>
+<div class="line"><a id="l03274" name="l03274"></a><span class="lineno"> 3274</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a2121914a1858618e9216fa2daf0a42a2">buf</a>[2] = 0x00;                                                                        <span class="comment">/* 0x00 */</span></div>
+<div class="line"><a id="l03275" name="l03275"></a><span class="lineno"> 3275</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a2121914a1858618e9216fa2daf0a42a2">buf</a>[3] = num;                                                                         <span class="comment">/* num */</span></div>
+<div class="line"><a id="l03276" name="l03276"></a><span class="lineno"> 3276</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a2121914a1858618e9216fa2daf0a42a2">buf</a>[4] = 0x00;                                                                        <span class="comment">/* 0x00 */</span></div>
+<div class="line"><a id="l03277" name="l03277"></a><span class="lineno"> 3277</span>                memcpy(&amp;handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a2121914a1858618e9216fa2daf0a42a2">buf</a>[5], data, 256);                                                           <span class="comment">/* copy data */</span></div>
+<div class="line"><a id="l03278" name="l03278"></a><span class="lineno"> 3278</span>                res = a_w25qxx_spi_write_read(handle, (uint8_t *)handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a2121914a1858618e9216fa2daf0a42a2">buf</a>, 261, NULL, 0);                  <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l03279" name="l03279"></a><span class="lineno"> 3279</span>                <span class="keywordflow">if</span> (res != 0)                                                                                 <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l03280" name="l03280"></a><span class="lineno"> 3280</span>                {</div>
+<div class="line"><a id="l03281" name="l03281"></a><span class="lineno"> 3281</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: program security register failed.\n&quot;</span>);                       <span class="comment">/* program security register failed */</span></div>
+<div class="line"><a id="l03282" name="l03282"></a><span class="lineno"> 3282</span>                   </div>
+<div class="line"><a id="l03283" name="l03283"></a><span class="lineno"> 3283</span>                    <span class="keywordflow">return</span> 1;                                                                                 <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l03284" name="l03284"></a><span class="lineno"> 3284</span>                }</div>
+<div class="line"><a id="l03285" name="l03285"></a><span class="lineno"> 3285</span>            }</div>
+<div class="line"><a id="l03286" name="l03286"></a><span class="lineno"> 3286</span>            <span class="keywordflow">else</span></div>
+<div class="line"><a id="l03287" name="l03287"></a><span class="lineno"> 3287</span>            {</div>
+<div class="line"><a id="l03288" name="l03288"></a><span class="lineno"> 3288</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: address mode is invalid.\n&quot;</span>);                                    <span class="comment">/* address mode is invalid */</span></div>
+<div class="line"><a id="l03289" name="l03289"></a><span class="lineno"> 3289</span>               </div>
+<div class="line"><a id="l03290" name="l03290"></a><span class="lineno"> 3290</span>                <span class="keywordflow">return</span> 4;                                                                                     <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l03291" name="l03291"></a><span class="lineno"> 3291</span>            }</div>
+<div class="line"><a id="l03292" name="l03292"></a><span class="lineno"> 3292</span>            </div>
+<div class="line"><a id="l03293" name="l03293"></a><span class="lineno"> 3293</span>            timeout = 3 * 100;                                                                                <span class="comment">/* max 3 ms */</span></div>
+<div class="line"><a id="l03294" name="l03294"></a><span class="lineno"> 3294</span>            <span class="keywordflow">while</span> (timeout != 0)                                                                              <span class="comment">/* check timeout */</span></div>
+<div class="line"><a id="l03295" name="l03295"></a><span class="lineno"> 3295</span>            {</div>
+<div class="line"><a id="l03296" name="l03296"></a><span class="lineno"> 3296</span>                buf[0] = <a class="code hl_define" href="driver__w25qxx_8c.html#adf682969c34f4b31a87dd92dd18ccea3">W25QXX_COMMAND_READ_STATUS_REG1</a>;                                                     <span class="comment">/* read status1 command */</span></div>
+<div class="line"><a id="l03297" name="l03297"></a><span class="lineno"> 3297</span>                res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 1, (uint8_t *)&amp;status, 1);              <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l03298" name="l03298"></a><span class="lineno"> 3298</span>                <span class="keywordflow">if</span> (res != 0)                                                                                 <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l03299" name="l03299"></a><span class="lineno"> 3299</span>                {</div>
+<div class="line"><a id="l03300" name="l03300"></a><span class="lineno"> 3300</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: get status1 failed.\n&quot;</span>);                                     <span class="comment">/* get status1 failed */</span></div>
+<div class="line"><a id="l03301" name="l03301"></a><span class="lineno"> 3301</span>                   </div>
+<div class="line"><a id="l03302" name="l03302"></a><span class="lineno"> 3302</span>                    <span class="keywordflow">return</span> 1;                                                                                 <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l03303" name="l03303"></a><span class="lineno"> 3303</span>                }</div>
+<div class="line"><a id="l03304" name="l03304"></a><span class="lineno"> 3304</span>                <span class="keywordflow">if</span> ((status &amp; 0x01) == 0x00)                                                                  <span class="comment">/* check status */</span></div>
+<div class="line"><a id="l03305" name="l03305"></a><span class="lineno"> 3305</span>                {</div>
+<div class="line"><a id="l03306" name="l03306"></a><span class="lineno"> 3306</span>                    <span class="keywordflow">break</span>;                                                                                    <span class="comment">/* break */</span></div>
+<div class="line"><a id="l03307" name="l03307"></a><span class="lineno"> 3307</span>                }</div>
+<div class="line"><a id="l03308" name="l03308"></a><span class="lineno"> 3308</span>                timeout--;                                                                                    <span class="comment">/* timeout-- */</span></div>
+<div class="line"><a id="l03309" name="l03309"></a><span class="lineno"> 3309</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a97ffc4fce945527bd6ab25a3596caef7">delay_us</a>(10);                                                                         <span class="comment">/* delay 10 us */</span></div>
+<div class="line"><a id="l03310" name="l03310"></a><span class="lineno"> 3310</span>            }</div>
+<div class="line"><a id="l03311" name="l03311"></a><span class="lineno"> 3311</span>            <span class="keywordflow">if</span> (timeout == 0)</div>
+<div class="line"><a id="l03312" name="l03312"></a><span class="lineno"> 3312</span>            {</div>
+<div class="line"><a id="l03313" name="l03313"></a><span class="lineno"> 3313</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: program security register timeout.\n&quot;</span>);                          <span class="comment">/* program security register timeout */</span></div>
+<div class="line"><a id="l03314" name="l03314"></a><span class="lineno"> 3314</span>               </div>
+<div class="line"><a id="l03315" name="l03315"></a><span class="lineno"> 3315</span>                <span class="keywordflow">return</span> 6;                                                                                     <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l03316" name="l03316"></a><span class="lineno"> 3316</span>            }</div>
+<div class="line"><a id="l03317" name="l03317"></a><span class="lineno"> 3317</span>        }</div>
+<div class="line"><a id="l03318" name="l03318"></a><span class="lineno"> 3318</span>    }</div>
+<div class="line"><a id="l03319" name="l03319"></a><span class="lineno"> 3319</span>    <span class="keywordflow">else</span>                                                                                                      <span class="comment">/* qspi interface */</span></div>
+<div class="line"><a id="l03320" name="l03320"></a><span class="lineno"> 3320</span>    {</div>
+<div class="line"><a id="l03321" name="l03321"></a><span class="lineno"> 3321</span>        handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: qspi can&#39;t use this function.\n&quot;</span>);                                       <span class="comment">/* qspi can&#39;t use this function */</span></div>
+<div class="line"><a id="l03322" name="l03322"></a><span class="lineno"> 3322</span>       </div>
+<div class="line"><a id="l03323" name="l03323"></a><span class="lineno"> 3323</span>        <span class="keywordflow">return</span> 5;                                                                                             <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l03324" name="l03324"></a><span class="lineno"> 3324</span>    }</div>
+<div class="line"><a id="l03325" name="l03325"></a><span class="lineno"> 3325</span>    </div>
+<div class="line"><a id="l03326" name="l03326"></a><span class="lineno"> 3326</span>    <span class="keywordflow">return</span> 0;                                                                                                 <span class="comment">/* success return 0 */</span></div>
+<div class="line"><a id="l03327" name="l03327"></a><span class="lineno"> 3327</span>}</div>
+</div>
+<div class="line"><a id="l03328" name="l03328"></a><span class="lineno"> 3328</span> </div>
+<div class="foldopen" id="foldopen03344" data-start="{" data-end="}">
+<div class="line"><a id="l03344" name="l03344"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#ga4c65debc4947bd9a61e0073105164b9c"> 3344</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__advance__driver.html#ga4c65debc4947bd9a61e0073105164b9c">w25qxx_read_security_register</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, <a class="code hl_enumeration" href="group__w25qxx__advance__driver.html#ga81ddc7d4b9f4f124163beea19cc33c7e">w25qxx_security_register_t</a> num, uint8_t data[256])</div>
+<div class="line"><a id="l03345" name="l03345"></a><span class="lineno"> 3345</span>{</div>
+<div class="line"><a id="l03346" name="l03346"></a><span class="lineno"> 3346</span>    uint8_t res;</div>
+<div class="line"><a id="l03347" name="l03347"></a><span class="lineno"> 3347</span>    uint8_t buf[6];</div>
+<div class="line"><a id="l03348" name="l03348"></a><span class="lineno"> 3348</span>    </div>
+<div class="line"><a id="l03349" name="l03349"></a><span class="lineno"> 3349</span>    <span class="keywordflow">if</span> (handle == NULL)                                                                                       <span class="comment">/* check handle */</span></div>
+<div class="line"><a id="l03350" name="l03350"></a><span class="lineno"> 3350</span>    {</div>
+<div class="line"><a id="l03351" name="l03351"></a><span class="lineno"> 3351</span>        <span class="keywordflow">return</span> 2;                                                                                             <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l03352" name="l03352"></a><span class="lineno"> 3352</span>    }   </div>
+<div class="line"><a id="l03353" name="l03353"></a><span class="lineno"> 3353</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">inited</a> != 1)                                                                                  <span class="comment">/* check handle initialization */</span></div>
+<div class="line"><a id="l03354" name="l03354"></a><span class="lineno"> 3354</span>    {</div>
+<div class="line"><a id="l03355" name="l03355"></a><span class="lineno"> 3355</span>        <span class="keywordflow">return</span> 3;                                                                                             <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l03356" name="l03356"></a><span class="lineno"> 3356</span>    }</div>
+<div class="line"><a id="l03357" name="l03357"></a><span class="lineno"> 3357</span>    </div>
+<div class="line"><a id="l03358" name="l03358"></a><span class="lineno"> 3358</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>)                                                             <span class="comment">/* spi interface */</span></div>
+<div class="line"><a id="l03359" name="l03359"></a><span class="lineno"> 3359</span>    {</div>
+<div class="line"><a id="l03360" name="l03360"></a><span class="lineno"> 3360</span>        <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">dual_quad_spi_enable</a> != 0)                                                                <span class="comment">/* enable dual quad spi */</span></div>
+<div class="line"><a id="l03361" name="l03361"></a><span class="lineno"> 3361</span>        {</div>
+<div class="line"><a id="l03362" name="l03362"></a><span class="lineno"> 3362</span>            <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                           <span class="comment">/* 3 address mode */</span></div>
+<div class="line"><a id="l03363" name="l03363"></a><span class="lineno"> 3363</span>            {</div>
+<div class="line"><a id="l03364" name="l03364"></a><span class="lineno"> 3364</span>                res = a_w25qxx_qspi_write_read(handle,</div>
+<div class="line"><a id="l03365" name="l03365"></a><span class="lineno"> 3365</span>                                               <a class="code hl_define" href="driver__w25qxx_8c.html#a4dc5fb2c3c15ef86df56b534b874a919">W25QXX_COMMAND_READ_SECURITY_REGISTER</a>, 1,</div>
+<div class="line"><a id="l03366" name="l03366"></a><span class="lineno"> 3366</span>                                               num &lt;&lt; 8, 1, 3,</div>
+<div class="line"><a id="l03367" name="l03367"></a><span class="lineno"> 3367</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l03368" name="l03368"></a><span class="lineno"> 3368</span>                                               8, NULL, 0x00,</div>
+<div class="line"><a id="l03369" name="l03369"></a><span class="lineno"> 3369</span>                                               data, 256, 1);                                                 <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l03370" name="l03370"></a><span class="lineno"> 3370</span>                <span class="keywordflow">if</span> (res != 0)                                                                                 <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l03371" name="l03371"></a><span class="lineno"> 3371</span>                {</div>
+<div class="line"><a id="l03372" name="l03372"></a><span class="lineno"> 3372</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: read security register failed.\n&quot;</span>);                          <span class="comment">/* read security register failed */</span></div>
+<div class="line"><a id="l03373" name="l03373"></a><span class="lineno"> 3373</span>                   </div>
+<div class="line"><a id="l03374" name="l03374"></a><span class="lineno"> 3374</span>                    <span class="keywordflow">return</span> 1;                                                                                 <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l03375" name="l03375"></a><span class="lineno"> 3375</span>                }</div>
+<div class="line"><a id="l03376" name="l03376"></a><span class="lineno"> 3376</span>            }</div>
+<div class="line"><a id="l03377" name="l03377"></a><span class="lineno"> 3377</span>            <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>) &amp;&amp; (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>))       <span class="comment">/* 4 address mode */</span></div>
+<div class="line"><a id="l03378" name="l03378"></a><span class="lineno"> 3378</span>            {</div>
+<div class="line"><a id="l03379" name="l03379"></a><span class="lineno"> 3379</span>                res = a_w25qxx_qspi_write_read(handle,</div>
+<div class="line"><a id="l03380" name="l03380"></a><span class="lineno"> 3380</span>                                               <a class="code hl_define" href="driver__w25qxx_8c.html#a4dc5fb2c3c15ef86df56b534b874a919">W25QXX_COMMAND_READ_SECURITY_REGISTER</a>, 1,</div>
+<div class="line"><a id="l03381" name="l03381"></a><span class="lineno"> 3381</span>                                               num &lt;&lt; 8, 1, 4,</div>
+<div class="line"><a id="l03382" name="l03382"></a><span class="lineno"> 3382</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l03383" name="l03383"></a><span class="lineno"> 3383</span>                                               8, NULL, 0x00,</div>
+<div class="line"><a id="l03384" name="l03384"></a><span class="lineno"> 3384</span>                                               data, 256, 1);                                                 <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l03385" name="l03385"></a><span class="lineno"> 3385</span>                <span class="keywordflow">if</span> (res != 0)                                                                                 <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l03386" name="l03386"></a><span class="lineno"> 3386</span>                {</div>
+<div class="line"><a id="l03387" name="l03387"></a><span class="lineno"> 3387</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: read security register failed.\n&quot;</span>);                          <span class="comment">/* read security register failed */</span></div>
+<div class="line"><a id="l03388" name="l03388"></a><span class="lineno"> 3388</span>                   </div>
+<div class="line"><a id="l03389" name="l03389"></a><span class="lineno"> 3389</span>                    <span class="keywordflow">return</span> 1;                                                                                 <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l03390" name="l03390"></a><span class="lineno"> 3390</span>                }</div>
+<div class="line"><a id="l03391" name="l03391"></a><span class="lineno"> 3391</span>            }</div>
+<div class="line"><a id="l03392" name="l03392"></a><span class="lineno"> 3392</span>            <span class="keywordflow">else</span></div>
+<div class="line"><a id="l03393" name="l03393"></a><span class="lineno"> 3393</span>            {</div>
+<div class="line"><a id="l03394" name="l03394"></a><span class="lineno"> 3394</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: address mode is invalid.\n&quot;</span>);                                    <span class="comment">/* address mode is invalid */</span></div>
+<div class="line"><a id="l03395" name="l03395"></a><span class="lineno"> 3395</span>               </div>
+<div class="line"><a id="l03396" name="l03396"></a><span class="lineno"> 3396</span>                <span class="keywordflow">return</span> 4;                                                                                     <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l03397" name="l03397"></a><span class="lineno"> 3397</span>            }</div>
+<div class="line"><a id="l03398" name="l03398"></a><span class="lineno"> 3398</span>        }</div>
+<div class="line"><a id="l03399" name="l03399"></a><span class="lineno"> 3399</span>        <span class="keywordflow">else</span>                                                                                                  <span class="comment">/* single spi */</span></div>
+<div class="line"><a id="l03400" name="l03400"></a><span class="lineno"> 3400</span>        {</div>
+<div class="line"><a id="l03401" name="l03401"></a><span class="lineno"> 3401</span>            <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                           <span class="comment">/* 3 address mode */</span></div>
+<div class="line"><a id="l03402" name="l03402"></a><span class="lineno"> 3402</span>            {</div>
+<div class="line"><a id="l03403" name="l03403"></a><span class="lineno"> 3403</span>                buf[0] = <a class="code hl_define" href="driver__w25qxx_8c.html#a4dc5fb2c3c15ef86df56b534b874a919">W25QXX_COMMAND_READ_SECURITY_REGISTER</a>;                                               <span class="comment">/* read security register command */</span></div>
+<div class="line"><a id="l03404" name="l03404"></a><span class="lineno"> 3404</span>                buf[1] = 0x00;                                                                                <span class="comment">/* 0x00 */</span></div>
+<div class="line"><a id="l03405" name="l03405"></a><span class="lineno"> 3405</span>                buf[2] = num;                                                                                 <span class="comment">/* num */</span></div>
+<div class="line"><a id="l03406" name="l03406"></a><span class="lineno"> 3406</span>                buf[3] = 0x00;                                                                                <span class="comment">/* 0x00 */</span></div>
+<div class="line"><a id="l03407" name="l03407"></a><span class="lineno"> 3407</span>                buf[4] = 0x00;                                                                                <span class="comment">/* dummy */</span></div>
+<div class="line"><a id="l03408" name="l03408"></a><span class="lineno"> 3408</span>                res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 5, data, 256);                          <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l03409" name="l03409"></a><span class="lineno"> 3409</span>                <span class="keywordflow">if</span> (res != 0)                                                                                 <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l03410" name="l03410"></a><span class="lineno"> 3410</span>                {</div>
+<div class="line"><a id="l03411" name="l03411"></a><span class="lineno"> 3411</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: read security register failed.\n&quot;</span>);                          <span class="comment">/* read security register failed */</span></div>
+<div class="line"><a id="l03412" name="l03412"></a><span class="lineno"> 3412</span>                   </div>
+<div class="line"><a id="l03413" name="l03413"></a><span class="lineno"> 3413</span>                    <span class="keywordflow">return</span> 1;                                                                                 <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l03414" name="l03414"></a><span class="lineno"> 3414</span>                }</div>
+<div class="line"><a id="l03415" name="l03415"></a><span class="lineno"> 3415</span>            }</div>
+<div class="line"><a id="l03416" name="l03416"></a><span class="lineno"> 3416</span>            <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>) &amp;&amp; (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>))</div>
+<div class="line"><a id="l03417" name="l03417"></a><span class="lineno"> 3417</span>            {</div>
+<div class="line"><a id="l03418" name="l03418"></a><span class="lineno"> 3418</span>                buf[0] = <a class="code hl_define" href="driver__w25qxx_8c.html#a4dc5fb2c3c15ef86df56b534b874a919">W25QXX_COMMAND_READ_SECURITY_REGISTER</a>;                                               <span class="comment">/* read security register command */</span></div>
+<div class="line"><a id="l03419" name="l03419"></a><span class="lineno"> 3419</span>                buf[1] = 0x00;                                                                                <span class="comment">/* 0x00 */</span></div>
+<div class="line"><a id="l03420" name="l03420"></a><span class="lineno"> 3420</span>                buf[2] = 0x00;                                                                                <span class="comment">/* 0x00 */</span></div>
+<div class="line"><a id="l03421" name="l03421"></a><span class="lineno"> 3421</span>                buf[3] = num;                                                                                 <span class="comment">/* num */</span></div>
+<div class="line"><a id="l03422" name="l03422"></a><span class="lineno"> 3422</span>                buf[4] = 0x00;                                                                                <span class="comment">/* 0x00 */</span></div>
+<div class="line"><a id="l03423" name="l03423"></a><span class="lineno"> 3423</span>                buf[5] = 0x00;                                                                                <span class="comment">/* dummy */</span></div>
+<div class="line"><a id="l03424" name="l03424"></a><span class="lineno"> 3424</span>                res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 6, data, 256);                          <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l03425" name="l03425"></a><span class="lineno"> 3425</span>                <span class="keywordflow">if</span> (res != 0)                                                                                 <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l03426" name="l03426"></a><span class="lineno"> 3426</span>                {</div>
+<div class="line"><a id="l03427" name="l03427"></a><span class="lineno"> 3427</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: read security register failed.\n&quot;</span>);                          <span class="comment">/* read security register failed */</span></div>
+<div class="line"><a id="l03428" name="l03428"></a><span class="lineno"> 3428</span>                   </div>
+<div class="line"><a id="l03429" name="l03429"></a><span class="lineno"> 3429</span>                    <span class="keywordflow">return</span> 1;                                                                                 <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l03430" name="l03430"></a><span class="lineno"> 3430</span>                }</div>
+<div class="line"><a id="l03431" name="l03431"></a><span class="lineno"> 3431</span>            }</div>
+<div class="line"><a id="l03432" name="l03432"></a><span class="lineno"> 3432</span>            <span class="keywordflow">else</span></div>
+<div class="line"><a id="l03433" name="l03433"></a><span class="lineno"> 3433</span>            {</div>
+<div class="line"><a id="l03434" name="l03434"></a><span class="lineno"> 3434</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: address mode is invalid.\n&quot;</span>);                                    <span class="comment">/* address mode is invalid */</span></div>
+<div class="line"><a id="l03435" name="l03435"></a><span class="lineno"> 3435</span>               </div>
+<div class="line"><a id="l03436" name="l03436"></a><span class="lineno"> 3436</span>                <span class="keywordflow">return</span> 4;                                                                                     <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l03437" name="l03437"></a><span class="lineno"> 3437</span>            }</div>
+<div class="line"><a id="l03438" name="l03438"></a><span class="lineno"> 3438</span>        }</div>
+<div class="line"><a id="l03439" name="l03439"></a><span class="lineno"> 3439</span>    }</div>
+<div class="line"><a id="l03440" name="l03440"></a><span class="lineno"> 3440</span>    <span class="keywordflow">else</span>                                                                                                      <span class="comment">/* qspi interface */</span></div>
+<div class="line"><a id="l03441" name="l03441"></a><span class="lineno"> 3441</span>    {</div>
+<div class="line"><a id="l03442" name="l03442"></a><span class="lineno"> 3442</span>        handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: qspi can&#39;t use this function.\n&quot;</span>);                                       <span class="comment">/* qspi can&#39;t use this function */</span></div>
+<div class="line"><a id="l03443" name="l03443"></a><span class="lineno"> 3443</span>       </div>
+<div class="line"><a id="l03444" name="l03444"></a><span class="lineno"> 3444</span>        <span class="keywordflow">return</span> 5;                                                                                             <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l03445" name="l03445"></a><span class="lineno"> 3445</span>    }</div>
+<div class="line"><a id="l03446" name="l03446"></a><span class="lineno"> 3446</span>    </div>
+<div class="line"><a id="l03447" name="l03447"></a><span class="lineno"> 3447</span>    <span class="keywordflow">return</span> 0;                                                                                                 <span class="comment">/* success return 0 */</span></div>
+<div class="line"><a id="l03448" name="l03448"></a><span class="lineno"> 3448</span>}</div>
+</div>
+<div class="line"><a id="l03449" name="l03449"></a><span class="lineno"> 3449</span> </div>
+<div class="foldopen" id="foldopen03465" data-start="{" data-end="}">
+<div class="line"><a id="l03465" name="l03465"></a><span class="lineno"><a class="line" href="group__w25qxx__basic__driver.html#ga1e9ebf198137d23558dbf6470213c472"> 3465</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__basic__driver.html#ga1e9ebf198137d23558dbf6470213c472">w25qxx_only_spi_read</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint32_t len)</div>
+<div class="line"><a id="l03466" name="l03466"></a><span class="lineno"> 3466</span>{</div>
+<div class="line"><a id="l03467" name="l03467"></a><span class="lineno"> 3467</span>    uint8_t res;</div>
+<div class="line"><a id="l03468" name="l03468"></a><span class="lineno"> 3468</span>    uint8_t buf[5];</div>
+<div class="line"><a id="l03469" name="l03469"></a><span class="lineno"> 3469</span>    </div>
+<div class="line"><a id="l03470" name="l03470"></a><span class="lineno"> 3470</span>    <span class="keywordflow">if</span> (handle == NULL)                                                                                   <span class="comment">/* check handle */</span></div>
+<div class="line"><a id="l03471" name="l03471"></a><span class="lineno"> 3471</span>    {</div>
+<div class="line"><a id="l03472" name="l03472"></a><span class="lineno"> 3472</span>        <span class="keywordflow">return</span> 2;                                                                                         <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l03473" name="l03473"></a><span class="lineno"> 3473</span>    }   </div>
+<div class="line"><a id="l03474" name="l03474"></a><span class="lineno"> 3474</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">inited</a> != 1)                                                                              <span class="comment">/* check handle initialization */</span></div>
+<div class="line"><a id="l03475" name="l03475"></a><span class="lineno"> 3475</span>    {</div>
+<div class="line"><a id="l03476" name="l03476"></a><span class="lineno"> 3476</span>        <span class="keywordflow">return</span> 3;                                                                                         <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l03477" name="l03477"></a><span class="lineno"> 3477</span>    }</div>
+<div class="line"><a id="l03478" name="l03478"></a><span class="lineno"> 3478</span>    </div>
+<div class="line"><a id="l03479" name="l03479"></a><span class="lineno"> 3479</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>)                                                         <span class="comment">/* spi interface */</span></div>
+<div class="line"><a id="l03480" name="l03480"></a><span class="lineno"> 3480</span>    {</div>
+<div class="line"><a id="l03481" name="l03481"></a><span class="lineno"> 3481</span>        <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">dual_quad_spi_enable</a> != 0)                                                            <span class="comment">/* enable dual quad spi */</span></div>
+<div class="line"><a id="l03482" name="l03482"></a><span class="lineno"> 3482</span>        {</div>
+<div class="line"><a id="l03483" name="l03483"></a><span class="lineno"> 3483</span>            <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                       <span class="comment">/* 3 address mode */</span></div>
+<div class="line"><a id="l03484" name="l03484"></a><span class="lineno"> 3484</span>            {</div>
+<div class="line"><a id="l03485" name="l03485"></a><span class="lineno"> 3485</span>                <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)                                                              <span class="comment">/* &gt;128Mb */</span></div>
+<div class="line"><a id="l03486" name="l03486"></a><span class="lineno"> 3486</span>                {</div>
+<div class="line"><a id="l03487" name="l03487"></a><span class="lineno"> 3487</span>                    res = a_w25qxx_qspi_write_read(handle,</div>
+<div class="line"><a id="l03488" name="l03488"></a><span class="lineno"> 3488</span>                                                   <a class="code hl_define" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>, 1,</div>
+<div class="line"><a id="l03489" name="l03489"></a><span class="lineno"> 3489</span>                                                   0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l03490" name="l03490"></a><span class="lineno"> 3490</span>                                                   0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l03491" name="l03491"></a><span class="lineno"> 3491</span>                                                   0x00, NULL, 0x00,</div>
+<div class="line"><a id="l03492" name="l03492"></a><span class="lineno"> 3492</span>                                                   NULL, 0x00, 0x00);                                     <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l03493" name="l03493"></a><span class="lineno"> 3493</span>                    <span class="keywordflow">if</span> (res != 0)                                                                         <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l03494" name="l03494"></a><span class="lineno"> 3494</span>                    {</div>
+<div class="line"><a id="l03495" name="l03495"></a><span class="lineno"> 3495</span>                        handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                            <span class="comment">/* write enable failed */</span></div>
+<div class="line"><a id="l03496" name="l03496"></a><span class="lineno"> 3496</span>                       </div>
+<div class="line"><a id="l03497" name="l03497"></a><span class="lineno"> 3497</span>                        <span class="keywordflow">return</span> 1;                                                                         <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l03498" name="l03498"></a><span class="lineno"> 3498</span>                    }</div>
+<div class="line"><a id="l03499" name="l03499"></a><span class="lineno"> 3499</span>                    buf[0] = (addr &gt;&gt; 24) &amp; 0xFF;                                                         <span class="comment">/* 31 - 24 bits */</span></div>
+<div class="line"><a id="l03500" name="l03500"></a><span class="lineno"> 3500</span>                    res = a_w25qxx_qspi_write_read(handle,</div>
+<div class="line"><a id="l03501" name="l03501"></a><span class="lineno"> 3501</span>                                                   0xC5, 1,</div>
+<div class="line"><a id="l03502" name="l03502"></a><span class="lineno"> 3502</span>                                                   0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l03503" name="l03503"></a><span class="lineno"> 3503</span>                                                   0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l03504" name="l03504"></a><span class="lineno"> 3504</span>                                                   0x00, (uint8_t *)buf, 1,</div>
+<div class="line"><a id="l03505" name="l03505"></a><span class="lineno"> 3505</span>                                                   NULL, 0x00, 1);                                        <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l03506" name="l03506"></a><span class="lineno"> 3506</span>                    <span class="keywordflow">if</span> (res != 0)                                                                         <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l03507" name="l03507"></a><span class="lineno"> 3507</span>                    {</div>
+<div class="line"><a id="l03508" name="l03508"></a><span class="lineno"> 3508</span>                        handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write extended addr register failed.\n&quot;</span>);            <span class="comment">/* write extended addr register failed */</span></div>
+<div class="line"><a id="l03509" name="l03509"></a><span class="lineno"> 3509</span>                       </div>
+<div class="line"><a id="l03510" name="l03510"></a><span class="lineno"> 3510</span>                        <span class="keywordflow">return</span> 1;                                                                         <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l03511" name="l03511"></a><span class="lineno"> 3511</span>                    }</div>
+<div class="line"><a id="l03512" name="l03512"></a><span class="lineno"> 3512</span>                    </div>
+<div class="line"><a id="l03513" name="l03513"></a><span class="lineno"> 3513</span>                }</div>
+<div class="line"><a id="l03514" name="l03514"></a><span class="lineno"> 3514</span>                res = a_w25qxx_qspi_write_read(handle,</div>
+<div class="line"><a id="l03515" name="l03515"></a><span class="lineno"> 3515</span>                                               <a class="code hl_define" href="driver__w25qxx_8c.html#a23fcd6d9b067580d534d626c43b7cff3">W25QXX_COMMAND_READ_DATA</a>, 1,</div>
+<div class="line"><a id="l03516" name="l03516"></a><span class="lineno"> 3516</span>                                               addr, 1, 3,</div>
+<div class="line"><a id="l03517" name="l03517"></a><span class="lineno"> 3517</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l03518" name="l03518"></a><span class="lineno"> 3518</span>                                               0x00, NULL, 0x00,</div>
+<div class="line"><a id="l03519" name="l03519"></a><span class="lineno"> 3519</span>                                               data, len, 1);                                             <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l03520" name="l03520"></a><span class="lineno"> 3520</span>                <span class="keywordflow">if</span> (res != 0)                                                                             <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l03521" name="l03521"></a><span class="lineno"> 3521</span>                {</div>
+<div class="line"><a id="l03522" name="l03522"></a><span class="lineno"> 3522</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: only spi read failed.\n&quot;</span>);                               <span class="comment">/* only spi read failed */</span></div>
+<div class="line"><a id="l03523" name="l03523"></a><span class="lineno"> 3523</span>                   </div>
+<div class="line"><a id="l03524" name="l03524"></a><span class="lineno"> 3524</span>                    <span class="keywordflow">return</span> 1;                                                                             <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l03525" name="l03525"></a><span class="lineno"> 3525</span>                }</div>
+<div class="line"><a id="l03526" name="l03526"></a><span class="lineno"> 3526</span>            }</div>
+<div class="line"><a id="l03527" name="l03527"></a><span class="lineno"> 3527</span>            <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>) &amp;&amp; </div>
+<div class="line"><a id="l03528" name="l03528"></a><span class="lineno"> 3528</span>                     (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>))                                                           <span class="comment">/* check address mode */</span></div>
+<div class="line"><a id="l03529" name="l03529"></a><span class="lineno"> 3529</span>            {</div>
+<div class="line"><a id="l03530" name="l03530"></a><span class="lineno"> 3530</span>                res = a_w25qxx_qspi_write_read(handle,</div>
+<div class="line"><a id="l03531" name="l03531"></a><span class="lineno"> 3531</span>                                               <a class="code hl_define" href="driver__w25qxx_8c.html#a23fcd6d9b067580d534d626c43b7cff3">W25QXX_COMMAND_READ_DATA</a>, 1,</div>
+<div class="line"><a id="l03532" name="l03532"></a><span class="lineno"> 3532</span>                                               addr, 1, 4,</div>
+<div class="line"><a id="l03533" name="l03533"></a><span class="lineno"> 3533</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l03534" name="l03534"></a><span class="lineno"> 3534</span>                                               0x00, NULL, 0x00,</div>
+<div class="line"><a id="l03535" name="l03535"></a><span class="lineno"> 3535</span>                                               data, len, 1);                                             <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l03536" name="l03536"></a><span class="lineno"> 3536</span>                <span class="keywordflow">if</span> (res != 0)                                                                             <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l03537" name="l03537"></a><span class="lineno"> 3537</span>                {</div>
+<div class="line"><a id="l03538" name="l03538"></a><span class="lineno"> 3538</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: only spi read failed.\n&quot;</span>);                               <span class="comment">/* only spi read failed */</span></div>
+<div class="line"><a id="l03539" name="l03539"></a><span class="lineno"> 3539</span>                   </div>
+<div class="line"><a id="l03540" name="l03540"></a><span class="lineno"> 3540</span>                    <span class="keywordflow">return</span> 1;                                                                             <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l03541" name="l03541"></a><span class="lineno"> 3541</span>                }</div>
+<div class="line"><a id="l03542" name="l03542"></a><span class="lineno"> 3542</span>            }</div>
+<div class="line"><a id="l03543" name="l03543"></a><span class="lineno"> 3543</span>            <span class="keywordflow">else</span></div>
+<div class="line"><a id="l03544" name="l03544"></a><span class="lineno"> 3544</span>            {</div>
+<div class="line"><a id="l03545" name="l03545"></a><span class="lineno"> 3545</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: address mode is invalid.\n&quot;</span>);                                <span class="comment">/* address mode is invalid */</span></div>
+<div class="line"><a id="l03546" name="l03546"></a><span class="lineno"> 3546</span>               </div>
+<div class="line"><a id="l03547" name="l03547"></a><span class="lineno"> 3547</span>                <span class="keywordflow">return</span> 4;                                                                                 <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l03548" name="l03548"></a><span class="lineno"> 3548</span>            }</div>
+<div class="line"><a id="l03549" name="l03549"></a><span class="lineno"> 3549</span>        }</div>
+<div class="line"><a id="l03550" name="l03550"></a><span class="lineno"> 3550</span>        <span class="keywordflow">else</span>                                                                                              <span class="comment">/* single spi */</span></div>
+<div class="line"><a id="l03551" name="l03551"></a><span class="lineno"> 3551</span>        {</div>
+<div class="line"><a id="l03552" name="l03552"></a><span class="lineno"> 3552</span>            <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                       <span class="comment">/* 3 address mode */</span></div>
+<div class="line"><a id="l03553" name="l03553"></a><span class="lineno"> 3553</span>            {</div>
+<div class="line"><a id="l03554" name="l03554"></a><span class="lineno"> 3554</span>                <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)                                                              <span class="comment">/* &gt;128Mb */</span></div>
+<div class="line"><a id="l03555" name="l03555"></a><span class="lineno"> 3555</span>                {</div>
+<div class="line"><a id="l03556" name="l03556"></a><span class="lineno"> 3556</span>                    buf[0] = <a class="code hl_define" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>;                                                 <span class="comment">/* write enable command */</span></div>
+<div class="line"><a id="l03557" name="l03557"></a><span class="lineno"> 3557</span>                    res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 1, NULL, 0);                    <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l03558" name="l03558"></a><span class="lineno"> 3558</span>                    <span class="keywordflow">if</span> (res != 0)                                                                         <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l03559" name="l03559"></a><span class="lineno"> 3559</span>                    {</div>
+<div class="line"><a id="l03560" name="l03560"></a><span class="lineno"> 3560</span>                        handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                            <span class="comment">/* write enable failed */</span></div>
+<div class="line"><a id="l03561" name="l03561"></a><span class="lineno"> 3561</span>                       </div>
+<div class="line"><a id="l03562" name="l03562"></a><span class="lineno"> 3562</span>                        <span class="keywordflow">return</span> 1;                                                                         <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l03563" name="l03563"></a><span class="lineno"> 3563</span>                    }</div>
+<div class="line"><a id="l03564" name="l03564"></a><span class="lineno"> 3564</span>                    buf[0] = 0xC5;                                                                        <span class="comment">/* write extended addr register command */</span></div>
+<div class="line"><a id="l03565" name="l03565"></a><span class="lineno"> 3565</span>                    buf[1] = (addr &gt;&gt; 24) &amp; 0xFF;                                                         <span class="comment">/* 31 - 24 bits */</span></div>
+<div class="line"><a id="l03566" name="l03566"></a><span class="lineno"> 3566</span>                    res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 2, NULL, 0);                    <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l03567" name="l03567"></a><span class="lineno"> 3567</span>                    <span class="keywordflow">if</span> (res != 0)                                                                         <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l03568" name="l03568"></a><span class="lineno"> 3568</span>                    {</div>
+<div class="line"><a id="l03569" name="l03569"></a><span class="lineno"> 3569</span>                        handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write extended addr register failed.\n&quot;</span>);            <span class="comment">/* write extended addr register failed */</span></div>
+<div class="line"><a id="l03570" name="l03570"></a><span class="lineno"> 3570</span>                       </div>
+<div class="line"><a id="l03571" name="l03571"></a><span class="lineno"> 3571</span>                        <span class="keywordflow">return</span> 1;                                                                         <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l03572" name="l03572"></a><span class="lineno"> 3572</span>                    }</div>
+<div class="line"><a id="l03573" name="l03573"></a><span class="lineno"> 3573</span>                }</div>
+<div class="line"><a id="l03574" name="l03574"></a><span class="lineno"> 3574</span>                buf[0] = <a class="code hl_define" href="driver__w25qxx_8c.html#a23fcd6d9b067580d534d626c43b7cff3">W25QXX_COMMAND_READ_DATA</a>;                                                        <span class="comment">/* only spi read command */</span></div>
+<div class="line"><a id="l03575" name="l03575"></a><span class="lineno"> 3575</span>                buf[1] = (addr &gt;&gt; 16) &amp; 0xFF;                                                             <span class="comment">/* 23 - 16 bits */</span></div>
+<div class="line"><a id="l03576" name="l03576"></a><span class="lineno"> 3576</span>                buf[2] = (addr &gt;&gt; 8) &amp; 0xFF;                                                              <span class="comment">/* 15 - 8  bits */</span></div>
+<div class="line"><a id="l03577" name="l03577"></a><span class="lineno"> 3577</span>                buf[3] = (addr &gt;&gt; 0) &amp; 0xFF;                                                              <span class="comment">/* 7 - 0 bits */</span></div>
+<div class="line"><a id="l03578" name="l03578"></a><span class="lineno"> 3578</span>                res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 4, (uint8_t *)data, (uint32_t)len); <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l03579" name="l03579"></a><span class="lineno"> 3579</span>                <span class="keywordflow">if</span> (res != 0)                                                                             <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l03580" name="l03580"></a><span class="lineno"> 3580</span>                {</div>
+<div class="line"><a id="l03581" name="l03581"></a><span class="lineno"> 3581</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: only spi read failed.\n&quot;</span>);                               <span class="comment">/* only spi read failed */</span></div>
+<div class="line"><a id="l03582" name="l03582"></a><span class="lineno"> 3582</span>                   </div>
+<div class="line"><a id="l03583" name="l03583"></a><span class="lineno"> 3583</span>                    <span class="keywordflow">return</span> 1;                                                                             <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l03584" name="l03584"></a><span class="lineno"> 3584</span>                }</div>
+<div class="line"><a id="l03585" name="l03585"></a><span class="lineno"> 3585</span>            }</div>
+<div class="line"><a id="l03586" name="l03586"></a><span class="lineno"> 3586</span>            <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>) &amp;&amp; </div>
+<div class="line"><a id="l03587" name="l03587"></a><span class="lineno"> 3587</span>                     (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>))                                                           <span class="comment">/* check address mode */</span></div>
+<div class="line"><a id="l03588" name="l03588"></a><span class="lineno"> 3588</span>            {</div>
+<div class="line"><a id="l03589" name="l03589"></a><span class="lineno"> 3589</span>                buf[0] = <a class="code hl_define" href="driver__w25qxx_8c.html#a23fcd6d9b067580d534d626c43b7cff3">W25QXX_COMMAND_READ_DATA</a>;                                                        <span class="comment">/* only spi read command */</span></div>
+<div class="line"><a id="l03590" name="l03590"></a><span class="lineno"> 3590</span>                buf[1] = (addr &gt;&gt; 24) &amp; 0xFF;                                                             <span class="comment">/* 31 - 24 bits */</span></div>
+<div class="line"><a id="l03591" name="l03591"></a><span class="lineno"> 3591</span>                buf[2] = (addr &gt;&gt; 16) &amp; 0xFF;                                                             <span class="comment">/* 23 - 16 bits */</span></div>
+<div class="line"><a id="l03592" name="l03592"></a><span class="lineno"> 3592</span>                buf[3] = (addr &gt;&gt; 8) &amp; 0xFF;                                                              <span class="comment">/* 15 - 8  bits */</span></div>
+<div class="line"><a id="l03593" name="l03593"></a><span class="lineno"> 3593</span>                buf[4] = (addr &gt;&gt; 0) &amp; 0xFF;                                                              <span class="comment">/* 7 - 0 bits */</span></div>
+<div class="line"><a id="l03594" name="l03594"></a><span class="lineno"> 3594</span>                res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 5, (uint8_t *)data, (uint32_t)len); <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l03595" name="l03595"></a><span class="lineno"> 3595</span>                <span class="keywordflow">if</span> (res != 0)                                                                             <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l03596" name="l03596"></a><span class="lineno"> 3596</span>                {</div>
+<div class="line"><a id="l03597" name="l03597"></a><span class="lineno"> 3597</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: only spi read failed.\n&quot;</span>);                               <span class="comment">/* only spi read failed */</span></div>
+<div class="line"><a id="l03598" name="l03598"></a><span class="lineno"> 3598</span>                   </div>
+<div class="line"><a id="l03599" name="l03599"></a><span class="lineno"> 3599</span>                    <span class="keywordflow">return</span> 1;                                                                             <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l03600" name="l03600"></a><span class="lineno"> 3600</span>                }</div>
+<div class="line"><a id="l03601" name="l03601"></a><span class="lineno"> 3601</span>            }</div>
+<div class="line"><a id="l03602" name="l03602"></a><span class="lineno"> 3602</span>            <span class="keywordflow">else</span></div>
+<div class="line"><a id="l03603" name="l03603"></a><span class="lineno"> 3603</span>            {</div>
+<div class="line"><a id="l03604" name="l03604"></a><span class="lineno"> 3604</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: address mode is invalid.\n&quot;</span>);                                <span class="comment">/* address mode is invalid */</span></div>
+<div class="line"><a id="l03605" name="l03605"></a><span class="lineno"> 3605</span>               </div>
+<div class="line"><a id="l03606" name="l03606"></a><span class="lineno"> 3606</span>                <span class="keywordflow">return</span> 4;                                                                                 <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l03607" name="l03607"></a><span class="lineno"> 3607</span>            }</div>
+<div class="line"><a id="l03608" name="l03608"></a><span class="lineno"> 3608</span>        }</div>
+<div class="line"><a id="l03609" name="l03609"></a><span class="lineno"> 3609</span>    }</div>
+<div class="line"><a id="l03610" name="l03610"></a><span class="lineno"> 3610</span>    <span class="keywordflow">else</span></div>
+<div class="line"><a id="l03611" name="l03611"></a><span class="lineno"> 3611</span>    {</div>
+<div class="line"><a id="l03612" name="l03612"></a><span class="lineno"> 3612</span>        handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: only spi interface can use this function.\n&quot;</span>);                       <span class="comment">/* only spi interface can use this function */</span></div>
+<div class="line"><a id="l03613" name="l03613"></a><span class="lineno"> 3613</span>       </div>
+<div class="line"><a id="l03614" name="l03614"></a><span class="lineno"> 3614</span>        <span class="keywordflow">return</span> 5;                                                                                         <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l03615" name="l03615"></a><span class="lineno"> 3615</span>    }</div>
+<div class="line"><a id="l03616" name="l03616"></a><span class="lineno"> 3616</span>    </div>
+<div class="line"><a id="l03617" name="l03617"></a><span class="lineno"> 3617</span>    <span class="keywordflow">return</span> 0;                                                                                             <span class="comment">/* success return 0 */</span></div>
+<div class="line"><a id="l03618" name="l03618"></a><span class="lineno"> 3618</span>}</div>
+</div>
+<div class="line"><a id="l03619" name="l03619"></a><span class="lineno"> 3619</span> </div>
+<div class="foldopen" id="foldopen03634" data-start="{" data-end="}">
+<div class="line"><a id="l03634" name="l03634"></a><span class="lineno"><a class="line" href="group__w25qxx__basic__driver.html#gac345ba10af5ad355578fa97697487123"> 3634</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__basic__driver.html#gac345ba10af5ad355578fa97697487123">w25qxx_fast_read</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint32_t len)</div>
+<div class="line"><a id="l03635" name="l03635"></a><span class="lineno"> 3635</span>{</div>
+<div class="line"><a id="l03636" name="l03636"></a><span class="lineno"> 3636</span>    uint8_t res;</div>
+<div class="line"><a id="l03637" name="l03637"></a><span class="lineno"> 3637</span>    uint8_t buf[6];</div>
+<div class="line"><a id="l03638" name="l03638"></a><span class="lineno"> 3638</span>    </div>
+<div class="line"><a id="l03639" name="l03639"></a><span class="lineno"> 3639</span>    <span class="keywordflow">if</span> (handle == NULL)                                                                                   <span class="comment">/* check handle */</span></div>
+<div class="line"><a id="l03640" name="l03640"></a><span class="lineno"> 3640</span>    {</div>
+<div class="line"><a id="l03641" name="l03641"></a><span class="lineno"> 3641</span>        <span class="keywordflow">return</span> 2;                                                                                         <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l03642" name="l03642"></a><span class="lineno"> 3642</span>    }   </div>
+<div class="line"><a id="l03643" name="l03643"></a><span class="lineno"> 3643</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">inited</a> != 1)                                                                              <span class="comment">/* check handle initialization */</span></div>
+<div class="line"><a id="l03644" name="l03644"></a><span class="lineno"> 3644</span>    {</div>
+<div class="line"><a id="l03645" name="l03645"></a><span class="lineno"> 3645</span>        <span class="keywordflow">return</span> 3;                                                                                         <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l03646" name="l03646"></a><span class="lineno"> 3646</span>    }</div>
+<div class="line"><a id="l03647" name="l03647"></a><span class="lineno"> 3647</span>    </div>
+<div class="line"><a id="l03648" name="l03648"></a><span class="lineno"> 3648</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>)                                                         <span class="comment">/* spi interface */</span></div>
+<div class="line"><a id="l03649" name="l03649"></a><span class="lineno"> 3649</span>    {</div>
+<div class="line"><a id="l03650" name="l03650"></a><span class="lineno"> 3650</span>        <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">dual_quad_spi_enable</a> != 0)                                                            <span class="comment">/* enable dual quad spi */</span></div>
+<div class="line"><a id="l03651" name="l03651"></a><span class="lineno"> 3651</span>        {</div>
+<div class="line"><a id="l03652" name="l03652"></a><span class="lineno"> 3652</span>            <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                       <span class="comment">/* 3 address mode */</span></div>
+<div class="line"><a id="l03653" name="l03653"></a><span class="lineno"> 3653</span>            {</div>
+<div class="line"><a id="l03654" name="l03654"></a><span class="lineno"> 3654</span>                <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)                                                              <span class="comment">/* &gt;128Mb */</span></div>
+<div class="line"><a id="l03655" name="l03655"></a><span class="lineno"> 3655</span>                {</div>
+<div class="line"><a id="l03656" name="l03656"></a><span class="lineno"> 3656</span>                    res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>, 1,</div>
+<div class="line"><a id="l03657" name="l03657"></a><span class="lineno"> 3657</span>                                                   0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l03658" name="l03658"></a><span class="lineno"> 3658</span>                                                   0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l03659" name="l03659"></a><span class="lineno"> 3659</span>                                                   0x00, NULL, 0x00,</div>
+<div class="line"><a id="l03660" name="l03660"></a><span class="lineno"> 3660</span>                                                   NULL, 0x00, 0x00);                                     <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l03661" name="l03661"></a><span class="lineno"> 3661</span>                    <span class="keywordflow">if</span> (res != 0)                                                                         <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l03662" name="l03662"></a><span class="lineno"> 3662</span>                    {</div>
+<div class="line"><a id="l03663" name="l03663"></a><span class="lineno"> 3663</span>                        handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                            <span class="comment">/* write enable failed */</span></div>
+<div class="line"><a id="l03664" name="l03664"></a><span class="lineno"> 3664</span>                       </div>
+<div class="line"><a id="l03665" name="l03665"></a><span class="lineno"> 3665</span>                        <span class="keywordflow">return</span> 1;                                                                         <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l03666" name="l03666"></a><span class="lineno"> 3666</span>                    }</div>
+<div class="line"><a id="l03667" name="l03667"></a><span class="lineno"> 3667</span>                    buf[0] = (addr &gt;&gt; 24) &amp; 0xFF;                                                         <span class="comment">/* 31 - 24 bits */</span></div>
+<div class="line"><a id="l03668" name="l03668"></a><span class="lineno"> 3668</span>                    res = a_w25qxx_qspi_write_read(handle, 0xC5, 1,</div>
+<div class="line"><a id="l03669" name="l03669"></a><span class="lineno"> 3669</span>                                                   0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l03670" name="l03670"></a><span class="lineno"> 3670</span>                                                   0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l03671" name="l03671"></a><span class="lineno"> 3671</span>                                                   0, (uint8_t *)buf, 0x01,</div>
+<div class="line"><a id="l03672" name="l03672"></a><span class="lineno"> 3672</span>                                                   NULL, 0x00, 1);                                        <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l03673" name="l03673"></a><span class="lineno"> 3673</span>                    <span class="keywordflow">if</span> (res != 0)                                                                         <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l03674" name="l03674"></a><span class="lineno"> 3674</span>                    {</div>
+<div class="line"><a id="l03675" name="l03675"></a><span class="lineno"> 3675</span>                        handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write extended addr register failed.\n&quot;</span>);            <span class="comment">/* write extended addr register failed */</span></div>
+<div class="line"><a id="l03676" name="l03676"></a><span class="lineno"> 3676</span>                       </div>
+<div class="line"><a id="l03677" name="l03677"></a><span class="lineno"> 3677</span>                        <span class="keywordflow">return</span> 1;                                                                         <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l03678" name="l03678"></a><span class="lineno"> 3678</span>                    }</div>
+<div class="line"><a id="l03679" name="l03679"></a><span class="lineno"> 3679</span>                }</div>
+<div class="line"><a id="l03680" name="l03680"></a><span class="lineno"> 3680</span>                res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#ac957b31a68db8c14f88a196a98b0aa18">W25QXX_COMMAND_FAST_READ</a>, 1,</div>
+<div class="line"><a id="l03681" name="l03681"></a><span class="lineno"> 3681</span>                                               addr, 1, 3,</div>
+<div class="line"><a id="l03682" name="l03682"></a><span class="lineno"> 3682</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l03683" name="l03683"></a><span class="lineno"> 3683</span>                                               8, NULL, 0x00,</div>
+<div class="line"><a id="l03684" name="l03684"></a><span class="lineno"> 3684</span>                                               data, len, 1);                                             <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l03685" name="l03685"></a><span class="lineno"> 3685</span>                <span class="keywordflow">if</span> (res != 0)                                                                             <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l03686" name="l03686"></a><span class="lineno"> 3686</span>                {</div>
+<div class="line"><a id="l03687" name="l03687"></a><span class="lineno"> 3687</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read failed.\n&quot;</span>);                                   <span class="comment">/* fast read failed */</span></div>
+<div class="line"><a id="l03688" name="l03688"></a><span class="lineno"> 3688</span>                   </div>
+<div class="line"><a id="l03689" name="l03689"></a><span class="lineno"> 3689</span>                    <span class="keywordflow">return</span> 1;                                                                             <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l03690" name="l03690"></a><span class="lineno"> 3690</span>                }</div>
+<div class="line"><a id="l03691" name="l03691"></a><span class="lineno"> 3691</span>            }</div>
+<div class="line"><a id="l03692" name="l03692"></a><span class="lineno"> 3692</span>            <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>) &amp;&amp; (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>))</div>
+<div class="line"><a id="l03693" name="l03693"></a><span class="lineno"> 3693</span>            {</div>
+<div class="line"><a id="l03694" name="l03694"></a><span class="lineno"> 3694</span>                res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#ac957b31a68db8c14f88a196a98b0aa18">W25QXX_COMMAND_FAST_READ</a>, 1,</div>
+<div class="line"><a id="l03695" name="l03695"></a><span class="lineno"> 3695</span>                                               addr, 1, 4,</div>
+<div class="line"><a id="l03696" name="l03696"></a><span class="lineno"> 3696</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l03697" name="l03697"></a><span class="lineno"> 3697</span>                                               8, NULL, 0x00,</div>
+<div class="line"><a id="l03698" name="l03698"></a><span class="lineno"> 3698</span>                                               data, len, 1);                                             <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l03699" name="l03699"></a><span class="lineno"> 3699</span>                <span class="keywordflow">if</span> (res != 0)                                                                             <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l03700" name="l03700"></a><span class="lineno"> 3700</span>                {</div>
+<div class="line"><a id="l03701" name="l03701"></a><span class="lineno"> 3701</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read failed.\n&quot;</span>);                                   <span class="comment">/* fast read failed */</span></div>
+<div class="line"><a id="l03702" name="l03702"></a><span class="lineno"> 3702</span>                   </div>
+<div class="line"><a id="l03703" name="l03703"></a><span class="lineno"> 3703</span>                    <span class="keywordflow">return</span> 1;                                                                             <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l03704" name="l03704"></a><span class="lineno"> 3704</span>                }</div>
+<div class="line"><a id="l03705" name="l03705"></a><span class="lineno"> 3705</span>            }</div>
+<div class="line"><a id="l03706" name="l03706"></a><span class="lineno"> 3706</span>            <span class="keywordflow">else</span></div>
+<div class="line"><a id="l03707" name="l03707"></a><span class="lineno"> 3707</span>            {</div>
+<div class="line"><a id="l03708" name="l03708"></a><span class="lineno"> 3708</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: address mode is invalid.\n&quot;</span>);                                <span class="comment">/* address mode is invalid */</span></div>
+<div class="line"><a id="l03709" name="l03709"></a><span class="lineno"> 3709</span>               </div>
+<div class="line"><a id="l03710" name="l03710"></a><span class="lineno"> 3710</span>                <span class="keywordflow">return</span> 4;                                                                                 <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l03711" name="l03711"></a><span class="lineno"> 3711</span>            }</div>
+<div class="line"><a id="l03712" name="l03712"></a><span class="lineno"> 3712</span>        }</div>
+<div class="line"><a id="l03713" name="l03713"></a><span class="lineno"> 3713</span>        <span class="keywordflow">else</span>                                                                                              <span class="comment">/* single spi */</span></div>
+<div class="line"><a id="l03714" name="l03714"></a><span class="lineno"> 3714</span>        {</div>
+<div class="line"><a id="l03715" name="l03715"></a><span class="lineno"> 3715</span>            <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                       <span class="comment">/* 3 address mode */</span></div>
+<div class="line"><a id="l03716" name="l03716"></a><span class="lineno"> 3716</span>            {</div>
+<div class="line"><a id="l03717" name="l03717"></a><span class="lineno"> 3717</span>                <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)                                                              <span class="comment">/* &gt;128Mb */</span></div>
+<div class="line"><a id="l03718" name="l03718"></a><span class="lineno"> 3718</span>                {</div>
+<div class="line"><a id="l03719" name="l03719"></a><span class="lineno"> 3719</span>                    buf[0] = <a class="code hl_define" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>;                                                 <span class="comment">/* write enable command */</span></div>
+<div class="line"><a id="l03720" name="l03720"></a><span class="lineno"> 3720</span>                    res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 1, NULL, 0);                    <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l03721" name="l03721"></a><span class="lineno"> 3721</span>                    <span class="keywordflow">if</span> (res != 0)                                                                         <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l03722" name="l03722"></a><span class="lineno"> 3722</span>                    {</div>
+<div class="line"><a id="l03723" name="l03723"></a><span class="lineno"> 3723</span>                        handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                            <span class="comment">/* write enable failed */</span></div>
+<div class="line"><a id="l03724" name="l03724"></a><span class="lineno"> 3724</span>                       </div>
+<div class="line"><a id="l03725" name="l03725"></a><span class="lineno"> 3725</span>                        <span class="keywordflow">return</span> 1;                                                                         <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l03726" name="l03726"></a><span class="lineno"> 3726</span>                    }</div>
+<div class="line"><a id="l03727" name="l03727"></a><span class="lineno"> 3727</span>                    buf[0] = 0xC5;                                                                        <span class="comment">/* write extended addr register command */</span></div>
+<div class="line"><a id="l03728" name="l03728"></a><span class="lineno"> 3728</span>                    buf[1] = (addr &gt;&gt; 24) &amp; 0xFF;                                                         <span class="comment">/* 31 - 24 bits */</span></div>
+<div class="line"><a id="l03729" name="l03729"></a><span class="lineno"> 3729</span>                    res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 2, NULL, 0);                    <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l03730" name="l03730"></a><span class="lineno"> 3730</span>                    <span class="keywordflow">if</span> (res != 0)                                                                         <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l03731" name="l03731"></a><span class="lineno"> 3731</span>                    {</div>
+<div class="line"><a id="l03732" name="l03732"></a><span class="lineno"> 3732</span>                        handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write extended addr register failed.\n&quot;</span>);            <span class="comment">/* write extended addr register failed */</span></div>
+<div class="line"><a id="l03733" name="l03733"></a><span class="lineno"> 3733</span>                       </div>
+<div class="line"><a id="l03734" name="l03734"></a><span class="lineno"> 3734</span>                        <span class="keywordflow">return</span> 1;                                                                         <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l03735" name="l03735"></a><span class="lineno"> 3735</span>                    }</div>
+<div class="line"><a id="l03736" name="l03736"></a><span class="lineno"> 3736</span>                }</div>
+<div class="line"><a id="l03737" name="l03737"></a><span class="lineno"> 3737</span>                buf[0] = <a class="code hl_define" href="driver__w25qxx_8c.html#ac957b31a68db8c14f88a196a98b0aa18">W25QXX_COMMAND_FAST_READ</a>;                                                        <span class="comment">/* fast read command */</span></div>
+<div class="line"><a id="l03738" name="l03738"></a><span class="lineno"> 3738</span>                buf[1] = (addr &gt;&gt; 16) &amp; 0xFF;                                                             <span class="comment">/* 23 - 16 bits */</span></div>
+<div class="line"><a id="l03739" name="l03739"></a><span class="lineno"> 3739</span>                buf[2] = (addr &gt;&gt; 8) &amp; 0xFF;                                                              <span class="comment">/* 15 - 8  bits */</span></div>
+<div class="line"><a id="l03740" name="l03740"></a><span class="lineno"> 3740</span>                buf[3] = (addr &gt;&gt; 0) &amp; 0xFF;                                                              <span class="comment">/* 7 - 0 bits */</span></div>
+<div class="line"><a id="l03741" name="l03741"></a><span class="lineno"> 3741</span>                buf[4] = 0x00;                                                                            <span class="comment">/* dummy */</span></div>
+<div class="line"><a id="l03742" name="l03742"></a><span class="lineno"> 3742</span>                res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 5, (uint8_t *)data, (uint32_t)len); <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l03743" name="l03743"></a><span class="lineno"> 3743</span>                <span class="keywordflow">if</span> (res != 0)                                                                             <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l03744" name="l03744"></a><span class="lineno"> 3744</span>                {</div>
+<div class="line"><a id="l03745" name="l03745"></a><span class="lineno"> 3745</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read failed.\n&quot;</span>);                                   <span class="comment">/* fast read failed */</span></div>
+<div class="line"><a id="l03746" name="l03746"></a><span class="lineno"> 3746</span>                   </div>
+<div class="line"><a id="l03747" name="l03747"></a><span class="lineno"> 3747</span>                    <span class="keywordflow">return</span> 1;                                                                             <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l03748" name="l03748"></a><span class="lineno"> 3748</span>                }</div>
+<div class="line"><a id="l03749" name="l03749"></a><span class="lineno"> 3749</span>            }</div>
+<div class="line"><a id="l03750" name="l03750"></a><span class="lineno"> 3750</span>            <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>)</div>
+<div class="line"><a id="l03751" name="l03751"></a><span class="lineno"> 3751</span>                     &amp;&amp; (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>))                                                        <span class="comment">/* check address mode */</span></div>
+<div class="line"><a id="l03752" name="l03752"></a><span class="lineno"> 3752</span>            {</div>
+<div class="line"><a id="l03753" name="l03753"></a><span class="lineno"> 3753</span>                buf[0] = <a class="code hl_define" href="driver__w25qxx_8c.html#ac957b31a68db8c14f88a196a98b0aa18">W25QXX_COMMAND_FAST_READ</a>;                                                        <span class="comment">/* fast read command */</span></div>
+<div class="line"><a id="l03754" name="l03754"></a><span class="lineno"> 3754</span>                buf[1] = (addr &gt;&gt; 24) &amp; 0xFF;                                                             <span class="comment">/* 31 - 24 bits */</span></div>
+<div class="line"><a id="l03755" name="l03755"></a><span class="lineno"> 3755</span>                buf[2] = (addr &gt;&gt; 16) &amp; 0xFF;                                                             <span class="comment">/* 23 - 16 bits */</span></div>
+<div class="line"><a id="l03756" name="l03756"></a><span class="lineno"> 3756</span>                buf[3] = (addr &gt;&gt; 8) &amp; 0xFF;                                                              <span class="comment">/* 15 - 8  bits */</span></div>
+<div class="line"><a id="l03757" name="l03757"></a><span class="lineno"> 3757</span>                buf[4] = (addr &gt;&gt; 0) &amp; 0xFF;                                                              <span class="comment">/* 7 - 0 bits */</span></div>
+<div class="line"><a id="l03758" name="l03758"></a><span class="lineno"> 3758</span>                buf[5] = 0x00;                                                                            <span class="comment">/* dummy */</span></div>
+<div class="line"><a id="l03759" name="l03759"></a><span class="lineno"> 3759</span>                res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 6, (uint8_t *)data, (uint32_t)len); <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l03760" name="l03760"></a><span class="lineno"> 3760</span>                <span class="keywordflow">if</span> (res != 0)                                                                             <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l03761" name="l03761"></a><span class="lineno"> 3761</span>                {</div>
+<div class="line"><a id="l03762" name="l03762"></a><span class="lineno"> 3762</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read failed.\n&quot;</span>);                                   <span class="comment">/* fast read failed */</span></div>
+<div class="line"><a id="l03763" name="l03763"></a><span class="lineno"> 3763</span>                   </div>
+<div class="line"><a id="l03764" name="l03764"></a><span class="lineno"> 3764</span>                    <span class="keywordflow">return</span> 1;                                                                             <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l03765" name="l03765"></a><span class="lineno"> 3765</span>                }</div>
+<div class="line"><a id="l03766" name="l03766"></a><span class="lineno"> 3766</span>            }</div>
+<div class="line"><a id="l03767" name="l03767"></a><span class="lineno"> 3767</span>            <span class="keywordflow">else</span></div>
+<div class="line"><a id="l03768" name="l03768"></a><span class="lineno"> 3768</span>            {</div>
+<div class="line"><a id="l03769" name="l03769"></a><span class="lineno"> 3769</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: address mode is invalid.\n&quot;</span>);                                <span class="comment">/* address mode is invalid */</span></div>
+<div class="line"><a id="l03770" name="l03770"></a><span class="lineno"> 3770</span>               </div>
+<div class="line"><a id="l03771" name="l03771"></a><span class="lineno"> 3771</span>                <span class="keywordflow">return</span> 4;                                                                                 <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l03772" name="l03772"></a><span class="lineno"> 3772</span>            }</div>
+<div class="line"><a id="l03773" name="l03773"></a><span class="lineno"> 3773</span>        }</div>
+<div class="line"><a id="l03774" name="l03774"></a><span class="lineno"> 3774</span>    }</div>
+<div class="line"><a id="l03775" name="l03775"></a><span class="lineno"> 3775</span>    <span class="keywordflow">else</span>                                                                                                  <span class="comment">/* qspi interface */</span></div>
+<div class="line"><a id="l03776" name="l03776"></a><span class="lineno"> 3776</span>    {</div>
+<div class="line"><a id="l03777" name="l03777"></a><span class="lineno"> 3777</span>        <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                           <span class="comment">/* 3 address mode */</span></div>
+<div class="line"><a id="l03778" name="l03778"></a><span class="lineno"> 3778</span>        {</div>
+<div class="line"><a id="l03779" name="l03779"></a><span class="lineno"> 3779</span>            <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)                                                                  <span class="comment">/* &gt;128Mb */</span></div>
+<div class="line"><a id="l03780" name="l03780"></a><span class="lineno"> 3780</span>            {</div>
+<div class="line"><a id="l03781" name="l03781"></a><span class="lineno"> 3781</span>                res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>, 4,</div>
+<div class="line"><a id="l03782" name="l03782"></a><span class="lineno"> 3782</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l03783" name="l03783"></a><span class="lineno"> 3783</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l03784" name="l03784"></a><span class="lineno"> 3784</span>                                               0x00, NULL, 0x00,</div>
+<div class="line"><a id="l03785" name="l03785"></a><span class="lineno"> 3785</span>                                               NULL, 0x00, 0x00);                                         <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l03786" name="l03786"></a><span class="lineno"> 3786</span>                <span class="keywordflow">if</span> (res != 0)                                                                             <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l03787" name="l03787"></a><span class="lineno"> 3787</span>                {</div>
+<div class="line"><a id="l03788" name="l03788"></a><span class="lineno"> 3788</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                                <span class="comment">/* write enable failed */</span></div>
+<div class="line"><a id="l03789" name="l03789"></a><span class="lineno"> 3789</span>                   </div>
+<div class="line"><a id="l03790" name="l03790"></a><span class="lineno"> 3790</span>                    <span class="keywordflow">return</span> 1;                                                                             <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l03791" name="l03791"></a><span class="lineno"> 3791</span>                }</div>
+<div class="line"><a id="l03792" name="l03792"></a><span class="lineno"> 3792</span>                buf[0] = (addr &gt;&gt; 24) &amp; 0xFF;                                                             <span class="comment">/* 31 - 24 bits */</span></div>
+<div class="line"><a id="l03793" name="l03793"></a><span class="lineno"> 3793</span>                res = a_w25qxx_qspi_write_read(handle, 0xC5, 4,</div>
+<div class="line"><a id="l03794" name="l03794"></a><span class="lineno"> 3794</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l03795" name="l03795"></a><span class="lineno"> 3795</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l03796" name="l03796"></a><span class="lineno"> 3796</span>                                               0, (uint8_t *)buf, 0x01,</div>
+<div class="line"><a id="l03797" name="l03797"></a><span class="lineno"> 3797</span>                                               NULL, 0x00, 4);                                            <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l03798" name="l03798"></a><span class="lineno"> 3798</span>                <span class="keywordflow">if</span> (res != 0)                                                                             <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l03799" name="l03799"></a><span class="lineno"> 3799</span>                {</div>
+<div class="line"><a id="l03800" name="l03800"></a><span class="lineno"> 3800</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write extended addr register failed.\n&quot;</span>);                <span class="comment">/* write extended addr register failed */</span></div>
+<div class="line"><a id="l03801" name="l03801"></a><span class="lineno"> 3801</span>                   </div>
+<div class="line"><a id="l03802" name="l03802"></a><span class="lineno"> 3802</span>                    <span class="keywordflow">return</span> 1;                                                                             <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l03803" name="l03803"></a><span class="lineno"> 3803</span>                }</div>
+<div class="line"><a id="l03804" name="l03804"></a><span class="lineno"> 3804</span>            }</div>
+<div class="line"><a id="l03805" name="l03805"></a><span class="lineno"> 3805</span>            res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#ac957b31a68db8c14f88a196a98b0aa18">W25QXX_COMMAND_FAST_READ</a>, 4,</div>
+<div class="line"><a id="l03806" name="l03806"></a><span class="lineno"> 3806</span>                                           addr, 4, 3,</div>
+<div class="line"><a id="l03807" name="l03807"></a><span class="lineno"> 3807</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l03808" name="l03808"></a><span class="lineno"> 3808</span>                                           handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#aff7b59f569ec689a7580bd6911daafd5">dummy</a>, NULL, 0x00,</div>
+<div class="line"><a id="l03809" name="l03809"></a><span class="lineno"> 3809</span>                                           data, len, 4);                                                 <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l03810" name="l03810"></a><span class="lineno"> 3810</span>            <span class="keywordflow">if</span> (res != 0)                                                                                 <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l03811" name="l03811"></a><span class="lineno"> 3811</span>            {</div>
+<div class="line"><a id="l03812" name="l03812"></a><span class="lineno"> 3812</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read failed.\n&quot;</span>);                                       <span class="comment">/* fast read failed */</span></div>
+<div class="line"><a id="l03813" name="l03813"></a><span class="lineno"> 3813</span>               </div>
+<div class="line"><a id="l03814" name="l03814"></a><span class="lineno"> 3814</span>                <span class="keywordflow">return</span> 1;                                                                                 <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l03815" name="l03815"></a><span class="lineno"> 3815</span>            }</div>
+<div class="line"><a id="l03816" name="l03816"></a><span class="lineno"> 3816</span>        }</div>
+<div class="line"><a id="l03817" name="l03817"></a><span class="lineno"> 3817</span>        <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>) &amp;&amp; (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>))</div>
+<div class="line"><a id="l03818" name="l03818"></a><span class="lineno"> 3818</span>        {</div>
+<div class="line"><a id="l03819" name="l03819"></a><span class="lineno"> 3819</span>            res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#ac957b31a68db8c14f88a196a98b0aa18">W25QXX_COMMAND_FAST_READ</a>, 4,</div>
+<div class="line"><a id="l03820" name="l03820"></a><span class="lineno"> 3820</span>                                           addr, 4, 4,</div>
+<div class="line"><a id="l03821" name="l03821"></a><span class="lineno"> 3821</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l03822" name="l03822"></a><span class="lineno"> 3822</span>                                           handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#aff7b59f569ec689a7580bd6911daafd5">dummy</a>, NULL, 0x00,                                     <span class="comment">/* spi write */</span></div>
+<div class="line"><a id="l03823" name="l03823"></a><span class="lineno"> 3823</span>                                           data, len, 4);                                                 <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l03824" name="l03824"></a><span class="lineno"> 3824</span>            <span class="keywordflow">if</span> (res != 0)                                                                                 <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l03825" name="l03825"></a><span class="lineno"> 3825</span>            {</div>
+<div class="line"><a id="l03826" name="l03826"></a><span class="lineno"> 3826</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read failed.\n&quot;</span>);                                       <span class="comment">/* fast read failed */</span></div>
+<div class="line"><a id="l03827" name="l03827"></a><span class="lineno"> 3827</span>               </div>
+<div class="line"><a id="l03828" name="l03828"></a><span class="lineno"> 3828</span>                <span class="keywordflow">return</span> 1;                                                                                 <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l03829" name="l03829"></a><span class="lineno"> 3829</span>            }</div>
+<div class="line"><a id="l03830" name="l03830"></a><span class="lineno"> 3830</span>        }</div>
+<div class="line"><a id="l03831" name="l03831"></a><span class="lineno"> 3831</span>        <span class="keywordflow">else</span></div>
+<div class="line"><a id="l03832" name="l03832"></a><span class="lineno"> 3832</span>        {</div>
+<div class="line"><a id="l03833" name="l03833"></a><span class="lineno"> 3833</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: address mode is invalid.\n&quot;</span>);                                    <span class="comment">/* address mode is invalid */</span></div>
+<div class="line"><a id="l03834" name="l03834"></a><span class="lineno"> 3834</span>           </div>
+<div class="line"><a id="l03835" name="l03835"></a><span class="lineno"> 3835</span>            <span class="keywordflow">return</span> 4;                                                                                     <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l03836" name="l03836"></a><span class="lineno"> 3836</span>        }</div>
+<div class="line"><a id="l03837" name="l03837"></a><span class="lineno"> 3837</span>    }</div>
+<div class="line"><a id="l03838" name="l03838"></a><span class="lineno"> 3838</span>    </div>
+<div class="line"><a id="l03839" name="l03839"></a><span class="lineno"> 3839</span>    <span class="keywordflow">return</span> 0;                                                                                             <span class="comment">/* success return 0 */</span></div>
+<div class="line"><a id="l03840" name="l03840"></a><span class="lineno"> 3840</span>}</div>
+</div>
+<div class="line"><a id="l03841" name="l03841"></a><span class="lineno"> 3841</span> </div>
+<div class="foldopen" id="foldopen03858" data-start="{" data-end="}">
+<div class="line"><a id="l03858" name="l03858"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#ga7a19230ca3916816ea8fb7421483d293"> 3858</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__advance__driver.html#ga7a19230ca3916816ea8fb7421483d293">w25qxx_fast_read_dual_output</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint32_t len)</div>
+<div class="line"><a id="l03859" name="l03859"></a><span class="lineno"> 3859</span>{</div>
+<div class="line"><a id="l03860" name="l03860"></a><span class="lineno"> 3860</span>    uint8_t res;</div>
+<div class="line"><a id="l03861" name="l03861"></a><span class="lineno"> 3861</span>    uint8_t buf[1];</div>
+<div class="line"><a id="l03862" name="l03862"></a><span class="lineno"> 3862</span>    </div>
+<div class="line"><a id="l03863" name="l03863"></a><span class="lineno"> 3863</span>    <span class="keywordflow">if</span> (handle == NULL)                                                                                   <span class="comment">/* check handle */</span></div>
+<div class="line"><a id="l03864" name="l03864"></a><span class="lineno"> 3864</span>    {</div>
+<div class="line"><a id="l03865" name="l03865"></a><span class="lineno"> 3865</span>        <span class="keywordflow">return</span> 2;                                                                                         <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l03866" name="l03866"></a><span class="lineno"> 3866</span>    }   </div>
+<div class="line"><a id="l03867" name="l03867"></a><span class="lineno"> 3867</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">inited</a> != 1)                                                                              <span class="comment">/* check handle initialization */</span></div>
+<div class="line"><a id="l03868" name="l03868"></a><span class="lineno"> 3868</span>    {</div>
+<div class="line"><a id="l03869" name="l03869"></a><span class="lineno"> 3869</span>        <span class="keywordflow">return</span> 3;                                                                                         <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l03870" name="l03870"></a><span class="lineno"> 3870</span>    }</div>
+<div class="line"><a id="l03871" name="l03871"></a><span class="lineno"> 3871</span>    </div>
+<div class="line"><a id="l03872" name="l03872"></a><span class="lineno"> 3872</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>)                                                         <span class="comment">/* spi interface */</span></div>
+<div class="line"><a id="l03873" name="l03873"></a><span class="lineno"> 3873</span>    {</div>
+<div class="line"><a id="l03874" name="l03874"></a><span class="lineno"> 3874</span>        <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">dual_quad_spi_enable</a> == 0)                                                            <span class="comment">/* check spi */</span></div>
+<div class="line"><a id="l03875" name="l03875"></a><span class="lineno"> 3875</span>        {</div>
+<div class="line"><a id="l03876" name="l03876"></a><span class="lineno"> 3876</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: standard spi can&#39;t use this function failed.\n&quot;</span>);                <span class="comment">/* standard spi can&#39;t use this function failed */</span></div>
+<div class="line"><a id="l03877" name="l03877"></a><span class="lineno"> 3877</span>           </div>
+<div class="line"><a id="l03878" name="l03878"></a><span class="lineno"> 3878</span>            <span class="keywordflow">return</span> 6;                                                                                     <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l03879" name="l03879"></a><span class="lineno"> 3879</span>        }</div>
+<div class="line"><a id="l03880" name="l03880"></a><span class="lineno"> 3880</span>        <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                           <span class="comment">/* 3 address mode */</span></div>
+<div class="line"><a id="l03881" name="l03881"></a><span class="lineno"> 3881</span>        {</div>
+<div class="line"><a id="l03882" name="l03882"></a><span class="lineno"> 3882</span>            <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)                                                                  <span class="comment">/* &gt;128Mb */</span></div>
+<div class="line"><a id="l03883" name="l03883"></a><span class="lineno"> 3883</span>            {</div>
+<div class="line"><a id="l03884" name="l03884"></a><span class="lineno"> 3884</span>                res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>, 1,</div>
+<div class="line"><a id="l03885" name="l03885"></a><span class="lineno"> 3885</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l03886" name="l03886"></a><span class="lineno"> 3886</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l03887" name="l03887"></a><span class="lineno"> 3887</span>                                               0x00, NULL, 0x00,</div>
+<div class="line"><a id="l03888" name="l03888"></a><span class="lineno"> 3888</span>                                               NULL, 0x00, 0x00);                                         <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l03889" name="l03889"></a><span class="lineno"> 3889</span>                <span class="keywordflow">if</span> (res != 0)                                                                             <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l03890" name="l03890"></a><span class="lineno"> 3890</span>                {</div>
+<div class="line"><a id="l03891" name="l03891"></a><span class="lineno"> 3891</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                                <span class="comment">/* write enable failed */</span></div>
+<div class="line"><a id="l03892" name="l03892"></a><span class="lineno"> 3892</span>                   </div>
+<div class="line"><a id="l03893" name="l03893"></a><span class="lineno"> 3893</span>                    <span class="keywordflow">return</span> 1;                                                                             <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l03894" name="l03894"></a><span class="lineno"> 3894</span>                }</div>
+<div class="line"><a id="l03895" name="l03895"></a><span class="lineno"> 3895</span>                buf[0] = (addr &gt;&gt; 24) &amp; 0xFF;                                                             <span class="comment">/* 31 - 24 bits */</span></div>
+<div class="line"><a id="l03896" name="l03896"></a><span class="lineno"> 3896</span>                res = a_w25qxx_qspi_write_read(handle, 0xC5, 1,</div>
+<div class="line"><a id="l03897" name="l03897"></a><span class="lineno"> 3897</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l03898" name="l03898"></a><span class="lineno"> 3898</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l03899" name="l03899"></a><span class="lineno"> 3899</span>                                               0, (uint8_t *)buf, 0x01,</div>
+<div class="line"><a id="l03900" name="l03900"></a><span class="lineno"> 3900</span>                                               NULL, 0x00, 1);                                            <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l03901" name="l03901"></a><span class="lineno"> 3901</span>                <span class="keywordflow">if</span> (res != 0)                                                                             <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l03902" name="l03902"></a><span class="lineno"> 3902</span>                {</div>
+<div class="line"><a id="l03903" name="l03903"></a><span class="lineno"> 3903</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write extended addr register failed.\n&quot;</span>);                <span class="comment">/* write extended addr register failed */</span></div>
+<div class="line"><a id="l03904" name="l03904"></a><span class="lineno"> 3904</span>                   </div>
+<div class="line"><a id="l03905" name="l03905"></a><span class="lineno"> 3905</span>                    <span class="keywordflow">return</span> 1;                                                                             <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l03906" name="l03906"></a><span class="lineno"> 3906</span>                }</div>
+<div class="line"><a id="l03907" name="l03907"></a><span class="lineno"> 3907</span>            }</div>
+<div class="line"><a id="l03908" name="l03908"></a><span class="lineno"> 3908</span>            res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#a8d49efa8b978ae8fd3eb18d0e5ae73e8">W25QXX_COMMAND_FAST_READ_DUAL_OUTPUT</a>, 1,</div>
+<div class="line"><a id="l03909" name="l03909"></a><span class="lineno"> 3909</span>                                           addr, 1, 3,</div>
+<div class="line"><a id="l03910" name="l03910"></a><span class="lineno"> 3910</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l03911" name="l03911"></a><span class="lineno"> 3911</span>                                           8, NULL, 0x00,                                                 <span class="comment">/* spi write */</span></div>
+<div class="line"><a id="l03912" name="l03912"></a><span class="lineno"> 3912</span>                                           data, len, 2);                                                 <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l03913" name="l03913"></a><span class="lineno"> 3913</span>            <span class="keywordflow">if</span> (res != 0)                                                                                 <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l03914" name="l03914"></a><span class="lineno"> 3914</span>            {</div>
+<div class="line"><a id="l03915" name="l03915"></a><span class="lineno"> 3915</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read dual output failed.\n&quot;</span>);                           <span class="comment">/* fast read dual output failed */</span></div>
+<div class="line"><a id="l03916" name="l03916"></a><span class="lineno"> 3916</span>               </div>
+<div class="line"><a id="l03917" name="l03917"></a><span class="lineno"> 3917</span>                <span class="keywordflow">return</span> 1;                                                                                 <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l03918" name="l03918"></a><span class="lineno"> 3918</span>            }</div>
+<div class="line"><a id="l03919" name="l03919"></a><span class="lineno"> 3919</span>        }</div>
+<div class="line"><a id="l03920" name="l03920"></a><span class="lineno"> 3920</span>        <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>) &amp;&amp; (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>))</div>
+<div class="line"><a id="l03921" name="l03921"></a><span class="lineno"> 3921</span>        {</div>
+<div class="line"><a id="l03922" name="l03922"></a><span class="lineno"> 3922</span>            res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#a8d49efa8b978ae8fd3eb18d0e5ae73e8">W25QXX_COMMAND_FAST_READ_DUAL_OUTPUT</a>, 1,</div>
+<div class="line"><a id="l03923" name="l03923"></a><span class="lineno"> 3923</span>                                           addr, 1, 4,</div>
+<div class="line"><a id="l03924" name="l03924"></a><span class="lineno"> 3924</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l03925" name="l03925"></a><span class="lineno"> 3925</span>                                           8, NULL, 0x00,                                                 <span class="comment">/* spi write */</span></div>
+<div class="line"><a id="l03926" name="l03926"></a><span class="lineno"> 3926</span>                                           data, len, 2);                                                 <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l03927" name="l03927"></a><span class="lineno"> 3927</span>            <span class="keywordflow">if</span> (res != 0)                                                                                 <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l03928" name="l03928"></a><span class="lineno"> 3928</span>            {</div>
+<div class="line"><a id="l03929" name="l03929"></a><span class="lineno"> 3929</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read dual output failed.\n&quot;</span>);                           <span class="comment">/* fast read dual output failed */</span></div>
+<div class="line"><a id="l03930" name="l03930"></a><span class="lineno"> 3930</span>               </div>
+<div class="line"><a id="l03931" name="l03931"></a><span class="lineno"> 3931</span>                <span class="keywordflow">return</span> 1;                                                                                 <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l03932" name="l03932"></a><span class="lineno"> 3932</span>            }</div>
+<div class="line"><a id="l03933" name="l03933"></a><span class="lineno"> 3933</span>        }</div>
+<div class="line"><a id="l03934" name="l03934"></a><span class="lineno"> 3934</span>        <span class="keywordflow">else</span></div>
+<div class="line"><a id="l03935" name="l03935"></a><span class="lineno"> 3935</span>        {</div>
+<div class="line"><a id="l03936" name="l03936"></a><span class="lineno"> 3936</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: address mode is invalid.\n&quot;</span>);                                    <span class="comment">/* address mode is invalid */</span></div>
+<div class="line"><a id="l03937" name="l03937"></a><span class="lineno"> 3937</span>           </div>
+<div class="line"><a id="l03938" name="l03938"></a><span class="lineno"> 3938</span>            <span class="keywordflow">return</span> 4;                                                                                     <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l03939" name="l03939"></a><span class="lineno"> 3939</span>        }</div>
+<div class="line"><a id="l03940" name="l03940"></a><span class="lineno"> 3940</span>    }</div>
+<div class="line"><a id="l03941" name="l03941"></a><span class="lineno"> 3941</span>    <span class="keywordflow">else</span></div>
+<div class="line"><a id="l03942" name="l03942"></a><span class="lineno"> 3942</span>    {</div>
+<div class="line"><a id="l03943" name="l03943"></a><span class="lineno"> 3943</span>        handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: qspi can&#39;t use this function.\n&quot;</span>);                                   <span class="comment">/* qspi can&#39;t use this function */</span></div>
+<div class="line"><a id="l03944" name="l03944"></a><span class="lineno"> 3944</span>       </div>
+<div class="line"><a id="l03945" name="l03945"></a><span class="lineno"> 3945</span>        <span class="keywordflow">return</span> 5;                                                                                         <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l03946" name="l03946"></a><span class="lineno"> 3946</span>    }</div>
+<div class="line"><a id="l03947" name="l03947"></a><span class="lineno"> 3947</span>    </div>
+<div class="line"><a id="l03948" name="l03948"></a><span class="lineno"> 3948</span>    <span class="keywordflow">return</span> 0;                                                                                             <span class="comment">/* success return 0 */</span></div>
+<div class="line"><a id="l03949" name="l03949"></a><span class="lineno"> 3949</span>}</div>
+</div>
+<div class="line"><a id="l03950" name="l03950"></a><span class="lineno"> 3950</span> </div>
+<div class="foldopen" id="foldopen03967" data-start="{" data-end="}">
+<div class="line"><a id="l03967" name="l03967"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#gaf4bfafd1f80aa0316a4b1a15183dcd50"> 3967</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__advance__driver.html#gaf4bfafd1f80aa0316a4b1a15183dcd50">w25qxx_fast_read_quad_output</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint32_t len)</div>
+<div class="line"><a id="l03968" name="l03968"></a><span class="lineno"> 3968</span>{</div>
+<div class="line"><a id="l03969" name="l03969"></a><span class="lineno"> 3969</span>    uint8_t res;</div>
+<div class="line"><a id="l03970" name="l03970"></a><span class="lineno"> 3970</span>    uint8_t buf[1];</div>
+<div class="line"><a id="l03971" name="l03971"></a><span class="lineno"> 3971</span>    </div>
+<div class="line"><a id="l03972" name="l03972"></a><span class="lineno"> 3972</span>    <span class="keywordflow">if</span> (handle == NULL)                                                                                   <span class="comment">/* check handle */</span></div>
+<div class="line"><a id="l03973" name="l03973"></a><span class="lineno"> 3973</span>    {</div>
+<div class="line"><a id="l03974" name="l03974"></a><span class="lineno"> 3974</span>        <span class="keywordflow">return</span> 2;                                                                                         <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l03975" name="l03975"></a><span class="lineno"> 3975</span>    }   </div>
+<div class="line"><a id="l03976" name="l03976"></a><span class="lineno"> 3976</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">inited</a> != 1)                                                                              <span class="comment">/* check handle initialization */</span></div>
+<div class="line"><a id="l03977" name="l03977"></a><span class="lineno"> 3977</span>    {</div>
+<div class="line"><a id="l03978" name="l03978"></a><span class="lineno"> 3978</span>        <span class="keywordflow">return</span> 3;                                                                                         <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l03979" name="l03979"></a><span class="lineno"> 3979</span>    }</div>
+<div class="line"><a id="l03980" name="l03980"></a><span class="lineno"> 3980</span>    </div>
+<div class="line"><a id="l03981" name="l03981"></a><span class="lineno"> 3981</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>)                                                         <span class="comment">/* spi interface */</span></div>
+<div class="line"><a id="l03982" name="l03982"></a><span class="lineno"> 3982</span>    {</div>
+<div class="line"><a id="l03983" name="l03983"></a><span class="lineno"> 3983</span>        <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">dual_quad_spi_enable</a> == 0)                                                            <span class="comment">/* check spi */</span></div>
+<div class="line"><a id="l03984" name="l03984"></a><span class="lineno"> 3984</span>        {</div>
+<div class="line"><a id="l03985" name="l03985"></a><span class="lineno"> 3985</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: standard spi can&#39;t use this function failed.\n&quot;</span>);                <span class="comment">/* standard spi can&#39;t use this function failed */</span></div>
+<div class="line"><a id="l03986" name="l03986"></a><span class="lineno"> 3986</span>           </div>
+<div class="line"><a id="l03987" name="l03987"></a><span class="lineno"> 3987</span>            <span class="keywordflow">return</span> 6;                                                                                     <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l03988" name="l03988"></a><span class="lineno"> 3988</span>        }</div>
+<div class="line"><a id="l03989" name="l03989"></a><span class="lineno"> 3989</span>        <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                           <span class="comment">/* 3 address mode */</span></div>
+<div class="line"><a id="l03990" name="l03990"></a><span class="lineno"> 3990</span>        {</div>
+<div class="line"><a id="l03991" name="l03991"></a><span class="lineno"> 3991</span>            <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)                                                                  <span class="comment">/* &gt;128Mb */</span></div>
+<div class="line"><a id="l03992" name="l03992"></a><span class="lineno"> 3992</span>            {</div>
+<div class="line"><a id="l03993" name="l03993"></a><span class="lineno"> 3993</span>                res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>, 1,</div>
+<div class="line"><a id="l03994" name="l03994"></a><span class="lineno"> 3994</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l03995" name="l03995"></a><span class="lineno"> 3995</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l03996" name="l03996"></a><span class="lineno"> 3996</span>                                               0x00, NULL, 0x00,</div>
+<div class="line"><a id="l03997" name="l03997"></a><span class="lineno"> 3997</span>                                               NULL, 0x00, 0x00);                                         <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l03998" name="l03998"></a><span class="lineno"> 3998</span>                <span class="keywordflow">if</span> (res != 0)                                                                             <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l03999" name="l03999"></a><span class="lineno"> 3999</span>                {</div>
+<div class="line"><a id="l04000" name="l04000"></a><span class="lineno"> 4000</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                                <span class="comment">/* write enable failed */</span></div>
+<div class="line"><a id="l04001" name="l04001"></a><span class="lineno"> 4001</span>                   </div>
+<div class="line"><a id="l04002" name="l04002"></a><span class="lineno"> 4002</span>                    <span class="keywordflow">return</span> 1;                                                                             <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l04003" name="l04003"></a><span class="lineno"> 4003</span>                }</div>
+<div class="line"><a id="l04004" name="l04004"></a><span class="lineno"> 4004</span>                buf[0] = (addr &gt;&gt; 24) &amp; 0xFF;                                                             <span class="comment">/* 31 - 24 bits */</span></div>
+<div class="line"><a id="l04005" name="l04005"></a><span class="lineno"> 4005</span>                res = a_w25qxx_qspi_write_read(handle, 0xC5, 1,</div>
+<div class="line"><a id="l04006" name="l04006"></a><span class="lineno"> 4006</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l04007" name="l04007"></a><span class="lineno"> 4007</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l04008" name="l04008"></a><span class="lineno"> 4008</span>                                               0, (uint8_t *)buf, 0x01,</div>
+<div class="line"><a id="l04009" name="l04009"></a><span class="lineno"> 4009</span>                                               NULL, 0x00, 1);                                            <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l04010" name="l04010"></a><span class="lineno"> 4010</span>                <span class="keywordflow">if</span> (res != 0)                                                                             <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l04011" name="l04011"></a><span class="lineno"> 4011</span>                {</div>
+<div class="line"><a id="l04012" name="l04012"></a><span class="lineno"> 4012</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write extended addr register failed.\n&quot;</span>);                <span class="comment">/* write extended addr register failed */</span></div>
+<div class="line"><a id="l04013" name="l04013"></a><span class="lineno"> 4013</span>                   </div>
+<div class="line"><a id="l04014" name="l04014"></a><span class="lineno"> 4014</span>                    <span class="keywordflow">return</span> 1;                                                                             <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l04015" name="l04015"></a><span class="lineno"> 4015</span>                }</div>
+<div class="line"><a id="l04016" name="l04016"></a><span class="lineno"> 4016</span>            }</div>
+<div class="line"><a id="l04017" name="l04017"></a><span class="lineno"> 4017</span>            res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#a54ddb3d948c4bb95cc62199676c817b2">W25QXX_COMMAND_FAST_READ_QUAD_OUTPUT</a>, 1,</div>
+<div class="line"><a id="l04018" name="l04018"></a><span class="lineno"> 4018</span>                                           addr, 1, 3,</div>
+<div class="line"><a id="l04019" name="l04019"></a><span class="lineno"> 4019</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l04020" name="l04020"></a><span class="lineno"> 4020</span>                                           8, NULL, 0x00,                                                 <span class="comment">/* spi write */</span></div>
+<div class="line"><a id="l04021" name="l04021"></a><span class="lineno"> 4021</span>                                           data, len, 4);                                                 <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l04022" name="l04022"></a><span class="lineno"> 4022</span>            <span class="keywordflow">if</span> (res != 0)                                                                                 <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l04023" name="l04023"></a><span class="lineno"> 4023</span>            {</div>
+<div class="line"><a id="l04024" name="l04024"></a><span class="lineno"> 4024</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read quad output failed.\n&quot;</span>);                           <span class="comment">/* fast read quad output failed */</span></div>
+<div class="line"><a id="l04025" name="l04025"></a><span class="lineno"> 4025</span>               </div>
+<div class="line"><a id="l04026" name="l04026"></a><span class="lineno"> 4026</span>                <span class="keywordflow">return</span> 1;                                                                                 <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l04027" name="l04027"></a><span class="lineno"> 4027</span>            }</div>
+<div class="line"><a id="l04028" name="l04028"></a><span class="lineno"> 4028</span>        }</div>
+<div class="line"><a id="l04029" name="l04029"></a><span class="lineno"> 4029</span>        <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>) &amp;&amp; (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>))</div>
+<div class="line"><a id="l04030" name="l04030"></a><span class="lineno"> 4030</span>        {</div>
+<div class="line"><a id="l04031" name="l04031"></a><span class="lineno"> 4031</span>            res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#a54ddb3d948c4bb95cc62199676c817b2">W25QXX_COMMAND_FAST_READ_QUAD_OUTPUT</a>, 1,</div>
+<div class="line"><a id="l04032" name="l04032"></a><span class="lineno"> 4032</span>                                           addr, 1, 4,</div>
+<div class="line"><a id="l04033" name="l04033"></a><span class="lineno"> 4033</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l04034" name="l04034"></a><span class="lineno"> 4034</span>                                           8, NULL, 0x00,                                                 <span class="comment">/* spi write */</span></div>
+<div class="line"><a id="l04035" name="l04035"></a><span class="lineno"> 4035</span>                                           data, len, 4);                                                 <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l04036" name="l04036"></a><span class="lineno"> 4036</span>            <span class="keywordflow">if</span> (res != 0)                                                                                 <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l04037" name="l04037"></a><span class="lineno"> 4037</span>            {</div>
+<div class="line"><a id="l04038" name="l04038"></a><span class="lineno"> 4038</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read quad output failed.\n&quot;</span>);                           <span class="comment">/* fast read quad output failed */</span></div>
+<div class="line"><a id="l04039" name="l04039"></a><span class="lineno"> 4039</span>               </div>
+<div class="line"><a id="l04040" name="l04040"></a><span class="lineno"> 4040</span>                <span class="keywordflow">return</span> 1;                                                                                 <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l04041" name="l04041"></a><span class="lineno"> 4041</span>            }</div>
+<div class="line"><a id="l04042" name="l04042"></a><span class="lineno"> 4042</span>        }</div>
+<div class="line"><a id="l04043" name="l04043"></a><span class="lineno"> 4043</span>        <span class="keywordflow">else</span></div>
+<div class="line"><a id="l04044" name="l04044"></a><span class="lineno"> 4044</span>        {</div>
+<div class="line"><a id="l04045" name="l04045"></a><span class="lineno"> 4045</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: address mode is invalid.\n&quot;</span>);                                    <span class="comment">/* address mode is invalid */</span></div>
+<div class="line"><a id="l04046" name="l04046"></a><span class="lineno"> 4046</span>           </div>
+<div class="line"><a id="l04047" name="l04047"></a><span class="lineno"> 4047</span>            <span class="keywordflow">return</span> 4;                                                                                     <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l04048" name="l04048"></a><span class="lineno"> 4048</span>        }</div>
+<div class="line"><a id="l04049" name="l04049"></a><span class="lineno"> 4049</span>    }</div>
+<div class="line"><a id="l04050" name="l04050"></a><span class="lineno"> 4050</span>    <span class="keywordflow">else</span></div>
+<div class="line"><a id="l04051" name="l04051"></a><span class="lineno"> 4051</span>    {</div>
+<div class="line"><a id="l04052" name="l04052"></a><span class="lineno"> 4052</span>        handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: qspi can&#39;t use this function.\n&quot;</span>);                                   <span class="comment">/* qspi can&#39;t use this function */</span></div>
+<div class="line"><a id="l04053" name="l04053"></a><span class="lineno"> 4053</span>       </div>
+<div class="line"><a id="l04054" name="l04054"></a><span class="lineno"> 4054</span>        <span class="keywordflow">return</span> 5;                                                                                         <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l04055" name="l04055"></a><span class="lineno"> 4055</span>    }</div>
+<div class="line"><a id="l04056" name="l04056"></a><span class="lineno"> 4056</span>    </div>
+<div class="line"><a id="l04057" name="l04057"></a><span class="lineno"> 4057</span>    <span class="keywordflow">return</span> 0;                                                                                             <span class="comment">/* success return 0 */</span></div>
+<div class="line"><a id="l04058" name="l04058"></a><span class="lineno"> 4058</span>}</div>
+</div>
+<div class="line"><a id="l04059" name="l04059"></a><span class="lineno"> 4059</span> </div>
+<div class="foldopen" id="foldopen04076" data-start="{" data-end="}">
+<div class="line"><a id="l04076" name="l04076"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#gac894f4650905cba10dd3a31284de6d5e"> 4076</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__advance__driver.html#gac894f4650905cba10dd3a31284de6d5e">w25qxx_fast_read_dual_io</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint32_t len)</div>
+<div class="line"><a id="l04077" name="l04077"></a><span class="lineno"> 4077</span>{</div>
+<div class="line"><a id="l04078" name="l04078"></a><span class="lineno"> 4078</span>    uint8_t res;</div>
+<div class="line"><a id="l04079" name="l04079"></a><span class="lineno"> 4079</span>    uint8_t buf[1];</div>
+<div class="line"><a id="l04080" name="l04080"></a><span class="lineno"> 4080</span>    </div>
+<div class="line"><a id="l04081" name="l04081"></a><span class="lineno"> 4081</span>    <span class="keywordflow">if</span> (handle == NULL)                                                                                   <span class="comment">/* check handle */</span></div>
+<div class="line"><a id="l04082" name="l04082"></a><span class="lineno"> 4082</span>    {</div>
+<div class="line"><a id="l04083" name="l04083"></a><span class="lineno"> 4083</span>        <span class="keywordflow">return</span> 2;                                                                                         <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l04084" name="l04084"></a><span class="lineno"> 4084</span>    }   </div>
+<div class="line"><a id="l04085" name="l04085"></a><span class="lineno"> 4085</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">inited</a> != 1)                                                                              <span class="comment">/* check handle initialization */</span></div>
+<div class="line"><a id="l04086" name="l04086"></a><span class="lineno"> 4086</span>    {</div>
+<div class="line"><a id="l04087" name="l04087"></a><span class="lineno"> 4087</span>        <span class="keywordflow">return</span> 3;                                                                                         <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l04088" name="l04088"></a><span class="lineno"> 4088</span>    }</div>
+<div class="line"><a id="l04089" name="l04089"></a><span class="lineno"> 4089</span>    </div>
+<div class="line"><a id="l04090" name="l04090"></a><span class="lineno"> 4090</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>)                                                         <span class="comment">/* spi interface */</span></div>
+<div class="line"><a id="l04091" name="l04091"></a><span class="lineno"> 4091</span>    {</div>
+<div class="line"><a id="l04092" name="l04092"></a><span class="lineno"> 4092</span>        <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">dual_quad_spi_enable</a> == 0)                                                            <span class="comment">/* check spi */</span></div>
+<div class="line"><a id="l04093" name="l04093"></a><span class="lineno"> 4093</span>        {</div>
+<div class="line"><a id="l04094" name="l04094"></a><span class="lineno"> 4094</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: standard spi can&#39;t use this function failed.\n&quot;</span>);                <span class="comment">/* standard spi can&#39;t use this function failed */</span></div>
+<div class="line"><a id="l04095" name="l04095"></a><span class="lineno"> 4095</span>           </div>
+<div class="line"><a id="l04096" name="l04096"></a><span class="lineno"> 4096</span>            <span class="keywordflow">return</span> 6;                                                                                     <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l04097" name="l04097"></a><span class="lineno"> 4097</span>        }</div>
+<div class="line"><a id="l04098" name="l04098"></a><span class="lineno"> 4098</span>        <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                           <span class="comment">/* 3 address mode */</span></div>
+<div class="line"><a id="l04099" name="l04099"></a><span class="lineno"> 4099</span>        {</div>
+<div class="line"><a id="l04100" name="l04100"></a><span class="lineno"> 4100</span>            <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)                                                                  <span class="comment">/* &gt;128Mb */</span></div>
+<div class="line"><a id="l04101" name="l04101"></a><span class="lineno"> 4101</span>            {</div>
+<div class="line"><a id="l04102" name="l04102"></a><span class="lineno"> 4102</span>                res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>, 1,</div>
+<div class="line"><a id="l04103" name="l04103"></a><span class="lineno"> 4103</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l04104" name="l04104"></a><span class="lineno"> 4104</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l04105" name="l04105"></a><span class="lineno"> 4105</span>                                               0x00, NULL, 0x00,</div>
+<div class="line"><a id="l04106" name="l04106"></a><span class="lineno"> 4106</span>                                               NULL, 0x00, 0x00);                                         <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l04107" name="l04107"></a><span class="lineno"> 4107</span>                <span class="keywordflow">if</span> (res != 0)                                                                             <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l04108" name="l04108"></a><span class="lineno"> 4108</span>                {</div>
+<div class="line"><a id="l04109" name="l04109"></a><span class="lineno"> 4109</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                                <span class="comment">/* write enable failed */</span></div>
+<div class="line"><a id="l04110" name="l04110"></a><span class="lineno"> 4110</span>                   </div>
+<div class="line"><a id="l04111" name="l04111"></a><span class="lineno"> 4111</span>                    <span class="keywordflow">return</span> 1;                                                                             <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l04112" name="l04112"></a><span class="lineno"> 4112</span>                }</div>
+<div class="line"><a id="l04113" name="l04113"></a><span class="lineno"> 4113</span>                buf[0] = (addr &gt;&gt; 24) &amp; 0xFF;                                                             <span class="comment">/* 31 - 24 bits */</span></div>
+<div class="line"><a id="l04114" name="l04114"></a><span class="lineno"> 4114</span>                res = a_w25qxx_qspi_write_read(handle, 0xC5, 1,</div>
+<div class="line"><a id="l04115" name="l04115"></a><span class="lineno"> 4115</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l04116" name="l04116"></a><span class="lineno"> 4116</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l04117" name="l04117"></a><span class="lineno"> 4117</span>                                               0, (uint8_t *)buf, 0x01,</div>
+<div class="line"><a id="l04118" name="l04118"></a><span class="lineno"> 4118</span>                                               NULL, 0x00, 1);                                            <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l04119" name="l04119"></a><span class="lineno"> 4119</span>                <span class="keywordflow">if</span> (res != 0)                                                                             <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l04120" name="l04120"></a><span class="lineno"> 4120</span>                {</div>
+<div class="line"><a id="l04121" name="l04121"></a><span class="lineno"> 4121</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write extended addr register failed.\n&quot;</span>);                <span class="comment">/* write extended addr register failed */</span></div>
+<div class="line"><a id="l04122" name="l04122"></a><span class="lineno"> 4122</span>                   </div>
+<div class="line"><a id="l04123" name="l04123"></a><span class="lineno"> 4123</span>                    <span class="keywordflow">return</span> 1;                                                                             <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l04124" name="l04124"></a><span class="lineno"> 4124</span>                }</div>
+<div class="line"><a id="l04125" name="l04125"></a><span class="lineno"> 4125</span>            }</div>
+<div class="line"><a id="l04126" name="l04126"></a><span class="lineno"> 4126</span>            res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#a2232ada3558228c2902d654989ca65f1">W25QXX_COMMAND_FAST_READ_DUAL_IO</a>, 1,</div>
+<div class="line"><a id="l04127" name="l04127"></a><span class="lineno"> 4127</span>                                           addr, 2, 3,</div>
+<div class="line"><a id="l04128" name="l04128"></a><span class="lineno"> 4128</span>                                           0x000000FF, 2, 1,</div>
+<div class="line"><a id="l04129" name="l04129"></a><span class="lineno"> 4129</span>                                           0, NULL, 0x00,                                                 <span class="comment">/* spi write */</span></div>
+<div class="line"><a id="l04130" name="l04130"></a><span class="lineno"> 4130</span>                                           data, len, 2);                                                 <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l04131" name="l04131"></a><span class="lineno"> 4131</span>            <span class="keywordflow">if</span> (res != 0)                                                                                 <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l04132" name="l04132"></a><span class="lineno"> 4132</span>            {</div>
+<div class="line"><a id="l04133" name="l04133"></a><span class="lineno"> 4133</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read dual io failed.\n&quot;</span>);                               <span class="comment">/* fast read dual io failed */</span></div>
+<div class="line"><a id="l04134" name="l04134"></a><span class="lineno"> 4134</span>               </div>
+<div class="line"><a id="l04135" name="l04135"></a><span class="lineno"> 4135</span>                <span class="keywordflow">return</span> 1;                                                                                 <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l04136" name="l04136"></a><span class="lineno"> 4136</span>            }</div>
+<div class="line"><a id="l04137" name="l04137"></a><span class="lineno"> 4137</span>        }</div>
+<div class="line"><a id="l04138" name="l04138"></a><span class="lineno"> 4138</span>        <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>) &amp;&amp; (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>))</div>
+<div class="line"><a id="l04139" name="l04139"></a><span class="lineno"> 4139</span>        {</div>
+<div class="line"><a id="l04140" name="l04140"></a><span class="lineno"> 4140</span>            res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#a2232ada3558228c2902d654989ca65f1">W25QXX_COMMAND_FAST_READ_DUAL_IO</a>, 1,</div>
+<div class="line"><a id="l04141" name="l04141"></a><span class="lineno"> 4141</span>                                           addr, 2, 4,</div>
+<div class="line"><a id="l04142" name="l04142"></a><span class="lineno"> 4142</span>                                           0x000000FF, 2, 1,</div>
+<div class="line"><a id="l04143" name="l04143"></a><span class="lineno"> 4143</span>                                           0, NULL, 0x00,                                                 <span class="comment">/* spi write */</span></div>
+<div class="line"><a id="l04144" name="l04144"></a><span class="lineno"> 4144</span>                                           data, len, 2);                                                 <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l04145" name="l04145"></a><span class="lineno"> 4145</span>            <span class="keywordflow">if</span> (res != 0)                                                                                 <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l04146" name="l04146"></a><span class="lineno"> 4146</span>            {</div>
+<div class="line"><a id="l04147" name="l04147"></a><span class="lineno"> 4147</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read dual io failed.\n&quot;</span>);                               <span class="comment">/* fast read io output failed */</span></div>
+<div class="line"><a id="l04148" name="l04148"></a><span class="lineno"> 4148</span>               </div>
+<div class="line"><a id="l04149" name="l04149"></a><span class="lineno"> 4149</span>                <span class="keywordflow">return</span> 1;                                                                                 <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l04150" name="l04150"></a><span class="lineno"> 4150</span>            }</div>
+<div class="line"><a id="l04151" name="l04151"></a><span class="lineno"> 4151</span>        }</div>
+<div class="line"><a id="l04152" name="l04152"></a><span class="lineno"> 4152</span>        <span class="keywordflow">else</span></div>
+<div class="line"><a id="l04153" name="l04153"></a><span class="lineno"> 4153</span>        {</div>
+<div class="line"><a id="l04154" name="l04154"></a><span class="lineno"> 4154</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: address mode is invalid.\n&quot;</span>);                                    <span class="comment">/* address mode is invalid */</span></div>
+<div class="line"><a id="l04155" name="l04155"></a><span class="lineno"> 4155</span>           </div>
+<div class="line"><a id="l04156" name="l04156"></a><span class="lineno"> 4156</span>            <span class="keywordflow">return</span> 4;                                                                                     <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l04157" name="l04157"></a><span class="lineno"> 4157</span>        }</div>
+<div class="line"><a id="l04158" name="l04158"></a><span class="lineno"> 4158</span>    }</div>
+<div class="line"><a id="l04159" name="l04159"></a><span class="lineno"> 4159</span>    <span class="keywordflow">else</span></div>
+<div class="line"><a id="l04160" name="l04160"></a><span class="lineno"> 4160</span>    {</div>
+<div class="line"><a id="l04161" name="l04161"></a><span class="lineno"> 4161</span>        handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: qspi can&#39;t use this function.\n&quot;</span>);                                   <span class="comment">/* qspi can&#39;t use this function */</span></div>
+<div class="line"><a id="l04162" name="l04162"></a><span class="lineno"> 4162</span>       </div>
+<div class="line"><a id="l04163" name="l04163"></a><span class="lineno"> 4163</span>        <span class="keywordflow">return</span> 5;                                                                                         <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l04164" name="l04164"></a><span class="lineno"> 4164</span>    }</div>
+<div class="line"><a id="l04165" name="l04165"></a><span class="lineno"> 4165</span>    </div>
+<div class="line"><a id="l04166" name="l04166"></a><span class="lineno"> 4166</span>    <span class="keywordflow">return</span> 0;                                                                                             <span class="comment">/* success return 0 */</span></div>
+<div class="line"><a id="l04167" name="l04167"></a><span class="lineno"> 4167</span>}</div>
+</div>
+<div class="line"><a id="l04168" name="l04168"></a><span class="lineno"> 4168</span> </div>
+<div class="foldopen" id="foldopen04184" data-start="{" data-end="}">
+<div class="line"><a id="l04184" name="l04184"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#gab97a64bd3776874518f60381d921ae41"> 4184</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__advance__driver.html#gab97a64bd3776874518f60381d921ae41">w25qxx_fast_read_quad_io</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint32_t len)</div>
+<div class="line"><a id="l04185" name="l04185"></a><span class="lineno"> 4185</span>{</div>
+<div class="line"><a id="l04186" name="l04186"></a><span class="lineno"> 4186</span>    uint8_t res;</div>
+<div class="line"><a id="l04187" name="l04187"></a><span class="lineno"> 4187</span>    uint8_t buf[1];</div>
+<div class="line"><a id="l04188" name="l04188"></a><span class="lineno"> 4188</span>    </div>
+<div class="line"><a id="l04189" name="l04189"></a><span class="lineno"> 4189</span>    <span class="keywordflow">if</span> (handle == NULL)                                                                                   <span class="comment">/* check handle */</span></div>
+<div class="line"><a id="l04190" name="l04190"></a><span class="lineno"> 4190</span>    {</div>
+<div class="line"><a id="l04191" name="l04191"></a><span class="lineno"> 4191</span>        <span class="keywordflow">return</span> 2;                                                                                         <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l04192" name="l04192"></a><span class="lineno"> 4192</span>    }   </div>
+<div class="line"><a id="l04193" name="l04193"></a><span class="lineno"> 4193</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">inited</a> != 1)                                                                              <span class="comment">/* check handle initialization */</span></div>
+<div class="line"><a id="l04194" name="l04194"></a><span class="lineno"> 4194</span>    {</div>
+<div class="line"><a id="l04195" name="l04195"></a><span class="lineno"> 4195</span>        <span class="keywordflow">return</span> 3;                                                                                         <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l04196" name="l04196"></a><span class="lineno"> 4196</span>    }</div>
+<div class="line"><a id="l04197" name="l04197"></a><span class="lineno"> 4197</span>    </div>
+<div class="line"><a id="l04198" name="l04198"></a><span class="lineno"> 4198</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>)                                                         <span class="comment">/* spi interface */</span></div>
+<div class="line"><a id="l04199" name="l04199"></a><span class="lineno"> 4199</span>    {</div>
+<div class="line"><a id="l04200" name="l04200"></a><span class="lineno"> 4200</span>        <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">dual_quad_spi_enable</a> == 0)                                                            <span class="comment">/* check spi */</span></div>
+<div class="line"><a id="l04201" name="l04201"></a><span class="lineno"> 4201</span>        {</div>
+<div class="line"><a id="l04202" name="l04202"></a><span class="lineno"> 4202</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: standard spi can&#39;t use this function failed.\n&quot;</span>);                <span class="comment">/* standard spi can&#39;t use this function failed */</span></div>
+<div class="line"><a id="l04203" name="l04203"></a><span class="lineno"> 4203</span>           </div>
+<div class="line"><a id="l04204" name="l04204"></a><span class="lineno"> 4204</span>            <span class="keywordflow">return</span> 6;                                                                                     <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l04205" name="l04205"></a><span class="lineno"> 4205</span>        }</div>
+<div class="line"><a id="l04206" name="l04206"></a><span class="lineno"> 4206</span>        <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                           <span class="comment">/* 3 address mode */</span></div>
+<div class="line"><a id="l04207" name="l04207"></a><span class="lineno"> 4207</span>        {</div>
+<div class="line"><a id="l04208" name="l04208"></a><span class="lineno"> 4208</span>            <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)                                                                  <span class="comment">/* &gt;128Mb */</span></div>
+<div class="line"><a id="l04209" name="l04209"></a><span class="lineno"> 4209</span>            {</div>
+<div class="line"><a id="l04210" name="l04210"></a><span class="lineno"> 4210</span>                res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>, 1,</div>
+<div class="line"><a id="l04211" name="l04211"></a><span class="lineno"> 4211</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l04212" name="l04212"></a><span class="lineno"> 4212</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l04213" name="l04213"></a><span class="lineno"> 4213</span>                                               0x00, NULL, 0x00,</div>
+<div class="line"><a id="l04214" name="l04214"></a><span class="lineno"> 4214</span>                                               NULL, 0x00, 0x00);                                         <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l04215" name="l04215"></a><span class="lineno"> 4215</span>                <span class="keywordflow">if</span> (res != 0)                                                                             <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l04216" name="l04216"></a><span class="lineno"> 4216</span>                {</div>
+<div class="line"><a id="l04217" name="l04217"></a><span class="lineno"> 4217</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                                <span class="comment">/* write enable failed */</span></div>
+<div class="line"><a id="l04218" name="l04218"></a><span class="lineno"> 4218</span>                   </div>
+<div class="line"><a id="l04219" name="l04219"></a><span class="lineno"> 4219</span>                    <span class="keywordflow">return</span> 1;                                                                             <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l04220" name="l04220"></a><span class="lineno"> 4220</span>                }</div>
+<div class="line"><a id="l04221" name="l04221"></a><span class="lineno"> 4221</span>                buf[0] = (addr &gt;&gt; 24) &amp; 0xFF;                                                             <span class="comment">/* 31 - 24 bits */</span></div>
+<div class="line"><a id="l04222" name="l04222"></a><span class="lineno"> 4222</span>                res = a_w25qxx_qspi_write_read(handle, 0xC5, 1,</div>
+<div class="line"><a id="l04223" name="l04223"></a><span class="lineno"> 4223</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l04224" name="l04224"></a><span class="lineno"> 4224</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l04225" name="l04225"></a><span class="lineno"> 4225</span>                                               0, (uint8_t *)buf, 0x01,</div>
+<div class="line"><a id="l04226" name="l04226"></a><span class="lineno"> 4226</span>                                               NULL, 0x00, 1);                                            <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l04227" name="l04227"></a><span class="lineno"> 4227</span>                <span class="keywordflow">if</span> (res != 0)                                                                             <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l04228" name="l04228"></a><span class="lineno"> 4228</span>                {</div>
+<div class="line"><a id="l04229" name="l04229"></a><span class="lineno"> 4229</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write extended addr register failed.\n&quot;</span>);                <span class="comment">/* write extended addr register failed */</span></div>
+<div class="line"><a id="l04230" name="l04230"></a><span class="lineno"> 4230</span>                   </div>
+<div class="line"><a id="l04231" name="l04231"></a><span class="lineno"> 4231</span>                    <span class="keywordflow">return</span> 1;                                                                             <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l04232" name="l04232"></a><span class="lineno"> 4232</span>                }</div>
+<div class="line"><a id="l04233" name="l04233"></a><span class="lineno"> 4233</span>            }</div>
+<div class="line"><a id="l04234" name="l04234"></a><span class="lineno"> 4234</span>            res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#a80d19998d9d1218d0fa69e7d4d6b0ecb">W25QXX_COMMAND_FAST_READ_QUAD_IO</a>, 1,</div>
+<div class="line"><a id="l04235" name="l04235"></a><span class="lineno"> 4235</span>                                           addr, 4, 3,</div>
+<div class="line"><a id="l04236" name="l04236"></a><span class="lineno"> 4236</span>                                           0x000000FF, 4, 1,</div>
+<div class="line"><a id="l04237" name="l04237"></a><span class="lineno"> 4237</span>                                           4, NULL, 0x00,                                                 <span class="comment">/* spi write */</span></div>
+<div class="line"><a id="l04238" name="l04238"></a><span class="lineno"> 4238</span>                                           data, len, 4);                                                 <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l04239" name="l04239"></a><span class="lineno"> 4239</span>            <span class="keywordflow">if</span> (res != 0)                                                                                 <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l04240" name="l04240"></a><span class="lineno"> 4240</span>            {</div>
+<div class="line"><a id="l04241" name="l04241"></a><span class="lineno"> 4241</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read quad io failed.\n&quot;</span>);                               <span class="comment">/* fast read quad io failed */</span></div>
+<div class="line"><a id="l04242" name="l04242"></a><span class="lineno"> 4242</span>               </div>
+<div class="line"><a id="l04243" name="l04243"></a><span class="lineno"> 4243</span>                <span class="keywordflow">return</span> 1;                                                                                 <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l04244" name="l04244"></a><span class="lineno"> 4244</span>            }</div>
+<div class="line"><a id="l04245" name="l04245"></a><span class="lineno"> 4245</span>        }</div>
+<div class="line"><a id="l04246" name="l04246"></a><span class="lineno"> 4246</span>        <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>) &amp;&amp; (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>))</div>
+<div class="line"><a id="l04247" name="l04247"></a><span class="lineno"> 4247</span>        {</div>
+<div class="line"><a id="l04248" name="l04248"></a><span class="lineno"> 4248</span>            res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#a80d19998d9d1218d0fa69e7d4d6b0ecb">W25QXX_COMMAND_FAST_READ_QUAD_IO</a>, 1,</div>
+<div class="line"><a id="l04249" name="l04249"></a><span class="lineno"> 4249</span>                                           addr, 4, 4,</div>
+<div class="line"><a id="l04250" name="l04250"></a><span class="lineno"> 4250</span>                                           0x000000FF, 4, 1,</div>
+<div class="line"><a id="l04251" name="l04251"></a><span class="lineno"> 4251</span>                                           4, NULL, 0x00,                                                 <span class="comment">/* spi write */</span></div>
+<div class="line"><a id="l04252" name="l04252"></a><span class="lineno"> 4252</span>                                           data, len, 4);                                                 <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l04253" name="l04253"></a><span class="lineno"> 4253</span>            <span class="keywordflow">if</span> (res != 0)                                                                                 <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l04254" name="l04254"></a><span class="lineno"> 4254</span>            {</div>
+<div class="line"><a id="l04255" name="l04255"></a><span class="lineno"> 4255</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read quad io failed.\n&quot;</span>);                               <span class="comment">/* fast quad io output failed */</span></div>
+<div class="line"><a id="l04256" name="l04256"></a><span class="lineno"> 4256</span>               </div>
+<div class="line"><a id="l04257" name="l04257"></a><span class="lineno"> 4257</span>                <span class="keywordflow">return</span> 1;                                                                                 <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l04258" name="l04258"></a><span class="lineno"> 4258</span>            }</div>
+<div class="line"><a id="l04259" name="l04259"></a><span class="lineno"> 4259</span>        }</div>
+<div class="line"><a id="l04260" name="l04260"></a><span class="lineno"> 4260</span>        <span class="keywordflow">else</span></div>
+<div class="line"><a id="l04261" name="l04261"></a><span class="lineno"> 4261</span>        {</div>
+<div class="line"><a id="l04262" name="l04262"></a><span class="lineno"> 4262</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: address mode is invalid.\n&quot;</span>);                                    <span class="comment">/* address mode is invalid */</span></div>
+<div class="line"><a id="l04263" name="l04263"></a><span class="lineno"> 4263</span>           </div>
+<div class="line"><a id="l04264" name="l04264"></a><span class="lineno"> 4264</span>            <span class="keywordflow">return</span> 4;                                                                                     <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l04265" name="l04265"></a><span class="lineno"> 4265</span>        }</div>
+<div class="line"><a id="l04266" name="l04266"></a><span class="lineno"> 4266</span>    }</div>
+<div class="line"><a id="l04267" name="l04267"></a><span class="lineno"> 4267</span>    <span class="keywordflow">else</span></div>
+<div class="line"><a id="l04268" name="l04268"></a><span class="lineno"> 4268</span>    {</div>
+<div class="line"><a id="l04269" name="l04269"></a><span class="lineno"> 4269</span>        <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                           <span class="comment">/* 3 address mode */</span></div>
+<div class="line"><a id="l04270" name="l04270"></a><span class="lineno"> 4270</span>        {</div>
+<div class="line"><a id="l04271" name="l04271"></a><span class="lineno"> 4271</span>            <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)                                                                  <span class="comment">/* &gt;128Mb */</span></div>
+<div class="line"><a id="l04272" name="l04272"></a><span class="lineno"> 4272</span>            {</div>
+<div class="line"><a id="l04273" name="l04273"></a><span class="lineno"> 4273</span>                res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>, 4,</div>
+<div class="line"><a id="l04274" name="l04274"></a><span class="lineno"> 4274</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l04275" name="l04275"></a><span class="lineno"> 4275</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l04276" name="l04276"></a><span class="lineno"> 4276</span>                                               0x00, NULL, 0x00,</div>
+<div class="line"><a id="l04277" name="l04277"></a><span class="lineno"> 4277</span>                                               NULL, 0x00, 0x00);                                         <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l04278" name="l04278"></a><span class="lineno"> 4278</span>                <span class="keywordflow">if</span> (res != 0)                                                                             <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l04279" name="l04279"></a><span class="lineno"> 4279</span>                {</div>
+<div class="line"><a id="l04280" name="l04280"></a><span class="lineno"> 4280</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                                <span class="comment">/* write enable failed */</span></div>
+<div class="line"><a id="l04281" name="l04281"></a><span class="lineno"> 4281</span>                   </div>
+<div class="line"><a id="l04282" name="l04282"></a><span class="lineno"> 4282</span>                    <span class="keywordflow">return</span> 1;                                                                             <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l04283" name="l04283"></a><span class="lineno"> 4283</span>                }</div>
+<div class="line"><a id="l04284" name="l04284"></a><span class="lineno"> 4284</span>                buf[0] = (addr &gt;&gt; 24) &amp; 0xFF;                                                             <span class="comment">/* 31 - 24 bits */</span></div>
+<div class="line"><a id="l04285" name="l04285"></a><span class="lineno"> 4285</span>                res = a_w25qxx_qspi_write_read(handle, 0xC5, 4,</div>
+<div class="line"><a id="l04286" name="l04286"></a><span class="lineno"> 4286</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l04287" name="l04287"></a><span class="lineno"> 4287</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l04288" name="l04288"></a><span class="lineno"> 4288</span>                                               0, (uint8_t *)buf, 0x01,</div>
+<div class="line"><a id="l04289" name="l04289"></a><span class="lineno"> 4289</span>                                               NULL, 0x00, 4);                                            <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l04290" name="l04290"></a><span class="lineno"> 4290</span>                <span class="keywordflow">if</span> (res != 0)                                                                             <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l04291" name="l04291"></a><span class="lineno"> 4291</span>                {</div>
+<div class="line"><a id="l04292" name="l04292"></a><span class="lineno"> 4292</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write extended addr register failed.\n&quot;</span>);                <span class="comment">/* write extended addr register failed */</span></div>
+<div class="line"><a id="l04293" name="l04293"></a><span class="lineno"> 4293</span>                   </div>
+<div class="line"><a id="l04294" name="l04294"></a><span class="lineno"> 4294</span>                    <span class="keywordflow">return</span> 1;                                                                             <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l04295" name="l04295"></a><span class="lineno"> 4295</span>                }</div>
+<div class="line"><a id="l04296" name="l04296"></a><span class="lineno"> 4296</span>            }</div>
+<div class="line"><a id="l04297" name="l04297"></a><span class="lineno"> 4297</span>            res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#a80d19998d9d1218d0fa69e7d4d6b0ecb">W25QXX_COMMAND_FAST_READ_QUAD_IO</a>, 4,</div>
+<div class="line"><a id="l04298" name="l04298"></a><span class="lineno"> 4298</span>                                           addr, 4, 3,</div>
+<div class="line"><a id="l04299" name="l04299"></a><span class="lineno"> 4299</span>                                           0x000000FF, 4, 1,</div>
+<div class="line"><a id="l04300" name="l04300"></a><span class="lineno"> 4300</span>                                           handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#aff7b59f569ec689a7580bd6911daafd5">dummy</a>, NULL, 0x00,</div>
+<div class="line"><a id="l04301" name="l04301"></a><span class="lineno"> 4301</span>                                           data, len, 4);                                                 <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l04302" name="l04302"></a><span class="lineno"> 4302</span>            <span class="keywordflow">if</span> (res != 0)                                                                                 <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l04303" name="l04303"></a><span class="lineno"> 4303</span>            {</div>
+<div class="line"><a id="l04304" name="l04304"></a><span class="lineno"> 4304</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read quad io failed.\n&quot;</span>);                               <span class="comment">/* fast read quad io failed */</span></div>
+<div class="line"><a id="l04305" name="l04305"></a><span class="lineno"> 4305</span>               </div>
+<div class="line"><a id="l04306" name="l04306"></a><span class="lineno"> 4306</span>                <span class="keywordflow">return</span> 1;                                                                                 <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l04307" name="l04307"></a><span class="lineno"> 4307</span>            }</div>
+<div class="line"><a id="l04308" name="l04308"></a><span class="lineno"> 4308</span>        }</div>
+<div class="line"><a id="l04309" name="l04309"></a><span class="lineno"> 4309</span>        <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>) &amp;&amp; (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>))</div>
+<div class="line"><a id="l04310" name="l04310"></a><span class="lineno"> 4310</span>        {</div>
+<div class="line"><a id="l04311" name="l04311"></a><span class="lineno"> 4311</span>            res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#a80d19998d9d1218d0fa69e7d4d6b0ecb">W25QXX_COMMAND_FAST_READ_QUAD_IO</a>, 4,</div>
+<div class="line"><a id="l04312" name="l04312"></a><span class="lineno"> 4312</span>                                           addr, 4, 4,</div>
+<div class="line"><a id="l04313" name="l04313"></a><span class="lineno"> 4313</span>                                           0x000000FF, 4, 1,</div>
+<div class="line"><a id="l04314" name="l04314"></a><span class="lineno"> 4314</span>                                           handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#aff7b59f569ec689a7580bd6911daafd5">dummy</a>, NULL, 0x00,</div>
+<div class="line"><a id="l04315" name="l04315"></a><span class="lineno"> 4315</span>                                           data, len, 4);                                                 <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l04316" name="l04316"></a><span class="lineno"> 4316</span>            <span class="keywordflow">if</span> (res != 0)                                                                                 <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l04317" name="l04317"></a><span class="lineno"> 4317</span>            {</div>
+<div class="line"><a id="l04318" name="l04318"></a><span class="lineno"> 4318</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read quad io failed.\n&quot;</span>);                               <span class="comment">/* fast quad io output failed */</span></div>
+<div class="line"><a id="l04319" name="l04319"></a><span class="lineno"> 4319</span>               </div>
+<div class="line"><a id="l04320" name="l04320"></a><span class="lineno"> 4320</span>                <span class="keywordflow">return</span> 1;                                                                                 <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l04321" name="l04321"></a><span class="lineno"> 4321</span>            }</div>
+<div class="line"><a id="l04322" name="l04322"></a><span class="lineno"> 4322</span>        }</div>
+<div class="line"><a id="l04323" name="l04323"></a><span class="lineno"> 4323</span>        <span class="keywordflow">else</span></div>
+<div class="line"><a id="l04324" name="l04324"></a><span class="lineno"> 4324</span>        {</div>
+<div class="line"><a id="l04325" name="l04325"></a><span class="lineno"> 4325</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: address mode is invalid.\n&quot;</span>);                                    <span class="comment">/* address mode is invalid */</span></div>
+<div class="line"><a id="l04326" name="l04326"></a><span class="lineno"> 4326</span>           </div>
+<div class="line"><a id="l04327" name="l04327"></a><span class="lineno"> 4327</span>            <span class="keywordflow">return</span> 4;                                                                                     <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l04328" name="l04328"></a><span class="lineno"> 4328</span>        }</div>
+<div class="line"><a id="l04329" name="l04329"></a><span class="lineno"> 4329</span>    }</div>
+<div class="line"><a id="l04330" name="l04330"></a><span class="lineno"> 4330</span>    </div>
+<div class="line"><a id="l04331" name="l04331"></a><span class="lineno"> 4331</span>    <span class="keywordflow">return</span> 0;                                                                                             <span class="comment">/* success return 0 */</span></div>
+<div class="line"><a id="l04332" name="l04332"></a><span class="lineno"> 4332</span>}</div>
+</div>
+<div class="line"><a id="l04333" name="l04333"></a><span class="lineno"> 4333</span> </div>
+<div class="foldopen" id="foldopen04350" data-start="{" data-end="}">
+<div class="line"><a id="l04350" name="l04350"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#gad97d7e410dd77c49334097a0fd332660"> 4350</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__advance__driver.html#gad97d7e410dd77c49334097a0fd332660">w25qxx_word_read_quad_io</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint32_t len)</div>
+<div class="line"><a id="l04351" name="l04351"></a><span class="lineno"> 4351</span>{</div>
+<div class="line"><a id="l04352" name="l04352"></a><span class="lineno"> 4352</span>    uint8_t res;</div>
+<div class="line"><a id="l04353" name="l04353"></a><span class="lineno"> 4353</span>    uint8_t buf[1];</div>
+<div class="line"><a id="l04354" name="l04354"></a><span class="lineno"> 4354</span>    </div>
+<div class="line"><a id="l04355" name="l04355"></a><span class="lineno"> 4355</span>    <span class="keywordflow">if</span> (handle == NULL)                                                                                   <span class="comment">/* check handle */</span></div>
+<div class="line"><a id="l04356" name="l04356"></a><span class="lineno"> 4356</span>    {</div>
+<div class="line"><a id="l04357" name="l04357"></a><span class="lineno"> 4357</span>        <span class="keywordflow">return</span> 2;                                                                                         <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l04358" name="l04358"></a><span class="lineno"> 4358</span>    }   </div>
+<div class="line"><a id="l04359" name="l04359"></a><span class="lineno"> 4359</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">inited</a> != 1)                                                                              <span class="comment">/* check handle initialization */</span></div>
+<div class="line"><a id="l04360" name="l04360"></a><span class="lineno"> 4360</span>    {</div>
+<div class="line"><a id="l04361" name="l04361"></a><span class="lineno"> 4361</span>        <span class="keywordflow">return</span> 3;                                                                                         <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l04362" name="l04362"></a><span class="lineno"> 4362</span>    }</div>
+<div class="line"><a id="l04363" name="l04363"></a><span class="lineno"> 4363</span>    </div>
+<div class="line"><a id="l04364" name="l04364"></a><span class="lineno"> 4364</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>)                                                         <span class="comment">/* spi interface */</span></div>
+<div class="line"><a id="l04365" name="l04365"></a><span class="lineno"> 4365</span>    {</div>
+<div class="line"><a id="l04366" name="l04366"></a><span class="lineno"> 4366</span>        <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">dual_quad_spi_enable</a> == 0)                                                            <span class="comment">/* check spi */</span></div>
+<div class="line"><a id="l04367" name="l04367"></a><span class="lineno"> 4367</span>        {</div>
+<div class="line"><a id="l04368" name="l04368"></a><span class="lineno"> 4368</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: standard spi can&#39;t use this function failed.\n&quot;</span>);                <span class="comment">/* standard spi can&#39;t use this function failed */</span></div>
+<div class="line"><a id="l04369" name="l04369"></a><span class="lineno"> 4369</span>           </div>
+<div class="line"><a id="l04370" name="l04370"></a><span class="lineno"> 4370</span>            <span class="keywordflow">return</span> 6;                                                                                     <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l04371" name="l04371"></a><span class="lineno"> 4371</span>        }</div>
+<div class="line"><a id="l04372" name="l04372"></a><span class="lineno"> 4372</span>        <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                           <span class="comment">/* 3 address mode */</span></div>
+<div class="line"><a id="l04373" name="l04373"></a><span class="lineno"> 4373</span>        {</div>
+<div class="line"><a id="l04374" name="l04374"></a><span class="lineno"> 4374</span>            <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)                                                                  <span class="comment">/* &gt;128Mb */</span></div>
+<div class="line"><a id="l04375" name="l04375"></a><span class="lineno"> 4375</span>            {</div>
+<div class="line"><a id="l04376" name="l04376"></a><span class="lineno"> 4376</span>                res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>, 1,</div>
+<div class="line"><a id="l04377" name="l04377"></a><span class="lineno"> 4377</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l04378" name="l04378"></a><span class="lineno"> 4378</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l04379" name="l04379"></a><span class="lineno"> 4379</span>                                               0x00, NULL, 0x00,</div>
+<div class="line"><a id="l04380" name="l04380"></a><span class="lineno"> 4380</span>                                               NULL, 0x00, 0x00);                                         <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l04381" name="l04381"></a><span class="lineno"> 4381</span>                <span class="keywordflow">if</span> (res != 0)                                                                             <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l04382" name="l04382"></a><span class="lineno"> 4382</span>                {</div>
+<div class="line"><a id="l04383" name="l04383"></a><span class="lineno"> 4383</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                                <span class="comment">/* write enable failed */</span></div>
+<div class="line"><a id="l04384" name="l04384"></a><span class="lineno"> 4384</span>                   </div>
+<div class="line"><a id="l04385" name="l04385"></a><span class="lineno"> 4385</span>                    <span class="keywordflow">return</span> 1;                                                                             <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l04386" name="l04386"></a><span class="lineno"> 4386</span>                }</div>
+<div class="line"><a id="l04387" name="l04387"></a><span class="lineno"> 4387</span>                buf[0] = (addr &gt;&gt; 24) &amp; 0xFF;                                                             <span class="comment">/* 31 - 24 bits */</span></div>
+<div class="line"><a id="l04388" name="l04388"></a><span class="lineno"> 4388</span>                res = a_w25qxx_qspi_write_read(handle, 0xC5, 1,</div>
+<div class="line"><a id="l04389" name="l04389"></a><span class="lineno"> 4389</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l04390" name="l04390"></a><span class="lineno"> 4390</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l04391" name="l04391"></a><span class="lineno"> 4391</span>                                               0, (uint8_t *)buf, 0x01,</div>
+<div class="line"><a id="l04392" name="l04392"></a><span class="lineno"> 4392</span>                                               NULL, 0x00, 1);                                            <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l04393" name="l04393"></a><span class="lineno"> 4393</span>                <span class="keywordflow">if</span> (res != 0)                                                                             <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l04394" name="l04394"></a><span class="lineno"> 4394</span>                {</div>
+<div class="line"><a id="l04395" name="l04395"></a><span class="lineno"> 4395</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write extended addr register failed.\n&quot;</span>);                <span class="comment">/* write extended addr register failed */</span></div>
+<div class="line"><a id="l04396" name="l04396"></a><span class="lineno"> 4396</span>                   </div>
+<div class="line"><a id="l04397" name="l04397"></a><span class="lineno"> 4397</span>                    <span class="keywordflow">return</span> 1;                                                                             <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l04398" name="l04398"></a><span class="lineno"> 4398</span>                }</div>
+<div class="line"><a id="l04399" name="l04399"></a><span class="lineno"> 4399</span>            }</div>
+<div class="line"><a id="l04400" name="l04400"></a><span class="lineno"> 4400</span>            res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#a947382a74ac06eb8a2ff8f5bcb1b744d">W25QXX_COMMAND_WORD_READ_QUAD_IO</a>, 1,</div>
+<div class="line"><a id="l04401" name="l04401"></a><span class="lineno"> 4401</span>                                           addr, 4, 3,</div>
+<div class="line"><a id="l04402" name="l04402"></a><span class="lineno"> 4402</span>                                           0x000000FF, 4, 1,</div>
+<div class="line"><a id="l04403" name="l04403"></a><span class="lineno"> 4403</span>                                           2, NULL, 0x00,                                                 <span class="comment">/* spi write */</span></div>
+<div class="line"><a id="l04404" name="l04404"></a><span class="lineno"> 4404</span>                                           data, len, 4);                                                 <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l04405" name="l04405"></a><span class="lineno"> 4405</span>            <span class="keywordflow">if</span> (res != 0)                                                                                 <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l04406" name="l04406"></a><span class="lineno"> 4406</span>            {</div>
+<div class="line"><a id="l04407" name="l04407"></a><span class="lineno"> 4407</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: word read quad io failed.\n&quot;</span>);                               <span class="comment">/* word read quad io failed */</span></div>
+<div class="line"><a id="l04408" name="l04408"></a><span class="lineno"> 4408</span>               </div>
+<div class="line"><a id="l04409" name="l04409"></a><span class="lineno"> 4409</span>                <span class="keywordflow">return</span> 1;                                                                                 <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l04410" name="l04410"></a><span class="lineno"> 4410</span>            }</div>
+<div class="line"><a id="l04411" name="l04411"></a><span class="lineno"> 4411</span>        }</div>
+<div class="line"><a id="l04412" name="l04412"></a><span class="lineno"> 4412</span>        <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>) &amp;&amp; (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>))</div>
+<div class="line"><a id="l04413" name="l04413"></a><span class="lineno"> 4413</span>        {</div>
+<div class="line"><a id="l04414" name="l04414"></a><span class="lineno"> 4414</span>            res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#a947382a74ac06eb8a2ff8f5bcb1b744d">W25QXX_COMMAND_WORD_READ_QUAD_IO</a>, 1,</div>
+<div class="line"><a id="l04415" name="l04415"></a><span class="lineno"> 4415</span>                                           addr, 4, 4,</div>
+<div class="line"><a id="l04416" name="l04416"></a><span class="lineno"> 4416</span>                                           0x000000FF, 4, 1,</div>
+<div class="line"><a id="l04417" name="l04417"></a><span class="lineno"> 4417</span>                                           2, NULL, 0x00,                                                 <span class="comment">/* spi write */</span></div>
+<div class="line"><a id="l04418" name="l04418"></a><span class="lineno"> 4418</span>                                           data, len, 4);                                                 <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l04419" name="l04419"></a><span class="lineno"> 4419</span>            <span class="keywordflow">if</span> (res != 0)                                                                                 <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l04420" name="l04420"></a><span class="lineno"> 4420</span>            {</div>
+<div class="line"><a id="l04421" name="l04421"></a><span class="lineno"> 4421</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: word read quad io failed.\n&quot;</span>);                               <span class="comment">/* word read quad io failed */</span></div>
+<div class="line"><a id="l04422" name="l04422"></a><span class="lineno"> 4422</span>               </div>
+<div class="line"><a id="l04423" name="l04423"></a><span class="lineno"> 4423</span>                <span class="keywordflow">return</span> 1;                                                                                 <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l04424" name="l04424"></a><span class="lineno"> 4424</span>            }</div>
+<div class="line"><a id="l04425" name="l04425"></a><span class="lineno"> 4425</span>        }</div>
+<div class="line"><a id="l04426" name="l04426"></a><span class="lineno"> 4426</span>        <span class="keywordflow">else</span></div>
+<div class="line"><a id="l04427" name="l04427"></a><span class="lineno"> 4427</span>        {</div>
+<div class="line"><a id="l04428" name="l04428"></a><span class="lineno"> 4428</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: address mode is invalid.\n&quot;</span>);                                    <span class="comment">/* address mode is invalid */</span></div>
+<div class="line"><a id="l04429" name="l04429"></a><span class="lineno"> 4429</span>           </div>
+<div class="line"><a id="l04430" name="l04430"></a><span class="lineno"> 4430</span>            <span class="keywordflow">return</span> 4;                                                                                     <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l04431" name="l04431"></a><span class="lineno"> 4431</span>        }</div>
+<div class="line"><a id="l04432" name="l04432"></a><span class="lineno"> 4432</span>    }</div>
+<div class="line"><a id="l04433" name="l04433"></a><span class="lineno"> 4433</span>    <span class="keywordflow">else</span></div>
+<div class="line"><a id="l04434" name="l04434"></a><span class="lineno"> 4434</span>    {</div>
+<div class="line"><a id="l04435" name="l04435"></a><span class="lineno"> 4435</span>        handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: qspi can&#39;t use this function.\n&quot;</span>);                                   <span class="comment">/* qspi can&#39;t use this function */</span></div>
+<div class="line"><a id="l04436" name="l04436"></a><span class="lineno"> 4436</span>       </div>
+<div class="line"><a id="l04437" name="l04437"></a><span class="lineno"> 4437</span>        <span class="keywordflow">return</span> 5;                                                                                         <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l04438" name="l04438"></a><span class="lineno"> 4438</span>    }</div>
+<div class="line"><a id="l04439" name="l04439"></a><span class="lineno"> 4439</span>    </div>
+<div class="line"><a id="l04440" name="l04440"></a><span class="lineno"> 4440</span>    <span class="keywordflow">return</span> 0;                                                                                             <span class="comment">/* success return 0 */</span></div>
+<div class="line"><a id="l04441" name="l04441"></a><span class="lineno"> 4441</span>}</div>
+</div>
+<div class="line"><a id="l04442" name="l04442"></a><span class="lineno"> 4442</span> </div>
+<div class="foldopen" id="foldopen04459" data-start="{" data-end="}">
+<div class="line"><a id="l04459" name="l04459"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#ga88a62ec42e86db821ff3f0d3ab541dbb"> 4459</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__advance__driver.html#ga88a62ec42e86db821ff3f0d3ab541dbb">w25qxx_octal_word_read_quad_io</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint32_t len)</div>
+<div class="line"><a id="l04460" name="l04460"></a><span class="lineno"> 4460</span>{</div>
+<div class="line"><a id="l04461" name="l04461"></a><span class="lineno"> 4461</span>    uint8_t res;</div>
+<div class="line"><a id="l04462" name="l04462"></a><span class="lineno"> 4462</span>    uint8_t buf[1];</div>
+<div class="line"><a id="l04463" name="l04463"></a><span class="lineno"> 4463</span>    </div>
+<div class="line"><a id="l04464" name="l04464"></a><span class="lineno"> 4464</span>    <span class="keywordflow">if</span> (handle == NULL)                                                                                   <span class="comment">/* check handle */</span></div>
+<div class="line"><a id="l04465" name="l04465"></a><span class="lineno"> 4465</span>    {</div>
+<div class="line"><a id="l04466" name="l04466"></a><span class="lineno"> 4466</span>        <span class="keywordflow">return</span> 2;                                                                                         <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l04467" name="l04467"></a><span class="lineno"> 4467</span>    }   </div>
+<div class="line"><a id="l04468" name="l04468"></a><span class="lineno"> 4468</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">inited</a> != 1)                                                                              <span class="comment">/* check handle initialization */</span></div>
+<div class="line"><a id="l04469" name="l04469"></a><span class="lineno"> 4469</span>    {</div>
+<div class="line"><a id="l04470" name="l04470"></a><span class="lineno"> 4470</span>        <span class="keywordflow">return</span> 3;                                                                                         <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l04471" name="l04471"></a><span class="lineno"> 4471</span>    }</div>
+<div class="line"><a id="l04472" name="l04472"></a><span class="lineno"> 4472</span>    </div>
+<div class="line"><a id="l04473" name="l04473"></a><span class="lineno"> 4473</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>)                                                         <span class="comment">/* spi interface */</span></div>
+<div class="line"><a id="l04474" name="l04474"></a><span class="lineno"> 4474</span>    {</div>
+<div class="line"><a id="l04475" name="l04475"></a><span class="lineno"> 4475</span>        <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">dual_quad_spi_enable</a> == 0)                                                            <span class="comment">/* check spi */</span></div>
+<div class="line"><a id="l04476" name="l04476"></a><span class="lineno"> 4476</span>        {</div>
+<div class="line"><a id="l04477" name="l04477"></a><span class="lineno"> 4477</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: standard spi can&#39;t use this function failed.\n&quot;</span>);                <span class="comment">/* standard spi can&#39;t use this function failed */</span></div>
+<div class="line"><a id="l04478" name="l04478"></a><span class="lineno"> 4478</span>           </div>
+<div class="line"><a id="l04479" name="l04479"></a><span class="lineno"> 4479</span>            <span class="keywordflow">return</span> 6;                                                                                     <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l04480" name="l04480"></a><span class="lineno"> 4480</span>        }</div>
+<div class="line"><a id="l04481" name="l04481"></a><span class="lineno"> 4481</span>        <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                           <span class="comment">/* 3 address mode */</span></div>
+<div class="line"><a id="l04482" name="l04482"></a><span class="lineno"> 4482</span>        {</div>
+<div class="line"><a id="l04483" name="l04483"></a><span class="lineno"> 4483</span>            <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)                                                                  <span class="comment">/* &gt;128Mb */</span></div>
+<div class="line"><a id="l04484" name="l04484"></a><span class="lineno"> 4484</span>            {</div>
+<div class="line"><a id="l04485" name="l04485"></a><span class="lineno"> 4485</span>                res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>, 1,</div>
+<div class="line"><a id="l04486" name="l04486"></a><span class="lineno"> 4486</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l04487" name="l04487"></a><span class="lineno"> 4487</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l04488" name="l04488"></a><span class="lineno"> 4488</span>                                               0x00, NULL, 0x00,</div>
+<div class="line"><a id="l04489" name="l04489"></a><span class="lineno"> 4489</span>                                               NULL, 0x00, 0x00);                                         <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l04490" name="l04490"></a><span class="lineno"> 4490</span>                <span class="keywordflow">if</span> (res != 0)                                                                             <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l04491" name="l04491"></a><span class="lineno"> 4491</span>                {</div>
+<div class="line"><a id="l04492" name="l04492"></a><span class="lineno"> 4492</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                                <span class="comment">/* write enable failed */</span></div>
+<div class="line"><a id="l04493" name="l04493"></a><span class="lineno"> 4493</span>                   </div>
+<div class="line"><a id="l04494" name="l04494"></a><span class="lineno"> 4494</span>                    <span class="keywordflow">return</span> 1;                                                                             <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l04495" name="l04495"></a><span class="lineno"> 4495</span>                }</div>
+<div class="line"><a id="l04496" name="l04496"></a><span class="lineno"> 4496</span>                buf[0] = (addr &gt;&gt; 24) &amp; 0xFF;                                                             <span class="comment">/* 31 - 24 bits */</span></div>
+<div class="line"><a id="l04497" name="l04497"></a><span class="lineno"> 4497</span>                res = a_w25qxx_qspi_write_read(handle, 0xC5, 1,</div>
+<div class="line"><a id="l04498" name="l04498"></a><span class="lineno"> 4498</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l04499" name="l04499"></a><span class="lineno"> 4499</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l04500" name="l04500"></a><span class="lineno"> 4500</span>                                               0, (uint8_t *)buf, 0x01,</div>
+<div class="line"><a id="l04501" name="l04501"></a><span class="lineno"> 4501</span>                                               NULL, 0x00, 1);                                            <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l04502" name="l04502"></a><span class="lineno"> 4502</span>                <span class="keywordflow">if</span> (res != 0)                                                                             <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l04503" name="l04503"></a><span class="lineno"> 4503</span>                {</div>
+<div class="line"><a id="l04504" name="l04504"></a><span class="lineno"> 4504</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write extended addr register failed.\n&quot;</span>);                <span class="comment">/* write extended addr register failed */</span></div>
+<div class="line"><a id="l04505" name="l04505"></a><span class="lineno"> 4505</span>                   </div>
+<div class="line"><a id="l04506" name="l04506"></a><span class="lineno"> 4506</span>                    <span class="keywordflow">return</span> 1;                                                                             <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l04507" name="l04507"></a><span class="lineno"> 4507</span>                }</div>
+<div class="line"><a id="l04508" name="l04508"></a><span class="lineno"> 4508</span>            }</div>
+<div class="line"><a id="l04509" name="l04509"></a><span class="lineno"> 4509</span>            res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#acb7f8599b26c29356651690ec9b25e66">W25QXX_COMMAND_OCTAL_WORD_READ_QUAD_IO</a>, 1,</div>
+<div class="line"><a id="l04510" name="l04510"></a><span class="lineno"> 4510</span>                                           addr, 4, 3,</div>
+<div class="line"><a id="l04511" name="l04511"></a><span class="lineno"> 4511</span>                                           0x000000FF, 4, 1,</div>
+<div class="line"><a id="l04512" name="l04512"></a><span class="lineno"> 4512</span>                                           0, NULL, 0x00,                                                 <span class="comment">/* spi write */</span></div>
+<div class="line"><a id="l04513" name="l04513"></a><span class="lineno"> 4513</span>                                           data, len, 4);                                                 <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l04514" name="l04514"></a><span class="lineno"> 4514</span>            <span class="keywordflow">if</span> (res != 0)                                                                                 <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l04515" name="l04515"></a><span class="lineno"> 4515</span>            {</div>
+<div class="line"><a id="l04516" name="l04516"></a><span class="lineno"> 4516</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: octal word read quad io failed.\n&quot;</span>);                         <span class="comment">/* octal word read quad io failed */</span></div>
+<div class="line"><a id="l04517" name="l04517"></a><span class="lineno"> 4517</span>               </div>
+<div class="line"><a id="l04518" name="l04518"></a><span class="lineno"> 4518</span>                <span class="keywordflow">return</span> 1;                                                                                 <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l04519" name="l04519"></a><span class="lineno"> 4519</span>            }</div>
+<div class="line"><a id="l04520" name="l04520"></a><span class="lineno"> 4520</span>        }</div>
+<div class="line"><a id="l04521" name="l04521"></a><span class="lineno"> 4521</span>        <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>) &amp;&amp; (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>))</div>
+<div class="line"><a id="l04522" name="l04522"></a><span class="lineno"> 4522</span>        {</div>
+<div class="line"><a id="l04523" name="l04523"></a><span class="lineno"> 4523</span>            res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#acb7f8599b26c29356651690ec9b25e66">W25QXX_COMMAND_OCTAL_WORD_READ_QUAD_IO</a>, 1,</div>
+<div class="line"><a id="l04524" name="l04524"></a><span class="lineno"> 4524</span>                                           addr, 4, 4,</div>
+<div class="line"><a id="l04525" name="l04525"></a><span class="lineno"> 4525</span>                                           0x000000FF, 4, 1,</div>
+<div class="line"><a id="l04526" name="l04526"></a><span class="lineno"> 4526</span>                                           0, NULL, 0x00,                                                 <span class="comment">/* spi write */</span></div>
+<div class="line"><a id="l04527" name="l04527"></a><span class="lineno"> 4527</span>                                           data, len, 4);                                                 <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l04528" name="l04528"></a><span class="lineno"> 4528</span>            <span class="keywordflow">if</span> (res != 0)                                                                                 <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l04529" name="l04529"></a><span class="lineno"> 4529</span>            {</div>
+<div class="line"><a id="l04530" name="l04530"></a><span class="lineno"> 4530</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: octal word read quad io failed.\n&quot;</span>);                         <span class="comment">/* octal word read quad io failed */</span></div>
+<div class="line"><a id="l04531" name="l04531"></a><span class="lineno"> 4531</span>               </div>
+<div class="line"><a id="l04532" name="l04532"></a><span class="lineno"> 4532</span>                <span class="keywordflow">return</span> 1;                                                                                 <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l04533" name="l04533"></a><span class="lineno"> 4533</span>            }</div>
+<div class="line"><a id="l04534" name="l04534"></a><span class="lineno"> 4534</span>        }</div>
+<div class="line"><a id="l04535" name="l04535"></a><span class="lineno"> 4535</span>        <span class="keywordflow">else</span></div>
+<div class="line"><a id="l04536" name="l04536"></a><span class="lineno"> 4536</span>        {</div>
+<div class="line"><a id="l04537" name="l04537"></a><span class="lineno"> 4537</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: address mode is invalid.\n&quot;</span>);                                    <span class="comment">/* address mode is invalid */</span></div>
+<div class="line"><a id="l04538" name="l04538"></a><span class="lineno"> 4538</span>           </div>
+<div class="line"><a id="l04539" name="l04539"></a><span class="lineno"> 4539</span>            <span class="keywordflow">return</span> 4;                                                                                     <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l04540" name="l04540"></a><span class="lineno"> 4540</span>        }</div>
+<div class="line"><a id="l04541" name="l04541"></a><span class="lineno"> 4541</span>    }</div>
+<div class="line"><a id="l04542" name="l04542"></a><span class="lineno"> 4542</span>    <span class="keywordflow">else</span></div>
+<div class="line"><a id="l04543" name="l04543"></a><span class="lineno"> 4543</span>    {</div>
+<div class="line"><a id="l04544" name="l04544"></a><span class="lineno"> 4544</span>        handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: qspi can&#39;t use this function.\n&quot;</span>);                                   <span class="comment">/* qspi can&#39;t use this function */</span></div>
+<div class="line"><a id="l04545" name="l04545"></a><span class="lineno"> 4545</span>       </div>
+<div class="line"><a id="l04546" name="l04546"></a><span class="lineno"> 4546</span>        <span class="keywordflow">return</span> 5;                                                                                         <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l04547" name="l04547"></a><span class="lineno"> 4547</span>    }</div>
+<div class="line"><a id="l04548" name="l04548"></a><span class="lineno"> 4548</span>    </div>
+<div class="line"><a id="l04549" name="l04549"></a><span class="lineno"> 4549</span>    <span class="keywordflow">return</span> 0;                                                                                             <span class="comment">/* success return 0 */</span></div>
+<div class="line"><a id="l04550" name="l04550"></a><span class="lineno"> 4550</span>}</div>
+</div>
+<div class="line"><a id="l04551" name="l04551"></a><span class="lineno"> 4551</span> </div>
+<div class="foldopen" id="foldopen04569" data-start="{" data-end="}">
+<div class="line"><a id="l04569" name="l04569"></a><span class="lineno"><a class="line" href="group__w25qxx__basic__driver.html#ga6280e7e4ab26306436e2c210617a28b3"> 4569</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__basic__driver.html#ga6280e7e4ab26306436e2c210617a28b3">w25qxx_page_program</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint16_t len)</div>
+<div class="line"><a id="l04570" name="l04570"></a><span class="lineno"> 4570</span>{</div>
+<div class="line"><a id="l04571" name="l04571"></a><span class="lineno"> 4571</span>    uint8_t res;</div>
+<div class="line"><a id="l04572" name="l04572"></a><span class="lineno"> 4572</span>    uint8_t status;</div>
+<div class="line"><a id="l04573" name="l04573"></a><span class="lineno"> 4573</span>    uint32_t timeout;</div>
+<div class="line"><a id="l04574" name="l04574"></a><span class="lineno"> 4574</span>    uint8_t buf[2];</div>
+<div class="line"><a id="l04575" name="l04575"></a><span class="lineno"> 4575</span>    </div>
+<div class="line"><a id="l04576" name="l04576"></a><span class="lineno"> 4576</span>    <span class="keywordflow">if</span> (handle == NULL)                                                                                     <span class="comment">/* check handle */</span></div>
+<div class="line"><a id="l04577" name="l04577"></a><span class="lineno"> 4577</span>    {</div>
+<div class="line"><a id="l04578" name="l04578"></a><span class="lineno"> 4578</span>        <span class="keywordflow">return</span> 2;                                                                                           <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l04579" name="l04579"></a><span class="lineno"> 4579</span>    }   </div>
+<div class="line"><a id="l04580" name="l04580"></a><span class="lineno"> 4580</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">inited</a> != 1)                                                                                <span class="comment">/* check handle initialization */</span></div>
+<div class="line"><a id="l04581" name="l04581"></a><span class="lineno"> 4581</span>    {</div>
+<div class="line"><a id="l04582" name="l04582"></a><span class="lineno"> 4582</span>        <span class="keywordflow">return</span> 3;                                                                                           <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l04583" name="l04583"></a><span class="lineno"> 4583</span>    }</div>
+<div class="line"><a id="l04584" name="l04584"></a><span class="lineno"> 4584</span>    <span class="keywordflow">if</span> ((addr % 256) != 0)                                                                                  <span class="comment">/* check address */</span></div>
+<div class="line"><a id="l04585" name="l04585"></a><span class="lineno"> 4585</span>    {</div>
+<div class="line"><a id="l04586" name="l04586"></a><span class="lineno"> 4586</span>        handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: addr is invalid.\n&quot;</span>);                                                  <span class="comment">/* addr is invalid */</span></div>
+<div class="line"><a id="l04587" name="l04587"></a><span class="lineno"> 4587</span>       </div>
+<div class="line"><a id="l04588" name="l04588"></a><span class="lineno"> 4588</span>        <span class="keywordflow">return</span> 4;                                                                                           <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l04589" name="l04589"></a><span class="lineno"> 4589</span>    }</div>
+<div class="line"><a id="l04590" name="l04590"></a><span class="lineno"> 4590</span>    <span class="keywordflow">if</span> (len &gt; 256)                                                                                          <span class="comment">/* check address */</span></div>
+<div class="line"><a id="l04591" name="l04591"></a><span class="lineno"> 4591</span>    {</div>
+<div class="line"><a id="l04592" name="l04592"></a><span class="lineno"> 4592</span>        handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: length is over 256.\n&quot;</span>);                                               <span class="comment">/* length is over 256 */</span></div>
+<div class="line"><a id="l04593" name="l04593"></a><span class="lineno"> 4593</span>       </div>
+<div class="line"><a id="l04594" name="l04594"></a><span class="lineno"> 4594</span>        <span class="keywordflow">return</span> 7;                                                                                           <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l04595" name="l04595"></a><span class="lineno"> 4595</span>    }</div>
+<div class="line"><a id="l04596" name="l04596"></a><span class="lineno"> 4596</span>    </div>
+<div class="line"><a id="l04597" name="l04597"></a><span class="lineno"> 4597</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>)                                                           <span class="comment">/* spi interface */</span></div>
+<div class="line"><a id="l04598" name="l04598"></a><span class="lineno"> 4598</span>    {</div>
+<div class="line"><a id="l04599" name="l04599"></a><span class="lineno"> 4599</span>        <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">dual_quad_spi_enable</a> != 0)                                                              <span class="comment">/* enable dual quad spi */</span></div>
+<div class="line"><a id="l04600" name="l04600"></a><span class="lineno"> 4600</span>        {</div>
+<div class="line"><a id="l04601" name="l04601"></a><span class="lineno"> 4601</span>            res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>, 1,</div>
+<div class="line"><a id="l04602" name="l04602"></a><span class="lineno"> 4602</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l04603" name="l04603"></a><span class="lineno"> 4603</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l04604" name="l04604"></a><span class="lineno"> 4604</span>                                           0x00, NULL, 0x00,</div>
+<div class="line"><a id="l04605" name="l04605"></a><span class="lineno"> 4605</span>                                           NULL, 0x00, 0x00);                                               <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l04606" name="l04606"></a><span class="lineno"> 4606</span>            <span class="keywordflow">if</span> (res != 0)                                                                                   <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l04607" name="l04607"></a><span class="lineno"> 4607</span>            {</div>
+<div class="line"><a id="l04608" name="l04608"></a><span class="lineno"> 4608</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                                      <span class="comment">/* write enable failed */</span></div>
+<div class="line"><a id="l04609" name="l04609"></a><span class="lineno"> 4609</span>               </div>
+<div class="line"><a id="l04610" name="l04610"></a><span class="lineno"> 4610</span>                <span class="keywordflow">return</span> 1;                                                                                   <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l04611" name="l04611"></a><span class="lineno"> 4611</span>            }</div>
+<div class="line"><a id="l04612" name="l04612"></a><span class="lineno"> 4612</span>            <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                         <span class="comment">/* 3 address mode */</span></div>
+<div class="line"><a id="l04613" name="l04613"></a><span class="lineno"> 4613</span>            {</div>
+<div class="line"><a id="l04614" name="l04614"></a><span class="lineno"> 4614</span>                <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)                                                                <span class="comment">/* &gt;128Mb */</span></div>
+<div class="line"><a id="l04615" name="l04615"></a><span class="lineno"> 4615</span>                {</div>
+<div class="line"><a id="l04616" name="l04616"></a><span class="lineno"> 4616</span>                    buf[0] = (addr &gt;&gt; 24) &amp; 0xFF;                                                           <span class="comment">/* 31 - 24 bits */</span></div>
+<div class="line"><a id="l04617" name="l04617"></a><span class="lineno"> 4617</span>                    res = a_w25qxx_qspi_write_read(handle, 0xC5, 1,</div>
+<div class="line"><a id="l04618" name="l04618"></a><span class="lineno"> 4618</span>                                                   0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l04619" name="l04619"></a><span class="lineno"> 4619</span>                                                   0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l04620" name="l04620"></a><span class="lineno"> 4620</span>                                                   0, (uint8_t *)buf, 0x01,</div>
+<div class="line"><a id="l04621" name="l04621"></a><span class="lineno"> 4621</span>                                                   NULL, 0x00, 1);                                          <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l04622" name="l04622"></a><span class="lineno"> 4622</span>                    <span class="keywordflow">if</span> (res != 0)                                                                           <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l04623" name="l04623"></a><span class="lineno"> 4623</span>                    {</div>
+<div class="line"><a id="l04624" name="l04624"></a><span class="lineno"> 4624</span>                        handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write extended addr register failed.\n&quot;</span>);              <span class="comment">/* write extended addr register failed */</span></div>
+<div class="line"><a id="l04625" name="l04625"></a><span class="lineno"> 4625</span>                       </div>
+<div class="line"><a id="l04626" name="l04626"></a><span class="lineno"> 4626</span>                        <span class="keywordflow">return</span> 1;                                                                           <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l04627" name="l04627"></a><span class="lineno"> 4627</span>                    }</div>
+<div class="line"><a id="l04628" name="l04628"></a><span class="lineno"> 4628</span>                    res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>, 1,</div>
+<div class="line"><a id="l04629" name="l04629"></a><span class="lineno"> 4629</span>                                                   0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l04630" name="l04630"></a><span class="lineno"> 4630</span>                                                   0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l04631" name="l04631"></a><span class="lineno"> 4631</span>                                                   0x00, NULL, 0x00,</div>
+<div class="line"><a id="l04632" name="l04632"></a><span class="lineno"> 4632</span>                                                   NULL, 0x00, 0x00);                                       <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l04633" name="l04633"></a><span class="lineno"> 4633</span>                    <span class="keywordflow">if</span> (res != 0)                                                                           <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l04634" name="l04634"></a><span class="lineno"> 4634</span>                    {</div>
+<div class="line"><a id="l04635" name="l04635"></a><span class="lineno"> 4635</span>                        handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                              <span class="comment">/* write enable failed */</span></div>
+<div class="line"><a id="l04636" name="l04636"></a><span class="lineno"> 4636</span>                       </div>
+<div class="line"><a id="l04637" name="l04637"></a><span class="lineno"> 4637</span>                        <span class="keywordflow">return</span> 1;                                                                           <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l04638" name="l04638"></a><span class="lineno"> 4638</span>                    }</div>
+<div class="line"><a id="l04639" name="l04639"></a><span class="lineno"> 4639</span>                }</div>
+<div class="line"><a id="l04640" name="l04640"></a><span class="lineno"> 4640</span>                res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#aebca01f1f7fd279523d29e579998574a">W25QXX_COMMAND_PAGE_PROGRAM</a>, 1,</div>
+<div class="line"><a id="l04641" name="l04641"></a><span class="lineno"> 4641</span>                                               addr, 1, 3,</div>
+<div class="line"><a id="l04642" name="l04642"></a><span class="lineno"> 4642</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l04643" name="l04643"></a><span class="lineno"> 4643</span>                                               0, data, len,</div>
+<div class="line"><a id="l04644" name="l04644"></a><span class="lineno"> 4644</span>                                               NULL, 0x00, 1);                                              <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l04645" name="l04645"></a><span class="lineno"> 4645</span>                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l04646" name="l04646"></a><span class="lineno"> 4646</span>                {</div>
+<div class="line"><a id="l04647" name="l04647"></a><span class="lineno"> 4647</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: page program failed.\n&quot;</span>);                                  <span class="comment">/* page program failed */</span></div>
+<div class="line"><a id="l04648" name="l04648"></a><span class="lineno"> 4648</span>                   </div>
+<div class="line"><a id="l04649" name="l04649"></a><span class="lineno"> 4649</span>                      <span class="keywordflow">return</span> 1;                                                                             <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l04650" name="l04650"></a><span class="lineno"> 4650</span>                }</div>
+<div class="line"><a id="l04651" name="l04651"></a><span class="lineno"> 4651</span>            }</div>
+<div class="line"><a id="l04652" name="l04652"></a><span class="lineno"> 4652</span>            <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>) &amp;&amp; (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>))</div>
+<div class="line"><a id="l04653" name="l04653"></a><span class="lineno"> 4653</span>            {</div>
+<div class="line"><a id="l04654" name="l04654"></a><span class="lineno"> 4654</span>                res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#aebca01f1f7fd279523d29e579998574a">W25QXX_COMMAND_PAGE_PROGRAM</a>, 1,</div>
+<div class="line"><a id="l04655" name="l04655"></a><span class="lineno"> 4655</span>                                               addr, 1, 4,</div>
+<div class="line"><a id="l04656" name="l04656"></a><span class="lineno"> 4656</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l04657" name="l04657"></a><span class="lineno"> 4657</span>                                               0, data, len,</div>
+<div class="line"><a id="l04658" name="l04658"></a><span class="lineno"> 4658</span>                                               NULL, 0x00, 1);                                              <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l04659" name="l04659"></a><span class="lineno"> 4659</span>                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l04660" name="l04660"></a><span class="lineno"> 4660</span>                {</div>
+<div class="line"><a id="l04661" name="l04661"></a><span class="lineno"> 4661</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: page program failed.\n&quot;</span>);                                  <span class="comment">/* page program failed */</span></div>
+<div class="line"><a id="l04662" name="l04662"></a><span class="lineno"> 4662</span>                   </div>
+<div class="line"><a id="l04663" name="l04663"></a><span class="lineno"> 4663</span>                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l04664" name="l04664"></a><span class="lineno"> 4664</span>                }</div>
+<div class="line"><a id="l04665" name="l04665"></a><span class="lineno"> 4665</span>            }</div>
+<div class="line"><a id="l04666" name="l04666"></a><span class="lineno"> 4666</span>            <span class="keywordflow">else</span></div>
+<div class="line"><a id="l04667" name="l04667"></a><span class="lineno"> 4667</span>            {</div>
+<div class="line"><a id="l04668" name="l04668"></a><span class="lineno"> 4668</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: address mode is invalid.\n&quot;</span>);                                  <span class="comment">/* address mode is invalid */</span></div>
+<div class="line"><a id="l04669" name="l04669"></a><span class="lineno"> 4669</span>               </div>
+<div class="line"><a id="l04670" name="l04670"></a><span class="lineno"> 4670</span>                <span class="keywordflow">return</span> 5;                                                                                   <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l04671" name="l04671"></a><span class="lineno"> 4671</span>            }</div>
+<div class="line"><a id="l04672" name="l04672"></a><span class="lineno"> 4672</span>            </div>
+<div class="line"><a id="l04673" name="l04673"></a><span class="lineno"> 4673</span>            timeout = 3 * 100;                                                                              <span class="comment">/* max 3 ms */</span></div>
+<div class="line"><a id="l04674" name="l04674"></a><span class="lineno"> 4674</span>            <span class="keywordflow">while</span> (timeout != 0)                                                                            <span class="comment">/* check timeout */</span></div>
+<div class="line"><a id="l04675" name="l04675"></a><span class="lineno"> 4675</span>            {</div>
+<div class="line"><a id="l04676" name="l04676"></a><span class="lineno"> 4676</span>                res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#adf682969c34f4b31a87dd92dd18ccea3">W25QXX_COMMAND_READ_STATUS_REG1</a>, 1,</div>
+<div class="line"><a id="l04677" name="l04677"></a><span class="lineno"> 4677</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l04678" name="l04678"></a><span class="lineno"> 4678</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l04679" name="l04679"></a><span class="lineno"> 4679</span>                                               0, NULL, 0,</div>
+<div class="line"><a id="l04680" name="l04680"></a><span class="lineno"> 4680</span>                                              (uint8_t *)&amp;status, 1, 1);                                    <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l04681" name="l04681"></a><span class="lineno"> 4681</span>                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l04682" name="l04682"></a><span class="lineno"> 4682</span>                {</div>
+<div class="line"><a id="l04683" name="l04683"></a><span class="lineno"> 4683</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: page program failed.\n&quot;</span>);                                  <span class="comment">/* page program failed */</span></div>
+<div class="line"><a id="l04684" name="l04684"></a><span class="lineno"> 4684</span>                   </div>
+<div class="line"><a id="l04685" name="l04685"></a><span class="lineno"> 4685</span>                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l04686" name="l04686"></a><span class="lineno"> 4686</span>                }</div>
+<div class="line"><a id="l04687" name="l04687"></a><span class="lineno"> 4687</span>                <span class="keywordflow">if</span> ((status &amp; 0x01) == 0x00)                                                                <span class="comment">/* check status */</span></div>
+<div class="line"><a id="l04688" name="l04688"></a><span class="lineno"> 4688</span>                {</div>
+<div class="line"><a id="l04689" name="l04689"></a><span class="lineno"> 4689</span>                    <span class="keywordflow">break</span>;                                                                                  <span class="comment">/* break */</span></div>
+<div class="line"><a id="l04690" name="l04690"></a><span class="lineno"> 4690</span>                }</div>
+<div class="line"><a id="l04691" name="l04691"></a><span class="lineno"> 4691</span>                timeout--;                                                                                  <span class="comment">/* timeout-- */</span></div>
+<div class="line"><a id="l04692" name="l04692"></a><span class="lineno"> 4692</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a97ffc4fce945527bd6ab25a3596caef7">delay_us</a>(10);                                                                       <span class="comment">/* delay 10 us */</span></div>
+<div class="line"><a id="l04693" name="l04693"></a><span class="lineno"> 4693</span>            }</div>
+<div class="line"><a id="l04694" name="l04694"></a><span class="lineno"> 4694</span>            <span class="keywordflow">if</span> (timeout == 0)</div>
+<div class="line"><a id="l04695" name="l04695"></a><span class="lineno"> 4695</span>            {</div>
+<div class="line"><a id="l04696" name="l04696"></a><span class="lineno"> 4696</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: page program timeout.\n&quot;</span>);                                     <span class="comment">/* page program timeout */</span></div>
+<div class="line"><a id="l04697" name="l04697"></a><span class="lineno"> 4697</span>               </div>
+<div class="line"><a id="l04698" name="l04698"></a><span class="lineno"> 4698</span>                <span class="keywordflow">return</span> 6;                                                                                   <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l04699" name="l04699"></a><span class="lineno"> 4699</span>            }</div>
+<div class="line"><a id="l04700" name="l04700"></a><span class="lineno"> 4700</span>        }</div>
+<div class="line"><a id="l04701" name="l04701"></a><span class="lineno"> 4701</span>        <span class="keywordflow">else</span>                                                                                                <span class="comment">/* single spi */</span></div>
+<div class="line"><a id="l04702" name="l04702"></a><span class="lineno"> 4702</span>        {</div>
+<div class="line"><a id="l04703" name="l04703"></a><span class="lineno"> 4703</span>            buf[0] = <a class="code hl_define" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>;                                                           <span class="comment">/* write enable command */</span></div>
+<div class="line"><a id="l04704" name="l04704"></a><span class="lineno"> 4704</span>            res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 1, NULL, 0);                              <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l04705" name="l04705"></a><span class="lineno"> 4705</span>            <span class="keywordflow">if</span> (res != 0)                                                                                   <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l04706" name="l04706"></a><span class="lineno"> 4706</span>            {</div>
+<div class="line"><a id="l04707" name="l04707"></a><span class="lineno"> 4707</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                                      <span class="comment">/* write enable failed */</span></div>
+<div class="line"><a id="l04708" name="l04708"></a><span class="lineno"> 4708</span>               </div>
+<div class="line"><a id="l04709" name="l04709"></a><span class="lineno"> 4709</span>                <span class="keywordflow">return</span> 1;                                                                                   <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l04710" name="l04710"></a><span class="lineno"> 4710</span>            }</div>
+<div class="line"><a id="l04711" name="l04711"></a><span class="lineno"> 4711</span>            <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                         <span class="comment">/* 3 address mode */</span></div>
+<div class="line"><a id="l04712" name="l04712"></a><span class="lineno"> 4712</span>            {</div>
+<div class="line"><a id="l04713" name="l04713"></a><span class="lineno"> 4713</span>                <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)                                                                <span class="comment">/* &gt;128Mb */</span></div>
+<div class="line"><a id="l04714" name="l04714"></a><span class="lineno"> 4714</span>                {</div>
+<div class="line"><a id="l04715" name="l04715"></a><span class="lineno"> 4715</span>                    buf[0] = 0xC5;                                                                          <span class="comment">/* write extended addr register command */</span></div>
+<div class="line"><a id="l04716" name="l04716"></a><span class="lineno"> 4716</span>                    buf[1] = (addr &gt;&gt; 24) &amp; 0xFF;                                                           <span class="comment">/* 31 - 24 bits */</span></div>
+<div class="line"><a id="l04717" name="l04717"></a><span class="lineno"> 4717</span>                    res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 2, NULL, 0);                      <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l04718" name="l04718"></a><span class="lineno"> 4718</span>                    <span class="keywordflow">if</span> (res != 0)                                                                           <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l04719" name="l04719"></a><span class="lineno"> 4719</span>                    {</div>
+<div class="line"><a id="l04720" name="l04720"></a><span class="lineno"> 4720</span>                        handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write extended addr register failed.\n&quot;</span>);              <span class="comment">/* write extended addr register failed */</span></div>
+<div class="line"><a id="l04721" name="l04721"></a><span class="lineno"> 4721</span>                       </div>
+<div class="line"><a id="l04722" name="l04722"></a><span class="lineno"> 4722</span>                        <span class="keywordflow">return</span> 1;                                                                           <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l04723" name="l04723"></a><span class="lineno"> 4723</span>                    }</div>
+<div class="line"><a id="l04724" name="l04724"></a><span class="lineno"> 4724</span>                    buf[0] = <a class="code hl_define" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>;                                                   <span class="comment">/* write enable command */</span></div>
+<div class="line"><a id="l04725" name="l04725"></a><span class="lineno"> 4725</span>                    res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 1, NULL, 0);                      <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l04726" name="l04726"></a><span class="lineno"> 4726</span>                    <span class="keywordflow">if</span> (res != 0)                                                                           <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l04727" name="l04727"></a><span class="lineno"> 4727</span>                    {</div>
+<div class="line"><a id="l04728" name="l04728"></a><span class="lineno"> 4728</span>                        handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                              <span class="comment">/* write enable failed */</span></div>
+<div class="line"><a id="l04729" name="l04729"></a><span class="lineno"> 4729</span>                       </div>
+<div class="line"><a id="l04730" name="l04730"></a><span class="lineno"> 4730</span>                        <span class="keywordflow">return</span> 1;                                                                           <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l04731" name="l04731"></a><span class="lineno"> 4731</span>                    }</div>
+<div class="line"><a id="l04732" name="l04732"></a><span class="lineno"> 4732</span>                }</div>
+<div class="line"><a id="l04733" name="l04733"></a><span class="lineno"> 4733</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a2121914a1858618e9216fa2daf0a42a2">buf</a>[0] = <a class="code hl_define" href="driver__w25qxx_8c.html#aebca01f1f7fd279523d29e579998574a">W25QXX_COMMAND_PAGE_PROGRAM</a>;                                               <span class="comment">/* page program command */</span></div>
+<div class="line"><a id="l04734" name="l04734"></a><span class="lineno"> 4734</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a2121914a1858618e9216fa2daf0a42a2">buf</a>[1] = (addr &gt;&gt; 16) &amp; 0xFF;                                                       <span class="comment">/* 23 - 16 bits */</span></div>
+<div class="line"><a id="l04735" name="l04735"></a><span class="lineno"> 4735</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a2121914a1858618e9216fa2daf0a42a2">buf</a>[2] = (addr &gt;&gt; 8) &amp; 0xFF;                                                        <span class="comment">/* 15 - 8  bits */</span></div>
+<div class="line"><a id="l04736" name="l04736"></a><span class="lineno"> 4736</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a2121914a1858618e9216fa2daf0a42a2">buf</a>[3] = (addr &gt;&gt; 0) &amp; 0xFF;                                                        <span class="comment">/* 7 - 0 bits */</span></div>
+<div class="line"><a id="l04737" name="l04737"></a><span class="lineno"> 4737</span>                memcpy(&amp;handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a2121914a1858618e9216fa2daf0a42a2">buf</a>[4], data, len);                                                         <span class="comment">/* copy data */</span></div>
+<div class="line"><a id="l04738" name="l04738"></a><span class="lineno"> 4738</span>                res = a_w25qxx_spi_write_read(handle, (uint8_t *)handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a2121914a1858618e9216fa2daf0a42a2">buf</a>, 4 + len, NULL, 0);            <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l04739" name="l04739"></a><span class="lineno"> 4739</span>                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l04740" name="l04740"></a><span class="lineno"> 4740</span>                {</div>
+<div class="line"><a id="l04741" name="l04741"></a><span class="lineno"> 4741</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: page program failed.\n&quot;</span>);                                  <span class="comment">/* page program failed */</span></div>
+<div class="line"><a id="l04742" name="l04742"></a><span class="lineno"> 4742</span>                   </div>
+<div class="line"><a id="l04743" name="l04743"></a><span class="lineno"> 4743</span>                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l04744" name="l04744"></a><span class="lineno"> 4744</span>                }</div>
+<div class="line"><a id="l04745" name="l04745"></a><span class="lineno"> 4745</span>            }</div>
+<div class="line"><a id="l04746" name="l04746"></a><span class="lineno"> 4746</span>            <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>)</div>
+<div class="line"><a id="l04747" name="l04747"></a><span class="lineno"> 4747</span>                     &amp;&amp; (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>))                                                          <span class="comment">/* 4 address mode */</span></div>
+<div class="line"><a id="l04748" name="l04748"></a><span class="lineno"> 4748</span>            {</div>
+<div class="line"><a id="l04749" name="l04749"></a><span class="lineno"> 4749</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a2121914a1858618e9216fa2daf0a42a2">buf</a>[0] = <a class="code hl_define" href="driver__w25qxx_8c.html#aebca01f1f7fd279523d29e579998574a">W25QXX_COMMAND_PAGE_PROGRAM</a>;                                               <span class="comment">/* page program command */</span></div>
+<div class="line"><a id="l04750" name="l04750"></a><span class="lineno"> 4750</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a2121914a1858618e9216fa2daf0a42a2">buf</a>[1] = (addr &gt;&gt; 24) &amp; 0xFF;                                                       <span class="comment">/* 31 - 24 bits */</span></div>
+<div class="line"><a id="l04751" name="l04751"></a><span class="lineno"> 4751</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a2121914a1858618e9216fa2daf0a42a2">buf</a>[2] = (addr &gt;&gt; 16) &amp; 0xFF;                                                       <span class="comment">/* 23 - 16 bits */</span></div>
+<div class="line"><a id="l04752" name="l04752"></a><span class="lineno"> 4752</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a2121914a1858618e9216fa2daf0a42a2">buf</a>[3] = (addr &gt;&gt; 8) &amp; 0xFF;                                                        <span class="comment">/* 15 - 8  bits */</span></div>
+<div class="line"><a id="l04753" name="l04753"></a><span class="lineno"> 4753</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a2121914a1858618e9216fa2daf0a42a2">buf</a>[4] = (addr &gt;&gt; 0) &amp; 0xFF;                                                        <span class="comment">/* 7 - 0 bits */</span></div>
+<div class="line"><a id="l04754" name="l04754"></a><span class="lineno"> 4754</span>                memcpy(&amp;handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a2121914a1858618e9216fa2daf0a42a2">buf</a>[5], data, len);                                                         <span class="comment">/* copy data */</span></div>
+<div class="line"><a id="l04755" name="l04755"></a><span class="lineno"> 4755</span>                res = a_w25qxx_spi_write_read(handle, (uint8_t *)handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a2121914a1858618e9216fa2daf0a42a2">buf</a>, 5 + len, NULL, 0);            <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l04756" name="l04756"></a><span class="lineno"> 4756</span>                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l04757" name="l04757"></a><span class="lineno"> 4757</span>                {</div>
+<div class="line"><a id="l04758" name="l04758"></a><span class="lineno"> 4758</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: page program failed.\n&quot;</span>);                                  <span class="comment">/* page program failed */</span></div>
+<div class="line"><a id="l04759" name="l04759"></a><span class="lineno"> 4759</span>                   </div>
+<div class="line"><a id="l04760" name="l04760"></a><span class="lineno"> 4760</span>                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l04761" name="l04761"></a><span class="lineno"> 4761</span>                }</div>
+<div class="line"><a id="l04762" name="l04762"></a><span class="lineno"> 4762</span>            }</div>
+<div class="line"><a id="l04763" name="l04763"></a><span class="lineno"> 4763</span>            <span class="keywordflow">else</span></div>
+<div class="line"><a id="l04764" name="l04764"></a><span class="lineno"> 4764</span>            {</div>
+<div class="line"><a id="l04765" name="l04765"></a><span class="lineno"> 4765</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: address mode is invalid.\n&quot;</span>);                                  <span class="comment">/* address mode is invalid */</span></div>
+<div class="line"><a id="l04766" name="l04766"></a><span class="lineno"> 4766</span>               </div>
+<div class="line"><a id="l04767" name="l04767"></a><span class="lineno"> 4767</span>                <span class="keywordflow">return</span> 5;                                                                                   <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l04768" name="l04768"></a><span class="lineno"> 4768</span>            }</div>
+<div class="line"><a id="l04769" name="l04769"></a><span class="lineno"> 4769</span>            </div>
+<div class="line"><a id="l04770" name="l04770"></a><span class="lineno"> 4770</span>            timeout = 3 * 100;                                                                              <span class="comment">/* max 3 ms */</span></div>
+<div class="line"><a id="l04771" name="l04771"></a><span class="lineno"> 4771</span>            <span class="keywordflow">while</span> (timeout != 0)                                                                            <span class="comment">/* check timeout */</span></div>
+<div class="line"><a id="l04772" name="l04772"></a><span class="lineno"> 4772</span>            {</div>
+<div class="line"><a id="l04773" name="l04773"></a><span class="lineno"> 4773</span>                buf[0] = <a class="code hl_define" href="driver__w25qxx_8c.html#adf682969c34f4b31a87dd92dd18ccea3">W25QXX_COMMAND_READ_STATUS_REG1</a>;                                                   <span class="comment">/* read status1 command */</span></div>
+<div class="line"><a id="l04774" name="l04774"></a><span class="lineno"> 4774</span>                res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 1, (uint8_t *)&amp;status, 1);            <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l04775" name="l04775"></a><span class="lineno"> 4775</span>                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l04776" name="l04776"></a><span class="lineno"> 4776</span>                {</div>
+<div class="line"><a id="l04777" name="l04777"></a><span class="lineno"> 4777</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: get status1 failed.\n&quot;</span>);                                   <span class="comment">/* get status1 failed */</span></div>
+<div class="line"><a id="l04778" name="l04778"></a><span class="lineno"> 4778</span>                   </div>
+<div class="line"><a id="l04779" name="l04779"></a><span class="lineno"> 4779</span>                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l04780" name="l04780"></a><span class="lineno"> 4780</span>                }</div>
+<div class="line"><a id="l04781" name="l04781"></a><span class="lineno"> 4781</span>                <span class="keywordflow">if</span> ((status &amp; 0x01) == 0x00)                                                                <span class="comment">/* check status */</span></div>
+<div class="line"><a id="l04782" name="l04782"></a><span class="lineno"> 4782</span>                {</div>
+<div class="line"><a id="l04783" name="l04783"></a><span class="lineno"> 4783</span>                    <span class="keywordflow">break</span>;                                                                                  <span class="comment">/* break */</span></div>
+<div class="line"><a id="l04784" name="l04784"></a><span class="lineno"> 4784</span>                }</div>
+<div class="line"><a id="l04785" name="l04785"></a><span class="lineno"> 4785</span>                timeout--;                                                                                  <span class="comment">/* timeout-- */</span></div>
+<div class="line"><a id="l04786" name="l04786"></a><span class="lineno"> 4786</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a97ffc4fce945527bd6ab25a3596caef7">delay_us</a>(10);                                                                       <span class="comment">/* delay 10 us */</span></div>
+<div class="line"><a id="l04787" name="l04787"></a><span class="lineno"> 4787</span>            }</div>
+<div class="line"><a id="l04788" name="l04788"></a><span class="lineno"> 4788</span>            <span class="keywordflow">if</span> (timeout == 0)</div>
+<div class="line"><a id="l04789" name="l04789"></a><span class="lineno"> 4789</span>            {</div>
+<div class="line"><a id="l04790" name="l04790"></a><span class="lineno"> 4790</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: page program timeout.\n&quot;</span>);                                     <span class="comment">/* page program timeout */</span></div>
+<div class="line"><a id="l04791" name="l04791"></a><span class="lineno"> 4791</span>               </div>
+<div class="line"><a id="l04792" name="l04792"></a><span class="lineno"> 4792</span>                <span class="keywordflow">return</span> 6;                                                                                   <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l04793" name="l04793"></a><span class="lineno"> 4793</span>            }</div>
+<div class="line"><a id="l04794" name="l04794"></a><span class="lineno"> 4794</span>        }</div>
+<div class="line"><a id="l04795" name="l04795"></a><span class="lineno"> 4795</span>    }</div>
+<div class="line"><a id="l04796" name="l04796"></a><span class="lineno"> 4796</span>    <span class="keywordflow">else</span></div>
+<div class="line"><a id="l04797" name="l04797"></a><span class="lineno"> 4797</span>    {</div>
+<div class="line"><a id="l04798" name="l04798"></a><span class="lineno"> 4798</span>        res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>, 4,</div>
+<div class="line"><a id="l04799" name="l04799"></a><span class="lineno"> 4799</span>                                       0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l04800" name="l04800"></a><span class="lineno"> 4800</span>                                       0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l04801" name="l04801"></a><span class="lineno"> 4801</span>                                       0x00, NULL, 0x00,</div>
+<div class="line"><a id="l04802" name="l04802"></a><span class="lineno"> 4802</span>                                       NULL, 0x00, 0x00);                                                   <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l04803" name="l04803"></a><span class="lineno"> 4803</span>        <span class="keywordflow">if</span> (res != 0)                                                                                       <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l04804" name="l04804"></a><span class="lineno"> 4804</span>        {</div>
+<div class="line"><a id="l04805" name="l04805"></a><span class="lineno"> 4805</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                                          <span class="comment">/* write enable failed */</span></div>
+<div class="line"><a id="l04806" name="l04806"></a><span class="lineno"> 4806</span>           </div>
+<div class="line"><a id="l04807" name="l04807"></a><span class="lineno"> 4807</span>            <span class="keywordflow">return</span> 1;                                                                                       <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l04808" name="l04808"></a><span class="lineno"> 4808</span>        }</div>
+<div class="line"><a id="l04809" name="l04809"></a><span class="lineno"> 4809</span>        <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                             <span class="comment">/* 3 address mode */</span></div>
+<div class="line"><a id="l04810" name="l04810"></a><span class="lineno"> 4810</span>        {</div>
+<div class="line"><a id="l04811" name="l04811"></a><span class="lineno"> 4811</span>            <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)                                                                    <span class="comment">/* &gt;128Mb */</span></div>
+<div class="line"><a id="l04812" name="l04812"></a><span class="lineno"> 4812</span>            {</div>
+<div class="line"><a id="l04813" name="l04813"></a><span class="lineno"> 4813</span>                buf[0] = (addr &gt;&gt; 24) &amp; 0xFF;                                                               <span class="comment">/* 31 - 24 bits */</span></div>
+<div class="line"><a id="l04814" name="l04814"></a><span class="lineno"> 4814</span>                res = a_w25qxx_qspi_write_read(handle, 0xC5, 4,</div>
+<div class="line"><a id="l04815" name="l04815"></a><span class="lineno"> 4815</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l04816" name="l04816"></a><span class="lineno"> 4816</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l04817" name="l04817"></a><span class="lineno"> 4817</span>                                               0, (uint8_t *)buf, 0x01,</div>
+<div class="line"><a id="l04818" name="l04818"></a><span class="lineno"> 4818</span>                                               NULL, 0x00, 4);                                              <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l04819" name="l04819"></a><span class="lineno"> 4819</span>                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l04820" name="l04820"></a><span class="lineno"> 4820</span>                {</div>
+<div class="line"><a id="l04821" name="l04821"></a><span class="lineno"> 4821</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write extended addr register failed.\n&quot;</span>);                  <span class="comment">/* write extended addr register failed */</span></div>
+<div class="line"><a id="l04822" name="l04822"></a><span class="lineno"> 4822</span>                   </div>
+<div class="line"><a id="l04823" name="l04823"></a><span class="lineno"> 4823</span>                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l04824" name="l04824"></a><span class="lineno"> 4824</span>                }</div>
+<div class="line"><a id="l04825" name="l04825"></a><span class="lineno"> 4825</span>                res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>, 4,</div>
+<div class="line"><a id="l04826" name="l04826"></a><span class="lineno"> 4826</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l04827" name="l04827"></a><span class="lineno"> 4827</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l04828" name="l04828"></a><span class="lineno"> 4828</span>                                               0x00, NULL, 0x00,</div>
+<div class="line"><a id="l04829" name="l04829"></a><span class="lineno"> 4829</span>                                               NULL, 0x00, 0x00);                                           <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l04830" name="l04830"></a><span class="lineno"> 4830</span>                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l04831" name="l04831"></a><span class="lineno"> 4831</span>                {</div>
+<div class="line"><a id="l04832" name="l04832"></a><span class="lineno"> 4832</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                                  <span class="comment">/* write enable failed */</span></div>
+<div class="line"><a id="l04833" name="l04833"></a><span class="lineno"> 4833</span>                   </div>
+<div class="line"><a id="l04834" name="l04834"></a><span class="lineno"> 4834</span>                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l04835" name="l04835"></a><span class="lineno"> 4835</span>                }</div>
+<div class="line"><a id="l04836" name="l04836"></a><span class="lineno"> 4836</span>            }</div>
+<div class="line"><a id="l04837" name="l04837"></a><span class="lineno"> 4837</span>            res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#aebca01f1f7fd279523d29e579998574a">W25QXX_COMMAND_PAGE_PROGRAM</a>, 4,</div>
+<div class="line"><a id="l04838" name="l04838"></a><span class="lineno"> 4838</span>                                           addr, 4, 3,</div>
+<div class="line"><a id="l04839" name="l04839"></a><span class="lineno"> 4839</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l04840" name="l04840"></a><span class="lineno"> 4840</span>                                           0, data, len,</div>
+<div class="line"><a id="l04841" name="l04841"></a><span class="lineno"> 4841</span>                                           NULL, 0x00, 4);                                                  <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l04842" name="l04842"></a><span class="lineno"> 4842</span>            <span class="keywordflow">if</span> (res != 0)                                                                                   <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l04843" name="l04843"></a><span class="lineno"> 4843</span>            {</div>
+<div class="line"><a id="l04844" name="l04844"></a><span class="lineno"> 4844</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: page program failed.\n&quot;</span>);                                      <span class="comment">/* page program failed */</span></div>
+<div class="line"><a id="l04845" name="l04845"></a><span class="lineno"> 4845</span>               </div>
+<div class="line"><a id="l04846" name="l04846"></a><span class="lineno"> 4846</span>                <span class="keywordflow">return</span> 1;                                                                                   <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l04847" name="l04847"></a><span class="lineno"> 4847</span>            }</div>
+<div class="line"><a id="l04848" name="l04848"></a><span class="lineno"> 4848</span>        }</div>
+<div class="line"><a id="l04849" name="l04849"></a><span class="lineno"> 4849</span>        <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>) &amp;&amp; (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>))</div>
+<div class="line"><a id="l04850" name="l04850"></a><span class="lineno"> 4850</span>        {</div>
+<div class="line"><a id="l04851" name="l04851"></a><span class="lineno"> 4851</span>            res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#aebca01f1f7fd279523d29e579998574a">W25QXX_COMMAND_PAGE_PROGRAM</a>, 4,</div>
+<div class="line"><a id="l04852" name="l04852"></a><span class="lineno"> 4852</span>                                           addr, 4, 4,</div>
+<div class="line"><a id="l04853" name="l04853"></a><span class="lineno"> 4853</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l04854" name="l04854"></a><span class="lineno"> 4854</span>                                           0, data, len,</div>
+<div class="line"><a id="l04855" name="l04855"></a><span class="lineno"> 4855</span>                                           NULL, 0x00, 4);                                                  <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l04856" name="l04856"></a><span class="lineno"> 4856</span>            <span class="keywordflow">if</span> (res != 0)                                                                                   <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l04857" name="l04857"></a><span class="lineno"> 4857</span>            {</div>
+<div class="line"><a id="l04858" name="l04858"></a><span class="lineno"> 4858</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: page program failed.\n&quot;</span>);                                      <span class="comment">/* page program failed */</span></div>
+<div class="line"><a id="l04859" name="l04859"></a><span class="lineno"> 4859</span>               </div>
+<div class="line"><a id="l04860" name="l04860"></a><span class="lineno"> 4860</span>                <span class="keywordflow">return</span> 1;                                                                                   <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l04861" name="l04861"></a><span class="lineno"> 4861</span>            }</div>
+<div class="line"><a id="l04862" name="l04862"></a><span class="lineno"> 4862</span>        }</div>
+<div class="line"><a id="l04863" name="l04863"></a><span class="lineno"> 4863</span>        <span class="keywordflow">else</span></div>
+<div class="line"><a id="l04864" name="l04864"></a><span class="lineno"> 4864</span>        {</div>
+<div class="line"><a id="l04865" name="l04865"></a><span class="lineno"> 4865</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: address mode is invalid.\n&quot;</span>);                                      <span class="comment">/* address mode is invalid */</span></div>
+<div class="line"><a id="l04866" name="l04866"></a><span class="lineno"> 4866</span>           </div>
+<div class="line"><a id="l04867" name="l04867"></a><span class="lineno"> 4867</span>            <span class="keywordflow">return</span> 5;                                                                                       <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l04868" name="l04868"></a><span class="lineno"> 4868</span>        }</div>
+<div class="line"><a id="l04869" name="l04869"></a><span class="lineno"> 4869</span>        </div>
+<div class="line"><a id="l04870" name="l04870"></a><span class="lineno"> 4870</span>        timeout = 3 * 100;                                                                                  <span class="comment">/* max 3 ms */</span></div>
+<div class="line"><a id="l04871" name="l04871"></a><span class="lineno"> 4871</span>        <span class="keywordflow">while</span> (timeout != 0)                                                                                <span class="comment">/* check timeout */</span></div>
+<div class="line"><a id="l04872" name="l04872"></a><span class="lineno"> 4872</span>        {</div>
+<div class="line"><a id="l04873" name="l04873"></a><span class="lineno"> 4873</span>            res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#adf682969c34f4b31a87dd92dd18ccea3">W25QXX_COMMAND_READ_STATUS_REG1</a>, 4,</div>
+<div class="line"><a id="l04874" name="l04874"></a><span class="lineno"> 4874</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l04875" name="l04875"></a><span class="lineno"> 4875</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l04876" name="l04876"></a><span class="lineno"> 4876</span>                                           0, NULL, 0,</div>
+<div class="line"><a id="l04877" name="l04877"></a><span class="lineno"> 4877</span>                                          (uint8_t *)&amp;status, 1, 4);                                        <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l04878" name="l04878"></a><span class="lineno"> 4878</span>            <span class="keywordflow">if</span> (res != 0)                                                                                   <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l04879" name="l04879"></a><span class="lineno"> 4879</span>            {</div>
+<div class="line"><a id="l04880" name="l04880"></a><span class="lineno"> 4880</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: page program failed.\n&quot;</span>);                                      <span class="comment">/* page program failed */</span></div>
+<div class="line"><a id="l04881" name="l04881"></a><span class="lineno"> 4881</span>               </div>
+<div class="line"><a id="l04882" name="l04882"></a><span class="lineno"> 4882</span>                <span class="keywordflow">return</span> 1;                                                                                   <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l04883" name="l04883"></a><span class="lineno"> 4883</span>            }</div>
+<div class="line"><a id="l04884" name="l04884"></a><span class="lineno"> 4884</span>            <span class="keywordflow">if</span> ((status &amp; 0x01) == 0x00)                                                                    <span class="comment">/* check status */</span></div>
+<div class="line"><a id="l04885" name="l04885"></a><span class="lineno"> 4885</span>            {</div>
+<div class="line"><a id="l04886" name="l04886"></a><span class="lineno"> 4886</span>                <span class="keywordflow">break</span>;                                                                                      <span class="comment">/* break */</span></div>
+<div class="line"><a id="l04887" name="l04887"></a><span class="lineno"> 4887</span>            }</div>
+<div class="line"><a id="l04888" name="l04888"></a><span class="lineno"> 4888</span>            timeout--;                                                                                      <span class="comment">/* timeout-- */</span></div>
+<div class="line"><a id="l04889" name="l04889"></a><span class="lineno"> 4889</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a97ffc4fce945527bd6ab25a3596caef7">delay_us</a>(10);                                                                           <span class="comment">/* delay 10 us */</span></div>
+<div class="line"><a id="l04890" name="l04890"></a><span class="lineno"> 4890</span>        }</div>
+<div class="line"><a id="l04891" name="l04891"></a><span class="lineno"> 4891</span>        <span class="keywordflow">if</span> (timeout == 0)</div>
+<div class="line"><a id="l04892" name="l04892"></a><span class="lineno"> 4892</span>        {</div>
+<div class="line"><a id="l04893" name="l04893"></a><span class="lineno"> 4893</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: page program timeout.\n&quot;</span>);                                         <span class="comment">/* page program timeout */</span></div>
+<div class="line"><a id="l04894" name="l04894"></a><span class="lineno"> 4894</span>           </div>
+<div class="line"><a id="l04895" name="l04895"></a><span class="lineno"> 4895</span>            <span class="keywordflow">return</span> 6;                                                                                       <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l04896" name="l04896"></a><span class="lineno"> 4896</span>        }</div>
+<div class="line"><a id="l04897" name="l04897"></a><span class="lineno"> 4897</span>    }</div>
+<div class="line"><a id="l04898" name="l04898"></a><span class="lineno"> 4898</span>    </div>
+<div class="line"><a id="l04899" name="l04899"></a><span class="lineno"> 4899</span>    <span class="keywordflow">return</span> 0;                                                                                               <span class="comment">/* success return 0 */</span></div>
+<div class="line"><a id="l04900" name="l04900"></a><span class="lineno"> 4900</span>}</div>
+</div>
+<div class="line"><a id="l04901" name="l04901"></a><span class="lineno"> 4901</span> </div>
+<div class="foldopen" id="foldopen04920" data-start="{" data-end="}">
+<div class="line"><a id="l04920" name="l04920"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#ga1f80bbbaaa852eecfffb87737889363d"> 4920</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__advance__driver.html#ga1f80bbbaaa852eecfffb87737889363d">w25qxx_page_program_quad_input</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint16_t len)</div>
+<div class="line"><a id="l04921" name="l04921"></a><span class="lineno"> 4921</span>{</div>
+<div class="line"><a id="l04922" name="l04922"></a><span class="lineno"> 4922</span>    uint8_t res;</div>
+<div class="line"><a id="l04923" name="l04923"></a><span class="lineno"> 4923</span>    uint8_t status;</div>
+<div class="line"><a id="l04924" name="l04924"></a><span class="lineno"> 4924</span>    uint32_t timeout;</div>
+<div class="line"><a id="l04925" name="l04925"></a><span class="lineno"> 4925</span>    uint8_t buf[2];</div>
+<div class="line"><a id="l04926" name="l04926"></a><span class="lineno"> 4926</span>    </div>
+<div class="line"><a id="l04927" name="l04927"></a><span class="lineno"> 4927</span>    <span class="keywordflow">if</span> (handle == NULL)                                                                                     <span class="comment">/* check handle */</span></div>
+<div class="line"><a id="l04928" name="l04928"></a><span class="lineno"> 4928</span>    {</div>
+<div class="line"><a id="l04929" name="l04929"></a><span class="lineno"> 4929</span>        <span class="keywordflow">return</span> 2;                                                                                           <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l04930" name="l04930"></a><span class="lineno"> 4930</span>    }   </div>
+<div class="line"><a id="l04931" name="l04931"></a><span class="lineno"> 4931</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">inited</a> != 1)                                                                                <span class="comment">/* check handle initialization */</span></div>
+<div class="line"><a id="l04932" name="l04932"></a><span class="lineno"> 4932</span>    {</div>
+<div class="line"><a id="l04933" name="l04933"></a><span class="lineno"> 4933</span>        <span class="keywordflow">return</span> 3;                                                                                           <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l04934" name="l04934"></a><span class="lineno"> 4934</span>    }</div>
+<div class="line"><a id="l04935" name="l04935"></a><span class="lineno"> 4935</span>    <span class="keywordflow">if</span> ((addr % 256) != 0)                                                                                  <span class="comment">/* check address */</span></div>
+<div class="line"><a id="l04936" name="l04936"></a><span class="lineno"> 4936</span>    {</div>
+<div class="line"><a id="l04937" name="l04937"></a><span class="lineno"> 4937</span>        handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: addr is invalid.\n&quot;</span>);                                                  <span class="comment">/* addr is invalid */</span></div>
+<div class="line"><a id="l04938" name="l04938"></a><span class="lineno"> 4938</span>       </div>
+<div class="line"><a id="l04939" name="l04939"></a><span class="lineno"> 4939</span>        <span class="keywordflow">return</span> 4;                                                                                           <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l04940" name="l04940"></a><span class="lineno"> 4940</span>    }</div>
+<div class="line"><a id="l04941" name="l04941"></a><span class="lineno"> 4941</span>    <span class="keywordflow">if</span> (len &gt; 256)                                                                                          <span class="comment">/* check address */</span></div>
+<div class="line"><a id="l04942" name="l04942"></a><span class="lineno"> 4942</span>    {</div>
+<div class="line"><a id="l04943" name="l04943"></a><span class="lineno"> 4943</span>        handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: length is over 256.\n&quot;</span>);                                               <span class="comment">/* length is over 256 */</span></div>
+<div class="line"><a id="l04944" name="l04944"></a><span class="lineno"> 4944</span>       </div>
+<div class="line"><a id="l04945" name="l04945"></a><span class="lineno"> 4945</span>        <span class="keywordflow">return</span> 7;                                                                                           <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l04946" name="l04946"></a><span class="lineno"> 4946</span>    }</div>
+<div class="line"><a id="l04947" name="l04947"></a><span class="lineno"> 4947</span>    </div>
+<div class="line"><a id="l04948" name="l04948"></a><span class="lineno"> 4948</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2fea895dcb5c91da89fad1c12161ffd2d5d4">W25QXX_INTERFACE_QSPI</a>)                                                          <span class="comment">/* qspi interface */</span></div>
+<div class="line"><a id="l04949" name="l04949"></a><span class="lineno"> 4949</span>    {</div>
+<div class="line"><a id="l04950" name="l04950"></a><span class="lineno"> 4950</span>        handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: qspi can&#39;t use this function.\n&quot;</span>);                                     <span class="comment">/* qspi can&#39;t use this function */</span></div>
+<div class="line"><a id="l04951" name="l04951"></a><span class="lineno"> 4951</span>       </div>
+<div class="line"><a id="l04952" name="l04952"></a><span class="lineno"> 4952</span>        <span class="keywordflow">return</span> 5;                                                                                           <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l04953" name="l04953"></a><span class="lineno"> 4953</span>    }</div>
+<div class="line"><a id="l04954" name="l04954"></a><span class="lineno"> 4954</span>    <span class="keywordflow">else</span></div>
+<div class="line"><a id="l04955" name="l04955"></a><span class="lineno"> 4955</span>    {</div>
+<div class="line"><a id="l04956" name="l04956"></a><span class="lineno"> 4956</span>        <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">dual_quad_spi_enable</a> == 0)                                                              <span class="comment">/* check spi */</span></div>
+<div class="line"><a id="l04957" name="l04957"></a><span class="lineno"> 4957</span>        {</div>
+<div class="line"><a id="l04958" name="l04958"></a><span class="lineno"> 4958</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: standard spi can&#39;t use this function failed.\n&quot;</span>);                  <span class="comment">/* standard spi can&#39;t use this function failed */</span></div>
+<div class="line"><a id="l04959" name="l04959"></a><span class="lineno"> 4959</span>           </div>
+<div class="line"><a id="l04960" name="l04960"></a><span class="lineno"> 4960</span>            <span class="keywordflow">return</span> 8;                                                                                       <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l04961" name="l04961"></a><span class="lineno"> 4961</span>        }</div>
+<div class="line"><a id="l04962" name="l04962"></a><span class="lineno"> 4962</span>        res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>, 1,</div>
+<div class="line"><a id="l04963" name="l04963"></a><span class="lineno"> 4963</span>                                       0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l04964" name="l04964"></a><span class="lineno"> 4964</span>                                       0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l04965" name="l04965"></a><span class="lineno"> 4965</span>                                       0x00, NULL, 0x00,</div>
+<div class="line"><a id="l04966" name="l04966"></a><span class="lineno"> 4966</span>                                       NULL, 0x00, 0x00);                                                   <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l04967" name="l04967"></a><span class="lineno"> 4967</span>        <span class="keywordflow">if</span> (res != 0)                                                                                       <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l04968" name="l04968"></a><span class="lineno"> 4968</span>        {</div>
+<div class="line"><a id="l04969" name="l04969"></a><span class="lineno"> 4969</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                                          <span class="comment">/* write enable failed */</span></div>
+<div class="line"><a id="l04970" name="l04970"></a><span class="lineno"> 4970</span>           </div>
+<div class="line"><a id="l04971" name="l04971"></a><span class="lineno"> 4971</span>            <span class="keywordflow">return</span> 1;                                                                                       <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l04972" name="l04972"></a><span class="lineno"> 4972</span>        }</div>
+<div class="line"><a id="l04973" name="l04973"></a><span class="lineno"> 4973</span>        <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                             <span class="comment">/* 3 address mode */</span></div>
+<div class="line"><a id="l04974" name="l04974"></a><span class="lineno"> 4974</span>        {</div>
+<div class="line"><a id="l04975" name="l04975"></a><span class="lineno"> 4975</span>            <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)                                                                    <span class="comment">/* &gt;128Mb */</span></div>
+<div class="line"><a id="l04976" name="l04976"></a><span class="lineno"> 4976</span>            {</div>
+<div class="line"><a id="l04977" name="l04977"></a><span class="lineno"> 4977</span>                buf[0] = (addr &gt;&gt; 24) &amp; 0xFF;                                                               <span class="comment">/* 31 - 24 bits */</span></div>
+<div class="line"><a id="l04978" name="l04978"></a><span class="lineno"> 4978</span>                res = a_w25qxx_qspi_write_read(handle, 0xC5, 1,</div>
+<div class="line"><a id="l04979" name="l04979"></a><span class="lineno"> 4979</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l04980" name="l04980"></a><span class="lineno"> 4980</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l04981" name="l04981"></a><span class="lineno"> 4981</span>                                               0, (uint8_t *)buf, 0x01,</div>
+<div class="line"><a id="l04982" name="l04982"></a><span class="lineno"> 4982</span>                                               NULL, 0x00, 1);                                              <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l04983" name="l04983"></a><span class="lineno"> 4983</span>                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l04984" name="l04984"></a><span class="lineno"> 4984</span>                {</div>
+<div class="line"><a id="l04985" name="l04985"></a><span class="lineno"> 4985</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write extended addr register failed.\n&quot;</span>);                  <span class="comment">/* write extended addr register failed */</span></div>
+<div class="line"><a id="l04986" name="l04986"></a><span class="lineno"> 4986</span>                   </div>
+<div class="line"><a id="l04987" name="l04987"></a><span class="lineno"> 4987</span>                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l04988" name="l04988"></a><span class="lineno"> 4988</span>                }</div>
+<div class="line"><a id="l04989" name="l04989"></a><span class="lineno"> 4989</span>                res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>, 1,</div>
+<div class="line"><a id="l04990" name="l04990"></a><span class="lineno"> 4990</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l04991" name="l04991"></a><span class="lineno"> 4991</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l04992" name="l04992"></a><span class="lineno"> 4992</span>                                               0x00, NULL, 0x00,</div>
+<div class="line"><a id="l04993" name="l04993"></a><span class="lineno"> 4993</span>                                               NULL, 0x00, 0x00);                                           <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l04994" name="l04994"></a><span class="lineno"> 4994</span>                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l04995" name="l04995"></a><span class="lineno"> 4995</span>                {</div>
+<div class="line"><a id="l04996" name="l04996"></a><span class="lineno"> 4996</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                                  <span class="comment">/* write enable failed */</span></div>
+<div class="line"><a id="l04997" name="l04997"></a><span class="lineno"> 4997</span>                   </div>
+<div class="line"><a id="l04998" name="l04998"></a><span class="lineno"> 4998</span>                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l04999" name="l04999"></a><span class="lineno"> 4999</span>                }</div>
+<div class="line"><a id="l05000" name="l05000"></a><span class="lineno"> 5000</span>            }</div>
+<div class="line"><a id="l05001" name="l05001"></a><span class="lineno"> 5001</span>            res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#a8212fac3d1e43024621b6b560a8dddfe">W25QXX_COMMAND_QUAD_PAGE_PROGRAM</a>, 1,</div>
+<div class="line"><a id="l05002" name="l05002"></a><span class="lineno"> 5002</span>                                           addr, 1, 3,</div>
+<div class="line"><a id="l05003" name="l05003"></a><span class="lineno"> 5003</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l05004" name="l05004"></a><span class="lineno"> 5004</span>                                           0, data, len,</div>
+<div class="line"><a id="l05005" name="l05005"></a><span class="lineno"> 5005</span>                                           NULL, 0x00, 4);                                                  <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l05006" name="l05006"></a><span class="lineno"> 5006</span>            <span class="keywordflow">if</span> (res != 0)                                                                                   <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l05007" name="l05007"></a><span class="lineno"> 5007</span>            {</div>
+<div class="line"><a id="l05008" name="l05008"></a><span class="lineno"> 5008</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: quad page program failed.\n&quot;</span>);                                 <span class="comment">/* quad page program failed */</span></div>
+<div class="line"><a id="l05009" name="l05009"></a><span class="lineno"> 5009</span>               </div>
+<div class="line"><a id="l05010" name="l05010"></a><span class="lineno"> 5010</span>                  <span class="keywordflow">return</span> 1;                                                                                 <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l05011" name="l05011"></a><span class="lineno"> 5011</span>            }</div>
+<div class="line"><a id="l05012" name="l05012"></a><span class="lineno"> 5012</span>        }</div>
+<div class="line"><a id="l05013" name="l05013"></a><span class="lineno"> 5013</span>        <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>) &amp;&amp; (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>))</div>
+<div class="line"><a id="l05014" name="l05014"></a><span class="lineno"> 5014</span>        {</div>
+<div class="line"><a id="l05015" name="l05015"></a><span class="lineno"> 5015</span>            res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#a8212fac3d1e43024621b6b560a8dddfe">W25QXX_COMMAND_QUAD_PAGE_PROGRAM</a>, 1,</div>
+<div class="line"><a id="l05016" name="l05016"></a><span class="lineno"> 5016</span>                                           addr, 1, 4,</div>
+<div class="line"><a id="l05017" name="l05017"></a><span class="lineno"> 5017</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l05018" name="l05018"></a><span class="lineno"> 5018</span>                                           0, data, len,</div>
+<div class="line"><a id="l05019" name="l05019"></a><span class="lineno"> 5019</span>                                           NULL, 0x00, 4);                                                  <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l05020" name="l05020"></a><span class="lineno"> 5020</span>            <span class="keywordflow">if</span> (res != 0)                                                                                   <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l05021" name="l05021"></a><span class="lineno"> 5021</span>            {</div>
+<div class="line"><a id="l05022" name="l05022"></a><span class="lineno"> 5022</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: quad page program failed.\n&quot;</span>);                                 <span class="comment">/* quad page program failed */</span></div>
+<div class="line"><a id="l05023" name="l05023"></a><span class="lineno"> 5023</span>               </div>
+<div class="line"><a id="l05024" name="l05024"></a><span class="lineno"> 5024</span>                <span class="keywordflow">return</span> 1;                                                                                   <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l05025" name="l05025"></a><span class="lineno"> 5025</span>            }</div>
+<div class="line"><a id="l05026" name="l05026"></a><span class="lineno"> 5026</span>        }</div>
+<div class="line"><a id="l05027" name="l05027"></a><span class="lineno"> 5027</span>        <span class="keywordflow">else</span></div>
+<div class="line"><a id="l05028" name="l05028"></a><span class="lineno"> 5028</span>        {</div>
+<div class="line"><a id="l05029" name="l05029"></a><span class="lineno"> 5029</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: address mode is invalid.\n&quot;</span>);                                      <span class="comment">/* address mode is invalid */</span></div>
+<div class="line"><a id="l05030" name="l05030"></a><span class="lineno"> 5030</span>           </div>
+<div class="line"><a id="l05031" name="l05031"></a><span class="lineno"> 5031</span>            <span class="keywordflow">return</span> 5;                                                                                       <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l05032" name="l05032"></a><span class="lineno"> 5032</span>        }</div>
+<div class="line"><a id="l05033" name="l05033"></a><span class="lineno"> 5033</span>        </div>
+<div class="line"><a id="l05034" name="l05034"></a><span class="lineno"> 5034</span>        timeout = 3 * 100;                                                                                  <span class="comment">/* max 3 ms */</span></div>
+<div class="line"><a id="l05035" name="l05035"></a><span class="lineno"> 5035</span>        <span class="keywordflow">while</span> (timeout != 0)                                                                                <span class="comment">/* check timeout */</span></div>
+<div class="line"><a id="l05036" name="l05036"></a><span class="lineno"> 5036</span>        {</div>
+<div class="line"><a id="l05037" name="l05037"></a><span class="lineno"> 5037</span>            res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#adf682969c34f4b31a87dd92dd18ccea3">W25QXX_COMMAND_READ_STATUS_REG1</a>, 1,</div>
+<div class="line"><a id="l05038" name="l05038"></a><span class="lineno"> 5038</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l05039" name="l05039"></a><span class="lineno"> 5039</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l05040" name="l05040"></a><span class="lineno"> 5040</span>                                           0, NULL, 0,</div>
+<div class="line"><a id="l05041" name="l05041"></a><span class="lineno"> 5041</span>                                          (uint8_t *)&amp;status, 1, 1);                                        <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l05042" name="l05042"></a><span class="lineno"> 5042</span>            <span class="keywordflow">if</span> (res != 0)                                                                                   <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l05043" name="l05043"></a><span class="lineno"> 5043</span>            {</div>
+<div class="line"><a id="l05044" name="l05044"></a><span class="lineno"> 5044</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: get status1 failed.\n&quot;</span>);                                       <span class="comment">/* get status1 failed */</span></div>
+<div class="line"><a id="l05045" name="l05045"></a><span class="lineno"> 5045</span>               </div>
+<div class="line"><a id="l05046" name="l05046"></a><span class="lineno"> 5046</span>                <span class="keywordflow">return</span> 1;                                                                                   <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l05047" name="l05047"></a><span class="lineno"> 5047</span>            }</div>
+<div class="line"><a id="l05048" name="l05048"></a><span class="lineno"> 5048</span>            <span class="keywordflow">if</span> ((status &amp; 0x01) == 0x00)                                                                    <span class="comment">/* check status */</span></div>
+<div class="line"><a id="l05049" name="l05049"></a><span class="lineno"> 5049</span>            {</div>
+<div class="line"><a id="l05050" name="l05050"></a><span class="lineno"> 5050</span>                <span class="keywordflow">break</span>;                                                                                      <span class="comment">/* break */</span></div>
+<div class="line"><a id="l05051" name="l05051"></a><span class="lineno"> 5051</span>            }</div>
+<div class="line"><a id="l05052" name="l05052"></a><span class="lineno"> 5052</span>            timeout--;                                                                                      <span class="comment">/* timeout-- */</span></div>
+<div class="line"><a id="l05053" name="l05053"></a><span class="lineno"> 5053</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a97ffc4fce945527bd6ab25a3596caef7">delay_us</a>(10);                                                                           <span class="comment">/* delay 10 us */</span></div>
+<div class="line"><a id="l05054" name="l05054"></a><span class="lineno"> 5054</span>        }</div>
+<div class="line"><a id="l05055" name="l05055"></a><span class="lineno"> 5055</span>        <span class="keywordflow">if</span> (timeout == 0)</div>
+<div class="line"><a id="l05056" name="l05056"></a><span class="lineno"> 5056</span>        {</div>
+<div class="line"><a id="l05057" name="l05057"></a><span class="lineno"> 5057</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: quad page program timeout.\n&quot;</span>);                                    <span class="comment">/* quad page program timeout */</span></div>
+<div class="line"><a id="l05058" name="l05058"></a><span class="lineno"> 5058</span>           </div>
+<div class="line"><a id="l05059" name="l05059"></a><span class="lineno"> 5059</span>            <span class="keywordflow">return</span> 6;                                                                                       <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l05060" name="l05060"></a><span class="lineno"> 5060</span>        }</div>
+<div class="line"><a id="l05061" name="l05061"></a><span class="lineno"> 5061</span>    }</div>
+<div class="line"><a id="l05062" name="l05062"></a><span class="lineno"> 5062</span>    </div>
+<div class="line"><a id="l05063" name="l05063"></a><span class="lineno"> 5063</span>    <span class="keywordflow">return</span> 0;                                                                                               <span class="comment">/* success return 0 */</span></div>
+<div class="line"><a id="l05064" name="l05064"></a><span class="lineno"> 5064</span>}</div>
+</div>
+<div class="line"><a id="l05065" name="l05065"></a><span class="lineno"> 5065</span> </div>
+<div class="foldopen" id="foldopen05080" data-start="{" data-end="}">
+<div class="line"><a id="l05080" name="l05080"></a><span class="lineno"><a class="line" href="group__w25qxx__basic__driver.html#ga9a03c51b4c84655350c15fbfce0a6b40"> 5080</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__basic__driver.html#ga9a03c51b4c84655350c15fbfce0a6b40">w25qxx_sector_erase_4k</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint32_t addr)</div>
+<div class="line"><a id="l05081" name="l05081"></a><span class="lineno"> 5081</span>{</div>
+<div class="line"><a id="l05082" name="l05082"></a><span class="lineno"> 5082</span>    uint8_t res;</div>
+<div class="line"><a id="l05083" name="l05083"></a><span class="lineno"> 5083</span>    uint8_t status;</div>
+<div class="line"><a id="l05084" name="l05084"></a><span class="lineno"> 5084</span>    uint32_t timeout;</div>
+<div class="line"><a id="l05085" name="l05085"></a><span class="lineno"> 5085</span>    uint8_t buf[5];</div>
+<div class="line"><a id="l05086" name="l05086"></a><span class="lineno"> 5086</span>    </div>
+<div class="line"><a id="l05087" name="l05087"></a><span class="lineno"> 5087</span>    <span class="keywordflow">if</span> (handle == NULL)                                                                                     <span class="comment">/* check handle */</span></div>
+<div class="line"><a id="l05088" name="l05088"></a><span class="lineno"> 5088</span>    {</div>
+<div class="line"><a id="l05089" name="l05089"></a><span class="lineno"> 5089</span>        <span class="keywordflow">return</span> 2;                                                                                           <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l05090" name="l05090"></a><span class="lineno"> 5090</span>    }   </div>
+<div class="line"><a id="l05091" name="l05091"></a><span class="lineno"> 5091</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">inited</a> != 1)                                                                                <span class="comment">/* check handle initialization */</span></div>
+<div class="line"><a id="l05092" name="l05092"></a><span class="lineno"> 5092</span>    {</div>
+<div class="line"><a id="l05093" name="l05093"></a><span class="lineno"> 5093</span>        <span class="keywordflow">return</span> 3;                                                                                           <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l05094" name="l05094"></a><span class="lineno"> 5094</span>    }</div>
+<div class="line"><a id="l05095" name="l05095"></a><span class="lineno"> 5095</span>    <span class="keywordflow">if</span> ((addr % 4096) != 0)                                                                                 <span class="comment">/* check address */</span></div>
+<div class="line"><a id="l05096" name="l05096"></a><span class="lineno"> 5096</span>    {</div>
+<div class="line"><a id="l05097" name="l05097"></a><span class="lineno"> 5097</span>        handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: addr is invalid.\n&quot;</span>);                                                  <span class="comment">/* addr is invalid */</span></div>
+<div class="line"><a id="l05098" name="l05098"></a><span class="lineno"> 5098</span>       </div>
+<div class="line"><a id="l05099" name="l05099"></a><span class="lineno"> 5099</span>        <span class="keywordflow">return</span> 4;                                                                                           <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l05100" name="l05100"></a><span class="lineno"> 5100</span>    }</div>
+<div class="line"><a id="l05101" name="l05101"></a><span class="lineno"> 5101</span>    </div>
+<div class="line"><a id="l05102" name="l05102"></a><span class="lineno"> 5102</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>)                                                           <span class="comment">/* spi interface */</span></div>
+<div class="line"><a id="l05103" name="l05103"></a><span class="lineno"> 5103</span>    {</div>
+<div class="line"><a id="l05104" name="l05104"></a><span class="lineno"> 5104</span>        <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">dual_quad_spi_enable</a> != 0)                                                              <span class="comment">/* enable dual quad spi */</span></div>
+<div class="line"><a id="l05105" name="l05105"></a><span class="lineno"> 5105</span>        {</div>
+<div class="line"><a id="l05106" name="l05106"></a><span class="lineno"> 5106</span>            res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>, 1,</div>
+<div class="line"><a id="l05107" name="l05107"></a><span class="lineno"> 5107</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l05108" name="l05108"></a><span class="lineno"> 5108</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l05109" name="l05109"></a><span class="lineno"> 5109</span>                                           0x00, NULL, 0x00,</div>
+<div class="line"><a id="l05110" name="l05110"></a><span class="lineno"> 5110</span>                                           NULL, 0x00, 0x00);                                               <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l05111" name="l05111"></a><span class="lineno"> 5111</span>            <span class="keywordflow">if</span> (res != 0)                                                                                   <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l05112" name="l05112"></a><span class="lineno"> 5112</span>            {</div>
+<div class="line"><a id="l05113" name="l05113"></a><span class="lineno"> 5113</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                                      <span class="comment">/* write enable failed */</span></div>
+<div class="line"><a id="l05114" name="l05114"></a><span class="lineno"> 5114</span>               </div>
+<div class="line"><a id="l05115" name="l05115"></a><span class="lineno"> 5115</span>                <span class="keywordflow">return</span> 1;                                                                                   <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l05116" name="l05116"></a><span class="lineno"> 5116</span>            }</div>
+<div class="line"><a id="l05117" name="l05117"></a><span class="lineno"> 5117</span>            <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                         <span class="comment">/* 3 address mode */</span></div>
+<div class="line"><a id="l05118" name="l05118"></a><span class="lineno"> 5118</span>            {</div>
+<div class="line"><a id="l05119" name="l05119"></a><span class="lineno"> 5119</span>                <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)                                                                <span class="comment">/* &gt;128Mb */</span></div>
+<div class="line"><a id="l05120" name="l05120"></a><span class="lineno"> 5120</span>                {</div>
+<div class="line"><a id="l05121" name="l05121"></a><span class="lineno"> 5121</span>                    buf[0] = (addr &gt;&gt; 24) &amp; 0xFF;                                                           <span class="comment">/* 31 - 24 bits */</span></div>
+<div class="line"><a id="l05122" name="l05122"></a><span class="lineno"> 5122</span>                    res = a_w25qxx_qspi_write_read(handle, 0xC5, 1,</div>
+<div class="line"><a id="l05123" name="l05123"></a><span class="lineno"> 5123</span>                                                   0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l05124" name="l05124"></a><span class="lineno"> 5124</span>                                                   0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l05125" name="l05125"></a><span class="lineno"> 5125</span>                                                   0, (uint8_t *)buf, 0x01,</div>
+<div class="line"><a id="l05126" name="l05126"></a><span class="lineno"> 5126</span>                                                   NULL, 0x00, 1);                                          <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l05127" name="l05127"></a><span class="lineno"> 5127</span>                    <span class="keywordflow">if</span> (res != 0)                                                                           <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l05128" name="l05128"></a><span class="lineno"> 5128</span>                    {</div>
+<div class="line"><a id="l05129" name="l05129"></a><span class="lineno"> 5129</span>                        handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write extended addr register failed.\n&quot;</span>);              <span class="comment">/* write extended addr register failed */</span></div>
+<div class="line"><a id="l05130" name="l05130"></a><span class="lineno"> 5130</span>                       </div>
+<div class="line"><a id="l05131" name="l05131"></a><span class="lineno"> 5131</span>                        <span class="keywordflow">return</span> 1;                                                                           <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l05132" name="l05132"></a><span class="lineno"> 5132</span>                    }</div>
+<div class="line"><a id="l05133" name="l05133"></a><span class="lineno"> 5133</span>                    res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>, 1,</div>
+<div class="line"><a id="l05134" name="l05134"></a><span class="lineno"> 5134</span>                                                   0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l05135" name="l05135"></a><span class="lineno"> 5135</span>                                                   0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l05136" name="l05136"></a><span class="lineno"> 5136</span>                                                   0x00, NULL, 0x00,</div>
+<div class="line"><a id="l05137" name="l05137"></a><span class="lineno"> 5137</span>                                                   NULL, 0x00, 0x00);                                       <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l05138" name="l05138"></a><span class="lineno"> 5138</span>                    <span class="keywordflow">if</span> (res != 0)                                                                           <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l05139" name="l05139"></a><span class="lineno"> 5139</span>                    {</div>
+<div class="line"><a id="l05140" name="l05140"></a><span class="lineno"> 5140</span>                        handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                              <span class="comment">/* write enable failed */</span></div>
+<div class="line"><a id="l05141" name="l05141"></a><span class="lineno"> 5141</span>                       </div>
+<div class="line"><a id="l05142" name="l05142"></a><span class="lineno"> 5142</span>                        <span class="keywordflow">return</span> 1;                                                                           <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l05143" name="l05143"></a><span class="lineno"> 5143</span>                    }</div>
+<div class="line"><a id="l05144" name="l05144"></a><span class="lineno"> 5144</span>                }</div>
+<div class="line"><a id="l05145" name="l05145"></a><span class="lineno"> 5145</span>                res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#a6e7cd159f91e23930450725fd6910f9c">W25QXX_COMMAND_SECTOR_ERASE_4K</a>, 1,</div>
+<div class="line"><a id="l05146" name="l05146"></a><span class="lineno"> 5146</span>                                               addr, 1, 3,</div>
+<div class="line"><a id="l05147" name="l05147"></a><span class="lineno"> 5147</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l05148" name="l05148"></a><span class="lineno"> 5148</span>                                               0, NULL, 0x00,</div>
+<div class="line"><a id="l05149" name="l05149"></a><span class="lineno"> 5149</span>                                               NULL, 0x00, 0x00);                                           <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l05150" name="l05150"></a><span class="lineno"> 5150</span>                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l05151" name="l05151"></a><span class="lineno"> 5151</span>                {</div>
+<div class="line"><a id="l05152" name="l05152"></a><span class="lineno"> 5152</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: sector erase 4k failed.\n&quot;</span>);                               <span class="comment">/* sector erase 4k failed */</span></div>
+<div class="line"><a id="l05153" name="l05153"></a><span class="lineno"> 5153</span>                   </div>
+<div class="line"><a id="l05154" name="l05154"></a><span class="lineno"> 5154</span>                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l05155" name="l05155"></a><span class="lineno"> 5155</span>                }</div>
+<div class="line"><a id="l05156" name="l05156"></a><span class="lineno"> 5156</span>            }</div>
+<div class="line"><a id="l05157" name="l05157"></a><span class="lineno"> 5157</span>            <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>) &amp;&amp; (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>))</div>
+<div class="line"><a id="l05158" name="l05158"></a><span class="lineno"> 5158</span>            {</div>
+<div class="line"><a id="l05159" name="l05159"></a><span class="lineno"> 5159</span>                res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#a6e7cd159f91e23930450725fd6910f9c">W25QXX_COMMAND_SECTOR_ERASE_4K</a>, 1,</div>
+<div class="line"><a id="l05160" name="l05160"></a><span class="lineno"> 5160</span>                                               addr, 1, 4,</div>
+<div class="line"><a id="l05161" name="l05161"></a><span class="lineno"> 5161</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l05162" name="l05162"></a><span class="lineno"> 5162</span>                                               0, NULL, 0x00,</div>
+<div class="line"><a id="l05163" name="l05163"></a><span class="lineno"> 5163</span>                                               NULL, 0x00, 0x00);                                           <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l05164" name="l05164"></a><span class="lineno"> 5164</span>                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l05165" name="l05165"></a><span class="lineno"> 5165</span>                {</div>
+<div class="line"><a id="l05166" name="l05166"></a><span class="lineno"> 5166</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: sector erase 4k failed.\n&quot;</span>);                               <span class="comment">/* sector erase 4k failed */</span></div>
+<div class="line"><a id="l05167" name="l05167"></a><span class="lineno"> 5167</span>                   </div>
+<div class="line"><a id="l05168" name="l05168"></a><span class="lineno"> 5168</span>                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l05169" name="l05169"></a><span class="lineno"> 5169</span>                }</div>
+<div class="line"><a id="l05170" name="l05170"></a><span class="lineno"> 5170</span>            }</div>
+<div class="line"><a id="l05171" name="l05171"></a><span class="lineno"> 5171</span>            <span class="keywordflow">else</span></div>
+<div class="line"><a id="l05172" name="l05172"></a><span class="lineno"> 5172</span>            {</div>
+<div class="line"><a id="l05173" name="l05173"></a><span class="lineno"> 5173</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: address mode is invalid.\n&quot;</span>);                                  <span class="comment">/* address mode is invalid */</span></div>
+<div class="line"><a id="l05174" name="l05174"></a><span class="lineno"> 5174</span>               </div>
+<div class="line"><a id="l05175" name="l05175"></a><span class="lineno"> 5175</span>                <span class="keywordflow">return</span> 5;                                                                                   <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l05176" name="l05176"></a><span class="lineno"> 5176</span>            }</div>
+<div class="line"><a id="l05177" name="l05177"></a><span class="lineno"> 5177</span>            </div>
+<div class="line"><a id="l05178" name="l05178"></a><span class="lineno"> 5178</span>            timeout = 400;                                                                                  <span class="comment">/* max 400 ms */</span></div>
+<div class="line"><a id="l05179" name="l05179"></a><span class="lineno"> 5179</span>            <span class="keywordflow">while</span> (timeout != 0)                                                                            <span class="comment">/* check timeout */</span></div>
+<div class="line"><a id="l05180" name="l05180"></a><span class="lineno"> 5180</span>            {</div>
+<div class="line"><a id="l05181" name="l05181"></a><span class="lineno"> 5181</span>                res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#adf682969c34f4b31a87dd92dd18ccea3">W25QXX_COMMAND_READ_STATUS_REG1</a>, 1,</div>
+<div class="line"><a id="l05182" name="l05182"></a><span class="lineno"> 5182</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l05183" name="l05183"></a><span class="lineno"> 5183</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l05184" name="l05184"></a><span class="lineno"> 5184</span>                                               0, NULL, 0,</div>
+<div class="line"><a id="l05185" name="l05185"></a><span class="lineno"> 5185</span>                                              (uint8_t *)&amp;status, 1, 1);                                    <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l05186" name="l05186"></a><span class="lineno"> 5186</span>                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l05187" name="l05187"></a><span class="lineno"> 5187</span>                {</div>
+<div class="line"><a id="l05188" name="l05188"></a><span class="lineno"> 5188</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: get status1 failed.\n&quot;</span>);                                   <span class="comment">/* get status1 failed */</span></div>
+<div class="line"><a id="l05189" name="l05189"></a><span class="lineno"> 5189</span>                   </div>
+<div class="line"><a id="l05190" name="l05190"></a><span class="lineno"> 5190</span>                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l05191" name="l05191"></a><span class="lineno"> 5191</span>                }</div>
+<div class="line"><a id="l05192" name="l05192"></a><span class="lineno"> 5192</span>                <span class="keywordflow">if</span> ((status &amp; 0x01) == 0x00)                                                                <span class="comment">/* check status */</span></div>
+<div class="line"><a id="l05193" name="l05193"></a><span class="lineno"> 5193</span>                {</div>
+<div class="line"><a id="l05194" name="l05194"></a><span class="lineno"> 5194</span>                    <span class="keywordflow">break</span>;                                                                                  <span class="comment">/* break */</span></div>
+<div class="line"><a id="l05195" name="l05195"></a><span class="lineno"> 5195</span>                }</div>
+<div class="line"><a id="l05196" name="l05196"></a><span class="lineno"> 5196</span>                timeout--;                                                                                  <span class="comment">/* timeout-- */</span></div>
+<div class="line"><a id="l05197" name="l05197"></a><span class="lineno"> 5197</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a406c9433252b7366de417b7a60915c81">delay_ms</a>(1);                                                                        <span class="comment">/* delay 1 ms */</span></div>
+<div class="line"><a id="l05198" name="l05198"></a><span class="lineno"> 5198</span>            }</div>
+<div class="line"><a id="l05199" name="l05199"></a><span class="lineno"> 5199</span>            <span class="keywordflow">if</span> (timeout == 0)</div>
+<div class="line"><a id="l05200" name="l05200"></a><span class="lineno"> 5200</span>            {</div>
+<div class="line"><a id="l05201" name="l05201"></a><span class="lineno"> 5201</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: sector erase 4k timeout.\n&quot;</span>);                                  <span class="comment">/* sector erase 4k timeout */</span></div>
+<div class="line"><a id="l05202" name="l05202"></a><span class="lineno"> 5202</span>               </div>
+<div class="line"><a id="l05203" name="l05203"></a><span class="lineno"> 5203</span>                <span class="keywordflow">return</span> 6;                                                                                   <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l05204" name="l05204"></a><span class="lineno"> 5204</span>            }</div>
+<div class="line"><a id="l05205" name="l05205"></a><span class="lineno"> 5205</span>        }</div>
+<div class="line"><a id="l05206" name="l05206"></a><span class="lineno"> 5206</span>        <span class="keywordflow">else</span>                                                                                                <span class="comment">/* single spi */</span></div>
+<div class="line"><a id="l05207" name="l05207"></a><span class="lineno"> 5207</span>        {</div>
+<div class="line"><a id="l05208" name="l05208"></a><span class="lineno"> 5208</span>            buf[0] = <a class="code hl_define" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>;                                                           <span class="comment">/* write enable command */</span></div>
+<div class="line"><a id="l05209" name="l05209"></a><span class="lineno"> 5209</span>            res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 1, NULL, 0);                              <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l05210" name="l05210"></a><span class="lineno"> 5210</span>            <span class="keywordflow">if</span> (res != 0)                                                                                   <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l05211" name="l05211"></a><span class="lineno"> 5211</span>            {</div>
+<div class="line"><a id="l05212" name="l05212"></a><span class="lineno"> 5212</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                                      <span class="comment">/* write enable failed */</span></div>
+<div class="line"><a id="l05213" name="l05213"></a><span class="lineno"> 5213</span>               </div>
+<div class="line"><a id="l05214" name="l05214"></a><span class="lineno"> 5214</span>                <span class="keywordflow">return</span> 1;                                                                                   <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l05215" name="l05215"></a><span class="lineno"> 5215</span>            }</div>
+<div class="line"><a id="l05216" name="l05216"></a><span class="lineno"> 5216</span>            <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                         <span class="comment">/* 3 address mode */</span></div>
+<div class="line"><a id="l05217" name="l05217"></a><span class="lineno"> 5217</span>            {</div>
+<div class="line"><a id="l05218" name="l05218"></a><span class="lineno"> 5218</span>                <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)                                                                <span class="comment">/* &gt;128Mb */</span></div>
+<div class="line"><a id="l05219" name="l05219"></a><span class="lineno"> 5219</span>                {</div>
+<div class="line"><a id="l05220" name="l05220"></a><span class="lineno"> 5220</span>                    buf[0] = 0xC5;                                                                          <span class="comment">/* write extended addr register command */</span></div>
+<div class="line"><a id="l05221" name="l05221"></a><span class="lineno"> 5221</span>                    buf[1] = (addr &gt;&gt; 24) &amp; 0xFF;                                                           <span class="comment">/* 31 - 24 bits */</span></div>
+<div class="line"><a id="l05222" name="l05222"></a><span class="lineno"> 5222</span>                    res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 2, NULL, 0);                      <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l05223" name="l05223"></a><span class="lineno"> 5223</span>                    <span class="keywordflow">if</span> (res != 0)                                                                           <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l05224" name="l05224"></a><span class="lineno"> 5224</span>                    {</div>
+<div class="line"><a id="l05225" name="l05225"></a><span class="lineno"> 5225</span>                        handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write extended addr register failed.\n&quot;</span>);              <span class="comment">/* write extended addr register failed */</span></div>
+<div class="line"><a id="l05226" name="l05226"></a><span class="lineno"> 5226</span>                       </div>
+<div class="line"><a id="l05227" name="l05227"></a><span class="lineno"> 5227</span>                        <span class="keywordflow">return</span> 1;                                                                           <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l05228" name="l05228"></a><span class="lineno"> 5228</span>                    }</div>
+<div class="line"><a id="l05229" name="l05229"></a><span class="lineno"> 5229</span>                    buf[0] = <a class="code hl_define" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>;                                                   <span class="comment">/* write enable command */</span></div>
+<div class="line"><a id="l05230" name="l05230"></a><span class="lineno"> 5230</span>                    res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 1, NULL, 0);                      <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l05231" name="l05231"></a><span class="lineno"> 5231</span>                    <span class="keywordflow">if</span> (res != 0)                                                                           <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l05232" name="l05232"></a><span class="lineno"> 5232</span>                    {</div>
+<div class="line"><a id="l05233" name="l05233"></a><span class="lineno"> 5233</span>                        handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                              <span class="comment">/* write enable failed */</span></div>
+<div class="line"><a id="l05234" name="l05234"></a><span class="lineno"> 5234</span>                       </div>
+<div class="line"><a id="l05235" name="l05235"></a><span class="lineno"> 5235</span>                        <span class="keywordflow">return</span> 1;                                                                           <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l05236" name="l05236"></a><span class="lineno"> 5236</span>                    }</div>
+<div class="line"><a id="l05237" name="l05237"></a><span class="lineno"> 5237</span>                }</div>
+<div class="line"><a id="l05238" name="l05238"></a><span class="lineno"> 5238</span>                buf[0] = <a class="code hl_define" href="driver__w25qxx_8c.html#a6e7cd159f91e23930450725fd6910f9c">W25QXX_COMMAND_SECTOR_ERASE_4K</a>;                                                    <span class="comment">/* sector erase 4k command */</span></div>
+<div class="line"><a id="l05239" name="l05239"></a><span class="lineno"> 5239</span>                buf[1] = (addr &gt;&gt; 16) &amp; 0xFF;                                                               <span class="comment">/* 23 - 16 bits */</span></div>
+<div class="line"><a id="l05240" name="l05240"></a><span class="lineno"> 5240</span>                buf[2] = (addr &gt;&gt; 8) &amp; 0xFF;                                                                <span class="comment">/* 15 - 8  bits */</span></div>
+<div class="line"><a id="l05241" name="l05241"></a><span class="lineno"> 5241</span>                buf[3] = (addr &gt;&gt; 0) &amp; 0xFF;                                                                <span class="comment">/* 7 - 0 bits */</span></div>
+<div class="line"><a id="l05242" name="l05242"></a><span class="lineno"> 5242</span>                res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 4, NULL, 0);                          <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l05243" name="l05243"></a><span class="lineno"> 5243</span>                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l05244" name="l05244"></a><span class="lineno"> 5244</span>                {</div>
+<div class="line"><a id="l05245" name="l05245"></a><span class="lineno"> 5245</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: sector erase 4k failed.\n&quot;</span>);                               <span class="comment">/* sector erase 4k failed */</span></div>
+<div class="line"><a id="l05246" name="l05246"></a><span class="lineno"> 5246</span>                   </div>
+<div class="line"><a id="l05247" name="l05247"></a><span class="lineno"> 5247</span>                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l05248" name="l05248"></a><span class="lineno"> 5248</span>                }</div>
+<div class="line"><a id="l05249" name="l05249"></a><span class="lineno"> 5249</span>            }</div>
+<div class="line"><a id="l05250" name="l05250"></a><span class="lineno"> 5250</span>            <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>)</div>
+<div class="line"><a id="l05251" name="l05251"></a><span class="lineno"> 5251</span>                     &amp;&amp; (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>))</div>
+<div class="line"><a id="l05252" name="l05252"></a><span class="lineno"> 5252</span>            {</div>
+<div class="line"><a id="l05253" name="l05253"></a><span class="lineno"> 5253</span>                buf[0] = <a class="code hl_define" href="driver__w25qxx_8c.html#a6e7cd159f91e23930450725fd6910f9c">W25QXX_COMMAND_SECTOR_ERASE_4K</a>;                                                    <span class="comment">/* sector erase 4k command */</span></div>
+<div class="line"><a id="l05254" name="l05254"></a><span class="lineno"> 5254</span>                buf[1] = (addr &gt;&gt; 24) &amp; 0xFF;                                                               <span class="comment">/* 31 - 24 bits */</span></div>
+<div class="line"><a id="l05255" name="l05255"></a><span class="lineno"> 5255</span>                buf[2] = (addr &gt;&gt; 16) &amp; 0xFF;                                                               <span class="comment">/* 23 - 16 bits */</span></div>
+<div class="line"><a id="l05256" name="l05256"></a><span class="lineno"> 5256</span>                buf[3] = (addr &gt;&gt; 8) &amp; 0xFF;                                                                <span class="comment">/* 15 - 8  bits */</span></div>
+<div class="line"><a id="l05257" name="l05257"></a><span class="lineno"> 5257</span>                buf[4] = (addr &gt;&gt; 0) &amp; 0xFF;                                                                <span class="comment">/* 7 - 0 bits */</span></div>
+<div class="line"><a id="l05258" name="l05258"></a><span class="lineno"> 5258</span>                res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 5, NULL, 0);                          <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l05259" name="l05259"></a><span class="lineno"> 5259</span>                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l05260" name="l05260"></a><span class="lineno"> 5260</span>                {</div>
+<div class="line"><a id="l05261" name="l05261"></a><span class="lineno"> 5261</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: sector erase 4k failed.\n&quot;</span>);                               <span class="comment">/* sector erase 4k failed */</span></div>
+<div class="line"><a id="l05262" name="l05262"></a><span class="lineno"> 5262</span>                   </div>
+<div class="line"><a id="l05263" name="l05263"></a><span class="lineno"> 5263</span>                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l05264" name="l05264"></a><span class="lineno"> 5264</span>                }</div>
+<div class="line"><a id="l05265" name="l05265"></a><span class="lineno"> 5265</span>            }</div>
+<div class="line"><a id="l05266" name="l05266"></a><span class="lineno"> 5266</span>            <span class="keywordflow">else</span></div>
+<div class="line"><a id="l05267" name="l05267"></a><span class="lineno"> 5267</span>            {</div>
+<div class="line"><a id="l05268" name="l05268"></a><span class="lineno"> 5268</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: address mode is invalid.\n&quot;</span>);                                  <span class="comment">/* address mode is invalid */</span></div>
+<div class="line"><a id="l05269" name="l05269"></a><span class="lineno"> 5269</span>               </div>
+<div class="line"><a id="l05270" name="l05270"></a><span class="lineno"> 5270</span>                <span class="keywordflow">return</span> 5;                                                                                   <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l05271" name="l05271"></a><span class="lineno"> 5271</span>            }</div>
+<div class="line"><a id="l05272" name="l05272"></a><span class="lineno"> 5272</span>            </div>
+<div class="line"><a id="l05273" name="l05273"></a><span class="lineno"> 5273</span>            timeout = 400;                                                                                  <span class="comment">/* max 400 ms */</span></div>
+<div class="line"><a id="l05274" name="l05274"></a><span class="lineno"> 5274</span>            <span class="keywordflow">while</span> (timeout != 0)                                                                            <span class="comment">/* check timeout */</span></div>
+<div class="line"><a id="l05275" name="l05275"></a><span class="lineno"> 5275</span>            {</div>
+<div class="line"><a id="l05276" name="l05276"></a><span class="lineno"> 5276</span>                buf[0] = <a class="code hl_define" href="driver__w25qxx_8c.html#adf682969c34f4b31a87dd92dd18ccea3">W25QXX_COMMAND_READ_STATUS_REG1</a>;                                                   <span class="comment">/* read status1 command */</span></div>
+<div class="line"><a id="l05277" name="l05277"></a><span class="lineno"> 5277</span>                res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 1, (uint8_t *)&amp;status, 1);            <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l05278" name="l05278"></a><span class="lineno"> 5278</span>                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l05279" name="l05279"></a><span class="lineno"> 5279</span>                {</div>
+<div class="line"><a id="l05280" name="l05280"></a><span class="lineno"> 5280</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: get status1 failed.\n&quot;</span>);                                   <span class="comment">/* get status1 failed */</span></div>
+<div class="line"><a id="l05281" name="l05281"></a><span class="lineno"> 5281</span>                   </div>
+<div class="line"><a id="l05282" name="l05282"></a><span class="lineno"> 5282</span>                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l05283" name="l05283"></a><span class="lineno"> 5283</span>                }</div>
+<div class="line"><a id="l05284" name="l05284"></a><span class="lineno"> 5284</span>                <span class="keywordflow">if</span> ((status &amp; 0x01) == 0x00)                                                                <span class="comment">/* check status */</span></div>
+<div class="line"><a id="l05285" name="l05285"></a><span class="lineno"> 5285</span>                {</div>
+<div class="line"><a id="l05286" name="l05286"></a><span class="lineno"> 5286</span>                    <span class="keywordflow">break</span>;                                                                                  <span class="comment">/* break */</span></div>
+<div class="line"><a id="l05287" name="l05287"></a><span class="lineno"> 5287</span>                }</div>
+<div class="line"><a id="l05288" name="l05288"></a><span class="lineno"> 5288</span>                timeout--;                                                                                  <span class="comment">/* timeout-- */</span></div>
+<div class="line"><a id="l05289" name="l05289"></a><span class="lineno"> 5289</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a406c9433252b7366de417b7a60915c81">delay_ms</a>(1);                                                                        <span class="comment">/* delay 1 ms */</span></div>
+<div class="line"><a id="l05290" name="l05290"></a><span class="lineno"> 5290</span>            }</div>
+<div class="line"><a id="l05291" name="l05291"></a><span class="lineno"> 5291</span>            <span class="keywordflow">if</span> (timeout == 0)</div>
+<div class="line"><a id="l05292" name="l05292"></a><span class="lineno"> 5292</span>            {</div>
+<div class="line"><a id="l05293" name="l05293"></a><span class="lineno"> 5293</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: sector erase 4k timeout.\n&quot;</span>);                                  <span class="comment">/* sector erase 4k timeout */</span></div>
+<div class="line"><a id="l05294" name="l05294"></a><span class="lineno"> 5294</span>               </div>
+<div class="line"><a id="l05295" name="l05295"></a><span class="lineno"> 5295</span>                <span class="keywordflow">return</span> 6;                                                                                   <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l05296" name="l05296"></a><span class="lineno"> 5296</span>            }</div>
+<div class="line"><a id="l05297" name="l05297"></a><span class="lineno"> 5297</span>        }</div>
+<div class="line"><a id="l05298" name="l05298"></a><span class="lineno"> 5298</span>    }</div>
+<div class="line"><a id="l05299" name="l05299"></a><span class="lineno"> 5299</span>    <span class="keywordflow">else</span></div>
+<div class="line"><a id="l05300" name="l05300"></a><span class="lineno"> 5300</span>    {</div>
+<div class="line"><a id="l05301" name="l05301"></a><span class="lineno"> 5301</span>        res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>, 4,</div>
+<div class="line"><a id="l05302" name="l05302"></a><span class="lineno"> 5302</span>                                       0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l05303" name="l05303"></a><span class="lineno"> 5303</span>                                       0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l05304" name="l05304"></a><span class="lineno"> 5304</span>                                       0x00, NULL, 0x00,</div>
+<div class="line"><a id="l05305" name="l05305"></a><span class="lineno"> 5305</span>                                       NULL, 0x00, 0x00);                                                   <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l05306" name="l05306"></a><span class="lineno"> 5306</span>        <span class="keywordflow">if</span> (res != 0)                                                                                       <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l05307" name="l05307"></a><span class="lineno"> 5307</span>        {</div>
+<div class="line"><a id="l05308" name="l05308"></a><span class="lineno"> 5308</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                                          <span class="comment">/* write enable failed */</span></div>
+<div class="line"><a id="l05309" name="l05309"></a><span class="lineno"> 5309</span>           </div>
+<div class="line"><a id="l05310" name="l05310"></a><span class="lineno"> 5310</span>            <span class="keywordflow">return</span> 1;                                                                                       <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l05311" name="l05311"></a><span class="lineno"> 5311</span>        }</div>
+<div class="line"><a id="l05312" name="l05312"></a><span class="lineno"> 5312</span>        <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                             <span class="comment">/* 3 address mode */</span></div>
+<div class="line"><a id="l05313" name="l05313"></a><span class="lineno"> 5313</span>        {</div>
+<div class="line"><a id="l05314" name="l05314"></a><span class="lineno"> 5314</span>            <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)                                                                    <span class="comment">/* &gt;128Mb */</span></div>
+<div class="line"><a id="l05315" name="l05315"></a><span class="lineno"> 5315</span>            {</div>
+<div class="line"><a id="l05316" name="l05316"></a><span class="lineno"> 5316</span>                buf[0] = (addr &gt;&gt; 24) &amp; 0xFF;                                                               <span class="comment">/* 31 - 24 bits */</span></div>
+<div class="line"><a id="l05317" name="l05317"></a><span class="lineno"> 5317</span>                res = a_w25qxx_qspi_write_read(handle, 0xC5, 4,</div>
+<div class="line"><a id="l05318" name="l05318"></a><span class="lineno"> 5318</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l05319" name="l05319"></a><span class="lineno"> 5319</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l05320" name="l05320"></a><span class="lineno"> 5320</span>                                               0, (uint8_t *)buf, 0x01,</div>
+<div class="line"><a id="l05321" name="l05321"></a><span class="lineno"> 5321</span>                                               NULL, 0x00, 4);                                              <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l05322" name="l05322"></a><span class="lineno"> 5322</span>                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l05323" name="l05323"></a><span class="lineno"> 5323</span>                {</div>
+<div class="line"><a id="l05324" name="l05324"></a><span class="lineno"> 5324</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write extended addr register failed.\n&quot;</span>);                  <span class="comment">/* write extended addr register failed */</span></div>
+<div class="line"><a id="l05325" name="l05325"></a><span class="lineno"> 5325</span>                   </div>
+<div class="line"><a id="l05326" name="l05326"></a><span class="lineno"> 5326</span>                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l05327" name="l05327"></a><span class="lineno"> 5327</span>                }</div>
+<div class="line"><a id="l05328" name="l05328"></a><span class="lineno"> 5328</span>                res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>, 4,</div>
+<div class="line"><a id="l05329" name="l05329"></a><span class="lineno"> 5329</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l05330" name="l05330"></a><span class="lineno"> 5330</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l05331" name="l05331"></a><span class="lineno"> 5331</span>                                               0x00, NULL, 0x00,</div>
+<div class="line"><a id="l05332" name="l05332"></a><span class="lineno"> 5332</span>                                               NULL, 0x00, 0x00);                                           <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l05333" name="l05333"></a><span class="lineno"> 5333</span>                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l05334" name="l05334"></a><span class="lineno"> 5334</span>                {</div>
+<div class="line"><a id="l05335" name="l05335"></a><span class="lineno"> 5335</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                                  <span class="comment">/* write enable failed */</span></div>
+<div class="line"><a id="l05336" name="l05336"></a><span class="lineno"> 5336</span>                   </div>
+<div class="line"><a id="l05337" name="l05337"></a><span class="lineno"> 5337</span>                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l05338" name="l05338"></a><span class="lineno"> 5338</span>                }</div>
+<div class="line"><a id="l05339" name="l05339"></a><span class="lineno"> 5339</span>            }</div>
+<div class="line"><a id="l05340" name="l05340"></a><span class="lineno"> 5340</span>            res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#a6e7cd159f91e23930450725fd6910f9c">W25QXX_COMMAND_SECTOR_ERASE_4K</a>, 4,</div>
+<div class="line"><a id="l05341" name="l05341"></a><span class="lineno"> 5341</span>                                           addr, 4, 3,</div>
+<div class="line"><a id="l05342" name="l05342"></a><span class="lineno"> 5342</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l05343" name="l05343"></a><span class="lineno"> 5343</span>                                           0, NULL, 0x00,</div>
+<div class="line"><a id="l05344" name="l05344"></a><span class="lineno"> 5344</span>                                           NULL, 0x00, 0x00);                                               <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l05345" name="l05345"></a><span class="lineno"> 5345</span>            <span class="keywordflow">if</span> (res != 0)                                                                                   <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l05346" name="l05346"></a><span class="lineno"> 5346</span>            {</div>
+<div class="line"><a id="l05347" name="l05347"></a><span class="lineno"> 5347</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: sector erase 4k failed.\n&quot;</span>);                                   <span class="comment">/* sector erase 4k failed */</span></div>
+<div class="line"><a id="l05348" name="l05348"></a><span class="lineno"> 5348</span>               </div>
+<div class="line"><a id="l05349" name="l05349"></a><span class="lineno"> 5349</span>                <span class="keywordflow">return</span> 1;                                                                                   <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l05350" name="l05350"></a><span class="lineno"> 5350</span>            }</div>
+<div class="line"><a id="l05351" name="l05351"></a><span class="lineno"> 5351</span>        }</div>
+<div class="line"><a id="l05352" name="l05352"></a><span class="lineno"> 5352</span>        <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>) &amp;&amp; (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>))</div>
+<div class="line"><a id="l05353" name="l05353"></a><span class="lineno"> 5353</span>        {</div>
+<div class="line"><a id="l05354" name="l05354"></a><span class="lineno"> 5354</span>            res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#a6e7cd159f91e23930450725fd6910f9c">W25QXX_COMMAND_SECTOR_ERASE_4K</a>, 4,</div>
+<div class="line"><a id="l05355" name="l05355"></a><span class="lineno"> 5355</span>                                           addr, 4, 4,</div>
+<div class="line"><a id="l05356" name="l05356"></a><span class="lineno"> 5356</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l05357" name="l05357"></a><span class="lineno"> 5357</span>                                           0, NULL, 0x00,</div>
+<div class="line"><a id="l05358" name="l05358"></a><span class="lineno"> 5358</span>                                           NULL, 0x00, 0x00);                                               <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l05359" name="l05359"></a><span class="lineno"> 5359</span>            <span class="keywordflow">if</span> (res != 0)                                                                                   <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l05360" name="l05360"></a><span class="lineno"> 5360</span>            {</div>
+<div class="line"><a id="l05361" name="l05361"></a><span class="lineno"> 5361</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: sector erase 4k failed.\n&quot;</span>);                                   <span class="comment">/* sector erase 4k failed */</span></div>
+<div class="line"><a id="l05362" name="l05362"></a><span class="lineno"> 5362</span>               </div>
+<div class="line"><a id="l05363" name="l05363"></a><span class="lineno"> 5363</span>                <span class="keywordflow">return</span> 1;                                                                                   <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l05364" name="l05364"></a><span class="lineno"> 5364</span>            }</div>
+<div class="line"><a id="l05365" name="l05365"></a><span class="lineno"> 5365</span>        }</div>
+<div class="line"><a id="l05366" name="l05366"></a><span class="lineno"> 5366</span>        <span class="keywordflow">else</span></div>
+<div class="line"><a id="l05367" name="l05367"></a><span class="lineno"> 5367</span>        {</div>
+<div class="line"><a id="l05368" name="l05368"></a><span class="lineno"> 5368</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: address mode is invalid.\n&quot;</span>);                                      <span class="comment">/* address mode is invalid */</span></div>
+<div class="line"><a id="l05369" name="l05369"></a><span class="lineno"> 5369</span>           </div>
+<div class="line"><a id="l05370" name="l05370"></a><span class="lineno"> 5370</span>            <span class="keywordflow">return</span> 5;                                                                                       <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l05371" name="l05371"></a><span class="lineno"> 5371</span>        }</div>
+<div class="line"><a id="l05372" name="l05372"></a><span class="lineno"> 5372</span>        </div>
+<div class="line"><a id="l05373" name="l05373"></a><span class="lineno"> 5373</span>        timeout = 400;                                                                                      <span class="comment">/* max 400 ms */</span></div>
+<div class="line"><a id="l05374" name="l05374"></a><span class="lineno"> 5374</span>        <span class="keywordflow">while</span> (timeout != 0)                                                                                <span class="comment">/* check timeout */</span></div>
+<div class="line"><a id="l05375" name="l05375"></a><span class="lineno"> 5375</span>        {</div>
+<div class="line"><a id="l05376" name="l05376"></a><span class="lineno"> 5376</span>            res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#adf682969c34f4b31a87dd92dd18ccea3">W25QXX_COMMAND_READ_STATUS_REG1</a>, 4,</div>
+<div class="line"><a id="l05377" name="l05377"></a><span class="lineno"> 5377</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l05378" name="l05378"></a><span class="lineno"> 5378</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l05379" name="l05379"></a><span class="lineno"> 5379</span>                                           0, NULL, 0,</div>
+<div class="line"><a id="l05380" name="l05380"></a><span class="lineno"> 5380</span>                                          (uint8_t *)&amp;status, 1, 4);                                        <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l05381" name="l05381"></a><span class="lineno"> 5381</span>            <span class="keywordflow">if</span> (res != 0)                                                                                   <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l05382" name="l05382"></a><span class="lineno"> 5382</span>            {</div>
+<div class="line"><a id="l05383" name="l05383"></a><span class="lineno"> 5383</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: get status1 failed.\n&quot;</span>);                                       <span class="comment">/* get status1 failed */</span></div>
+<div class="line"><a id="l05384" name="l05384"></a><span class="lineno"> 5384</span>               </div>
+<div class="line"><a id="l05385" name="l05385"></a><span class="lineno"> 5385</span>                <span class="keywordflow">return</span> 1;                                                                                   <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l05386" name="l05386"></a><span class="lineno"> 5386</span>            }</div>
+<div class="line"><a id="l05387" name="l05387"></a><span class="lineno"> 5387</span>            <span class="keywordflow">if</span> ((status &amp; 0x01) == 0x00)                                                                    <span class="comment">/* check status */</span></div>
+<div class="line"><a id="l05388" name="l05388"></a><span class="lineno"> 5388</span>            {</div>
+<div class="line"><a id="l05389" name="l05389"></a><span class="lineno"> 5389</span>                <span class="keywordflow">break</span>;                                                                                      <span class="comment">/* break */</span></div>
+<div class="line"><a id="l05390" name="l05390"></a><span class="lineno"> 5390</span>            }</div>
+<div class="line"><a id="l05391" name="l05391"></a><span class="lineno"> 5391</span>            timeout--;                                                                                      <span class="comment">/* timeout-- */</span></div>
+<div class="line"><a id="l05392" name="l05392"></a><span class="lineno"> 5392</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a406c9433252b7366de417b7a60915c81">delay_ms</a>(1);                                                                            <span class="comment">/* delay 1 ms */</span></div>
+<div class="line"><a id="l05393" name="l05393"></a><span class="lineno"> 5393</span>        }</div>
+<div class="line"><a id="l05394" name="l05394"></a><span class="lineno"> 5394</span>        <span class="keywordflow">if</span> (timeout == 0)</div>
+<div class="line"><a id="l05395" name="l05395"></a><span class="lineno"> 5395</span>        {</div>
+<div class="line"><a id="l05396" name="l05396"></a><span class="lineno"> 5396</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: sector erase 4k timeout.\n&quot;</span>);                                      <span class="comment">/* sector erase 4k timeout */</span></div>
+<div class="line"><a id="l05397" name="l05397"></a><span class="lineno"> 5397</span>           </div>
+<div class="line"><a id="l05398" name="l05398"></a><span class="lineno"> 5398</span>            <span class="keywordflow">return</span> 6;                                                                                       <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l05399" name="l05399"></a><span class="lineno"> 5399</span>        }</div>
+<div class="line"><a id="l05400" name="l05400"></a><span class="lineno"> 5400</span>    }</div>
+<div class="line"><a id="l05401" name="l05401"></a><span class="lineno"> 5401</span>    </div>
+<div class="line"><a id="l05402" name="l05402"></a><span class="lineno"> 5402</span>    <span class="keywordflow">return</span> 0;                                                                                               <span class="comment">/* success return 0 */</span></div>
+<div class="line"><a id="l05403" name="l05403"></a><span class="lineno"> 5403</span>}</div>
+</div>
+<div class="line"><a id="l05404" name="l05404"></a><span class="lineno"> 5404</span> </div>
+<div class="foldopen" id="foldopen05419" data-start="{" data-end="}">
+<div class="line"><a id="l05419" name="l05419"></a><span class="lineno"><a class="line" href="group__w25qxx__basic__driver.html#ga39c8fb382e8c3e4d57232dfa79af781c"> 5419</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__basic__driver.html#ga39c8fb382e8c3e4d57232dfa79af781c">w25qxx_block_erase_32k</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint32_t addr)</div>
+<div class="line"><a id="l05420" name="l05420"></a><span class="lineno"> 5420</span>{</div>
+<div class="line"><a id="l05421" name="l05421"></a><span class="lineno"> 5421</span>    uint8_t res;</div>
+<div class="line"><a id="l05422" name="l05422"></a><span class="lineno"> 5422</span>    uint8_t status;</div>
+<div class="line"><a id="l05423" name="l05423"></a><span class="lineno"> 5423</span>    uint32_t timeout;</div>
+<div class="line"><a id="l05424" name="l05424"></a><span class="lineno"> 5424</span>    uint8_t buf[5];</div>
+<div class="line"><a id="l05425" name="l05425"></a><span class="lineno"> 5425</span>    </div>
+<div class="line"><a id="l05426" name="l05426"></a><span class="lineno"> 5426</span>    <span class="keywordflow">if</span> (handle == NULL)                                                                                     <span class="comment">/* check handle */</span></div>
+<div class="line"><a id="l05427" name="l05427"></a><span class="lineno"> 5427</span>    {</div>
+<div class="line"><a id="l05428" name="l05428"></a><span class="lineno"> 5428</span>        <span class="keywordflow">return</span> 2;                                                                                           <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l05429" name="l05429"></a><span class="lineno"> 5429</span>    }   </div>
+<div class="line"><a id="l05430" name="l05430"></a><span class="lineno"> 5430</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">inited</a> != 1)                                                                                <span class="comment">/* check handle initialization */</span></div>
+<div class="line"><a id="l05431" name="l05431"></a><span class="lineno"> 5431</span>    {</div>
+<div class="line"><a id="l05432" name="l05432"></a><span class="lineno"> 5432</span>        <span class="keywordflow">return</span> 3;                                                                                           <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l05433" name="l05433"></a><span class="lineno"> 5433</span>    }</div>
+<div class="line"><a id="l05434" name="l05434"></a><span class="lineno"> 5434</span>    <span class="keywordflow">if</span> ((addr % (32 * 1024)) != 0)                                                                          <span class="comment">/* check address */</span></div>
+<div class="line"><a id="l05435" name="l05435"></a><span class="lineno"> 5435</span>    {</div>
+<div class="line"><a id="l05436" name="l05436"></a><span class="lineno"> 5436</span>        handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: addr is invalid.\n&quot;</span>);                                                  <span class="comment">/* addr is invalid */</span></div>
+<div class="line"><a id="l05437" name="l05437"></a><span class="lineno"> 5437</span>       </div>
+<div class="line"><a id="l05438" name="l05438"></a><span class="lineno"> 5438</span>        <span class="keywordflow">return</span> 4;                                                                                           <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l05439" name="l05439"></a><span class="lineno"> 5439</span>    }</div>
+<div class="line"><a id="l05440" name="l05440"></a><span class="lineno"> 5440</span>    </div>
+<div class="line"><a id="l05441" name="l05441"></a><span class="lineno"> 5441</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>)                                                           <span class="comment">/* spi interface */</span></div>
+<div class="line"><a id="l05442" name="l05442"></a><span class="lineno"> 5442</span>    {</div>
+<div class="line"><a id="l05443" name="l05443"></a><span class="lineno"> 5443</span>        <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">dual_quad_spi_enable</a> != 0)                                                              <span class="comment">/* enable dual quad spi */</span></div>
+<div class="line"><a id="l05444" name="l05444"></a><span class="lineno"> 5444</span>        {</div>
+<div class="line"><a id="l05445" name="l05445"></a><span class="lineno"> 5445</span>            res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>, 1,</div>
+<div class="line"><a id="l05446" name="l05446"></a><span class="lineno"> 5446</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l05447" name="l05447"></a><span class="lineno"> 5447</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l05448" name="l05448"></a><span class="lineno"> 5448</span>                                           0x00, NULL, 0x00,</div>
+<div class="line"><a id="l05449" name="l05449"></a><span class="lineno"> 5449</span>                                           NULL, 0x00, 0x00);                                               <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l05450" name="l05450"></a><span class="lineno"> 5450</span>            <span class="keywordflow">if</span> (res != 0)                                                                                   <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l05451" name="l05451"></a><span class="lineno"> 5451</span>            {</div>
+<div class="line"><a id="l05452" name="l05452"></a><span class="lineno"> 5452</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                                      <span class="comment">/* write enable failed */</span></div>
+<div class="line"><a id="l05453" name="l05453"></a><span class="lineno"> 5453</span>               </div>
+<div class="line"><a id="l05454" name="l05454"></a><span class="lineno"> 5454</span>                <span class="keywordflow">return</span> 1;                                                                                   <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l05455" name="l05455"></a><span class="lineno"> 5455</span>            }</div>
+<div class="line"><a id="l05456" name="l05456"></a><span class="lineno"> 5456</span>            <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                         <span class="comment">/* 3 address mode */</span></div>
+<div class="line"><a id="l05457" name="l05457"></a><span class="lineno"> 5457</span>            {</div>
+<div class="line"><a id="l05458" name="l05458"></a><span class="lineno"> 5458</span>                <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)                                                                <span class="comment">/* &gt;128Mb */</span></div>
+<div class="line"><a id="l05459" name="l05459"></a><span class="lineno"> 5459</span>                {</div>
+<div class="line"><a id="l05460" name="l05460"></a><span class="lineno"> 5460</span>                    buf[0] = (addr &gt;&gt; 24) &amp; 0xFF;                                                           <span class="comment">/* 31 - 24 bits */</span></div>
+<div class="line"><a id="l05461" name="l05461"></a><span class="lineno"> 5461</span>                    res = a_w25qxx_qspi_write_read(handle, 0xC5, 1,</div>
+<div class="line"><a id="l05462" name="l05462"></a><span class="lineno"> 5462</span>                                                   0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l05463" name="l05463"></a><span class="lineno"> 5463</span>                                                   0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l05464" name="l05464"></a><span class="lineno"> 5464</span>                                                   0, (uint8_t *)buf, 0x01,</div>
+<div class="line"><a id="l05465" name="l05465"></a><span class="lineno"> 5465</span>                                                   NULL, 0x00, 1);                                          <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l05466" name="l05466"></a><span class="lineno"> 5466</span>                    <span class="keywordflow">if</span> (res != 0)                                                                           <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l05467" name="l05467"></a><span class="lineno"> 5467</span>                    {</div>
+<div class="line"><a id="l05468" name="l05468"></a><span class="lineno"> 5468</span>                        handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write extended addr register failed.\n&quot;</span>);              <span class="comment">/* write extended addr register failed */</span></div>
+<div class="line"><a id="l05469" name="l05469"></a><span class="lineno"> 5469</span>                       </div>
+<div class="line"><a id="l05470" name="l05470"></a><span class="lineno"> 5470</span>                        <span class="keywordflow">return</span> 1;                                                                           <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l05471" name="l05471"></a><span class="lineno"> 5471</span>                    }</div>
+<div class="line"><a id="l05472" name="l05472"></a><span class="lineno"> 5472</span>                    res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>, 1,</div>
+<div class="line"><a id="l05473" name="l05473"></a><span class="lineno"> 5473</span>                                                   0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l05474" name="l05474"></a><span class="lineno"> 5474</span>                                                   0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l05475" name="l05475"></a><span class="lineno"> 5475</span>                                                   0x00, NULL, 0x00,</div>
+<div class="line"><a id="l05476" name="l05476"></a><span class="lineno"> 5476</span>                                                   NULL, 0x00, 0x00);                                       <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l05477" name="l05477"></a><span class="lineno"> 5477</span>                    <span class="keywordflow">if</span> (res != 0)                                                                           <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l05478" name="l05478"></a><span class="lineno"> 5478</span>                    {</div>
+<div class="line"><a id="l05479" name="l05479"></a><span class="lineno"> 5479</span>                        handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                              <span class="comment">/* write enable failed */</span></div>
+<div class="line"><a id="l05480" name="l05480"></a><span class="lineno"> 5480</span>                       </div>
+<div class="line"><a id="l05481" name="l05481"></a><span class="lineno"> 5481</span>                        <span class="keywordflow">return</span> 1;                                                                           <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l05482" name="l05482"></a><span class="lineno"> 5482</span>                    }</div>
+<div class="line"><a id="l05483" name="l05483"></a><span class="lineno"> 5483</span>                }</div>
+<div class="line"><a id="l05484" name="l05484"></a><span class="lineno"> 5484</span>                res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#a8bfb4e869985f5fa21ea7d1d262f90ad">W25QXX_COMMAND_BLOCK_ERASE_32K</a>, 1,</div>
+<div class="line"><a id="l05485" name="l05485"></a><span class="lineno"> 5485</span>                                               addr, 1, 3,</div>
+<div class="line"><a id="l05486" name="l05486"></a><span class="lineno"> 5486</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l05487" name="l05487"></a><span class="lineno"> 5487</span>                                               0, NULL, 0x00,</div>
+<div class="line"><a id="l05488" name="l05488"></a><span class="lineno"> 5488</span>                                               NULL, 0x00, 0x00);                                           <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l05489" name="l05489"></a><span class="lineno"> 5489</span>                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l05490" name="l05490"></a><span class="lineno"> 5490</span>                {</div>
+<div class="line"><a id="l05491" name="l05491"></a><span class="lineno"> 5491</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: block erase 32k failed.\n&quot;</span>);                               <span class="comment">/* block erase 32k failed */</span></div>
+<div class="line"><a id="l05492" name="l05492"></a><span class="lineno"> 5492</span>                   </div>
+<div class="line"><a id="l05493" name="l05493"></a><span class="lineno"> 5493</span>                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l05494" name="l05494"></a><span class="lineno"> 5494</span>                }</div>
+<div class="line"><a id="l05495" name="l05495"></a><span class="lineno"> 5495</span>            }</div>
+<div class="line"><a id="l05496" name="l05496"></a><span class="lineno"> 5496</span>            <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>) &amp;&amp; (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>))</div>
+<div class="line"><a id="l05497" name="l05497"></a><span class="lineno"> 5497</span>            {</div>
+<div class="line"><a id="l05498" name="l05498"></a><span class="lineno"> 5498</span>                res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#a8bfb4e869985f5fa21ea7d1d262f90ad">W25QXX_COMMAND_BLOCK_ERASE_32K</a>, 1,</div>
+<div class="line"><a id="l05499" name="l05499"></a><span class="lineno"> 5499</span>                                               addr, 1, 4,</div>
+<div class="line"><a id="l05500" name="l05500"></a><span class="lineno"> 5500</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l05501" name="l05501"></a><span class="lineno"> 5501</span>                                               0, NULL, 0x00,</div>
+<div class="line"><a id="l05502" name="l05502"></a><span class="lineno"> 5502</span>                                               NULL, 0x00, 0x00);                                           <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l05503" name="l05503"></a><span class="lineno"> 5503</span>                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l05504" name="l05504"></a><span class="lineno"> 5504</span>                {</div>
+<div class="line"><a id="l05505" name="l05505"></a><span class="lineno"> 5505</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: block erase 32k failed.\n&quot;</span>);                               <span class="comment">/* block erase 32k failed */</span></div>
+<div class="line"><a id="l05506" name="l05506"></a><span class="lineno"> 5506</span>                   </div>
+<div class="line"><a id="l05507" name="l05507"></a><span class="lineno"> 5507</span>                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l05508" name="l05508"></a><span class="lineno"> 5508</span>                }</div>
+<div class="line"><a id="l05509" name="l05509"></a><span class="lineno"> 5509</span>            }</div>
+<div class="line"><a id="l05510" name="l05510"></a><span class="lineno"> 5510</span>            <span class="keywordflow">else</span></div>
+<div class="line"><a id="l05511" name="l05511"></a><span class="lineno"> 5511</span>            {</div>
+<div class="line"><a id="l05512" name="l05512"></a><span class="lineno"> 5512</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: address mode is invalid.\n&quot;</span>);                                  <span class="comment">/* address mode is invalid */</span></div>
+<div class="line"><a id="l05513" name="l05513"></a><span class="lineno"> 5513</span>               </div>
+<div class="line"><a id="l05514" name="l05514"></a><span class="lineno"> 5514</span>                <span class="keywordflow">return</span> 5;                                                                                   <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l05515" name="l05515"></a><span class="lineno"> 5515</span>            }</div>
+<div class="line"><a id="l05516" name="l05516"></a><span class="lineno"> 5516</span>            </div>
+<div class="line"><a id="l05517" name="l05517"></a><span class="lineno"> 5517</span>            timeout = 1600;                                                                                 <span class="comment">/* max 1600 ms */</span></div>
+<div class="line"><a id="l05518" name="l05518"></a><span class="lineno"> 5518</span>            <span class="keywordflow">while</span> (timeout != 0)                                                                            <span class="comment">/* check timeout */</span></div>
+<div class="line"><a id="l05519" name="l05519"></a><span class="lineno"> 5519</span>            {</div>
+<div class="line"><a id="l05520" name="l05520"></a><span class="lineno"> 5520</span>                res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#adf682969c34f4b31a87dd92dd18ccea3">W25QXX_COMMAND_READ_STATUS_REG1</a>, 1,</div>
+<div class="line"><a id="l05521" name="l05521"></a><span class="lineno"> 5521</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l05522" name="l05522"></a><span class="lineno"> 5522</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l05523" name="l05523"></a><span class="lineno"> 5523</span>                                               0, NULL, 0,</div>
+<div class="line"><a id="l05524" name="l05524"></a><span class="lineno"> 5524</span>                                              (uint8_t *)&amp;status, 1, 1);                                    <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l05525" name="l05525"></a><span class="lineno"> 5525</span>                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l05526" name="l05526"></a><span class="lineno"> 5526</span>                {</div>
+<div class="line"><a id="l05527" name="l05527"></a><span class="lineno"> 5527</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: get status1 failed.\n&quot;</span>);                                   <span class="comment">/* get status1 failed */</span></div>
+<div class="line"><a id="l05528" name="l05528"></a><span class="lineno"> 5528</span>                   </div>
+<div class="line"><a id="l05529" name="l05529"></a><span class="lineno"> 5529</span>                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l05530" name="l05530"></a><span class="lineno"> 5530</span>                }</div>
+<div class="line"><a id="l05531" name="l05531"></a><span class="lineno"> 5531</span>                <span class="keywordflow">if</span> ((status &amp; 0x01) == 0x00)                                                                <span class="comment">/* check status */</span></div>
+<div class="line"><a id="l05532" name="l05532"></a><span class="lineno"> 5532</span>                {</div>
+<div class="line"><a id="l05533" name="l05533"></a><span class="lineno"> 5533</span>                    <span class="keywordflow">break</span>;                                                                                  <span class="comment">/* break */</span></div>
+<div class="line"><a id="l05534" name="l05534"></a><span class="lineno"> 5534</span>                }</div>
+<div class="line"><a id="l05535" name="l05535"></a><span class="lineno"> 5535</span>                timeout--;                                                                                  <span class="comment">/* timeout-- */</span></div>
+<div class="line"><a id="l05536" name="l05536"></a><span class="lineno"> 5536</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a406c9433252b7366de417b7a60915c81">delay_ms</a>(1);                                                                        <span class="comment">/* delay 1 ms */</span></div>
+<div class="line"><a id="l05537" name="l05537"></a><span class="lineno"> 5537</span>            }</div>
+<div class="line"><a id="l05538" name="l05538"></a><span class="lineno"> 5538</span>            <span class="keywordflow">if</span> (timeout == 0)</div>
+<div class="line"><a id="l05539" name="l05539"></a><span class="lineno"> 5539</span>            {</div>
+<div class="line"><a id="l05540" name="l05540"></a><span class="lineno"> 5540</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: block erase 32k timeout.\n&quot;</span>);                                  <span class="comment">/* block erase 32k timeout */</span></div>
+<div class="line"><a id="l05541" name="l05541"></a><span class="lineno"> 5541</span>               </div>
+<div class="line"><a id="l05542" name="l05542"></a><span class="lineno"> 5542</span>                <span class="keywordflow">return</span> 6;                                                                                   <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l05543" name="l05543"></a><span class="lineno"> 5543</span>            }</div>
+<div class="line"><a id="l05544" name="l05544"></a><span class="lineno"> 5544</span>        }</div>
+<div class="line"><a id="l05545" name="l05545"></a><span class="lineno"> 5545</span>        <span class="keywordflow">else</span>                                                                                                <span class="comment">/* single spi */</span></div>
+<div class="line"><a id="l05546" name="l05546"></a><span class="lineno"> 5546</span>        {</div>
+<div class="line"><a id="l05547" name="l05547"></a><span class="lineno"> 5547</span>            buf[0] = <a class="code hl_define" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>;                                                           <span class="comment">/* write enable command */</span></div>
+<div class="line"><a id="l05548" name="l05548"></a><span class="lineno"> 5548</span>            res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 1, NULL, 0);                              <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l05549" name="l05549"></a><span class="lineno"> 5549</span>            <span class="keywordflow">if</span> (res != 0)                                                                                   <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l05550" name="l05550"></a><span class="lineno"> 5550</span>            {</div>
+<div class="line"><a id="l05551" name="l05551"></a><span class="lineno"> 5551</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                                      <span class="comment">/* write enable failed */</span></div>
+<div class="line"><a id="l05552" name="l05552"></a><span class="lineno"> 5552</span>               </div>
+<div class="line"><a id="l05553" name="l05553"></a><span class="lineno"> 5553</span>                <span class="keywordflow">return</span> 1;                                                                                   <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l05554" name="l05554"></a><span class="lineno"> 5554</span>            }</div>
+<div class="line"><a id="l05555" name="l05555"></a><span class="lineno"> 5555</span>            <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                         <span class="comment">/* 3 address mode */</span></div>
+<div class="line"><a id="l05556" name="l05556"></a><span class="lineno"> 5556</span>            {</div>
+<div class="line"><a id="l05557" name="l05557"></a><span class="lineno"> 5557</span>                <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)                                                                <span class="comment">/* &gt;128Mb */</span></div>
+<div class="line"><a id="l05558" name="l05558"></a><span class="lineno"> 5558</span>                {</div>
+<div class="line"><a id="l05559" name="l05559"></a><span class="lineno"> 5559</span>                    buf[0] = 0xC5;                                                                          <span class="comment">/* write extended addr register command */</span></div>
+<div class="line"><a id="l05560" name="l05560"></a><span class="lineno"> 5560</span>                    buf[1] = (addr &gt;&gt; 24) &amp; 0xFF;                                                           <span class="comment">/* 31 - 24 bits */</span></div>
+<div class="line"><a id="l05561" name="l05561"></a><span class="lineno"> 5561</span>                    res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 2, NULL, 0);                      <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l05562" name="l05562"></a><span class="lineno"> 5562</span>                    <span class="keywordflow">if</span> (res != 0)                                                                           <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l05563" name="l05563"></a><span class="lineno"> 5563</span>                    {</div>
+<div class="line"><a id="l05564" name="l05564"></a><span class="lineno"> 5564</span>                        handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write extended addr register failed.\n&quot;</span>);              <span class="comment">/* write extended addr register failed */</span></div>
+<div class="line"><a id="l05565" name="l05565"></a><span class="lineno"> 5565</span>                       </div>
+<div class="line"><a id="l05566" name="l05566"></a><span class="lineno"> 5566</span>                        <span class="keywordflow">return</span> 1;                                                                           <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l05567" name="l05567"></a><span class="lineno"> 5567</span>                    }</div>
+<div class="line"><a id="l05568" name="l05568"></a><span class="lineno"> 5568</span>                    buf[0] = <a class="code hl_define" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>;                                                   <span class="comment">/* write enable command */</span></div>
+<div class="line"><a id="l05569" name="l05569"></a><span class="lineno"> 5569</span>                    res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 1, NULL, 0);                      <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l05570" name="l05570"></a><span class="lineno"> 5570</span>                    <span class="keywordflow">if</span> (res != 0)                                                                           <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l05571" name="l05571"></a><span class="lineno"> 5571</span>                    {</div>
+<div class="line"><a id="l05572" name="l05572"></a><span class="lineno"> 5572</span>                        handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                              <span class="comment">/* write enable failed */</span></div>
+<div class="line"><a id="l05573" name="l05573"></a><span class="lineno"> 5573</span>                       </div>
+<div class="line"><a id="l05574" name="l05574"></a><span class="lineno"> 5574</span>                        <span class="keywordflow">return</span> 1;                                                                           <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l05575" name="l05575"></a><span class="lineno"> 5575</span>                    }</div>
+<div class="line"><a id="l05576" name="l05576"></a><span class="lineno"> 5576</span>                }</div>
+<div class="line"><a id="l05577" name="l05577"></a><span class="lineno"> 5577</span>                buf[0] = <a class="code hl_define" href="driver__w25qxx_8c.html#a8bfb4e869985f5fa21ea7d1d262f90ad">W25QXX_COMMAND_BLOCK_ERASE_32K</a>;                                                    <span class="comment">/* block erase 32k command */</span></div>
+<div class="line"><a id="l05578" name="l05578"></a><span class="lineno"> 5578</span>                buf[1] = (addr &gt;&gt; 16) &amp; 0xFF;                                                               <span class="comment">/* 23 - 16 bits */</span></div>
+<div class="line"><a id="l05579" name="l05579"></a><span class="lineno"> 5579</span>                buf[2] = (addr &gt;&gt; 8) &amp; 0xFF;                                                                <span class="comment">/* 15 - 8  bits */</span></div>
+<div class="line"><a id="l05580" name="l05580"></a><span class="lineno"> 5580</span>                buf[3] = (addr &gt;&gt; 0) &amp; 0xFF;                                                                <span class="comment">/* 7 - 0 bits */</span></div>
+<div class="line"><a id="l05581" name="l05581"></a><span class="lineno"> 5581</span>                res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 4, NULL, 0);                          <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l05582" name="l05582"></a><span class="lineno"> 5582</span>                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l05583" name="l05583"></a><span class="lineno"> 5583</span>                {</div>
+<div class="line"><a id="l05584" name="l05584"></a><span class="lineno"> 5584</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: block erase 32k failed.\n&quot;</span>);                               <span class="comment">/* block erase 32k failed */</span></div>
+<div class="line"><a id="l05585" name="l05585"></a><span class="lineno"> 5585</span>                   </div>
+<div class="line"><a id="l05586" name="l05586"></a><span class="lineno"> 5586</span>                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l05587" name="l05587"></a><span class="lineno"> 5587</span>                }</div>
+<div class="line"><a id="l05588" name="l05588"></a><span class="lineno"> 5588</span>            }</div>
+<div class="line"><a id="l05589" name="l05589"></a><span class="lineno"> 5589</span>            <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>)</div>
+<div class="line"><a id="l05590" name="l05590"></a><span class="lineno"> 5590</span>                     &amp;&amp; (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>))</div>
+<div class="line"><a id="l05591" name="l05591"></a><span class="lineno"> 5591</span>            {</div>
+<div class="line"><a id="l05592" name="l05592"></a><span class="lineno"> 5592</span>                buf[0] = <a class="code hl_define" href="driver__w25qxx_8c.html#a8bfb4e869985f5fa21ea7d1d262f90ad">W25QXX_COMMAND_BLOCK_ERASE_32K</a>;                                                    <span class="comment">/* block erase 32k command */</span></div>
+<div class="line"><a id="l05593" name="l05593"></a><span class="lineno"> 5593</span>                buf[1] = (addr &gt;&gt; 24) &amp; 0xFF;                                                               <span class="comment">/* 31 - 24 bits */</span></div>
+<div class="line"><a id="l05594" name="l05594"></a><span class="lineno"> 5594</span>                buf[2] = (addr &gt;&gt; 16) &amp; 0xFF;                                                               <span class="comment">/* 23 - 16 bits */</span></div>
+<div class="line"><a id="l05595" name="l05595"></a><span class="lineno"> 5595</span>                buf[3] = (addr &gt;&gt; 8) &amp; 0xFF;                                                                <span class="comment">/* 15 - 8  bits */</span></div>
+<div class="line"><a id="l05596" name="l05596"></a><span class="lineno"> 5596</span>                buf[4] = (addr &gt;&gt; 0) &amp; 0xFF;                                                                <span class="comment">/* 7 - 0 bits */</span></div>
+<div class="line"><a id="l05597" name="l05597"></a><span class="lineno"> 5597</span>                res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 5, NULL, 0);                          <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l05598" name="l05598"></a><span class="lineno"> 5598</span>                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l05599" name="l05599"></a><span class="lineno"> 5599</span>                {</div>
+<div class="line"><a id="l05600" name="l05600"></a><span class="lineno"> 5600</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: block erase 32k failed.\n&quot;</span>);                               <span class="comment">/* block erase 32k failed */</span></div>
+<div class="line"><a id="l05601" name="l05601"></a><span class="lineno"> 5601</span>                   </div>
+<div class="line"><a id="l05602" name="l05602"></a><span class="lineno"> 5602</span>                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l05603" name="l05603"></a><span class="lineno"> 5603</span>                }</div>
+<div class="line"><a id="l05604" name="l05604"></a><span class="lineno"> 5604</span>            }</div>
+<div class="line"><a id="l05605" name="l05605"></a><span class="lineno"> 5605</span>            <span class="keywordflow">else</span></div>
+<div class="line"><a id="l05606" name="l05606"></a><span class="lineno"> 5606</span>            {</div>
+<div class="line"><a id="l05607" name="l05607"></a><span class="lineno"> 5607</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: address mode is invalid.\n&quot;</span>);                                  <span class="comment">/* address mode is invalid */</span></div>
+<div class="line"><a id="l05608" name="l05608"></a><span class="lineno"> 5608</span>               </div>
+<div class="line"><a id="l05609" name="l05609"></a><span class="lineno"> 5609</span>                <span class="keywordflow">return</span> 5;                                                                                   <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l05610" name="l05610"></a><span class="lineno"> 5610</span>            }</div>
+<div class="line"><a id="l05611" name="l05611"></a><span class="lineno"> 5611</span>            </div>
+<div class="line"><a id="l05612" name="l05612"></a><span class="lineno"> 5612</span>            timeout = 1600;                                                                                 <span class="comment">/* max 1600 ms */</span></div>
+<div class="line"><a id="l05613" name="l05613"></a><span class="lineno"> 5613</span>            <span class="keywordflow">while</span> (timeout != 0)                                                                            <span class="comment">/* check timeout */</span></div>
+<div class="line"><a id="l05614" name="l05614"></a><span class="lineno"> 5614</span>            {</div>
+<div class="line"><a id="l05615" name="l05615"></a><span class="lineno"> 5615</span>                buf[0] = <a class="code hl_define" href="driver__w25qxx_8c.html#adf682969c34f4b31a87dd92dd18ccea3">W25QXX_COMMAND_READ_STATUS_REG1</a>;                                                   <span class="comment">/* read status1 command */</span></div>
+<div class="line"><a id="l05616" name="l05616"></a><span class="lineno"> 5616</span>                res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 1, (uint8_t *)&amp;status, 1);            <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l05617" name="l05617"></a><span class="lineno"> 5617</span>                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l05618" name="l05618"></a><span class="lineno"> 5618</span>                {</div>
+<div class="line"><a id="l05619" name="l05619"></a><span class="lineno"> 5619</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: get status1 failed.\n&quot;</span>);                                   <span class="comment">/* get status1 failed */</span></div>
+<div class="line"><a id="l05620" name="l05620"></a><span class="lineno"> 5620</span>                   </div>
+<div class="line"><a id="l05621" name="l05621"></a><span class="lineno"> 5621</span>                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l05622" name="l05622"></a><span class="lineno"> 5622</span>                }</div>
+<div class="line"><a id="l05623" name="l05623"></a><span class="lineno"> 5623</span>                <span class="keywordflow">if</span> ((status &amp; 0x01) == 0x00)                                                                <span class="comment">/* check status */</span></div>
+<div class="line"><a id="l05624" name="l05624"></a><span class="lineno"> 5624</span>                {</div>
+<div class="line"><a id="l05625" name="l05625"></a><span class="lineno"> 5625</span>                    <span class="keywordflow">break</span>;                                                                                  <span class="comment">/* break */</span></div>
+<div class="line"><a id="l05626" name="l05626"></a><span class="lineno"> 5626</span>                }</div>
+<div class="line"><a id="l05627" name="l05627"></a><span class="lineno"> 5627</span>                timeout--;                                                                                  <span class="comment">/* timeout-- */</span></div>
+<div class="line"><a id="l05628" name="l05628"></a><span class="lineno"> 5628</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a406c9433252b7366de417b7a60915c81">delay_ms</a>(1);                                                                        <span class="comment">/* delay 1 ms */</span></div>
+<div class="line"><a id="l05629" name="l05629"></a><span class="lineno"> 5629</span>            }</div>
+<div class="line"><a id="l05630" name="l05630"></a><span class="lineno"> 5630</span>            <span class="keywordflow">if</span> (timeout == 0)</div>
+<div class="line"><a id="l05631" name="l05631"></a><span class="lineno"> 5631</span>            {</div>
+<div class="line"><a id="l05632" name="l05632"></a><span class="lineno"> 5632</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: block erase 32k timeout.\n&quot;</span>);                                  <span class="comment">/* block erase 32k timeout */</span></div>
+<div class="line"><a id="l05633" name="l05633"></a><span class="lineno"> 5633</span>               </div>
+<div class="line"><a id="l05634" name="l05634"></a><span class="lineno"> 5634</span>                <span class="keywordflow">return</span> 6;                                                                                   <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l05635" name="l05635"></a><span class="lineno"> 5635</span>            }</div>
+<div class="line"><a id="l05636" name="l05636"></a><span class="lineno"> 5636</span>        }</div>
+<div class="line"><a id="l05637" name="l05637"></a><span class="lineno"> 5637</span>    }</div>
+<div class="line"><a id="l05638" name="l05638"></a><span class="lineno"> 5638</span>    <span class="keywordflow">else</span></div>
+<div class="line"><a id="l05639" name="l05639"></a><span class="lineno"> 5639</span>    {</div>
+<div class="line"><a id="l05640" name="l05640"></a><span class="lineno"> 5640</span>        res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>, 4,</div>
+<div class="line"><a id="l05641" name="l05641"></a><span class="lineno"> 5641</span>                                       0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l05642" name="l05642"></a><span class="lineno"> 5642</span>                                       0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l05643" name="l05643"></a><span class="lineno"> 5643</span>                                       0x00, NULL, 0x00,</div>
+<div class="line"><a id="l05644" name="l05644"></a><span class="lineno"> 5644</span>                                       NULL, 0x00, 0x00);                                                   <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l05645" name="l05645"></a><span class="lineno"> 5645</span>        <span class="keywordflow">if</span> (res != 0)                                                                                       <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l05646" name="l05646"></a><span class="lineno"> 5646</span>        {</div>
+<div class="line"><a id="l05647" name="l05647"></a><span class="lineno"> 5647</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                                          <span class="comment">/* write enable failed */</span></div>
+<div class="line"><a id="l05648" name="l05648"></a><span class="lineno"> 5648</span>           </div>
+<div class="line"><a id="l05649" name="l05649"></a><span class="lineno"> 5649</span>            <span class="keywordflow">return</span> 1;                                                                                       <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l05650" name="l05650"></a><span class="lineno"> 5650</span>        }</div>
+<div class="line"><a id="l05651" name="l05651"></a><span class="lineno"> 5651</span>        <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                             <span class="comment">/* 3 address mode */</span></div>
+<div class="line"><a id="l05652" name="l05652"></a><span class="lineno"> 5652</span>        {</div>
+<div class="line"><a id="l05653" name="l05653"></a><span class="lineno"> 5653</span>            <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)                                                                    <span class="comment">/* &gt;128Mb */</span></div>
+<div class="line"><a id="l05654" name="l05654"></a><span class="lineno"> 5654</span>            {</div>
+<div class="line"><a id="l05655" name="l05655"></a><span class="lineno"> 5655</span>                buf[0] = (addr &gt;&gt; 24) &amp; 0xFF;                                                               <span class="comment">/* 31 - 24 bits */</span></div>
+<div class="line"><a id="l05656" name="l05656"></a><span class="lineno"> 5656</span>                res = a_w25qxx_qspi_write_read(handle, 0xC5, 4,</div>
+<div class="line"><a id="l05657" name="l05657"></a><span class="lineno"> 5657</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l05658" name="l05658"></a><span class="lineno"> 5658</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l05659" name="l05659"></a><span class="lineno"> 5659</span>                                               0, (uint8_t *)buf, 0x01,</div>
+<div class="line"><a id="l05660" name="l05660"></a><span class="lineno"> 5660</span>                                               NULL, 0x00, 4);                                              <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l05661" name="l05661"></a><span class="lineno"> 5661</span>                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l05662" name="l05662"></a><span class="lineno"> 5662</span>                {</div>
+<div class="line"><a id="l05663" name="l05663"></a><span class="lineno"> 5663</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write extended addr register failed.\n&quot;</span>);                  <span class="comment">/* write extended addr register failed */</span></div>
+<div class="line"><a id="l05664" name="l05664"></a><span class="lineno"> 5664</span>                   </div>
+<div class="line"><a id="l05665" name="l05665"></a><span class="lineno"> 5665</span>                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l05666" name="l05666"></a><span class="lineno"> 5666</span>                }</div>
+<div class="line"><a id="l05667" name="l05667"></a><span class="lineno"> 5667</span>                res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>, 4,</div>
+<div class="line"><a id="l05668" name="l05668"></a><span class="lineno"> 5668</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l05669" name="l05669"></a><span class="lineno"> 5669</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l05670" name="l05670"></a><span class="lineno"> 5670</span>                                               0x00, NULL, 0x00,</div>
+<div class="line"><a id="l05671" name="l05671"></a><span class="lineno"> 5671</span>                                               NULL, 0x00, 0x00);                                           <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l05672" name="l05672"></a><span class="lineno"> 5672</span>                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l05673" name="l05673"></a><span class="lineno"> 5673</span>                {</div>
+<div class="line"><a id="l05674" name="l05674"></a><span class="lineno"> 5674</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                                  <span class="comment">/* write enable failed */</span></div>
+<div class="line"><a id="l05675" name="l05675"></a><span class="lineno"> 5675</span>                   </div>
+<div class="line"><a id="l05676" name="l05676"></a><span class="lineno"> 5676</span>                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l05677" name="l05677"></a><span class="lineno"> 5677</span>                }</div>
+<div class="line"><a id="l05678" name="l05678"></a><span class="lineno"> 5678</span>            }</div>
+<div class="line"><a id="l05679" name="l05679"></a><span class="lineno"> 5679</span>            res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#a8bfb4e869985f5fa21ea7d1d262f90ad">W25QXX_COMMAND_BLOCK_ERASE_32K</a>, 4,</div>
+<div class="line"><a id="l05680" name="l05680"></a><span class="lineno"> 5680</span>                                           addr, 4, 3,</div>
+<div class="line"><a id="l05681" name="l05681"></a><span class="lineno"> 5681</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l05682" name="l05682"></a><span class="lineno"> 5682</span>                                           0, NULL, 0x00,</div>
+<div class="line"><a id="l05683" name="l05683"></a><span class="lineno"> 5683</span>                                           NULL, 0x00, 0x00);                                               <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l05684" name="l05684"></a><span class="lineno"> 5684</span>            <span class="keywordflow">if</span> (res != 0)                                                                                   <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l05685" name="l05685"></a><span class="lineno"> 5685</span>            {</div>
+<div class="line"><a id="l05686" name="l05686"></a><span class="lineno"> 5686</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: block erase 32k failed.\n&quot;</span>);                                   <span class="comment">/* block erase 32k failed */</span></div>
+<div class="line"><a id="l05687" name="l05687"></a><span class="lineno"> 5687</span>               </div>
+<div class="line"><a id="l05688" name="l05688"></a><span class="lineno"> 5688</span>                <span class="keywordflow">return</span> 1;                                                                                   <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l05689" name="l05689"></a><span class="lineno"> 5689</span>            }</div>
+<div class="line"><a id="l05690" name="l05690"></a><span class="lineno"> 5690</span>        }</div>
+<div class="line"><a id="l05691" name="l05691"></a><span class="lineno"> 5691</span>        <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>) &amp;&amp; (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>))</div>
+<div class="line"><a id="l05692" name="l05692"></a><span class="lineno"> 5692</span>        {</div>
+<div class="line"><a id="l05693" name="l05693"></a><span class="lineno"> 5693</span>            res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#a8bfb4e869985f5fa21ea7d1d262f90ad">W25QXX_COMMAND_BLOCK_ERASE_32K</a>, 4,</div>
+<div class="line"><a id="l05694" name="l05694"></a><span class="lineno"> 5694</span>                                           addr, 4, 4,</div>
+<div class="line"><a id="l05695" name="l05695"></a><span class="lineno"> 5695</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l05696" name="l05696"></a><span class="lineno"> 5696</span>                                           0, NULL, 0x00,</div>
+<div class="line"><a id="l05697" name="l05697"></a><span class="lineno"> 5697</span>                                           NULL, 0x00, 0x00);                                               <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l05698" name="l05698"></a><span class="lineno"> 5698</span>            <span class="keywordflow">if</span> (res != 0)                                                                                   <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l05699" name="l05699"></a><span class="lineno"> 5699</span>            {</div>
+<div class="line"><a id="l05700" name="l05700"></a><span class="lineno"> 5700</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: block erase 32k failed.\n&quot;</span>);                                   <span class="comment">/* block erase 32k failed */</span></div>
+<div class="line"><a id="l05701" name="l05701"></a><span class="lineno"> 5701</span>               </div>
+<div class="line"><a id="l05702" name="l05702"></a><span class="lineno"> 5702</span>                <span class="keywordflow">return</span> 1;                                                                                   <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l05703" name="l05703"></a><span class="lineno"> 5703</span>            }</div>
+<div class="line"><a id="l05704" name="l05704"></a><span class="lineno"> 5704</span>        }</div>
+<div class="line"><a id="l05705" name="l05705"></a><span class="lineno"> 5705</span>        <span class="keywordflow">else</span></div>
+<div class="line"><a id="l05706" name="l05706"></a><span class="lineno"> 5706</span>        {</div>
+<div class="line"><a id="l05707" name="l05707"></a><span class="lineno"> 5707</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: address mode is invalid.\n&quot;</span>);                                      <span class="comment">/* address mode is invalid */</span></div>
+<div class="line"><a id="l05708" name="l05708"></a><span class="lineno"> 5708</span>           </div>
+<div class="line"><a id="l05709" name="l05709"></a><span class="lineno"> 5709</span>            <span class="keywordflow">return</span> 5;                                                                                       <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l05710" name="l05710"></a><span class="lineno"> 5710</span>        }</div>
+<div class="line"><a id="l05711" name="l05711"></a><span class="lineno"> 5711</span>        </div>
+<div class="line"><a id="l05712" name="l05712"></a><span class="lineno"> 5712</span>        timeout = 1600;                                                                                     <span class="comment">/* max 1600 ms */</span></div>
+<div class="line"><a id="l05713" name="l05713"></a><span class="lineno"> 5713</span>        <span class="keywordflow">while</span> (timeout != 0)                                                                                <span class="comment">/* check timeout */</span></div>
+<div class="line"><a id="l05714" name="l05714"></a><span class="lineno"> 5714</span>        {</div>
+<div class="line"><a id="l05715" name="l05715"></a><span class="lineno"> 5715</span>            res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#adf682969c34f4b31a87dd92dd18ccea3">W25QXX_COMMAND_READ_STATUS_REG1</a>, 4,</div>
+<div class="line"><a id="l05716" name="l05716"></a><span class="lineno"> 5716</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l05717" name="l05717"></a><span class="lineno"> 5717</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l05718" name="l05718"></a><span class="lineno"> 5718</span>                                           0, NULL, 0,</div>
+<div class="line"><a id="l05719" name="l05719"></a><span class="lineno"> 5719</span>                                          (uint8_t *)&amp;status, 1, 4);                                        <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l05720" name="l05720"></a><span class="lineno"> 5720</span>            <span class="keywordflow">if</span> (res != 0)                                                                                   <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l05721" name="l05721"></a><span class="lineno"> 5721</span>            {</div>
+<div class="line"><a id="l05722" name="l05722"></a><span class="lineno"> 5722</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: get status1 failed.\n&quot;</span>);                                       <span class="comment">/* get status1 failed */</span></div>
+<div class="line"><a id="l05723" name="l05723"></a><span class="lineno"> 5723</span>               </div>
+<div class="line"><a id="l05724" name="l05724"></a><span class="lineno"> 5724</span>                <span class="keywordflow">return</span> 1;                                                                                   <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l05725" name="l05725"></a><span class="lineno"> 5725</span>            }</div>
+<div class="line"><a id="l05726" name="l05726"></a><span class="lineno"> 5726</span>            <span class="keywordflow">if</span> ((status &amp; 0x01) == 0x00)                                                                    <span class="comment">/* check status */</span></div>
+<div class="line"><a id="l05727" name="l05727"></a><span class="lineno"> 5727</span>            {</div>
+<div class="line"><a id="l05728" name="l05728"></a><span class="lineno"> 5728</span>                <span class="keywordflow">break</span>;                                                                                      <span class="comment">/* break */</span></div>
+<div class="line"><a id="l05729" name="l05729"></a><span class="lineno"> 5729</span>            }</div>
+<div class="line"><a id="l05730" name="l05730"></a><span class="lineno"> 5730</span>            timeout--;                                                                                      <span class="comment">/* timeout-- */</span></div>
+<div class="line"><a id="l05731" name="l05731"></a><span class="lineno"> 5731</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a406c9433252b7366de417b7a60915c81">delay_ms</a>(1);                                                                            <span class="comment">/* delay 1 ms */</span></div>
+<div class="line"><a id="l05732" name="l05732"></a><span class="lineno"> 5732</span>        }</div>
+<div class="line"><a id="l05733" name="l05733"></a><span class="lineno"> 5733</span>        <span class="keywordflow">if</span> (timeout == 0)</div>
+<div class="line"><a id="l05734" name="l05734"></a><span class="lineno"> 5734</span>        {</div>
+<div class="line"><a id="l05735" name="l05735"></a><span class="lineno"> 5735</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: block erase 32k timeout.\n&quot;</span>);                                      <span class="comment">/* block erase 32k timeout */</span></div>
+<div class="line"><a id="l05736" name="l05736"></a><span class="lineno"> 5736</span>           </div>
+<div class="line"><a id="l05737" name="l05737"></a><span class="lineno"> 5737</span>            <span class="keywordflow">return</span> 6;                                                                                       <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l05738" name="l05738"></a><span class="lineno"> 5738</span>        }</div>
+<div class="line"><a id="l05739" name="l05739"></a><span class="lineno"> 5739</span>    }</div>
+<div class="line"><a id="l05740" name="l05740"></a><span class="lineno"> 5740</span>    </div>
+<div class="line"><a id="l05741" name="l05741"></a><span class="lineno"> 5741</span>    <span class="keywordflow">return</span> 0;                                                                                               <span class="comment">/* success return 0 */</span></div>
+<div class="line"><a id="l05742" name="l05742"></a><span class="lineno"> 5742</span>}</div>
+</div>
+<div class="line"><a id="l05743" name="l05743"></a><span class="lineno"> 5743</span> </div>
+<div class="foldopen" id="foldopen05758" data-start="{" data-end="}">
+<div class="line"><a id="l05758" name="l05758"></a><span class="lineno"><a class="line" href="group__w25qxx__basic__driver.html#gaf53bc5f6073482b9b74efd417ec7ac83"> 5758</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__basic__driver.html#gaf53bc5f6073482b9b74efd417ec7ac83">w25qxx_block_erase_64k</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint32_t addr)</div>
+<div class="line"><a id="l05759" name="l05759"></a><span class="lineno"> 5759</span>{</div>
+<div class="line"><a id="l05760" name="l05760"></a><span class="lineno"> 5760</span>    uint8_t res;</div>
+<div class="line"><a id="l05761" name="l05761"></a><span class="lineno"> 5761</span>    uint8_t status;</div>
+<div class="line"><a id="l05762" name="l05762"></a><span class="lineno"> 5762</span>    uint32_t timeout;</div>
+<div class="line"><a id="l05763" name="l05763"></a><span class="lineno"> 5763</span>    uint8_t buf[5];</div>
+<div class="line"><a id="l05764" name="l05764"></a><span class="lineno"> 5764</span>    </div>
+<div class="line"><a id="l05765" name="l05765"></a><span class="lineno"> 5765</span>    <span class="keywordflow">if</span> (handle == NULL)                                                                                     <span class="comment">/* check handle */</span></div>
+<div class="line"><a id="l05766" name="l05766"></a><span class="lineno"> 5766</span>    {</div>
+<div class="line"><a id="l05767" name="l05767"></a><span class="lineno"> 5767</span>        <span class="keywordflow">return</span> 2;                                                                                           <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l05768" name="l05768"></a><span class="lineno"> 5768</span>    }   </div>
+<div class="line"><a id="l05769" name="l05769"></a><span class="lineno"> 5769</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">inited</a> != 1)                                                                                <span class="comment">/* check handle initialization */</span></div>
+<div class="line"><a id="l05770" name="l05770"></a><span class="lineno"> 5770</span>    {</div>
+<div class="line"><a id="l05771" name="l05771"></a><span class="lineno"> 5771</span>        <span class="keywordflow">return</span> 3;                                                                                           <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l05772" name="l05772"></a><span class="lineno"> 5772</span>    }</div>
+<div class="line"><a id="l05773" name="l05773"></a><span class="lineno"> 5773</span>    <span class="keywordflow">if</span> ((addr % (64 * 1024)) != 0)                                                                          <span class="comment">/* check address */</span></div>
+<div class="line"><a id="l05774" name="l05774"></a><span class="lineno"> 5774</span>    {</div>
+<div class="line"><a id="l05775" name="l05775"></a><span class="lineno"> 5775</span>        handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: addr is invalid.\n&quot;</span>);                                                  <span class="comment">/* addr is invalid */</span></div>
+<div class="line"><a id="l05776" name="l05776"></a><span class="lineno"> 5776</span>       </div>
+<div class="line"><a id="l05777" name="l05777"></a><span class="lineno"> 5777</span>        <span class="keywordflow">return</span> 4;                                                                                           <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l05778" name="l05778"></a><span class="lineno"> 5778</span>    }</div>
+<div class="line"><a id="l05779" name="l05779"></a><span class="lineno"> 5779</span>    </div>
+<div class="line"><a id="l05780" name="l05780"></a><span class="lineno"> 5780</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>)                                                           <span class="comment">/* spi interface */</span></div>
+<div class="line"><a id="l05781" name="l05781"></a><span class="lineno"> 5781</span>    {</div>
+<div class="line"><a id="l05782" name="l05782"></a><span class="lineno"> 5782</span>        <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">dual_quad_spi_enable</a> != 0)                                                              <span class="comment">/* enable dual quad spi */</span></div>
+<div class="line"><a id="l05783" name="l05783"></a><span class="lineno"> 5783</span>        {</div>
+<div class="line"><a id="l05784" name="l05784"></a><span class="lineno"> 5784</span>            res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>, 1,</div>
+<div class="line"><a id="l05785" name="l05785"></a><span class="lineno"> 5785</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l05786" name="l05786"></a><span class="lineno"> 5786</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l05787" name="l05787"></a><span class="lineno"> 5787</span>                                           0x00, NULL, 0x00,</div>
+<div class="line"><a id="l05788" name="l05788"></a><span class="lineno"> 5788</span>                                           NULL, 0x00, 0x00);                                               <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l05789" name="l05789"></a><span class="lineno"> 5789</span>            <span class="keywordflow">if</span> (res != 0)                                                                                   <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l05790" name="l05790"></a><span class="lineno"> 5790</span>            {</div>
+<div class="line"><a id="l05791" name="l05791"></a><span class="lineno"> 5791</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                                      <span class="comment">/* write enable failed */</span></div>
+<div class="line"><a id="l05792" name="l05792"></a><span class="lineno"> 5792</span>               </div>
+<div class="line"><a id="l05793" name="l05793"></a><span class="lineno"> 5793</span>                <span class="keywordflow">return</span> 1;                                                                                   <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l05794" name="l05794"></a><span class="lineno"> 5794</span>            }</div>
+<div class="line"><a id="l05795" name="l05795"></a><span class="lineno"> 5795</span>            <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                         <span class="comment">/* 3 address mode */</span></div>
+<div class="line"><a id="l05796" name="l05796"></a><span class="lineno"> 5796</span>            {</div>
+<div class="line"><a id="l05797" name="l05797"></a><span class="lineno"> 5797</span>                <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)                                                                <span class="comment">/* &gt;128Mb */</span></div>
+<div class="line"><a id="l05798" name="l05798"></a><span class="lineno"> 5798</span>                {</div>
+<div class="line"><a id="l05799" name="l05799"></a><span class="lineno"> 5799</span>                    buf[0] = (addr &gt;&gt; 24) &amp; 0xFF;                                                           <span class="comment">/* 31 - 24 bits */</span></div>
+<div class="line"><a id="l05800" name="l05800"></a><span class="lineno"> 5800</span>                    res = a_w25qxx_qspi_write_read(handle, 0xC5, 1,</div>
+<div class="line"><a id="l05801" name="l05801"></a><span class="lineno"> 5801</span>                                                   0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l05802" name="l05802"></a><span class="lineno"> 5802</span>                                                   0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l05803" name="l05803"></a><span class="lineno"> 5803</span>                                                   0, (uint8_t *)buf, 0x01,</div>
+<div class="line"><a id="l05804" name="l05804"></a><span class="lineno"> 5804</span>                                                   NULL, 0x00, 1);                                          <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l05805" name="l05805"></a><span class="lineno"> 5805</span>                    <span class="keywordflow">if</span> (res != 0)                                                                           <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l05806" name="l05806"></a><span class="lineno"> 5806</span>                    {</div>
+<div class="line"><a id="l05807" name="l05807"></a><span class="lineno"> 5807</span>                        handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write extended addr register failed.\n&quot;</span>);              <span class="comment">/* write extended addr register failed */</span></div>
+<div class="line"><a id="l05808" name="l05808"></a><span class="lineno"> 5808</span>                       </div>
+<div class="line"><a id="l05809" name="l05809"></a><span class="lineno"> 5809</span>                        <span class="keywordflow">return</span> 1;                                                                           <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l05810" name="l05810"></a><span class="lineno"> 5810</span>                    }</div>
+<div class="line"><a id="l05811" name="l05811"></a><span class="lineno"> 5811</span>                    res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>, 1,</div>
+<div class="line"><a id="l05812" name="l05812"></a><span class="lineno"> 5812</span>                                                   0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l05813" name="l05813"></a><span class="lineno"> 5813</span>                                                   0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l05814" name="l05814"></a><span class="lineno"> 5814</span>                                                   0x00, NULL, 0x00,</div>
+<div class="line"><a id="l05815" name="l05815"></a><span class="lineno"> 5815</span>                                                   NULL, 0x00, 0x00);                                       <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l05816" name="l05816"></a><span class="lineno"> 5816</span>                    <span class="keywordflow">if</span> (res != 0)                                                                           <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l05817" name="l05817"></a><span class="lineno"> 5817</span>                    {</div>
+<div class="line"><a id="l05818" name="l05818"></a><span class="lineno"> 5818</span>                        handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                              <span class="comment">/* write enable failed */</span></div>
+<div class="line"><a id="l05819" name="l05819"></a><span class="lineno"> 5819</span>                       </div>
+<div class="line"><a id="l05820" name="l05820"></a><span class="lineno"> 5820</span>                        <span class="keywordflow">return</span> 1;                                                                           <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l05821" name="l05821"></a><span class="lineno"> 5821</span>                    }</div>
+<div class="line"><a id="l05822" name="l05822"></a><span class="lineno"> 5822</span>                }</div>
+<div class="line"><a id="l05823" name="l05823"></a><span class="lineno"> 5823</span>                res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#a4c5a1ed46f4d662a61bc06573ab548a0">W25QXX_COMMAND_BLOCK_ERASE_64K</a>, 1,</div>
+<div class="line"><a id="l05824" name="l05824"></a><span class="lineno"> 5824</span>                                               addr, 1, 3,</div>
+<div class="line"><a id="l05825" name="l05825"></a><span class="lineno"> 5825</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l05826" name="l05826"></a><span class="lineno"> 5826</span>                                               0, NULL, 0x00,</div>
+<div class="line"><a id="l05827" name="l05827"></a><span class="lineno"> 5827</span>                                               NULL, 0x00, 0x00);                                           <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l05828" name="l05828"></a><span class="lineno"> 5828</span>                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l05829" name="l05829"></a><span class="lineno"> 5829</span>                {</div>
+<div class="line"><a id="l05830" name="l05830"></a><span class="lineno"> 5830</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: block erase 64k failed.\n&quot;</span>);                               <span class="comment">/* block erase 64k failed */</span></div>
+<div class="line"><a id="l05831" name="l05831"></a><span class="lineno"> 5831</span>                   </div>
+<div class="line"><a id="l05832" name="l05832"></a><span class="lineno"> 5832</span>                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l05833" name="l05833"></a><span class="lineno"> 5833</span>                }</div>
+<div class="line"><a id="l05834" name="l05834"></a><span class="lineno"> 5834</span>            }</div>
+<div class="line"><a id="l05835" name="l05835"></a><span class="lineno"> 5835</span>            <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>) &amp;&amp; (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>))</div>
+<div class="line"><a id="l05836" name="l05836"></a><span class="lineno"> 5836</span>            {</div>
+<div class="line"><a id="l05837" name="l05837"></a><span class="lineno"> 5837</span>                res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#a4c5a1ed46f4d662a61bc06573ab548a0">W25QXX_COMMAND_BLOCK_ERASE_64K</a>, 1,</div>
+<div class="line"><a id="l05838" name="l05838"></a><span class="lineno"> 5838</span>                                               addr, 1, 4,</div>
+<div class="line"><a id="l05839" name="l05839"></a><span class="lineno"> 5839</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l05840" name="l05840"></a><span class="lineno"> 5840</span>                                               0, NULL, 0x00,</div>
+<div class="line"><a id="l05841" name="l05841"></a><span class="lineno"> 5841</span>                                               NULL, 0x00, 0x00);                                           <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l05842" name="l05842"></a><span class="lineno"> 5842</span>                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l05843" name="l05843"></a><span class="lineno"> 5843</span>                {</div>
+<div class="line"><a id="l05844" name="l05844"></a><span class="lineno"> 5844</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: block erase 64k failed.\n&quot;</span>);                               <span class="comment">/* block erase 64k failed */</span></div>
+<div class="line"><a id="l05845" name="l05845"></a><span class="lineno"> 5845</span>                   </div>
+<div class="line"><a id="l05846" name="l05846"></a><span class="lineno"> 5846</span>                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l05847" name="l05847"></a><span class="lineno"> 5847</span>                }</div>
+<div class="line"><a id="l05848" name="l05848"></a><span class="lineno"> 5848</span>            }</div>
+<div class="line"><a id="l05849" name="l05849"></a><span class="lineno"> 5849</span>            <span class="keywordflow">else</span></div>
+<div class="line"><a id="l05850" name="l05850"></a><span class="lineno"> 5850</span>            {</div>
+<div class="line"><a id="l05851" name="l05851"></a><span class="lineno"> 5851</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: address mode is invalid.\n&quot;</span>);                                  <span class="comment">/* address mode is invalid */</span></div>
+<div class="line"><a id="l05852" name="l05852"></a><span class="lineno"> 5852</span>               </div>
+<div class="line"><a id="l05853" name="l05853"></a><span class="lineno"> 5853</span>                <span class="keywordflow">return</span> 5;                                                                                   <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l05854" name="l05854"></a><span class="lineno"> 5854</span>            }</div>
+<div class="line"><a id="l05855" name="l05855"></a><span class="lineno"> 5855</span>            </div>
+<div class="line"><a id="l05856" name="l05856"></a><span class="lineno"> 5856</span>            timeout = 2000;                                                                                 <span class="comment">/* max 2000 ms */</span></div>
+<div class="line"><a id="l05857" name="l05857"></a><span class="lineno"> 5857</span>            <span class="keywordflow">while</span> (timeout != 0)                                                                            <span class="comment">/* check timeout */</span></div>
+<div class="line"><a id="l05858" name="l05858"></a><span class="lineno"> 5858</span>            {</div>
+<div class="line"><a id="l05859" name="l05859"></a><span class="lineno"> 5859</span>                res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#adf682969c34f4b31a87dd92dd18ccea3">W25QXX_COMMAND_READ_STATUS_REG1</a>, 1,</div>
+<div class="line"><a id="l05860" name="l05860"></a><span class="lineno"> 5860</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l05861" name="l05861"></a><span class="lineno"> 5861</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l05862" name="l05862"></a><span class="lineno"> 5862</span>                                               0, NULL, 0,</div>
+<div class="line"><a id="l05863" name="l05863"></a><span class="lineno"> 5863</span>                                              (uint8_t *)&amp;status, 1, 1);                                    <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l05864" name="l05864"></a><span class="lineno"> 5864</span>                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l05865" name="l05865"></a><span class="lineno"> 5865</span>                {</div>
+<div class="line"><a id="l05866" name="l05866"></a><span class="lineno"> 5866</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: get status1 failed.\n&quot;</span>);                                   <span class="comment">/* get status1 failed */</span></div>
+<div class="line"><a id="l05867" name="l05867"></a><span class="lineno"> 5867</span>                   </div>
+<div class="line"><a id="l05868" name="l05868"></a><span class="lineno"> 5868</span>                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l05869" name="l05869"></a><span class="lineno"> 5869</span>                }</div>
+<div class="line"><a id="l05870" name="l05870"></a><span class="lineno"> 5870</span>                <span class="keywordflow">if</span> ((status &amp; 0x01) == 0x00)                                                                <span class="comment">/* check status */</span></div>
+<div class="line"><a id="l05871" name="l05871"></a><span class="lineno"> 5871</span>                {</div>
+<div class="line"><a id="l05872" name="l05872"></a><span class="lineno"> 5872</span>                    <span class="keywordflow">break</span>;                                                                                  <span class="comment">/* break */</span></div>
+<div class="line"><a id="l05873" name="l05873"></a><span class="lineno"> 5873</span>                }</div>
+<div class="line"><a id="l05874" name="l05874"></a><span class="lineno"> 5874</span>                timeout--;                                                                                  <span class="comment">/* timeout-- */</span></div>
+<div class="line"><a id="l05875" name="l05875"></a><span class="lineno"> 5875</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a406c9433252b7366de417b7a60915c81">delay_ms</a>(1);                                                                        <span class="comment">/* delay 1 ms */</span></div>
+<div class="line"><a id="l05876" name="l05876"></a><span class="lineno"> 5876</span>            }</div>
+<div class="line"><a id="l05877" name="l05877"></a><span class="lineno"> 5877</span>            <span class="keywordflow">if</span> (timeout == 0)</div>
+<div class="line"><a id="l05878" name="l05878"></a><span class="lineno"> 5878</span>            {</div>
+<div class="line"><a id="l05879" name="l05879"></a><span class="lineno"> 5879</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: block erase 64k timeout.\n&quot;</span>);                                  <span class="comment">/* block erase 64k timeout */</span></div>
+<div class="line"><a id="l05880" name="l05880"></a><span class="lineno"> 5880</span>               </div>
+<div class="line"><a id="l05881" name="l05881"></a><span class="lineno"> 5881</span>                <span class="keywordflow">return</span> 6;                                                                                   <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l05882" name="l05882"></a><span class="lineno"> 5882</span>            }</div>
+<div class="line"><a id="l05883" name="l05883"></a><span class="lineno"> 5883</span>        }</div>
+<div class="line"><a id="l05884" name="l05884"></a><span class="lineno"> 5884</span>        <span class="keywordflow">else</span>                                                                                                <span class="comment">/* single spi */</span></div>
+<div class="line"><a id="l05885" name="l05885"></a><span class="lineno"> 5885</span>        {</div>
+<div class="line"><a id="l05886" name="l05886"></a><span class="lineno"> 5886</span>            buf[0] = <a class="code hl_define" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>;                                                           <span class="comment">/* write enable command */</span></div>
+<div class="line"><a id="l05887" name="l05887"></a><span class="lineno"> 5887</span>            res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 1, NULL, 0);                              <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l05888" name="l05888"></a><span class="lineno"> 5888</span>            <span class="keywordflow">if</span> (res != 0)                                                                                   <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l05889" name="l05889"></a><span class="lineno"> 5889</span>            {</div>
+<div class="line"><a id="l05890" name="l05890"></a><span class="lineno"> 5890</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                                      <span class="comment">/* write enable failed */</span></div>
+<div class="line"><a id="l05891" name="l05891"></a><span class="lineno"> 5891</span>               </div>
+<div class="line"><a id="l05892" name="l05892"></a><span class="lineno"> 5892</span>                <span class="keywordflow">return</span> 1;                                                                                   <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l05893" name="l05893"></a><span class="lineno"> 5893</span>            }</div>
+<div class="line"><a id="l05894" name="l05894"></a><span class="lineno"> 5894</span>            <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                         <span class="comment">/* 3 address mode */</span></div>
+<div class="line"><a id="l05895" name="l05895"></a><span class="lineno"> 5895</span>            {</div>
+<div class="line"><a id="l05896" name="l05896"></a><span class="lineno"> 5896</span>                <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)                                                                <span class="comment">/* &gt;128Mb */</span></div>
+<div class="line"><a id="l05897" name="l05897"></a><span class="lineno"> 5897</span>                {</div>
+<div class="line"><a id="l05898" name="l05898"></a><span class="lineno"> 5898</span>                    buf[0] = 0xC5;                                                                          <span class="comment">/* write extended addr register command */</span></div>
+<div class="line"><a id="l05899" name="l05899"></a><span class="lineno"> 5899</span>                    buf[1] = (addr &gt;&gt; 24) &amp; 0xFF;                                                           <span class="comment">/* 31 - 24 bits */</span></div>
+<div class="line"><a id="l05900" name="l05900"></a><span class="lineno"> 5900</span>                    res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 2, NULL, 0);                      <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l05901" name="l05901"></a><span class="lineno"> 5901</span>                    <span class="keywordflow">if</span> (res != 0)                                                                           <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l05902" name="l05902"></a><span class="lineno"> 5902</span>                    {</div>
+<div class="line"><a id="l05903" name="l05903"></a><span class="lineno"> 5903</span>                        handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write extended addr register failed.\n&quot;</span>);              <span class="comment">/* write extended addr register failed */</span></div>
+<div class="line"><a id="l05904" name="l05904"></a><span class="lineno"> 5904</span>                       </div>
+<div class="line"><a id="l05905" name="l05905"></a><span class="lineno"> 5905</span>                        <span class="keywordflow">return</span> 1;                                                                           <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l05906" name="l05906"></a><span class="lineno"> 5906</span>                    }</div>
+<div class="line"><a id="l05907" name="l05907"></a><span class="lineno"> 5907</span>                    buf[0] = <a class="code hl_define" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>;                                                   <span class="comment">/* write enable command */</span></div>
+<div class="line"><a id="l05908" name="l05908"></a><span class="lineno"> 5908</span>                    res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 1, NULL, 0);                      <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l05909" name="l05909"></a><span class="lineno"> 5909</span>                    <span class="keywordflow">if</span> (res != 0)                                                                           <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l05910" name="l05910"></a><span class="lineno"> 5910</span>                    {</div>
+<div class="line"><a id="l05911" name="l05911"></a><span class="lineno"> 5911</span>                        handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                              <span class="comment">/* write enable failed */</span></div>
+<div class="line"><a id="l05912" name="l05912"></a><span class="lineno"> 5912</span>                       </div>
+<div class="line"><a id="l05913" name="l05913"></a><span class="lineno"> 5913</span>                        <span class="keywordflow">return</span> 1;                                                                           <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l05914" name="l05914"></a><span class="lineno"> 5914</span>                    }</div>
+<div class="line"><a id="l05915" name="l05915"></a><span class="lineno"> 5915</span>                }</div>
+<div class="line"><a id="l05916" name="l05916"></a><span class="lineno"> 5916</span>                buf[0] = <a class="code hl_define" href="driver__w25qxx_8c.html#a4c5a1ed46f4d662a61bc06573ab548a0">W25QXX_COMMAND_BLOCK_ERASE_64K</a>;                                                    <span class="comment">/* block erase 64k command */</span></div>
+<div class="line"><a id="l05917" name="l05917"></a><span class="lineno"> 5917</span>                buf[1] = (addr &gt;&gt; 16) &amp; 0xFF;                                                               <span class="comment">/* 23 - 16 bits */</span></div>
+<div class="line"><a id="l05918" name="l05918"></a><span class="lineno"> 5918</span>                buf[2] = (addr &gt;&gt; 8) &amp; 0xFF;                                                                <span class="comment">/* 15 - 8  bits */</span></div>
+<div class="line"><a id="l05919" name="l05919"></a><span class="lineno"> 5919</span>                buf[3] = (addr &gt;&gt; 0) &amp; 0xFF;                                                                <span class="comment">/* 7 - 0 bits */</span></div>
+<div class="line"><a id="l05920" name="l05920"></a><span class="lineno"> 5920</span>                res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 4, NULL, 0);                          <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l05921" name="l05921"></a><span class="lineno"> 5921</span>                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l05922" name="l05922"></a><span class="lineno"> 5922</span>                {</div>
+<div class="line"><a id="l05923" name="l05923"></a><span class="lineno"> 5923</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: block erase 64k failed.\n&quot;</span>);                               <span class="comment">/* block erase 64k failed */</span></div>
+<div class="line"><a id="l05924" name="l05924"></a><span class="lineno"> 5924</span>                   </div>
+<div class="line"><a id="l05925" name="l05925"></a><span class="lineno"> 5925</span>                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l05926" name="l05926"></a><span class="lineno"> 5926</span>                }</div>
+<div class="line"><a id="l05927" name="l05927"></a><span class="lineno"> 5927</span>            }</div>
+<div class="line"><a id="l05928" name="l05928"></a><span class="lineno"> 5928</span>            <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>) &amp;&amp; (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>))</div>
+<div class="line"><a id="l05929" name="l05929"></a><span class="lineno"> 5929</span>            {</div>
+<div class="line"><a id="l05930" name="l05930"></a><span class="lineno"> 5930</span>                buf[0] = <a class="code hl_define" href="driver__w25qxx_8c.html#a4c5a1ed46f4d662a61bc06573ab548a0">W25QXX_COMMAND_BLOCK_ERASE_64K</a>;                                                    <span class="comment">/* block erase 64k command */</span></div>
+<div class="line"><a id="l05931" name="l05931"></a><span class="lineno"> 5931</span>                buf[1] = (addr &gt;&gt; 24) &amp; 0xFF;                                                               <span class="comment">/* 31 - 24 bits */</span></div>
+<div class="line"><a id="l05932" name="l05932"></a><span class="lineno"> 5932</span>                buf[2] = (addr &gt;&gt; 16) &amp; 0xFF;                                                               <span class="comment">/* 23 - 16 bits */</span></div>
+<div class="line"><a id="l05933" name="l05933"></a><span class="lineno"> 5933</span>                buf[3] = (addr &gt;&gt; 8) &amp; 0xFF;                                                                <span class="comment">/* 15 - 8  bits */</span></div>
+<div class="line"><a id="l05934" name="l05934"></a><span class="lineno"> 5934</span>                buf[4] = (addr &gt;&gt; 0) &amp; 0xFF;                                                                <span class="comment">/* 7 - 0 bits */</span></div>
+<div class="line"><a id="l05935" name="l05935"></a><span class="lineno"> 5935</span>                res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 5, NULL, 0);                          <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l05936" name="l05936"></a><span class="lineno"> 5936</span>                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l05937" name="l05937"></a><span class="lineno"> 5937</span>                {</div>
+<div class="line"><a id="l05938" name="l05938"></a><span class="lineno"> 5938</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: block erase 64k failed.\n&quot;</span>);                               <span class="comment">/* block erase 64k failed */</span></div>
+<div class="line"><a id="l05939" name="l05939"></a><span class="lineno"> 5939</span>                   </div>
+<div class="line"><a id="l05940" name="l05940"></a><span class="lineno"> 5940</span>                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l05941" name="l05941"></a><span class="lineno"> 5941</span>                }</div>
+<div class="line"><a id="l05942" name="l05942"></a><span class="lineno"> 5942</span>            }</div>
+<div class="line"><a id="l05943" name="l05943"></a><span class="lineno"> 5943</span>            <span class="keywordflow">else</span></div>
+<div class="line"><a id="l05944" name="l05944"></a><span class="lineno"> 5944</span>            {</div>
+<div class="line"><a id="l05945" name="l05945"></a><span class="lineno"> 5945</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: address mode is invalid.\n&quot;</span>);                                  <span class="comment">/* address mode is invalid */</span></div>
+<div class="line"><a id="l05946" name="l05946"></a><span class="lineno"> 5946</span>               </div>
+<div class="line"><a id="l05947" name="l05947"></a><span class="lineno"> 5947</span>                <span class="keywordflow">return</span> 5;                                                                                   <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l05948" name="l05948"></a><span class="lineno"> 5948</span>            }</div>
+<div class="line"><a id="l05949" name="l05949"></a><span class="lineno"> 5949</span>            </div>
+<div class="line"><a id="l05950" name="l05950"></a><span class="lineno"> 5950</span>            timeout = 2000;                                                                                 <span class="comment">/* max 2000 ms */</span></div>
+<div class="line"><a id="l05951" name="l05951"></a><span class="lineno"> 5951</span>            <span class="keywordflow">while</span> (timeout != 0)                                                                            <span class="comment">/* check timeout */</span></div>
+<div class="line"><a id="l05952" name="l05952"></a><span class="lineno"> 5952</span>            {</div>
+<div class="line"><a id="l05953" name="l05953"></a><span class="lineno"> 5953</span>                buf[0] = <a class="code hl_define" href="driver__w25qxx_8c.html#adf682969c34f4b31a87dd92dd18ccea3">W25QXX_COMMAND_READ_STATUS_REG1</a>;                                                   <span class="comment">/* read status1 command */</span></div>
+<div class="line"><a id="l05954" name="l05954"></a><span class="lineno"> 5954</span>                res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 1, (uint8_t *)&amp;status, 1);            <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l05955" name="l05955"></a><span class="lineno"> 5955</span>                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l05956" name="l05956"></a><span class="lineno"> 5956</span>                {</div>
+<div class="line"><a id="l05957" name="l05957"></a><span class="lineno"> 5957</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: get status1 failed.\n&quot;</span>);                                   <span class="comment">/* get status1 failed */</span></div>
+<div class="line"><a id="l05958" name="l05958"></a><span class="lineno"> 5958</span>                   </div>
+<div class="line"><a id="l05959" name="l05959"></a><span class="lineno"> 5959</span>                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l05960" name="l05960"></a><span class="lineno"> 5960</span>                }</div>
+<div class="line"><a id="l05961" name="l05961"></a><span class="lineno"> 5961</span>                <span class="keywordflow">if</span> ((status &amp; 0x01) == 0x00)                                                                <span class="comment">/* check status */</span></div>
+<div class="line"><a id="l05962" name="l05962"></a><span class="lineno"> 5962</span>                {</div>
+<div class="line"><a id="l05963" name="l05963"></a><span class="lineno"> 5963</span>                    <span class="keywordflow">break</span>;                                                                                  <span class="comment">/* break */</span></div>
+<div class="line"><a id="l05964" name="l05964"></a><span class="lineno"> 5964</span>                }</div>
+<div class="line"><a id="l05965" name="l05965"></a><span class="lineno"> 5965</span>                timeout--;                                                                                  <span class="comment">/* timeout-- */</span></div>
+<div class="line"><a id="l05966" name="l05966"></a><span class="lineno"> 5966</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a406c9433252b7366de417b7a60915c81">delay_ms</a>(1);                                                                        <span class="comment">/* delay 1 ms */</span></div>
+<div class="line"><a id="l05967" name="l05967"></a><span class="lineno"> 5967</span>            }</div>
+<div class="line"><a id="l05968" name="l05968"></a><span class="lineno"> 5968</span>            <span class="keywordflow">if</span> (timeout == 0)</div>
+<div class="line"><a id="l05969" name="l05969"></a><span class="lineno"> 5969</span>            {</div>
+<div class="line"><a id="l05970" name="l05970"></a><span class="lineno"> 5970</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: block erase 64k timeout.\n&quot;</span>);                                  <span class="comment">/* block erase 64k timeout */</span></div>
+<div class="line"><a id="l05971" name="l05971"></a><span class="lineno"> 5971</span>               </div>
+<div class="line"><a id="l05972" name="l05972"></a><span class="lineno"> 5972</span>                <span class="keywordflow">return</span> 6;                                                                                   <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l05973" name="l05973"></a><span class="lineno"> 5973</span>            }</div>
+<div class="line"><a id="l05974" name="l05974"></a><span class="lineno"> 5974</span>        }</div>
+<div class="line"><a id="l05975" name="l05975"></a><span class="lineno"> 5975</span>    }</div>
+<div class="line"><a id="l05976" name="l05976"></a><span class="lineno"> 5976</span>    <span class="keywordflow">else</span></div>
+<div class="line"><a id="l05977" name="l05977"></a><span class="lineno"> 5977</span>    {</div>
+<div class="line"><a id="l05978" name="l05978"></a><span class="lineno"> 5978</span>        res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>, 4,</div>
+<div class="line"><a id="l05979" name="l05979"></a><span class="lineno"> 5979</span>                                       0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l05980" name="l05980"></a><span class="lineno"> 5980</span>                                       0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l05981" name="l05981"></a><span class="lineno"> 5981</span>                                       0x00, NULL, 0x00,</div>
+<div class="line"><a id="l05982" name="l05982"></a><span class="lineno"> 5982</span>                                       NULL, 0x00, 0x00);                                                   <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l05983" name="l05983"></a><span class="lineno"> 5983</span>        <span class="keywordflow">if</span> (res != 0)                                                                                       <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l05984" name="l05984"></a><span class="lineno"> 5984</span>        {</div>
+<div class="line"><a id="l05985" name="l05985"></a><span class="lineno"> 5985</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                                          <span class="comment">/* write enable failed */</span></div>
+<div class="line"><a id="l05986" name="l05986"></a><span class="lineno"> 5986</span>           </div>
+<div class="line"><a id="l05987" name="l05987"></a><span class="lineno"> 5987</span>            <span class="keywordflow">return</span> 1;                                                                                       <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l05988" name="l05988"></a><span class="lineno"> 5988</span>        }</div>
+<div class="line"><a id="l05989" name="l05989"></a><span class="lineno"> 5989</span>        <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                             <span class="comment">/* 3 address mode */</span></div>
+<div class="line"><a id="l05990" name="l05990"></a><span class="lineno"> 5990</span>        {</div>
+<div class="line"><a id="l05991" name="l05991"></a><span class="lineno"> 5991</span>            <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)                                                                    <span class="comment">/* &gt;128Mb */</span></div>
+<div class="line"><a id="l05992" name="l05992"></a><span class="lineno"> 5992</span>            {</div>
+<div class="line"><a id="l05993" name="l05993"></a><span class="lineno"> 5993</span>                buf[0] = (addr &gt;&gt; 24) &amp; 0xFF;                                                               <span class="comment">/* 31 - 24 bits */</span></div>
+<div class="line"><a id="l05994" name="l05994"></a><span class="lineno"> 5994</span>                res = a_w25qxx_qspi_write_read(handle, 0xC5, 4,</div>
+<div class="line"><a id="l05995" name="l05995"></a><span class="lineno"> 5995</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l05996" name="l05996"></a><span class="lineno"> 5996</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l05997" name="l05997"></a><span class="lineno"> 5997</span>                                               0, (uint8_t *)buf, 0x01,</div>
+<div class="line"><a id="l05998" name="l05998"></a><span class="lineno"> 5998</span>                                               NULL, 0x00, 4);                                              <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l05999" name="l05999"></a><span class="lineno"> 5999</span>                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l06000" name="l06000"></a><span class="lineno"> 6000</span>                {</div>
+<div class="line"><a id="l06001" name="l06001"></a><span class="lineno"> 6001</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write extended addr register failed.\n&quot;</span>);                  <span class="comment">/* write extended addr register failed */</span></div>
+<div class="line"><a id="l06002" name="l06002"></a><span class="lineno"> 6002</span>                   </div>
+<div class="line"><a id="l06003" name="l06003"></a><span class="lineno"> 6003</span>                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l06004" name="l06004"></a><span class="lineno"> 6004</span>                }</div>
+<div class="line"><a id="l06005" name="l06005"></a><span class="lineno"> 6005</span>                res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>, 4,</div>
+<div class="line"><a id="l06006" name="l06006"></a><span class="lineno"> 6006</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l06007" name="l06007"></a><span class="lineno"> 6007</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l06008" name="l06008"></a><span class="lineno"> 6008</span>                                               0x00, NULL, 0x00,</div>
+<div class="line"><a id="l06009" name="l06009"></a><span class="lineno"> 6009</span>                                               NULL, 0x00, 0x00);                                           <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l06010" name="l06010"></a><span class="lineno"> 6010</span>                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l06011" name="l06011"></a><span class="lineno"> 6011</span>                {</div>
+<div class="line"><a id="l06012" name="l06012"></a><span class="lineno"> 6012</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                                  <span class="comment">/* write enable failed */</span></div>
+<div class="line"><a id="l06013" name="l06013"></a><span class="lineno"> 6013</span>                   </div>
+<div class="line"><a id="l06014" name="l06014"></a><span class="lineno"> 6014</span>                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l06015" name="l06015"></a><span class="lineno"> 6015</span>                }</div>
+<div class="line"><a id="l06016" name="l06016"></a><span class="lineno"> 6016</span>            }</div>
+<div class="line"><a id="l06017" name="l06017"></a><span class="lineno"> 6017</span>            res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#a4c5a1ed46f4d662a61bc06573ab548a0">W25QXX_COMMAND_BLOCK_ERASE_64K</a>, 4,</div>
+<div class="line"><a id="l06018" name="l06018"></a><span class="lineno"> 6018</span>                                           addr, 4, 3,</div>
+<div class="line"><a id="l06019" name="l06019"></a><span class="lineno"> 6019</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l06020" name="l06020"></a><span class="lineno"> 6020</span>                                           0, NULL, 0x00,</div>
+<div class="line"><a id="l06021" name="l06021"></a><span class="lineno"> 6021</span>                                           NULL, 0x00, 0x00);                                               <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l06022" name="l06022"></a><span class="lineno"> 6022</span>            <span class="keywordflow">if</span> (res != 0)                                                                                   <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l06023" name="l06023"></a><span class="lineno"> 6023</span>            {</div>
+<div class="line"><a id="l06024" name="l06024"></a><span class="lineno"> 6024</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: block erase 64k failed.\n&quot;</span>);                                   <span class="comment">/* block erase 64k failed */</span></div>
+<div class="line"><a id="l06025" name="l06025"></a><span class="lineno"> 6025</span>               </div>
+<div class="line"><a id="l06026" name="l06026"></a><span class="lineno"> 6026</span>                <span class="keywordflow">return</span> 1;                                                                                   <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l06027" name="l06027"></a><span class="lineno"> 6027</span>            }</div>
+<div class="line"><a id="l06028" name="l06028"></a><span class="lineno"> 6028</span>        }</div>
+<div class="line"><a id="l06029" name="l06029"></a><span class="lineno"> 6029</span>        <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>) &amp;&amp; (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>))</div>
+<div class="line"><a id="l06030" name="l06030"></a><span class="lineno"> 6030</span>        {</div>
+<div class="line"><a id="l06031" name="l06031"></a><span class="lineno"> 6031</span>            res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#a4c5a1ed46f4d662a61bc06573ab548a0">W25QXX_COMMAND_BLOCK_ERASE_64K</a>, 4,</div>
+<div class="line"><a id="l06032" name="l06032"></a><span class="lineno"> 6032</span>                                           addr, 4, 4,</div>
+<div class="line"><a id="l06033" name="l06033"></a><span class="lineno"> 6033</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l06034" name="l06034"></a><span class="lineno"> 6034</span>                                           0, NULL, 0x00,</div>
+<div class="line"><a id="l06035" name="l06035"></a><span class="lineno"> 6035</span>                                           NULL, 0x00, 0x00);                                               <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l06036" name="l06036"></a><span class="lineno"> 6036</span>            <span class="keywordflow">if</span> (res != 0)                                                                                   <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l06037" name="l06037"></a><span class="lineno"> 6037</span>            {</div>
+<div class="line"><a id="l06038" name="l06038"></a><span class="lineno"> 6038</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: block erase 64k failed.\n&quot;</span>);                                   <span class="comment">/* block erase 64k failed */</span></div>
+<div class="line"><a id="l06039" name="l06039"></a><span class="lineno"> 6039</span>               </div>
+<div class="line"><a id="l06040" name="l06040"></a><span class="lineno"> 6040</span>                <span class="keywordflow">return</span> 1;                                                                                   <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l06041" name="l06041"></a><span class="lineno"> 6041</span>            }</div>
+<div class="line"><a id="l06042" name="l06042"></a><span class="lineno"> 6042</span>        }</div>
+<div class="line"><a id="l06043" name="l06043"></a><span class="lineno"> 6043</span>        <span class="keywordflow">else</span></div>
+<div class="line"><a id="l06044" name="l06044"></a><span class="lineno"> 6044</span>        {</div>
+<div class="line"><a id="l06045" name="l06045"></a><span class="lineno"> 6045</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: address mode is invalid.\n&quot;</span>);                                      <span class="comment">/* address mode is invalid */</span></div>
+<div class="line"><a id="l06046" name="l06046"></a><span class="lineno"> 6046</span>           </div>
+<div class="line"><a id="l06047" name="l06047"></a><span class="lineno"> 6047</span>            <span class="keywordflow">return</span> 5;                                                                                       <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l06048" name="l06048"></a><span class="lineno"> 6048</span>        }</div>
+<div class="line"><a id="l06049" name="l06049"></a><span class="lineno"> 6049</span>        </div>
+<div class="line"><a id="l06050" name="l06050"></a><span class="lineno"> 6050</span>        timeout = 2000;                                                                                     <span class="comment">/* max 2000 ms */</span></div>
+<div class="line"><a id="l06051" name="l06051"></a><span class="lineno"> 6051</span>        <span class="keywordflow">while</span> (timeout != 0)                                                                                <span class="comment">/* check timeout */</span></div>
+<div class="line"><a id="l06052" name="l06052"></a><span class="lineno"> 6052</span>        {</div>
+<div class="line"><a id="l06053" name="l06053"></a><span class="lineno"> 6053</span>            res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#adf682969c34f4b31a87dd92dd18ccea3">W25QXX_COMMAND_READ_STATUS_REG1</a>, 4,</div>
+<div class="line"><a id="l06054" name="l06054"></a><span class="lineno"> 6054</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l06055" name="l06055"></a><span class="lineno"> 6055</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l06056" name="l06056"></a><span class="lineno"> 6056</span>                                           0, NULL, 0,</div>
+<div class="line"><a id="l06057" name="l06057"></a><span class="lineno"> 6057</span>                                          (uint8_t *)&amp;status, 1, 4);                                        <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l06058" name="l06058"></a><span class="lineno"> 6058</span>            <span class="keywordflow">if</span> (res != 0)                                                                                   <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l06059" name="l06059"></a><span class="lineno"> 6059</span>            {</div>
+<div class="line"><a id="l06060" name="l06060"></a><span class="lineno"> 6060</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: get status1 failed.\n&quot;</span>);                                       <span class="comment">/* get status1 failed */</span></div>
+<div class="line"><a id="l06061" name="l06061"></a><span class="lineno"> 6061</span>               </div>
+<div class="line"><a id="l06062" name="l06062"></a><span class="lineno"> 6062</span>                <span class="keywordflow">return</span> 1;                                                                                   <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l06063" name="l06063"></a><span class="lineno"> 6063</span>            }</div>
+<div class="line"><a id="l06064" name="l06064"></a><span class="lineno"> 6064</span>            <span class="keywordflow">if</span> ((status &amp; 0x01) == 0x00)                                                                    <span class="comment">/* check status */</span></div>
+<div class="line"><a id="l06065" name="l06065"></a><span class="lineno"> 6065</span>            {</div>
+<div class="line"><a id="l06066" name="l06066"></a><span class="lineno"> 6066</span>                <span class="keywordflow">break</span>;                                                                                      <span class="comment">/* break */</span></div>
+<div class="line"><a id="l06067" name="l06067"></a><span class="lineno"> 6067</span>            }</div>
+<div class="line"><a id="l06068" name="l06068"></a><span class="lineno"> 6068</span>            timeout--;                                                                                      <span class="comment">/* timeout-- */</span></div>
+<div class="line"><a id="l06069" name="l06069"></a><span class="lineno"> 6069</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a406c9433252b7366de417b7a60915c81">delay_ms</a>(1);                                                                            <span class="comment">/* delay 1 ms */</span></div>
+<div class="line"><a id="l06070" name="l06070"></a><span class="lineno"> 6070</span>        }</div>
+<div class="line"><a id="l06071" name="l06071"></a><span class="lineno"> 6071</span>        <span class="keywordflow">if</span> (timeout == 0)</div>
+<div class="line"><a id="l06072" name="l06072"></a><span class="lineno"> 6072</span>        {</div>
+<div class="line"><a id="l06073" name="l06073"></a><span class="lineno"> 6073</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: block erase 64k timeout.\n&quot;</span>);                                      <span class="comment">/* block erase 64k timeout */</span></div>
+<div class="line"><a id="l06074" name="l06074"></a><span class="lineno"> 6074</span>           </div>
+<div class="line"><a id="l06075" name="l06075"></a><span class="lineno"> 6075</span>            <span class="keywordflow">return</span> 6;                                                                                       <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l06076" name="l06076"></a><span class="lineno"> 6076</span>        }</div>
+<div class="line"><a id="l06077" name="l06077"></a><span class="lineno"> 6077</span>    }</div>
+<div class="line"><a id="l06078" name="l06078"></a><span class="lineno"> 6078</span>    </div>
+<div class="line"><a id="l06079" name="l06079"></a><span class="lineno"> 6079</span>    <span class="keywordflow">return</span> 0;                                                                                               <span class="comment">/* success return 0 */</span></div>
+<div class="line"><a id="l06080" name="l06080"></a><span class="lineno"> 6080</span>}</div>
+</div>
+<div class="line"><a id="l06081" name="l06081"></a><span class="lineno"> 6081</span> </div>
+<div class="foldopen" id="foldopen06094" data-start="{" data-end="}">
+<div class="line"><a id="l06094" name="l06094"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#ga4f00c2c169cb7c3084841c6cd795e76b"> 6094</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__advance__driver.html#ga4f00c2c169cb7c3084841c6cd795e76b">w25qxx_individual_block_lock</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint32_t addr)</div>
+<div class="line"><a id="l06095" name="l06095"></a><span class="lineno"> 6095</span>{</div>
+<div class="line"><a id="l06096" name="l06096"></a><span class="lineno"> 6096</span>    uint8_t res;</div>
+<div class="line"><a id="l06097" name="l06097"></a><span class="lineno"> 6097</span>    uint8_t buf[5];</div>
+<div class="line"><a id="l06098" name="l06098"></a><span class="lineno"> 6098</span>    </div>
+<div class="line"><a id="l06099" name="l06099"></a><span class="lineno"> 6099</span>    <span class="keywordflow">if</span> (handle == NULL)                                                                                     <span class="comment">/* check handle */</span></div>
+<div class="line"><a id="l06100" name="l06100"></a><span class="lineno"> 6100</span>    {</div>
+<div class="line"><a id="l06101" name="l06101"></a><span class="lineno"> 6101</span>        <span class="keywordflow">return</span> 2;                                                                                           <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l06102" name="l06102"></a><span class="lineno"> 6102</span>    }   </div>
+<div class="line"><a id="l06103" name="l06103"></a><span class="lineno"> 6103</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">inited</a> != 1)                                                                                <span class="comment">/* check handle initialization */</span></div>
+<div class="line"><a id="l06104" name="l06104"></a><span class="lineno"> 6104</span>    {</div>
+<div class="line"><a id="l06105" name="l06105"></a><span class="lineno"> 6105</span>        <span class="keywordflow">return</span> 3;                                                                                           <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l06106" name="l06106"></a><span class="lineno"> 6106</span>    }</div>
+<div class="line"><a id="l06107" name="l06107"></a><span class="lineno"> 6107</span>    </div>
+<div class="line"><a id="l06108" name="l06108"></a><span class="lineno"> 6108</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>)                                                           <span class="comment">/* spi interface */</span></div>
+<div class="line"><a id="l06109" name="l06109"></a><span class="lineno"> 6109</span>    {</div>
+<div class="line"><a id="l06110" name="l06110"></a><span class="lineno"> 6110</span>        <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">dual_quad_spi_enable</a> != 0)                                                              <span class="comment">/* enable dual quad spi */</span></div>
+<div class="line"><a id="l06111" name="l06111"></a><span class="lineno"> 6111</span>        {</div>
+<div class="line"><a id="l06112" name="l06112"></a><span class="lineno"> 6112</span>            <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                         <span class="comment">/* 3 address mode */</span></div>
+<div class="line"><a id="l06113" name="l06113"></a><span class="lineno"> 6113</span>            {</div>
+<div class="line"><a id="l06114" name="l06114"></a><span class="lineno"> 6114</span>                <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)                                                                <span class="comment">/* &gt;128Mb */</span></div>
+<div class="line"><a id="l06115" name="l06115"></a><span class="lineno"> 6115</span>                {</div>
+<div class="line"><a id="l06116" name="l06116"></a><span class="lineno"> 6116</span>                    res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>, 1,</div>
+<div class="line"><a id="l06117" name="l06117"></a><span class="lineno"> 6117</span>                                                   0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l06118" name="l06118"></a><span class="lineno"> 6118</span>                                                   0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l06119" name="l06119"></a><span class="lineno"> 6119</span>                                                   0x00, NULL, 0x00,</div>
+<div class="line"><a id="l06120" name="l06120"></a><span class="lineno"> 6120</span>                                                   NULL, 0x00, 0x00);                                       <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l06121" name="l06121"></a><span class="lineno"> 6121</span>                    <span class="keywordflow">if</span> (res != 0)                                                                           <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l06122" name="l06122"></a><span class="lineno"> 6122</span>                    {</div>
+<div class="line"><a id="l06123" name="l06123"></a><span class="lineno"> 6123</span>                        handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                              <span class="comment">/* write enable failed */</span></div>
+<div class="line"><a id="l06124" name="l06124"></a><span class="lineno"> 6124</span>                       </div>
+<div class="line"><a id="l06125" name="l06125"></a><span class="lineno"> 6125</span>                        <span class="keywordflow">return</span> 1;                                                                           <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l06126" name="l06126"></a><span class="lineno"> 6126</span>                    }</div>
+<div class="line"><a id="l06127" name="l06127"></a><span class="lineno"> 6127</span>                    buf[0] = (addr &gt;&gt; 24) &amp; 0xFF;                                                           <span class="comment">/* 31 - 24 bits */</span></div>
+<div class="line"><a id="l06128" name="l06128"></a><span class="lineno"> 6128</span>                    res = a_w25qxx_qspi_write_read(handle, 0xC5, 1,</div>
+<div class="line"><a id="l06129" name="l06129"></a><span class="lineno"> 6129</span>                                                   0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l06130" name="l06130"></a><span class="lineno"> 6130</span>                                                   0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l06131" name="l06131"></a><span class="lineno"> 6131</span>                                                   0, (uint8_t *)buf, 0x01,</div>
+<div class="line"><a id="l06132" name="l06132"></a><span class="lineno"> 6132</span>                                                   NULL, 0x00, 1);                                          <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l06133" name="l06133"></a><span class="lineno"> 6133</span>                    <span class="keywordflow">if</span> (res != 0)                                                                           <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l06134" name="l06134"></a><span class="lineno"> 6134</span>                    {</div>
+<div class="line"><a id="l06135" name="l06135"></a><span class="lineno"> 6135</span>                        handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write extended addr register failed.\n&quot;</span>);              <span class="comment">/* write extended addr register failed */</span></div>
+<div class="line"><a id="l06136" name="l06136"></a><span class="lineno"> 6136</span>                       </div>
+<div class="line"><a id="l06137" name="l06137"></a><span class="lineno"> 6137</span>                        <span class="keywordflow">return</span> 1;                                                                           <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l06138" name="l06138"></a><span class="lineno"> 6138</span>                    }</div>
+<div class="line"><a id="l06139" name="l06139"></a><span class="lineno"> 6139</span>                }</div>
+<div class="line"><a id="l06140" name="l06140"></a><span class="lineno"> 6140</span>                res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#a328f6a9635b1ec6868410375de90b0df">W25QXX_COMMAND_INDIVIDUAL_BLOCK_LOCK</a>, 1,</div>
+<div class="line"><a id="l06141" name="l06141"></a><span class="lineno"> 6141</span>                                               addr, 1, 3,</div>
+<div class="line"><a id="l06142" name="l06142"></a><span class="lineno"> 6142</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l06143" name="l06143"></a><span class="lineno"> 6143</span>                                               0, NULL, 0x00,</div>
+<div class="line"><a id="l06144" name="l06144"></a><span class="lineno"> 6144</span>                                               NULL, 0x00, 0x00);                                           <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l06145" name="l06145"></a><span class="lineno"> 6145</span>                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l06146" name="l06146"></a><span class="lineno"> 6146</span>                {</div>
+<div class="line"><a id="l06147" name="l06147"></a><span class="lineno"> 6147</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: individual block lock failed.\n&quot;</span>);                         <span class="comment">/* individual block lock failed */</span></div>
+<div class="line"><a id="l06148" name="l06148"></a><span class="lineno"> 6148</span>                   </div>
+<div class="line"><a id="l06149" name="l06149"></a><span class="lineno"> 6149</span>                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l06150" name="l06150"></a><span class="lineno"> 6150</span>                }</div>
+<div class="line"><a id="l06151" name="l06151"></a><span class="lineno"> 6151</span>            }</div>
+<div class="line"><a id="l06152" name="l06152"></a><span class="lineno"> 6152</span>            <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>) &amp;&amp; (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>))</div>
+<div class="line"><a id="l06153" name="l06153"></a><span class="lineno"> 6153</span>            {</div>
+<div class="line"><a id="l06154" name="l06154"></a><span class="lineno"> 6154</span>                res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#a328f6a9635b1ec6868410375de90b0df">W25QXX_COMMAND_INDIVIDUAL_BLOCK_LOCK</a>, 1,</div>
+<div class="line"><a id="l06155" name="l06155"></a><span class="lineno"> 6155</span>                                               addr, 1, 4,</div>
+<div class="line"><a id="l06156" name="l06156"></a><span class="lineno"> 6156</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l06157" name="l06157"></a><span class="lineno"> 6157</span>                                               0, NULL, 0x00,</div>
+<div class="line"><a id="l06158" name="l06158"></a><span class="lineno"> 6158</span>                                               NULL, 0x00, 0x00);                                           <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l06159" name="l06159"></a><span class="lineno"> 6159</span>                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l06160" name="l06160"></a><span class="lineno"> 6160</span>                {</div>
+<div class="line"><a id="l06161" name="l06161"></a><span class="lineno"> 6161</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: individual block lock failed.\n&quot;</span>);                         <span class="comment">/* individual block lock failed */</span></div>
+<div class="line"><a id="l06162" name="l06162"></a><span class="lineno"> 6162</span>                   </div>
+<div class="line"><a id="l06163" name="l06163"></a><span class="lineno"> 6163</span>                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l06164" name="l06164"></a><span class="lineno"> 6164</span>                }</div>
+<div class="line"><a id="l06165" name="l06165"></a><span class="lineno"> 6165</span>            }</div>
+<div class="line"><a id="l06166" name="l06166"></a><span class="lineno"> 6166</span>            <span class="keywordflow">else</span></div>
+<div class="line"><a id="l06167" name="l06167"></a><span class="lineno"> 6167</span>            {</div>
+<div class="line"><a id="l06168" name="l06168"></a><span class="lineno"> 6168</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: address mode is invalid.\n&quot;</span>);                                  <span class="comment">/* address mode is invalid */</span></div>
+<div class="line"><a id="l06169" name="l06169"></a><span class="lineno"> 6169</span>               </div>
+<div class="line"><a id="l06170" name="l06170"></a><span class="lineno"> 6170</span>                <span class="keywordflow">return</span> 4;                                                                                   <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l06171" name="l06171"></a><span class="lineno"> 6171</span>            }</div>
+<div class="line"><a id="l06172" name="l06172"></a><span class="lineno"> 6172</span>        }</div>
+<div class="line"><a id="l06173" name="l06173"></a><span class="lineno"> 6173</span>        <span class="keywordflow">else</span>                                                                                                <span class="comment">/* single spi */</span></div>
+<div class="line"><a id="l06174" name="l06174"></a><span class="lineno"> 6174</span>        {</div>
+<div class="line"><a id="l06175" name="l06175"></a><span class="lineno"> 6175</span>            <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                         <span class="comment">/* 3 address mode */</span></div>
+<div class="line"><a id="l06176" name="l06176"></a><span class="lineno"> 6176</span>            {</div>
+<div class="line"><a id="l06177" name="l06177"></a><span class="lineno"> 6177</span>                <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)                                                                <span class="comment">/* &gt;128Mb */</span></div>
+<div class="line"><a id="l06178" name="l06178"></a><span class="lineno"> 6178</span>                {</div>
+<div class="line"><a id="l06179" name="l06179"></a><span class="lineno"> 6179</span>                    buf[0] = <a class="code hl_define" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>;                                                   <span class="comment">/* write enable command */</span></div>
+<div class="line"><a id="l06180" name="l06180"></a><span class="lineno"> 6180</span>                    res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 1, NULL, 0);                      <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l06181" name="l06181"></a><span class="lineno"> 6181</span>                    <span class="keywordflow">if</span> (res != 0)                                                                           <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l06182" name="l06182"></a><span class="lineno"> 6182</span>                    {</div>
+<div class="line"><a id="l06183" name="l06183"></a><span class="lineno"> 6183</span>                        handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                              <span class="comment">/* write enable failed */</span></div>
+<div class="line"><a id="l06184" name="l06184"></a><span class="lineno"> 6184</span>                       </div>
+<div class="line"><a id="l06185" name="l06185"></a><span class="lineno"> 6185</span>                        <span class="keywordflow">return</span> 1;                                                                           <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l06186" name="l06186"></a><span class="lineno"> 6186</span>                    }</div>
+<div class="line"><a id="l06187" name="l06187"></a><span class="lineno"> 6187</span>                    buf[0] = 0xC5;                                                                          <span class="comment">/* write extended addr register command */</span></div>
+<div class="line"><a id="l06188" name="l06188"></a><span class="lineno"> 6188</span>                    buf[1] = (addr &gt;&gt; 24) &amp; 0xFF;                                                           <span class="comment">/* 31 - 24 bits */</span></div>
+<div class="line"><a id="l06189" name="l06189"></a><span class="lineno"> 6189</span>                    res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 2, NULL, 0);                      <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l06190" name="l06190"></a><span class="lineno"> 6190</span>                    <span class="keywordflow">if</span> (res != 0)                                                                           <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l06191" name="l06191"></a><span class="lineno"> 6191</span>                    {</div>
+<div class="line"><a id="l06192" name="l06192"></a><span class="lineno"> 6192</span>                        handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write extended addr register failed.\n&quot;</span>);              <span class="comment">/* write extended addr register failed */</span></div>
+<div class="line"><a id="l06193" name="l06193"></a><span class="lineno"> 6193</span>                       </div>
+<div class="line"><a id="l06194" name="l06194"></a><span class="lineno"> 6194</span>                        <span class="keywordflow">return</span> 1;                                                                           <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l06195" name="l06195"></a><span class="lineno"> 6195</span>                    }</div>
+<div class="line"><a id="l06196" name="l06196"></a><span class="lineno"> 6196</span>                }</div>
+<div class="line"><a id="l06197" name="l06197"></a><span class="lineno"> 6197</span>                buf[0] = <a class="code hl_define" href="driver__w25qxx_8c.html#a328f6a9635b1ec6868410375de90b0df">W25QXX_COMMAND_INDIVIDUAL_BLOCK_LOCK</a>;                                              <span class="comment">/* individual block lock command */</span></div>
+<div class="line"><a id="l06198" name="l06198"></a><span class="lineno"> 6198</span>                buf[1] = (addr &gt;&gt; 16) &amp; 0xFF;                                                               <span class="comment">/* 23 - 16 bits */</span></div>
+<div class="line"><a id="l06199" name="l06199"></a><span class="lineno"> 6199</span>                buf[2] = (addr &gt;&gt; 8) &amp; 0xFF;                                                                <span class="comment">/* 15 - 8  bits */</span></div>
+<div class="line"><a id="l06200" name="l06200"></a><span class="lineno"> 6200</span>                buf[3] = (addr &gt;&gt; 0) &amp; 0xFF;                                                                <span class="comment">/* 7 - 0 bits */</span></div>
+<div class="line"><a id="l06201" name="l06201"></a><span class="lineno"> 6201</span>                res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 4, NULL, 0);                          <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l06202" name="l06202"></a><span class="lineno"> 6202</span>                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l06203" name="l06203"></a><span class="lineno"> 6203</span>                {</div>
+<div class="line"><a id="l06204" name="l06204"></a><span class="lineno"> 6204</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: individual block lock failed.\n&quot;</span>);                         <span class="comment">/* individual block lock failed */</span></div>
+<div class="line"><a id="l06205" name="l06205"></a><span class="lineno"> 6205</span>                   </div>
+<div class="line"><a id="l06206" name="l06206"></a><span class="lineno"> 6206</span>                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l06207" name="l06207"></a><span class="lineno"> 6207</span>                }</div>
+<div class="line"><a id="l06208" name="l06208"></a><span class="lineno"> 6208</span>            }</div>
+<div class="line"><a id="l06209" name="l06209"></a><span class="lineno"> 6209</span>            <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>) &amp;&amp; (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>))</div>
+<div class="line"><a id="l06210" name="l06210"></a><span class="lineno"> 6210</span>            {</div>
+<div class="line"><a id="l06211" name="l06211"></a><span class="lineno"> 6211</span>                buf[0] = <a class="code hl_define" href="driver__w25qxx_8c.html#a328f6a9635b1ec6868410375de90b0df">W25QXX_COMMAND_INDIVIDUAL_BLOCK_LOCK</a>;                                              <span class="comment">/* individual block lock command */</span></div>
+<div class="line"><a id="l06212" name="l06212"></a><span class="lineno"> 6212</span>                buf[1] = (addr &gt;&gt; 24) &amp; 0xFF;                                                               <span class="comment">/* 31 - 24 bits */</span></div>
+<div class="line"><a id="l06213" name="l06213"></a><span class="lineno"> 6213</span>                buf[2] = (addr &gt;&gt; 16) &amp; 0xFF;                                                               <span class="comment">/* 23 - 16 bits */</span></div>
+<div class="line"><a id="l06214" name="l06214"></a><span class="lineno"> 6214</span>                buf[3] = (addr &gt;&gt; 8) &amp; 0xFF;                                                                <span class="comment">/* 15 - 8  bits */</span></div>
+<div class="line"><a id="l06215" name="l06215"></a><span class="lineno"> 6215</span>                buf[4] = (addr &gt;&gt; 0) &amp; 0xFF;                                                                <span class="comment">/* 7 - 0 bits */</span></div>
+<div class="line"><a id="l06216" name="l06216"></a><span class="lineno"> 6216</span>                res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 5, NULL, 0);                          <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l06217" name="l06217"></a><span class="lineno"> 6217</span>                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l06218" name="l06218"></a><span class="lineno"> 6218</span>                {</div>
+<div class="line"><a id="l06219" name="l06219"></a><span class="lineno"> 6219</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: individual block lock failed.\n&quot;</span>);                         <span class="comment">/* individual block lock failed */</span></div>
+<div class="line"><a id="l06220" name="l06220"></a><span class="lineno"> 6220</span>                   </div>
+<div class="line"><a id="l06221" name="l06221"></a><span class="lineno"> 6221</span>                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l06222" name="l06222"></a><span class="lineno"> 6222</span>                }</div>
+<div class="line"><a id="l06223" name="l06223"></a><span class="lineno"> 6223</span>            }</div>
+<div class="line"><a id="l06224" name="l06224"></a><span class="lineno"> 6224</span>            <span class="keywordflow">else</span></div>
+<div class="line"><a id="l06225" name="l06225"></a><span class="lineno"> 6225</span>            {</div>
+<div class="line"><a id="l06226" name="l06226"></a><span class="lineno"> 6226</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: address mode is invalid.\n&quot;</span>);                                  <span class="comment">/* address mode is invalid */</span></div>
+<div class="line"><a id="l06227" name="l06227"></a><span class="lineno"> 6227</span>               </div>
+<div class="line"><a id="l06228" name="l06228"></a><span class="lineno"> 6228</span>                <span class="keywordflow">return</span> 4;                                                                                   <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l06229" name="l06229"></a><span class="lineno"> 6229</span>            }</div>
+<div class="line"><a id="l06230" name="l06230"></a><span class="lineno"> 6230</span>        }</div>
+<div class="line"><a id="l06231" name="l06231"></a><span class="lineno"> 6231</span>    }</div>
+<div class="line"><a id="l06232" name="l06232"></a><span class="lineno"> 6232</span>    <span class="keywordflow">else</span></div>
+<div class="line"><a id="l06233" name="l06233"></a><span class="lineno"> 6233</span>    {</div>
+<div class="line"><a id="l06234" name="l06234"></a><span class="lineno"> 6234</span>        <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                             <span class="comment">/* 3 address mode */</span></div>
+<div class="line"><a id="l06235" name="l06235"></a><span class="lineno"> 6235</span>        {</div>
+<div class="line"><a id="l06236" name="l06236"></a><span class="lineno"> 6236</span>            <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)                                                                    <span class="comment">/* &gt;128Mb */</span></div>
+<div class="line"><a id="l06237" name="l06237"></a><span class="lineno"> 6237</span>            {</div>
+<div class="line"><a id="l06238" name="l06238"></a><span class="lineno"> 6238</span>                res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>, 4,</div>
+<div class="line"><a id="l06239" name="l06239"></a><span class="lineno"> 6239</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l06240" name="l06240"></a><span class="lineno"> 6240</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l06241" name="l06241"></a><span class="lineno"> 6241</span>                                               0x00, NULL, 0x00,</div>
+<div class="line"><a id="l06242" name="l06242"></a><span class="lineno"> 6242</span>                                               NULL, 0x00, 0x00);                                           <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l06243" name="l06243"></a><span class="lineno"> 6243</span>                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l06244" name="l06244"></a><span class="lineno"> 6244</span>                {</div>
+<div class="line"><a id="l06245" name="l06245"></a><span class="lineno"> 6245</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                                  <span class="comment">/* write enable failed */</span></div>
+<div class="line"><a id="l06246" name="l06246"></a><span class="lineno"> 6246</span>                   </div>
+<div class="line"><a id="l06247" name="l06247"></a><span class="lineno"> 6247</span>                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l06248" name="l06248"></a><span class="lineno"> 6248</span>                }</div>
+<div class="line"><a id="l06249" name="l06249"></a><span class="lineno"> 6249</span>                buf[0] = (addr &gt;&gt; 24) &amp; 0xFF;                                                               <span class="comment">/* 31 - 24 bits */</span></div>
+<div class="line"><a id="l06250" name="l06250"></a><span class="lineno"> 6250</span>                res = a_w25qxx_qspi_write_read(handle, 0xC5, 4,</div>
+<div class="line"><a id="l06251" name="l06251"></a><span class="lineno"> 6251</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l06252" name="l06252"></a><span class="lineno"> 6252</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l06253" name="l06253"></a><span class="lineno"> 6253</span>                                               0, (uint8_t *)buf, 0x01,</div>
+<div class="line"><a id="l06254" name="l06254"></a><span class="lineno"> 6254</span>                                               NULL, 0x00, 4);                                              <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l06255" name="l06255"></a><span class="lineno"> 6255</span>                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l06256" name="l06256"></a><span class="lineno"> 6256</span>                {</div>
+<div class="line"><a id="l06257" name="l06257"></a><span class="lineno"> 6257</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write extended addr register failed.\n&quot;</span>);                  <span class="comment">/* write extended addr register failed */</span></div>
+<div class="line"><a id="l06258" name="l06258"></a><span class="lineno"> 6258</span>                   </div>
+<div class="line"><a id="l06259" name="l06259"></a><span class="lineno"> 6259</span>                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l06260" name="l06260"></a><span class="lineno"> 6260</span>                }</div>
+<div class="line"><a id="l06261" name="l06261"></a><span class="lineno"> 6261</span>            }</div>
+<div class="line"><a id="l06262" name="l06262"></a><span class="lineno"> 6262</span>            res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#a328f6a9635b1ec6868410375de90b0df">W25QXX_COMMAND_INDIVIDUAL_BLOCK_LOCK</a>, 4,</div>
+<div class="line"><a id="l06263" name="l06263"></a><span class="lineno"> 6263</span>                                           addr, 4, 3,</div>
+<div class="line"><a id="l06264" name="l06264"></a><span class="lineno"> 6264</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l06265" name="l06265"></a><span class="lineno"> 6265</span>                                           0, NULL, 0x00,</div>
+<div class="line"><a id="l06266" name="l06266"></a><span class="lineno"> 6266</span>                                           NULL, 0x00, 0x00);                                               <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l06267" name="l06267"></a><span class="lineno"> 6267</span>            <span class="keywordflow">if</span> (res != 0)                                                                                   <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l06268" name="l06268"></a><span class="lineno"> 6268</span>            {</div>
+<div class="line"><a id="l06269" name="l06269"></a><span class="lineno"> 6269</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: individual block lock failed.\n&quot;</span>);                             <span class="comment">/* individual block lock failed */</span></div>
+<div class="line"><a id="l06270" name="l06270"></a><span class="lineno"> 6270</span>               </div>
+<div class="line"><a id="l06271" name="l06271"></a><span class="lineno"> 6271</span>                <span class="keywordflow">return</span> 1;                                                                                   <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l06272" name="l06272"></a><span class="lineno"> 6272</span>            }</div>
+<div class="line"><a id="l06273" name="l06273"></a><span class="lineno"> 6273</span>        }</div>
+<div class="line"><a id="l06274" name="l06274"></a><span class="lineno"> 6274</span>        <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>) &amp;&amp; (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>))</div>
+<div class="line"><a id="l06275" name="l06275"></a><span class="lineno"> 6275</span>        {</div>
+<div class="line"><a id="l06276" name="l06276"></a><span class="lineno"> 6276</span>            res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#a328f6a9635b1ec6868410375de90b0df">W25QXX_COMMAND_INDIVIDUAL_BLOCK_LOCK</a>, 4,</div>
+<div class="line"><a id="l06277" name="l06277"></a><span class="lineno"> 6277</span>                                           addr, 4, 4,</div>
+<div class="line"><a id="l06278" name="l06278"></a><span class="lineno"> 6278</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l06279" name="l06279"></a><span class="lineno"> 6279</span>                                           0, NULL, 0x00,</div>
+<div class="line"><a id="l06280" name="l06280"></a><span class="lineno"> 6280</span>                                           NULL, 0x00, 0x00);                                               <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l06281" name="l06281"></a><span class="lineno"> 6281</span>            <span class="keywordflow">if</span> (res != 0)                                                                                   <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l06282" name="l06282"></a><span class="lineno"> 6282</span>            {</div>
+<div class="line"><a id="l06283" name="l06283"></a><span class="lineno"> 6283</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: individual block lock failed.\n&quot;</span>);                             <span class="comment">/* individual block lock failed */</span></div>
+<div class="line"><a id="l06284" name="l06284"></a><span class="lineno"> 6284</span>               </div>
+<div class="line"><a id="l06285" name="l06285"></a><span class="lineno"> 6285</span>                <span class="keywordflow">return</span> 1;                                                                                   <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l06286" name="l06286"></a><span class="lineno"> 6286</span>            }</div>
+<div class="line"><a id="l06287" name="l06287"></a><span class="lineno"> 6287</span>        }</div>
+<div class="line"><a id="l06288" name="l06288"></a><span class="lineno"> 6288</span>        <span class="keywordflow">else</span></div>
+<div class="line"><a id="l06289" name="l06289"></a><span class="lineno"> 6289</span>        {</div>
+<div class="line"><a id="l06290" name="l06290"></a><span class="lineno"> 6290</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: address mode is invalid.\n&quot;</span>);                                      <span class="comment">/* address mode is invalid */</span></div>
+<div class="line"><a id="l06291" name="l06291"></a><span class="lineno"> 6291</span>           </div>
+<div class="line"><a id="l06292" name="l06292"></a><span class="lineno"> 6292</span>            <span class="keywordflow">return</span> 4;                                                                                       <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l06293" name="l06293"></a><span class="lineno"> 6293</span>        }</div>
+<div class="line"><a id="l06294" name="l06294"></a><span class="lineno"> 6294</span>    }</div>
+<div class="line"><a id="l06295" name="l06295"></a><span class="lineno"> 6295</span>    </div>
+<div class="line"><a id="l06296" name="l06296"></a><span class="lineno"> 6296</span>    <span class="keywordflow">return</span> 0;                                                                                               <span class="comment">/* success return 0 */</span></div>
+<div class="line"><a id="l06297" name="l06297"></a><span class="lineno"> 6297</span>}</div>
+</div>
+<div class="line"><a id="l06298" name="l06298"></a><span class="lineno"> 6298</span> </div>
+<div class="foldopen" id="foldopen06311" data-start="{" data-end="}">
+<div class="line"><a id="l06311" name="l06311"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#ga7f88cedf7619071b3235ba094915b2a7"> 6311</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__advance__driver.html#ga7f88cedf7619071b3235ba094915b2a7">w25qxx_individual_block_unlock</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint32_t addr)</div>
+<div class="line"><a id="l06312" name="l06312"></a><span class="lineno"> 6312</span>{</div>
+<div class="line"><a id="l06313" name="l06313"></a><span class="lineno"> 6313</span>    uint8_t res;</div>
+<div class="line"><a id="l06314" name="l06314"></a><span class="lineno"> 6314</span>    uint8_t buf[5];</div>
+<div class="line"><a id="l06315" name="l06315"></a><span class="lineno"> 6315</span>    </div>
+<div class="line"><a id="l06316" name="l06316"></a><span class="lineno"> 6316</span>    <span class="keywordflow">if</span> (handle == NULL)                                                                                     <span class="comment">/* check handle */</span></div>
+<div class="line"><a id="l06317" name="l06317"></a><span class="lineno"> 6317</span>    {</div>
+<div class="line"><a id="l06318" name="l06318"></a><span class="lineno"> 6318</span>        <span class="keywordflow">return</span> 2;                                                                                           <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l06319" name="l06319"></a><span class="lineno"> 6319</span>    }   </div>
+<div class="line"><a id="l06320" name="l06320"></a><span class="lineno"> 6320</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">inited</a> != 1)                                                                                <span class="comment">/* check handle initialization */</span></div>
+<div class="line"><a id="l06321" name="l06321"></a><span class="lineno"> 6321</span>    {</div>
+<div class="line"><a id="l06322" name="l06322"></a><span class="lineno"> 6322</span>        <span class="keywordflow">return</span> 3;                                                                                           <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l06323" name="l06323"></a><span class="lineno"> 6323</span>    }</div>
+<div class="line"><a id="l06324" name="l06324"></a><span class="lineno"> 6324</span>    </div>
+<div class="line"><a id="l06325" name="l06325"></a><span class="lineno"> 6325</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>)                                                           <span class="comment">/* spi interface */</span></div>
+<div class="line"><a id="l06326" name="l06326"></a><span class="lineno"> 6326</span>    {</div>
+<div class="line"><a id="l06327" name="l06327"></a><span class="lineno"> 6327</span>        <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">dual_quad_spi_enable</a> != 0)                                                              <span class="comment">/* enable dual quad spi */</span></div>
+<div class="line"><a id="l06328" name="l06328"></a><span class="lineno"> 6328</span>        {</div>
+<div class="line"><a id="l06329" name="l06329"></a><span class="lineno"> 6329</span>            <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                         <span class="comment">/* 3 address mode */</span></div>
+<div class="line"><a id="l06330" name="l06330"></a><span class="lineno"> 6330</span>            {</div>
+<div class="line"><a id="l06331" name="l06331"></a><span class="lineno"> 6331</span>                <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)                                                                <span class="comment">/* &gt;128Mb */</span></div>
+<div class="line"><a id="l06332" name="l06332"></a><span class="lineno"> 6332</span>                {</div>
+<div class="line"><a id="l06333" name="l06333"></a><span class="lineno"> 6333</span>                    res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>, 1,</div>
+<div class="line"><a id="l06334" name="l06334"></a><span class="lineno"> 6334</span>                                                   0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l06335" name="l06335"></a><span class="lineno"> 6335</span>                                                   0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l06336" name="l06336"></a><span class="lineno"> 6336</span>                                                   0x00, NULL, 0x00,</div>
+<div class="line"><a id="l06337" name="l06337"></a><span class="lineno"> 6337</span>                                                   NULL, 0x00, 0x00);                                       <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l06338" name="l06338"></a><span class="lineno"> 6338</span>                    <span class="keywordflow">if</span> (res != 0)                                                                           <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l06339" name="l06339"></a><span class="lineno"> 6339</span>                    {</div>
+<div class="line"><a id="l06340" name="l06340"></a><span class="lineno"> 6340</span>                        handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                              <span class="comment">/* write enable failed */</span></div>
+<div class="line"><a id="l06341" name="l06341"></a><span class="lineno"> 6341</span>                       </div>
+<div class="line"><a id="l06342" name="l06342"></a><span class="lineno"> 6342</span>                        <span class="keywordflow">return</span> 1;                                                                           <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l06343" name="l06343"></a><span class="lineno"> 6343</span>                    }</div>
+<div class="line"><a id="l06344" name="l06344"></a><span class="lineno"> 6344</span>                    buf[0] = (addr &gt;&gt; 24) &amp; 0xFF;                                                           <span class="comment">/* 31 - 24 bits */</span></div>
+<div class="line"><a id="l06345" name="l06345"></a><span class="lineno"> 6345</span>                    res = a_w25qxx_qspi_write_read(handle, 0xC5, 1,</div>
+<div class="line"><a id="l06346" name="l06346"></a><span class="lineno"> 6346</span>                                                   0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l06347" name="l06347"></a><span class="lineno"> 6347</span>                                                   0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l06348" name="l06348"></a><span class="lineno"> 6348</span>                                                   0, (uint8_t *)buf, 0x01,</div>
+<div class="line"><a id="l06349" name="l06349"></a><span class="lineno"> 6349</span>                                                   NULL, 0x00, 1);                                          <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l06350" name="l06350"></a><span class="lineno"> 6350</span>                    <span class="keywordflow">if</span> (res != 0)                                                                           <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l06351" name="l06351"></a><span class="lineno"> 6351</span>                    {</div>
+<div class="line"><a id="l06352" name="l06352"></a><span class="lineno"> 6352</span>                        handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write extended addr register failed.\n&quot;</span>);              <span class="comment">/* write extended addr register failed */</span></div>
+<div class="line"><a id="l06353" name="l06353"></a><span class="lineno"> 6353</span>                       </div>
+<div class="line"><a id="l06354" name="l06354"></a><span class="lineno"> 6354</span>                        <span class="keywordflow">return</span> 1;                                                                           <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l06355" name="l06355"></a><span class="lineno"> 6355</span>                    }</div>
+<div class="line"><a id="l06356" name="l06356"></a><span class="lineno"> 6356</span>                }</div>
+<div class="line"><a id="l06357" name="l06357"></a><span class="lineno"> 6357</span>                res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#a3cc8b61583b5eb9d7c1ecd6831689718">W25QXX_COMMAND_INDIVIDUAL_BLOCK_UNLOCK</a>, 1,</div>
+<div class="line"><a id="l06358" name="l06358"></a><span class="lineno"> 6358</span>                                               addr, 1, 3,</div>
+<div class="line"><a id="l06359" name="l06359"></a><span class="lineno"> 6359</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l06360" name="l06360"></a><span class="lineno"> 6360</span>                                               0, NULL, 0x00,</div>
+<div class="line"><a id="l06361" name="l06361"></a><span class="lineno"> 6361</span>                                               NULL, 0x00, 0x00);                                           <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l06362" name="l06362"></a><span class="lineno"> 6362</span>                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l06363" name="l06363"></a><span class="lineno"> 6363</span>                {</div>
+<div class="line"><a id="l06364" name="l06364"></a><span class="lineno"> 6364</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: individual block unlock failed.\n&quot;</span>);                       <span class="comment">/* individual unblock lock failed */</span></div>
+<div class="line"><a id="l06365" name="l06365"></a><span class="lineno"> 6365</span>                   </div>
+<div class="line"><a id="l06366" name="l06366"></a><span class="lineno"> 6366</span>                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l06367" name="l06367"></a><span class="lineno"> 6367</span>                }</div>
+<div class="line"><a id="l06368" name="l06368"></a><span class="lineno"> 6368</span>            }</div>
+<div class="line"><a id="l06369" name="l06369"></a><span class="lineno"> 6369</span>            <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>) &amp;&amp; (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>))</div>
+<div class="line"><a id="l06370" name="l06370"></a><span class="lineno"> 6370</span>            {</div>
+<div class="line"><a id="l06371" name="l06371"></a><span class="lineno"> 6371</span>                res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#a3cc8b61583b5eb9d7c1ecd6831689718">W25QXX_COMMAND_INDIVIDUAL_BLOCK_UNLOCK</a>, 1,</div>
+<div class="line"><a id="l06372" name="l06372"></a><span class="lineno"> 6372</span>                                               addr, 1, 4,</div>
+<div class="line"><a id="l06373" name="l06373"></a><span class="lineno"> 6373</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l06374" name="l06374"></a><span class="lineno"> 6374</span>                                               0, NULL, 0x00,</div>
+<div class="line"><a id="l06375" name="l06375"></a><span class="lineno"> 6375</span>                                               NULL, 0x00, 0x00);                                           <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l06376" name="l06376"></a><span class="lineno"> 6376</span>                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l06377" name="l06377"></a><span class="lineno"> 6377</span>                {</div>
+<div class="line"><a id="l06378" name="l06378"></a><span class="lineno"> 6378</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: individual block unlock failed.\n&quot;</span>);                       <span class="comment">/* individual block unlock failed */</span></div>
+<div class="line"><a id="l06379" name="l06379"></a><span class="lineno"> 6379</span>                   </div>
+<div class="line"><a id="l06380" name="l06380"></a><span class="lineno"> 6380</span>                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l06381" name="l06381"></a><span class="lineno"> 6381</span>                }</div>
+<div class="line"><a id="l06382" name="l06382"></a><span class="lineno"> 6382</span>            }</div>
+<div class="line"><a id="l06383" name="l06383"></a><span class="lineno"> 6383</span>            <span class="keywordflow">else</span></div>
+<div class="line"><a id="l06384" name="l06384"></a><span class="lineno"> 6384</span>            {</div>
+<div class="line"><a id="l06385" name="l06385"></a><span class="lineno"> 6385</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: address mode is invalid.\n&quot;</span>);                                  <span class="comment">/* address mode is invalid */</span></div>
+<div class="line"><a id="l06386" name="l06386"></a><span class="lineno"> 6386</span>               </div>
+<div class="line"><a id="l06387" name="l06387"></a><span class="lineno"> 6387</span>                <span class="keywordflow">return</span> 4;                                                                                   <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l06388" name="l06388"></a><span class="lineno"> 6388</span>            }</div>
+<div class="line"><a id="l06389" name="l06389"></a><span class="lineno"> 6389</span>        }</div>
+<div class="line"><a id="l06390" name="l06390"></a><span class="lineno"> 6390</span>        <span class="keywordflow">else</span>                                                                                                <span class="comment">/* single spi */</span></div>
+<div class="line"><a id="l06391" name="l06391"></a><span class="lineno"> 6391</span>        {</div>
+<div class="line"><a id="l06392" name="l06392"></a><span class="lineno"> 6392</span>            <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                         <span class="comment">/* 3 address mode */</span></div>
+<div class="line"><a id="l06393" name="l06393"></a><span class="lineno"> 6393</span>            {</div>
+<div class="line"><a id="l06394" name="l06394"></a><span class="lineno"> 6394</span>                <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)                                                                <span class="comment">/* &gt;128Mb */</span></div>
+<div class="line"><a id="l06395" name="l06395"></a><span class="lineno"> 6395</span>                {</div>
+<div class="line"><a id="l06396" name="l06396"></a><span class="lineno"> 6396</span>                    buf[0] = <a class="code hl_define" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>;                                                   <span class="comment">/* write enable command */</span></div>
+<div class="line"><a id="l06397" name="l06397"></a><span class="lineno"> 6397</span>                    res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 1, NULL, 0);                      <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l06398" name="l06398"></a><span class="lineno"> 6398</span>                    <span class="keywordflow">if</span> (res != 0)                                                                           <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l06399" name="l06399"></a><span class="lineno"> 6399</span>                    {</div>
+<div class="line"><a id="l06400" name="l06400"></a><span class="lineno"> 6400</span>                        handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                              <span class="comment">/* write enable failed */</span></div>
+<div class="line"><a id="l06401" name="l06401"></a><span class="lineno"> 6401</span>                       </div>
+<div class="line"><a id="l06402" name="l06402"></a><span class="lineno"> 6402</span>                        <span class="keywordflow">return</span> 1;                                                                           <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l06403" name="l06403"></a><span class="lineno"> 6403</span>                    }</div>
+<div class="line"><a id="l06404" name="l06404"></a><span class="lineno"> 6404</span>                    buf[0] = 0xC5;                                                                          <span class="comment">/* write extended addr register command */</span></div>
+<div class="line"><a id="l06405" name="l06405"></a><span class="lineno"> 6405</span>                    buf[1] = (addr &gt;&gt; 24) &amp; 0xFF;                                                           <span class="comment">/* 31 - 24 bits */</span></div>
+<div class="line"><a id="l06406" name="l06406"></a><span class="lineno"> 6406</span>                    res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 2, NULL, 0);                      <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l06407" name="l06407"></a><span class="lineno"> 6407</span>                    <span class="keywordflow">if</span> (res != 0)                                                                           <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l06408" name="l06408"></a><span class="lineno"> 6408</span>                    {</div>
+<div class="line"><a id="l06409" name="l06409"></a><span class="lineno"> 6409</span>                        handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write extended addr register failed.\n&quot;</span>);              <span class="comment">/* write extended addr register failed */</span></div>
+<div class="line"><a id="l06410" name="l06410"></a><span class="lineno"> 6410</span>                       </div>
+<div class="line"><a id="l06411" name="l06411"></a><span class="lineno"> 6411</span>                        <span class="keywordflow">return</span> 1;                                                                           <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l06412" name="l06412"></a><span class="lineno"> 6412</span>                    }</div>
+<div class="line"><a id="l06413" name="l06413"></a><span class="lineno"> 6413</span>                }</div>
+<div class="line"><a id="l06414" name="l06414"></a><span class="lineno"> 6414</span>                buf[0] = <a class="code hl_define" href="driver__w25qxx_8c.html#a3cc8b61583b5eb9d7c1ecd6831689718">W25QXX_COMMAND_INDIVIDUAL_BLOCK_UNLOCK</a>;                                            <span class="comment">/* individual block unlock command */</span></div>
+<div class="line"><a id="l06415" name="l06415"></a><span class="lineno"> 6415</span>                buf[1] = (addr &gt;&gt; 16) &amp; 0xFF;                                                               <span class="comment">/* 23 - 16 bits */</span></div>
+<div class="line"><a id="l06416" name="l06416"></a><span class="lineno"> 6416</span>                buf[2] = (addr &gt;&gt; 8) &amp; 0xFF;                                                                <span class="comment">/* 15 - 8  bits */</span></div>
+<div class="line"><a id="l06417" name="l06417"></a><span class="lineno"> 6417</span>                buf[3] = (addr &gt;&gt; 0) &amp; 0xFF;                                                                <span class="comment">/* 7 - 0 bits */</span></div>
+<div class="line"><a id="l06418" name="l06418"></a><span class="lineno"> 6418</span>                res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 4, NULL, 0);                          <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l06419" name="l06419"></a><span class="lineno"> 6419</span>                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l06420" name="l06420"></a><span class="lineno"> 6420</span>                {</div>
+<div class="line"><a id="l06421" name="l06421"></a><span class="lineno"> 6421</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: individual block unlock failed.\n&quot;</span>);                       <span class="comment">/* individual block unlock failed */</span></div>
+<div class="line"><a id="l06422" name="l06422"></a><span class="lineno"> 6422</span>                   </div>
+<div class="line"><a id="l06423" name="l06423"></a><span class="lineno"> 6423</span>                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l06424" name="l06424"></a><span class="lineno"> 6424</span>                }</div>
+<div class="line"><a id="l06425" name="l06425"></a><span class="lineno"> 6425</span>            }</div>
+<div class="line"><a id="l06426" name="l06426"></a><span class="lineno"> 6426</span>            <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>) &amp;&amp; (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>))</div>
+<div class="line"><a id="l06427" name="l06427"></a><span class="lineno"> 6427</span>            {</div>
+<div class="line"><a id="l06428" name="l06428"></a><span class="lineno"> 6428</span>                buf[0] = <a class="code hl_define" href="driver__w25qxx_8c.html#a3cc8b61583b5eb9d7c1ecd6831689718">W25QXX_COMMAND_INDIVIDUAL_BLOCK_UNLOCK</a>;                                            <span class="comment">/* individual block unlock command */</span></div>
+<div class="line"><a id="l06429" name="l06429"></a><span class="lineno"> 6429</span>                buf[1] = (addr &gt;&gt; 24) &amp; 0xFF;                                                               <span class="comment">/* 31 - 24 bits */</span></div>
+<div class="line"><a id="l06430" name="l06430"></a><span class="lineno"> 6430</span>                buf[2] = (addr &gt;&gt; 16) &amp; 0xFF;                                                               <span class="comment">/* 23 - 16 bits */</span></div>
+<div class="line"><a id="l06431" name="l06431"></a><span class="lineno"> 6431</span>                buf[3] = (addr &gt;&gt; 8) &amp; 0xFF;                                                                <span class="comment">/* 15 - 8  bits */</span></div>
+<div class="line"><a id="l06432" name="l06432"></a><span class="lineno"> 6432</span>                buf[4] = (addr &gt;&gt; 0) &amp; 0xFF;                                                                <span class="comment">/* 7 - 0 bits */</span></div>
+<div class="line"><a id="l06433" name="l06433"></a><span class="lineno"> 6433</span>                res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 5, NULL, 0);                          <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l06434" name="l06434"></a><span class="lineno"> 6434</span>                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l06435" name="l06435"></a><span class="lineno"> 6435</span>                {</div>
+<div class="line"><a id="l06436" name="l06436"></a><span class="lineno"> 6436</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: individual block unlock failed.\n&quot;</span>);                       <span class="comment">/* individual block unlock failed */</span></div>
+<div class="line"><a id="l06437" name="l06437"></a><span class="lineno"> 6437</span>                   </div>
+<div class="line"><a id="l06438" name="l06438"></a><span class="lineno"> 6438</span>                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l06439" name="l06439"></a><span class="lineno"> 6439</span>                }</div>
+<div class="line"><a id="l06440" name="l06440"></a><span class="lineno"> 6440</span>            }</div>
+<div class="line"><a id="l06441" name="l06441"></a><span class="lineno"> 6441</span>            <span class="keywordflow">else</span></div>
+<div class="line"><a id="l06442" name="l06442"></a><span class="lineno"> 6442</span>            {</div>
+<div class="line"><a id="l06443" name="l06443"></a><span class="lineno"> 6443</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: address mode is invalid.\n&quot;</span>);                                  <span class="comment">/* address mode is invalid */</span></div>
+<div class="line"><a id="l06444" name="l06444"></a><span class="lineno"> 6444</span>               </div>
+<div class="line"><a id="l06445" name="l06445"></a><span class="lineno"> 6445</span>                <span class="keywordflow">return</span> 4;                                                                                   <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l06446" name="l06446"></a><span class="lineno"> 6446</span>            }</div>
+<div class="line"><a id="l06447" name="l06447"></a><span class="lineno"> 6447</span>        }</div>
+<div class="line"><a id="l06448" name="l06448"></a><span class="lineno"> 6448</span>    }</div>
+<div class="line"><a id="l06449" name="l06449"></a><span class="lineno"> 6449</span>    <span class="keywordflow">else</span></div>
+<div class="line"><a id="l06450" name="l06450"></a><span class="lineno"> 6450</span>    {</div>
+<div class="line"><a id="l06451" name="l06451"></a><span class="lineno"> 6451</span>        <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                             <span class="comment">/* 3 address mode */</span></div>
+<div class="line"><a id="l06452" name="l06452"></a><span class="lineno"> 6452</span>        {</div>
+<div class="line"><a id="l06453" name="l06453"></a><span class="lineno"> 6453</span>            <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)                                                                    <span class="comment">/* &gt;128Mb */</span></div>
+<div class="line"><a id="l06454" name="l06454"></a><span class="lineno"> 6454</span>            {</div>
+<div class="line"><a id="l06455" name="l06455"></a><span class="lineno"> 6455</span>                res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>, 4,</div>
+<div class="line"><a id="l06456" name="l06456"></a><span class="lineno"> 6456</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l06457" name="l06457"></a><span class="lineno"> 6457</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l06458" name="l06458"></a><span class="lineno"> 6458</span>                                               0x00, NULL, 0x00,</div>
+<div class="line"><a id="l06459" name="l06459"></a><span class="lineno"> 6459</span>                                               NULL, 0x00, 0x00);                                           <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l06460" name="l06460"></a><span class="lineno"> 6460</span>                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l06461" name="l06461"></a><span class="lineno"> 6461</span>                {</div>
+<div class="line"><a id="l06462" name="l06462"></a><span class="lineno"> 6462</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                                  <span class="comment">/* write enable failed */</span></div>
+<div class="line"><a id="l06463" name="l06463"></a><span class="lineno"> 6463</span>                   </div>
+<div class="line"><a id="l06464" name="l06464"></a><span class="lineno"> 6464</span>                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l06465" name="l06465"></a><span class="lineno"> 6465</span>                }</div>
+<div class="line"><a id="l06466" name="l06466"></a><span class="lineno"> 6466</span>                buf[0] = (addr &gt;&gt; 24) &amp; 0xFF;                                                               <span class="comment">/* 31 - 24 bits */</span></div>
+<div class="line"><a id="l06467" name="l06467"></a><span class="lineno"> 6467</span>                res = a_w25qxx_qspi_write_read(handle, 0xC5, 4,</div>
+<div class="line"><a id="l06468" name="l06468"></a><span class="lineno"> 6468</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l06469" name="l06469"></a><span class="lineno"> 6469</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l06470" name="l06470"></a><span class="lineno"> 6470</span>                                               0, (uint8_t *)buf, 0x01,</div>
+<div class="line"><a id="l06471" name="l06471"></a><span class="lineno"> 6471</span>                                               NULL, 0x00, 4);                                              <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l06472" name="l06472"></a><span class="lineno"> 6472</span>                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l06473" name="l06473"></a><span class="lineno"> 6473</span>                {</div>
+<div class="line"><a id="l06474" name="l06474"></a><span class="lineno"> 6474</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write extended addr register failed.\n&quot;</span>);                  <span class="comment">/* write extended addr register failed */</span></div>
+<div class="line"><a id="l06475" name="l06475"></a><span class="lineno"> 6475</span>                   </div>
+<div class="line"><a id="l06476" name="l06476"></a><span class="lineno"> 6476</span>                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l06477" name="l06477"></a><span class="lineno"> 6477</span>                }</div>
+<div class="line"><a id="l06478" name="l06478"></a><span class="lineno"> 6478</span>            }</div>
+<div class="line"><a id="l06479" name="l06479"></a><span class="lineno"> 6479</span>            res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#a3cc8b61583b5eb9d7c1ecd6831689718">W25QXX_COMMAND_INDIVIDUAL_BLOCK_UNLOCK</a>, 4,</div>
+<div class="line"><a id="l06480" name="l06480"></a><span class="lineno"> 6480</span>                                           addr, 4, 3,</div>
+<div class="line"><a id="l06481" name="l06481"></a><span class="lineno"> 6481</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l06482" name="l06482"></a><span class="lineno"> 6482</span>                                           0, NULL, 0x00,</div>
+<div class="line"><a id="l06483" name="l06483"></a><span class="lineno"> 6483</span>                                           NULL, 0x00, 0x00);                                               <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l06484" name="l06484"></a><span class="lineno"> 6484</span>            <span class="keywordflow">if</span> (res != 0)                                                                                   <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l06485" name="l06485"></a><span class="lineno"> 6485</span>            {</div>
+<div class="line"><a id="l06486" name="l06486"></a><span class="lineno"> 6486</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: individual block unlock failed.\n&quot;</span>);                           <span class="comment">/* individual unblock lock failed */</span></div>
+<div class="line"><a id="l06487" name="l06487"></a><span class="lineno"> 6487</span>               </div>
+<div class="line"><a id="l06488" name="l06488"></a><span class="lineno"> 6488</span>                <span class="keywordflow">return</span> 1;                                                                                   <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l06489" name="l06489"></a><span class="lineno"> 6489</span>            }</div>
+<div class="line"><a id="l06490" name="l06490"></a><span class="lineno"> 6490</span>        }</div>
+<div class="line"><a id="l06491" name="l06491"></a><span class="lineno"> 6491</span>        <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>) &amp;&amp; (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>))</div>
+<div class="line"><a id="l06492" name="l06492"></a><span class="lineno"> 6492</span>        {</div>
+<div class="line"><a id="l06493" name="l06493"></a><span class="lineno"> 6493</span>            res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#a3cc8b61583b5eb9d7c1ecd6831689718">W25QXX_COMMAND_INDIVIDUAL_BLOCK_UNLOCK</a>, 4,</div>
+<div class="line"><a id="l06494" name="l06494"></a><span class="lineno"> 6494</span>                                           addr, 4, 4,</div>
+<div class="line"><a id="l06495" name="l06495"></a><span class="lineno"> 6495</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l06496" name="l06496"></a><span class="lineno"> 6496</span>                                           0, NULL, 0x00,</div>
+<div class="line"><a id="l06497" name="l06497"></a><span class="lineno"> 6497</span>                                           NULL, 0x00, 0x00);                                               <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l06498" name="l06498"></a><span class="lineno"> 6498</span>            <span class="keywordflow">if</span> (res != 0)                                                                                   <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l06499" name="l06499"></a><span class="lineno"> 6499</span>            {</div>
+<div class="line"><a id="l06500" name="l06500"></a><span class="lineno"> 6500</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: individual block unlock failed.\n&quot;</span>);                           <span class="comment">/* individual block unlock failed */</span></div>
+<div class="line"><a id="l06501" name="l06501"></a><span class="lineno"> 6501</span>               </div>
+<div class="line"><a id="l06502" name="l06502"></a><span class="lineno"> 6502</span>                <span class="keywordflow">return</span> 1;                                                                                   <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l06503" name="l06503"></a><span class="lineno"> 6503</span>            }</div>
+<div class="line"><a id="l06504" name="l06504"></a><span class="lineno"> 6504</span>        }</div>
+<div class="line"><a id="l06505" name="l06505"></a><span class="lineno"> 6505</span>        <span class="keywordflow">else</span></div>
+<div class="line"><a id="l06506" name="l06506"></a><span class="lineno"> 6506</span>        {</div>
+<div class="line"><a id="l06507" name="l06507"></a><span class="lineno"> 6507</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: address mode is invalid.\n&quot;</span>);                                      <span class="comment">/* address mode is invalid */</span></div>
+<div class="line"><a id="l06508" name="l06508"></a><span class="lineno"> 6508</span>           </div>
+<div class="line"><a id="l06509" name="l06509"></a><span class="lineno"> 6509</span>            <span class="keywordflow">return</span> 4;                                                                                       <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l06510" name="l06510"></a><span class="lineno"> 6510</span>        }</div>
+<div class="line"><a id="l06511" name="l06511"></a><span class="lineno"> 6511</span>    }</div>
+<div class="line"><a id="l06512" name="l06512"></a><span class="lineno"> 6512</span>    </div>
+<div class="line"><a id="l06513" name="l06513"></a><span class="lineno"> 6513</span>    <span class="keywordflow">return</span> 0;                                                                                               <span class="comment">/* success return 0 */</span></div>
+<div class="line"><a id="l06514" name="l06514"></a><span class="lineno"> 6514</span>}</div>
+</div>
+<div class="line"><a id="l06515" name="l06515"></a><span class="lineno"> 6515</span> </div>
+<div class="foldopen" id="foldopen06529" data-start="{" data-end="}">
+<div class="line"><a id="l06529" name="l06529"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#ga59e655ca78a175037ca810bbc8539a96"> 6529</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__advance__driver.html#ga59e655ca78a175037ca810bbc8539a96">w25qxx_read_block_lock</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *value)</div>
+<div class="line"><a id="l06530" name="l06530"></a><span class="lineno"> 6530</span>{</div>
+<div class="line"><a id="l06531" name="l06531"></a><span class="lineno"> 6531</span>    uint8_t res;</div>
+<div class="line"><a id="l06532" name="l06532"></a><span class="lineno"> 6532</span>    uint8_t buf[5];</div>
+<div class="line"><a id="l06533" name="l06533"></a><span class="lineno"> 6533</span>    </div>
+<div class="line"><a id="l06534" name="l06534"></a><span class="lineno"> 6534</span>    <span class="keywordflow">if</span> (handle == NULL)                                                                                     <span class="comment">/* check handle */</span></div>
+<div class="line"><a id="l06535" name="l06535"></a><span class="lineno"> 6535</span>    {</div>
+<div class="line"><a id="l06536" name="l06536"></a><span class="lineno"> 6536</span>        <span class="keywordflow">return</span> 2;                                                                                           <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l06537" name="l06537"></a><span class="lineno"> 6537</span>    }   </div>
+<div class="line"><a id="l06538" name="l06538"></a><span class="lineno"> 6538</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">inited</a> != 1)                                                                                <span class="comment">/* check handle initialization */</span></div>
+<div class="line"><a id="l06539" name="l06539"></a><span class="lineno"> 6539</span>    {</div>
+<div class="line"><a id="l06540" name="l06540"></a><span class="lineno"> 6540</span>        <span class="keywordflow">return</span> 3;                                                                                           <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l06541" name="l06541"></a><span class="lineno"> 6541</span>    }</div>
+<div class="line"><a id="l06542" name="l06542"></a><span class="lineno"> 6542</span>    </div>
+<div class="line"><a id="l06543" name="l06543"></a><span class="lineno"> 6543</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>)                                                           <span class="comment">/* spi interface */</span></div>
+<div class="line"><a id="l06544" name="l06544"></a><span class="lineno"> 6544</span>    {</div>
+<div class="line"><a id="l06545" name="l06545"></a><span class="lineno"> 6545</span>        <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">dual_quad_spi_enable</a> != 0)                                                              <span class="comment">/* enable dual quad spi */</span></div>
+<div class="line"><a id="l06546" name="l06546"></a><span class="lineno"> 6546</span>        {</div>
+<div class="line"><a id="l06547" name="l06547"></a><span class="lineno"> 6547</span>            <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                         <span class="comment">/* 3 address mode */</span></div>
+<div class="line"><a id="l06548" name="l06548"></a><span class="lineno"> 6548</span>            {</div>
+<div class="line"><a id="l06549" name="l06549"></a><span class="lineno"> 6549</span>                <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)                                                                <span class="comment">/* &gt;128Mb */</span></div>
+<div class="line"><a id="l06550" name="l06550"></a><span class="lineno"> 6550</span>                {</div>
+<div class="line"><a id="l06551" name="l06551"></a><span class="lineno"> 6551</span>                    res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>, 1,</div>
+<div class="line"><a id="l06552" name="l06552"></a><span class="lineno"> 6552</span>                                                   0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l06553" name="l06553"></a><span class="lineno"> 6553</span>                                                   0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l06554" name="l06554"></a><span class="lineno"> 6554</span>                                                   0x00, NULL, 0x00,</div>
+<div class="line"><a id="l06555" name="l06555"></a><span class="lineno"> 6555</span>                                                   NULL, 0x00, 0x00);                                       <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l06556" name="l06556"></a><span class="lineno"> 6556</span>                    <span class="keywordflow">if</span> (res != 0)                                                                           <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l06557" name="l06557"></a><span class="lineno"> 6557</span>                    {</div>
+<div class="line"><a id="l06558" name="l06558"></a><span class="lineno"> 6558</span>                        handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                              <span class="comment">/* write enable failed */</span></div>
+<div class="line"><a id="l06559" name="l06559"></a><span class="lineno"> 6559</span>                       </div>
+<div class="line"><a id="l06560" name="l06560"></a><span class="lineno"> 6560</span>                        <span class="keywordflow">return</span> 1;                                                                           <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l06561" name="l06561"></a><span class="lineno"> 6561</span>                    }</div>
+<div class="line"><a id="l06562" name="l06562"></a><span class="lineno"> 6562</span>                    buf[0] = (addr &gt;&gt; 24) &amp; 0xFF;                                                           <span class="comment">/* 31 - 24 bits */</span></div>
+<div class="line"><a id="l06563" name="l06563"></a><span class="lineno"> 6563</span>                    res = a_w25qxx_qspi_write_read(handle, 0xC5, 1,</div>
+<div class="line"><a id="l06564" name="l06564"></a><span class="lineno"> 6564</span>                                                   0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l06565" name="l06565"></a><span class="lineno"> 6565</span>                                                   0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l06566" name="l06566"></a><span class="lineno"> 6566</span>                                                   0, (uint8_t *)buf, 0x01,</div>
+<div class="line"><a id="l06567" name="l06567"></a><span class="lineno"> 6567</span>                                                   NULL, 0x00, 1);                                          <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l06568" name="l06568"></a><span class="lineno"> 6568</span>                    <span class="keywordflow">if</span> (res != 0)                                                                           <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l06569" name="l06569"></a><span class="lineno"> 6569</span>                    {</div>
+<div class="line"><a id="l06570" name="l06570"></a><span class="lineno"> 6570</span>                        handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write extended addr register failed.\n&quot;</span>);              <span class="comment">/* write extended addr register failed */</span></div>
+<div class="line"><a id="l06571" name="l06571"></a><span class="lineno"> 6571</span>                       </div>
+<div class="line"><a id="l06572" name="l06572"></a><span class="lineno"> 6572</span>                        <span class="keywordflow">return</span> 1;                                                                           <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l06573" name="l06573"></a><span class="lineno"> 6573</span>                    }</div>
+<div class="line"><a id="l06574" name="l06574"></a><span class="lineno"> 6574</span>                }</div>
+<div class="line"><a id="l06575" name="l06575"></a><span class="lineno"> 6575</span>                res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#a19e055bec30de0ad30e7f8ab5feea6a8">W25QXX_COMMAND_READ_BLOCK_LOCK</a>, 1,</div>
+<div class="line"><a id="l06576" name="l06576"></a><span class="lineno"> 6576</span>                                               addr, 1, 3,</div>
+<div class="line"><a id="l06577" name="l06577"></a><span class="lineno"> 6577</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l06578" name="l06578"></a><span class="lineno"> 6578</span>                                               0, NULL, 0x00,</div>
+<div class="line"><a id="l06579" name="l06579"></a><span class="lineno"> 6579</span>                                               value, 1, 1);                                                <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l06580" name="l06580"></a><span class="lineno"> 6580</span>                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l06581" name="l06581"></a><span class="lineno"> 6581</span>                {</div>
+<div class="line"><a id="l06582" name="l06582"></a><span class="lineno"> 6582</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: read block lock failed.\n&quot;</span>);                               <span class="comment">/* read block lock failed */</span></div>
+<div class="line"><a id="l06583" name="l06583"></a><span class="lineno"> 6583</span>                   </div>
+<div class="line"><a id="l06584" name="l06584"></a><span class="lineno"> 6584</span>                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l06585" name="l06585"></a><span class="lineno"> 6585</span>                }</div>
+<div class="line"><a id="l06586" name="l06586"></a><span class="lineno"> 6586</span>            }</div>
+<div class="line"><a id="l06587" name="l06587"></a><span class="lineno"> 6587</span>            <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>) &amp;&amp; (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>))</div>
+<div class="line"><a id="l06588" name="l06588"></a><span class="lineno"> 6588</span>            {</div>
+<div class="line"><a id="l06589" name="l06589"></a><span class="lineno"> 6589</span>                res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#a19e055bec30de0ad30e7f8ab5feea6a8">W25QXX_COMMAND_READ_BLOCK_LOCK</a>, 1,</div>
+<div class="line"><a id="l06590" name="l06590"></a><span class="lineno"> 6590</span>                                               addr, 1, 4,</div>
+<div class="line"><a id="l06591" name="l06591"></a><span class="lineno"> 6591</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l06592" name="l06592"></a><span class="lineno"> 6592</span>                                               0, NULL, 0x00,</div>
+<div class="line"><a id="l06593" name="l06593"></a><span class="lineno"> 6593</span>                                               value, 1, 1);                                                <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l06594" name="l06594"></a><span class="lineno"> 6594</span>                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l06595" name="l06595"></a><span class="lineno"> 6595</span>                {</div>
+<div class="line"><a id="l06596" name="l06596"></a><span class="lineno"> 6596</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: read block lock failed.\n&quot;</span>);                               <span class="comment">/* read block lock failed */</span></div>
+<div class="line"><a id="l06597" name="l06597"></a><span class="lineno"> 6597</span>                   </div>
+<div class="line"><a id="l06598" name="l06598"></a><span class="lineno"> 6598</span>                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l06599" name="l06599"></a><span class="lineno"> 6599</span>                }</div>
+<div class="line"><a id="l06600" name="l06600"></a><span class="lineno"> 6600</span>            }</div>
+<div class="line"><a id="l06601" name="l06601"></a><span class="lineno"> 6601</span>            <span class="keywordflow">else</span></div>
+<div class="line"><a id="l06602" name="l06602"></a><span class="lineno"> 6602</span>            {</div>
+<div class="line"><a id="l06603" name="l06603"></a><span class="lineno"> 6603</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: address mode is invalid.\n&quot;</span>);                                  <span class="comment">/* address mode is invalid */</span></div>
+<div class="line"><a id="l06604" name="l06604"></a><span class="lineno"> 6604</span>               </div>
+<div class="line"><a id="l06605" name="l06605"></a><span class="lineno"> 6605</span>                <span class="keywordflow">return</span> 4;                                                                                   <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l06606" name="l06606"></a><span class="lineno"> 6606</span>            }</div>
+<div class="line"><a id="l06607" name="l06607"></a><span class="lineno"> 6607</span>        }</div>
+<div class="line"><a id="l06608" name="l06608"></a><span class="lineno"> 6608</span>        <span class="keywordflow">else</span>                                                                                                <span class="comment">/* single spi */</span></div>
+<div class="line"><a id="l06609" name="l06609"></a><span class="lineno"> 6609</span>        {</div>
+<div class="line"><a id="l06610" name="l06610"></a><span class="lineno"> 6610</span>            <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                         <span class="comment">/* 3 address mode */</span></div>
+<div class="line"><a id="l06611" name="l06611"></a><span class="lineno"> 6611</span>            {</div>
+<div class="line"><a id="l06612" name="l06612"></a><span class="lineno"> 6612</span>                <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)                                                                <span class="comment">/* &gt;128Mb */</span></div>
+<div class="line"><a id="l06613" name="l06613"></a><span class="lineno"> 6613</span>                {</div>
+<div class="line"><a id="l06614" name="l06614"></a><span class="lineno"> 6614</span>                    buf[0] = <a class="code hl_define" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>;                                                   <span class="comment">/* write enable command */</span></div>
+<div class="line"><a id="l06615" name="l06615"></a><span class="lineno"> 6615</span>                    res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 1, NULL, 0);                      <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l06616" name="l06616"></a><span class="lineno"> 6616</span>                    <span class="keywordflow">if</span> (res != 0)                                                                           <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l06617" name="l06617"></a><span class="lineno"> 6617</span>                    {</div>
+<div class="line"><a id="l06618" name="l06618"></a><span class="lineno"> 6618</span>                        handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                              <span class="comment">/* write enable failed */</span></div>
+<div class="line"><a id="l06619" name="l06619"></a><span class="lineno"> 6619</span>                       </div>
+<div class="line"><a id="l06620" name="l06620"></a><span class="lineno"> 6620</span>                        <span class="keywordflow">return</span> 1;                                                                           <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l06621" name="l06621"></a><span class="lineno"> 6621</span>                    }</div>
+<div class="line"><a id="l06622" name="l06622"></a><span class="lineno"> 6622</span>                    buf[0] = 0xC5;                                                                          <span class="comment">/* write extended addr register command */</span></div>
+<div class="line"><a id="l06623" name="l06623"></a><span class="lineno"> 6623</span>                    buf[1] = (addr &gt;&gt; 24) &amp; 0xFF;                                                           <span class="comment">/* 31 - 24 bits */</span></div>
+<div class="line"><a id="l06624" name="l06624"></a><span class="lineno"> 6624</span>                    res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 2, NULL, 0);                      <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l06625" name="l06625"></a><span class="lineno"> 6625</span>                    <span class="keywordflow">if</span> (res != 0)                                                                           <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l06626" name="l06626"></a><span class="lineno"> 6626</span>                    {</div>
+<div class="line"><a id="l06627" name="l06627"></a><span class="lineno"> 6627</span>                        handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write extended addr register failed.\n&quot;</span>);              <span class="comment">/* write extended addr register failed */</span></div>
+<div class="line"><a id="l06628" name="l06628"></a><span class="lineno"> 6628</span>                       </div>
+<div class="line"><a id="l06629" name="l06629"></a><span class="lineno"> 6629</span>                        <span class="keywordflow">return</span> 1;                                                                           <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l06630" name="l06630"></a><span class="lineno"> 6630</span>                    }</div>
+<div class="line"><a id="l06631" name="l06631"></a><span class="lineno"> 6631</span>                }</div>
+<div class="line"><a id="l06632" name="l06632"></a><span class="lineno"> 6632</span>                buf[0] = <a class="code hl_define" href="driver__w25qxx_8c.html#a19e055bec30de0ad30e7f8ab5feea6a8">W25QXX_COMMAND_READ_BLOCK_LOCK</a>;                                                    <span class="comment">/* read block lock command */</span></div>
+<div class="line"><a id="l06633" name="l06633"></a><span class="lineno"> 6633</span>                buf[1] = (addr &gt;&gt; 16) &amp; 0xFF;                                                               <span class="comment">/* 23 - 16 bits */</span></div>
+<div class="line"><a id="l06634" name="l06634"></a><span class="lineno"> 6634</span>                buf[2] = (addr &gt;&gt; 8) &amp; 0xFF;                                                                <span class="comment">/* 15 - 8  bits */</span></div>
+<div class="line"><a id="l06635" name="l06635"></a><span class="lineno"> 6635</span>                buf[3] = (addr &gt;&gt; 0) &amp; 0xFF;                                                                <span class="comment">/* 7 - 0 bits */</span></div>
+<div class="line"><a id="l06636" name="l06636"></a><span class="lineno"> 6636</span>                res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 4, value, 1);                         <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l06637" name="l06637"></a><span class="lineno"> 6637</span>                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l06638" name="l06638"></a><span class="lineno"> 6638</span>                {</div>
+<div class="line"><a id="l06639" name="l06639"></a><span class="lineno"> 6639</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: read block lock failed.\n&quot;</span>);                               <span class="comment">/* read block lock failed */</span></div>
+<div class="line"><a id="l06640" name="l06640"></a><span class="lineno"> 6640</span>                   </div>
+<div class="line"><a id="l06641" name="l06641"></a><span class="lineno"> 6641</span>                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l06642" name="l06642"></a><span class="lineno"> 6642</span>                }</div>
+<div class="line"><a id="l06643" name="l06643"></a><span class="lineno"> 6643</span>            }</div>
+<div class="line"><a id="l06644" name="l06644"></a><span class="lineno"> 6644</span>            <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>) &amp;&amp; (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>))</div>
+<div class="line"><a id="l06645" name="l06645"></a><span class="lineno"> 6645</span>            {</div>
+<div class="line"><a id="l06646" name="l06646"></a><span class="lineno"> 6646</span>                buf[0] = <a class="code hl_define" href="driver__w25qxx_8c.html#a19e055bec30de0ad30e7f8ab5feea6a8">W25QXX_COMMAND_READ_BLOCK_LOCK</a>;                                                    <span class="comment">/* read block lock command */</span></div>
+<div class="line"><a id="l06647" name="l06647"></a><span class="lineno"> 6647</span>                buf[1] = (addr &gt;&gt; 24) &amp; 0xFF;                                                               <span class="comment">/* 31 - 24 bits */</span></div>
+<div class="line"><a id="l06648" name="l06648"></a><span class="lineno"> 6648</span>                buf[2] = (addr &gt;&gt; 16) &amp; 0xFF;                                                               <span class="comment">/* 23 - 16 bits */</span></div>
+<div class="line"><a id="l06649" name="l06649"></a><span class="lineno"> 6649</span>                buf[3] = (addr &gt;&gt; 8) &amp; 0xFF;                                                                <span class="comment">/* 15 - 8  bits */</span></div>
+<div class="line"><a id="l06650" name="l06650"></a><span class="lineno"> 6650</span>                buf[4] = (addr &gt;&gt; 0) &amp; 0xFF;                                                                <span class="comment">/* 7 - 0 bits */</span></div>
+<div class="line"><a id="l06651" name="l06651"></a><span class="lineno"> 6651</span>                res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 5, value, 1);                         <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l06652" name="l06652"></a><span class="lineno"> 6652</span>                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l06653" name="l06653"></a><span class="lineno"> 6653</span>                {</div>
+<div class="line"><a id="l06654" name="l06654"></a><span class="lineno"> 6654</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: read block lock failed.\n&quot;</span>);                               <span class="comment">/* read block lock failed */</span></div>
+<div class="line"><a id="l06655" name="l06655"></a><span class="lineno"> 6655</span>                   </div>
+<div class="line"><a id="l06656" name="l06656"></a><span class="lineno"> 6656</span>                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l06657" name="l06657"></a><span class="lineno"> 6657</span>                }</div>
+<div class="line"><a id="l06658" name="l06658"></a><span class="lineno"> 6658</span>            }</div>
+<div class="line"><a id="l06659" name="l06659"></a><span class="lineno"> 6659</span>            <span class="keywordflow">else</span></div>
+<div class="line"><a id="l06660" name="l06660"></a><span class="lineno"> 6660</span>            {</div>
+<div class="line"><a id="l06661" name="l06661"></a><span class="lineno"> 6661</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: address mode is invalid.\n&quot;</span>);                                  <span class="comment">/* address mode is invalid */</span></div>
+<div class="line"><a id="l06662" name="l06662"></a><span class="lineno"> 6662</span>               </div>
+<div class="line"><a id="l06663" name="l06663"></a><span class="lineno"> 6663</span>                <span class="keywordflow">return</span> 4;                                                                                   <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l06664" name="l06664"></a><span class="lineno"> 6664</span>            }</div>
+<div class="line"><a id="l06665" name="l06665"></a><span class="lineno"> 6665</span>        }</div>
+<div class="line"><a id="l06666" name="l06666"></a><span class="lineno"> 6666</span>    }</div>
+<div class="line"><a id="l06667" name="l06667"></a><span class="lineno"> 6667</span>    <span class="keywordflow">else</span></div>
+<div class="line"><a id="l06668" name="l06668"></a><span class="lineno"> 6668</span>    {</div>
+<div class="line"><a id="l06669" name="l06669"></a><span class="lineno"> 6669</span>        <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                             <span class="comment">/* 3 address mode */</span></div>
+<div class="line"><a id="l06670" name="l06670"></a><span class="lineno"> 6670</span>        {</div>
+<div class="line"><a id="l06671" name="l06671"></a><span class="lineno"> 6671</span>            <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)                                                                    <span class="comment">/* &gt;128Mb */</span></div>
+<div class="line"><a id="l06672" name="l06672"></a><span class="lineno"> 6672</span>            {</div>
+<div class="line"><a id="l06673" name="l06673"></a><span class="lineno"> 6673</span>                res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>, 4,</div>
+<div class="line"><a id="l06674" name="l06674"></a><span class="lineno"> 6674</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l06675" name="l06675"></a><span class="lineno"> 6675</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l06676" name="l06676"></a><span class="lineno"> 6676</span>                                               0x00, NULL, 0x00,</div>
+<div class="line"><a id="l06677" name="l06677"></a><span class="lineno"> 6677</span>                                               NULL, 0x00, 0x00);                                           <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l06678" name="l06678"></a><span class="lineno"> 6678</span>                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l06679" name="l06679"></a><span class="lineno"> 6679</span>                {</div>
+<div class="line"><a id="l06680" name="l06680"></a><span class="lineno"> 6680</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                                  <span class="comment">/* write enable failed */</span></div>
+<div class="line"><a id="l06681" name="l06681"></a><span class="lineno"> 6681</span>                   </div>
+<div class="line"><a id="l06682" name="l06682"></a><span class="lineno"> 6682</span>                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l06683" name="l06683"></a><span class="lineno"> 6683</span>                }</div>
+<div class="line"><a id="l06684" name="l06684"></a><span class="lineno"> 6684</span>                buf[0] = (addr &gt;&gt; 24) &amp; 0xFF;                                                               <span class="comment">/* 31 - 24 bits */</span></div>
+<div class="line"><a id="l06685" name="l06685"></a><span class="lineno"> 6685</span>                res = a_w25qxx_qspi_write_read(handle, 0xC5, 4,</div>
+<div class="line"><a id="l06686" name="l06686"></a><span class="lineno"> 6686</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l06687" name="l06687"></a><span class="lineno"> 6687</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l06688" name="l06688"></a><span class="lineno"> 6688</span>                                               0, (uint8_t *)buf, 0x01,</div>
+<div class="line"><a id="l06689" name="l06689"></a><span class="lineno"> 6689</span>                                               NULL, 0x00, 4);                                              <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l06690" name="l06690"></a><span class="lineno"> 6690</span>                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l06691" name="l06691"></a><span class="lineno"> 6691</span>                {</div>
+<div class="line"><a id="l06692" name="l06692"></a><span class="lineno"> 6692</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write extended addr register failed.\n&quot;</span>);                  <span class="comment">/* write extended addr register failed */</span></div>
+<div class="line"><a id="l06693" name="l06693"></a><span class="lineno"> 6693</span>                   </div>
+<div class="line"><a id="l06694" name="l06694"></a><span class="lineno"> 6694</span>                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l06695" name="l06695"></a><span class="lineno"> 6695</span>                }</div>
+<div class="line"><a id="l06696" name="l06696"></a><span class="lineno"> 6696</span>            }</div>
+<div class="line"><a id="l06697" name="l06697"></a><span class="lineno"> 6697</span>            res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#a19e055bec30de0ad30e7f8ab5feea6a8">W25QXX_COMMAND_READ_BLOCK_LOCK</a>, 4,</div>
+<div class="line"><a id="l06698" name="l06698"></a><span class="lineno"> 6698</span>                                           addr, 4, 3,</div>
+<div class="line"><a id="l06699" name="l06699"></a><span class="lineno"> 6699</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l06700" name="l06700"></a><span class="lineno"> 6700</span>                                           0, NULL, 0x00,</div>
+<div class="line"><a id="l06701" name="l06701"></a><span class="lineno"> 6701</span>                                           value, 1, 4);                                                    <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l06702" name="l06702"></a><span class="lineno"> 6702</span>            <span class="keywordflow">if</span> (res != 0)                                                                                   <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l06703" name="l06703"></a><span class="lineno"> 6703</span>            {</div>
+<div class="line"><a id="l06704" name="l06704"></a><span class="lineno"> 6704</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: read block lock failed.\n&quot;</span>);                                   <span class="comment">/* read block lock failed */</span></div>
+<div class="line"><a id="l06705" name="l06705"></a><span class="lineno"> 6705</span>               </div>
+<div class="line"><a id="l06706" name="l06706"></a><span class="lineno"> 6706</span>                <span class="keywordflow">return</span> 1;                                                                                   <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l06707" name="l06707"></a><span class="lineno"> 6707</span>            }</div>
+<div class="line"><a id="l06708" name="l06708"></a><span class="lineno"> 6708</span>        }</div>
+<div class="line"><a id="l06709" name="l06709"></a><span class="lineno"> 6709</span>        <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>) &amp;&amp; (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>))</div>
+<div class="line"><a id="l06710" name="l06710"></a><span class="lineno"> 6710</span>        {</div>
+<div class="line"><a id="l06711" name="l06711"></a><span class="lineno"> 6711</span>            res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#a19e055bec30de0ad30e7f8ab5feea6a8">W25QXX_COMMAND_READ_BLOCK_LOCK</a>, 4,</div>
+<div class="line"><a id="l06712" name="l06712"></a><span class="lineno"> 6712</span>                                           addr, 4, 4,</div>
+<div class="line"><a id="l06713" name="l06713"></a><span class="lineno"> 6713</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l06714" name="l06714"></a><span class="lineno"> 6714</span>                                           0, NULL, 0x00,</div>
+<div class="line"><a id="l06715" name="l06715"></a><span class="lineno"> 6715</span>                                           value, 1, 4);                                                    <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l06716" name="l06716"></a><span class="lineno"> 6716</span>            <span class="keywordflow">if</span> (res != 0)                                                                                   <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l06717" name="l06717"></a><span class="lineno"> 6717</span>            {</div>
+<div class="line"><a id="l06718" name="l06718"></a><span class="lineno"> 6718</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: read block lock failed.\n&quot;</span>);                                   <span class="comment">/* read block lock failed */</span></div>
+<div class="line"><a id="l06719" name="l06719"></a><span class="lineno"> 6719</span>               </div>
+<div class="line"><a id="l06720" name="l06720"></a><span class="lineno"> 6720</span>                <span class="keywordflow">return</span> 1;                                                                                   <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l06721" name="l06721"></a><span class="lineno"> 6721</span>            }</div>
+<div class="line"><a id="l06722" name="l06722"></a><span class="lineno"> 6722</span>        }</div>
+<div class="line"><a id="l06723" name="l06723"></a><span class="lineno"> 6723</span>        <span class="keywordflow">else</span></div>
+<div class="line"><a id="l06724" name="l06724"></a><span class="lineno"> 6724</span>        {</div>
+<div class="line"><a id="l06725" name="l06725"></a><span class="lineno"> 6725</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: address mode is invalid.\n&quot;</span>);                                      <span class="comment">/* address mode is invalid */</span></div>
+<div class="line"><a id="l06726" name="l06726"></a><span class="lineno"> 6726</span>           </div>
+<div class="line"><a id="l06727" name="l06727"></a><span class="lineno"> 6727</span>            <span class="keywordflow">return</span> 4;                                                                                       <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l06728" name="l06728"></a><span class="lineno"> 6728</span>        }</div>
+<div class="line"><a id="l06729" name="l06729"></a><span class="lineno"> 6729</span>    }</div>
+<div class="line"><a id="l06730" name="l06730"></a><span class="lineno"> 6730</span>    </div>
+<div class="line"><a id="l06731" name="l06731"></a><span class="lineno"> 6731</span>    <span class="keywordflow">return</span> 0;                                                                                               <span class="comment">/* success return 0 */</span></div>
+<div class="line"><a id="l06732" name="l06732"></a><span class="lineno"> 6732</span>}</div>
+</div>
+<div class="line"><a id="l06733" name="l06733"></a><span class="lineno"> 6733</span> </div>
+<div class="foldopen" id="foldopen06746" data-start="{" data-end="}">
+<div class="line"><a id="l06746" name="l06746"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#gac19c1d0f3fd48968ea2a93c1dbe3d75d"> 6746</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__advance__driver.html#gac19c1d0f3fd48968ea2a93c1dbe3d75d">w25qxx_set_burst_with_wrap</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, <a class="code hl_enumeration" href="group__w25qxx__advance__driver.html#ga94bbae2bf8906903e8dc2a28c490723d">w25qxx_burst_wrap_t</a> wrap)</div>
+<div class="line"><a id="l06747" name="l06747"></a><span class="lineno"> 6747</span>{</div>
+<div class="line"><a id="l06748" name="l06748"></a><span class="lineno"> 6748</span>    uint8_t res;</div>
+<div class="line"><a id="l06749" name="l06749"></a><span class="lineno"> 6749</span>    uint8_t buf[5];</div>
+<div class="line"><a id="l06750" name="l06750"></a><span class="lineno"> 6750</span>    </div>
+<div class="line"><a id="l06751" name="l06751"></a><span class="lineno"> 6751</span>    <span class="keywordflow">if</span> (handle == NULL)                                                              <span class="comment">/* check handle */</span></div>
+<div class="line"><a id="l06752" name="l06752"></a><span class="lineno"> 6752</span>    {</div>
+<div class="line"><a id="l06753" name="l06753"></a><span class="lineno"> 6753</span>        <span class="keywordflow">return</span> 2;                                                                    <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l06754" name="l06754"></a><span class="lineno"> 6754</span>    }   </div>
+<div class="line"><a id="l06755" name="l06755"></a><span class="lineno"> 6755</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">inited</a> != 1)                                                         <span class="comment">/* check handle initialization */</span></div>
+<div class="line"><a id="l06756" name="l06756"></a><span class="lineno"> 6756</span>    {</div>
+<div class="line"><a id="l06757" name="l06757"></a><span class="lineno"> 6757</span>        <span class="keywordflow">return</span> 3;                                                                    <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l06758" name="l06758"></a><span class="lineno"> 6758</span>    }</div>
+<div class="line"><a id="l06759" name="l06759"></a><span class="lineno"> 6759</span>    </div>
+<div class="line"><a id="l06760" name="l06760"></a><span class="lineno"> 6760</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>)                                    <span class="comment">/* spi interface */</span></div>
+<div class="line"><a id="l06761" name="l06761"></a><span class="lineno"> 6761</span>    {</div>
+<div class="line"><a id="l06762" name="l06762"></a><span class="lineno"> 6762</span>        <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">dual_quad_spi_enable</a> != 0)                                       <span class="comment">/* enable dual quad spi */</span></div>
+<div class="line"><a id="l06763" name="l06763"></a><span class="lineno"> 6763</span>        {</div>
+<div class="line"><a id="l06764" name="l06764"></a><span class="lineno"> 6764</span>            buf[0] = wrap;</div>
+<div class="line"><a id="l06765" name="l06765"></a><span class="lineno"> 6765</span>            res = a_w25qxx_qspi_write_read(handle,</div>
+<div class="line"><a id="l06766" name="l06766"></a><span class="lineno"> 6766</span>                                           <a class="code hl_define" href="driver__w25qxx_8c.html#acfb19490258b26729fa83fdd60c4d822">W25QXX_COMMAND_SET_BURST_WITH_WRAP</a>, 1,</div>
+<div class="line"><a id="l06767" name="l06767"></a><span class="lineno"> 6767</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l06768" name="l06768"></a><span class="lineno"> 6768</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l06769" name="l06769"></a><span class="lineno"> 6769</span>                                           3 * 8, (uint8_t *)buf, 1,</div>
+<div class="line"><a id="l06770" name="l06770"></a><span class="lineno"> 6770</span>                                           NULL, 0x00, 1);                           <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l06771" name="l06771"></a><span class="lineno"> 6771</span>            <span class="keywordflow">if</span> (res != 0)                                                            <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l06772" name="l06772"></a><span class="lineno"> 6772</span>            {</div>
+<div class="line"><a id="l06773" name="l06773"></a><span class="lineno"> 6773</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: set burst with wrap failed.\n&quot;</span>);        <span class="comment">/* set burst with wrap failed */</span></div>
+<div class="line"><a id="l06774" name="l06774"></a><span class="lineno"> 6774</span>               </div>
+<div class="line"><a id="l06775" name="l06775"></a><span class="lineno"> 6775</span>                <span class="keywordflow">return</span> 1;                                                            <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l06776" name="l06776"></a><span class="lineno"> 6776</span>            }</div>
+<div class="line"><a id="l06777" name="l06777"></a><span class="lineno"> 6777</span>        }</div>
+<div class="line"><a id="l06778" name="l06778"></a><span class="lineno"> 6778</span>        <span class="keywordflow">else</span>                                                                         <span class="comment">/* single spi */</span></div>
+<div class="line"><a id="l06779" name="l06779"></a><span class="lineno"> 6779</span>        {</div>
+<div class="line"><a id="l06780" name="l06780"></a><span class="lineno"> 6780</span>            buf[0] = <a class="code hl_define" href="driver__w25qxx_8c.html#acfb19490258b26729fa83fdd60c4d822">W25QXX_COMMAND_SET_BURST_WITH_WRAP</a>;                             <span class="comment">/* set burst with wrap command */</span></div>
+<div class="line"><a id="l06781" name="l06781"></a><span class="lineno"> 6781</span>            buf[1] = 0x00;                                                           <span class="comment">/* dummy */</span></div>
+<div class="line"><a id="l06782" name="l06782"></a><span class="lineno"> 6782</span>            buf[2] = 0x00;                                                           <span class="comment">/* dummy */</span></div>
+<div class="line"><a id="l06783" name="l06783"></a><span class="lineno"> 6783</span>            buf[3] = 0x00;                                                           <span class="comment">/* dummy */</span></div>
+<div class="line"><a id="l06784" name="l06784"></a><span class="lineno"> 6784</span>            buf[4] = wrap;                                                           <span class="comment">/* wrap */</span></div>
+<div class="line"><a id="l06785" name="l06785"></a><span class="lineno"> 6785</span>            res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 5, NULL, 0);       <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l06786" name="l06786"></a><span class="lineno"> 6786</span>            <span class="keywordflow">if</span> (res != 0)                                                            <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l06787" name="l06787"></a><span class="lineno"> 6787</span>            {</div>
+<div class="line"><a id="l06788" name="l06788"></a><span class="lineno"> 6788</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: set burst with wrap failed.\n&quot;</span>);        <span class="comment">/* set burst with wrap failed */</span></div>
+<div class="line"><a id="l06789" name="l06789"></a><span class="lineno"> 6789</span>               </div>
+<div class="line"><a id="l06790" name="l06790"></a><span class="lineno"> 6790</span>                <span class="keywordflow">return</span> 1;                                                            <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l06791" name="l06791"></a><span class="lineno"> 6791</span>            }</div>
+<div class="line"><a id="l06792" name="l06792"></a><span class="lineno"> 6792</span>        }</div>
+<div class="line"><a id="l06793" name="l06793"></a><span class="lineno"> 6793</span>    }</div>
+<div class="line"><a id="l06794" name="l06794"></a><span class="lineno"> 6794</span>    <span class="keywordflow">else</span></div>
+<div class="line"><a id="l06795" name="l06795"></a><span class="lineno"> 6795</span>    {</div>
+<div class="line"><a id="l06796" name="l06796"></a><span class="lineno"> 6796</span>        handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: qspi can&#39;t use this function.\n&quot;</span>);              <span class="comment">/* qspi can&#39;t use this function */</span></div>
+<div class="line"><a id="l06797" name="l06797"></a><span class="lineno"> 6797</span>       </div>
+<div class="line"><a id="l06798" name="l06798"></a><span class="lineno"> 6798</span>        <span class="keywordflow">return</span> 4;                                                                    <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l06799" name="l06799"></a><span class="lineno"> 6799</span>    }</div>
+<div class="line"><a id="l06800" name="l06800"></a><span class="lineno"> 6800</span>    </div>
+<div class="line"><a id="l06801" name="l06801"></a><span class="lineno"> 6801</span>    <span class="keywordflow">return</span> 0;                                                                        <span class="comment">/* success return 0 */</span></div>
+<div class="line"><a id="l06802" name="l06802"></a><span class="lineno"> 6802</span>}</div>
+</div>
+<div class="line"><a id="l06803" name="l06803"></a><span class="lineno"> 6803</span> </div>
+<div class="foldopen" id="foldopen06819" data-start="{" data-end="}">
+<div class="line"><a id="l06819" name="l06819"></a><span class="lineno"><a class="line" href="group__w25qxx__basic__driver.html#ga8e7a163b3d255b8c7fc035d0d60f2491"> 6819</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__basic__driver.html#ga8e7a163b3d255b8c7fc035d0d60f2491">w25qxx_init</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle)</div>
+<div class="line"><a id="l06820" name="l06820"></a><span class="lineno"> 6820</span>{</div>
+<div class="line"><a id="l06821" name="l06821"></a><span class="lineno"> 6821</span>    uint8_t res;</div>
+<div class="line"><a id="l06822" name="l06822"></a><span class="lineno"> 6822</span>    uint8_t status;</div>
+<div class="line"><a id="l06823" name="l06823"></a><span class="lineno"> 6823</span>    uint8_t buf[4];</div>
+<div class="line"><a id="l06824" name="l06824"></a><span class="lineno"> 6824</span>    uint8_t out[2];</div>
+<div class="line"><a id="l06825" name="l06825"></a><span class="lineno"> 6825</span>    uint16_t id;</div>
+<div class="line"><a id="l06826" name="l06826"></a><span class="lineno"> 6826</span>    </div>
+<div class="line"><a id="l06827" name="l06827"></a><span class="lineno"> 6827</span>    <span class="keywordflow">if</span> (handle == NULL)                                                                    <span class="comment">/* check handle */</span></div>
+<div class="line"><a id="l06828" name="l06828"></a><span class="lineno"> 6828</span>    {</div>
+<div class="line"><a id="l06829" name="l06829"></a><span class="lineno"> 6829</span>        <span class="keywordflow">return</span> 2;                                                                          <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l06830" name="l06830"></a><span class="lineno"> 6830</span>    }</div>
+<div class="line"><a id="l06831" name="l06831"></a><span class="lineno"> 6831</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a> == NULL)                                                       <span class="comment">/* check debug_print */</span></div>
+<div class="line"><a id="l06832" name="l06832"></a><span class="lineno"> 6832</span>    {</div>
+<div class="line"><a id="l06833" name="l06833"></a><span class="lineno"> 6833</span>        <span class="keywordflow">return</span> 3;                                                                          <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l06834" name="l06834"></a><span class="lineno"> 6834</span>    }</div>
+<div class="line"><a id="l06835" name="l06835"></a><span class="lineno"> 6835</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#aec834df46e5185868dfdcc6fcec2e801">spi_qspi_init</a> == NULL)                                                     <span class="comment">/* check spi_qspi_init */</span></div>
+<div class="line"><a id="l06836" name="l06836"></a><span class="lineno"> 6836</span>    {</div>
+<div class="line"><a id="l06837" name="l06837"></a><span class="lineno"> 6837</span>        handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: spi_qspi_init is null.\n&quot;</span>);                           <span class="comment">/* spi_qspi_init is null */</span></div>
+<div class="line"><a id="l06838" name="l06838"></a><span class="lineno"> 6838</span>       </div>
+<div class="line"><a id="l06839" name="l06839"></a><span class="lineno"> 6839</span>        <span class="keywordflow">return</span> 3;                                                                          <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l06840" name="l06840"></a><span class="lineno"> 6840</span>    }</div>
+<div class="line"><a id="l06841" name="l06841"></a><span class="lineno"> 6841</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a4568e23228174b7d32678d9a96d2420c">spi_qspi_deinit</a> == NULL)                                                   <span class="comment">/* check spi_qspi_deinit */</span></div>
+<div class="line"><a id="l06842" name="l06842"></a><span class="lineno"> 6842</span>    {</div>
+<div class="line"><a id="l06843" name="l06843"></a><span class="lineno"> 6843</span>        handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: spi_qspi_deinit is null.\n&quot;</span>);                         <span class="comment">/* spi_qspi_deinit is null */</span></div>
+<div class="line"><a id="l06844" name="l06844"></a><span class="lineno"> 6844</span>       </div>
+<div class="line"><a id="l06845" name="l06845"></a><span class="lineno"> 6845</span>        <span class="keywordflow">return</span> 3;                                                                          <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l06846" name="l06846"></a><span class="lineno"> 6846</span>    }</div>
+<div class="line"><a id="l06847" name="l06847"></a><span class="lineno"> 6847</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a2d39cde883403779e3da9dd39c32bec5">spi_qspi_write_read</a> == NULL)                                               <span class="comment">/* check spi_qspi_write_read */</span></div>
+<div class="line"><a id="l06848" name="l06848"></a><span class="lineno"> 6848</span>    {</div>
+<div class="line"><a id="l06849" name="l06849"></a><span class="lineno"> 6849</span>        handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: spi_qspi_write_read is null.\n&quot;</span>);                     <span class="comment">/* spi_qspi_write_read is null */</span></div>
+<div class="line"><a id="l06850" name="l06850"></a><span class="lineno"> 6850</span>       </div>
+<div class="line"><a id="l06851" name="l06851"></a><span class="lineno"> 6851</span>        <span class="keywordflow">return</span> 3;                                                                          <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l06852" name="l06852"></a><span class="lineno"> 6852</span>    }</div>
+<div class="line"><a id="l06853" name="l06853"></a><span class="lineno"> 6853</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a97ffc4fce945527bd6ab25a3596caef7">delay_us</a> == NULL)                                                          <span class="comment">/* check delay_us */</span></div>
+<div class="line"><a id="l06854" name="l06854"></a><span class="lineno"> 6854</span>    {</div>
+<div class="line"><a id="l06855" name="l06855"></a><span class="lineno"> 6855</span>        handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: delay_us is null.\n&quot;</span>);                                <span class="comment">/* delay_us is null */</span></div>
+<div class="line"><a id="l06856" name="l06856"></a><span class="lineno"> 6856</span>       </div>
+<div class="line"><a id="l06857" name="l06857"></a><span class="lineno"> 6857</span>        <span class="keywordflow">return</span> 3;                                                                          <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l06858" name="l06858"></a><span class="lineno"> 6858</span>    }</div>
+<div class="line"><a id="l06859" name="l06859"></a><span class="lineno"> 6859</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a406c9433252b7366de417b7a60915c81">delay_ms</a> == NULL)                                                          <span class="comment">/* check delay_ms */</span></div>
+<div class="line"><a id="l06860" name="l06860"></a><span class="lineno"> 6860</span>    {</div>
+<div class="line"><a id="l06861" name="l06861"></a><span class="lineno"> 6861</span>        handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: delay_ms is null.\n&quot;</span>);                                <span class="comment">/* delay_ms is null */</span></div>
+<div class="line"><a id="l06862" name="l06862"></a><span class="lineno"> 6862</span>       </div>
+<div class="line"><a id="l06863" name="l06863"></a><span class="lineno"> 6863</span>        <span class="keywordflow">return</span> 3;                                                                          <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l06864" name="l06864"></a><span class="lineno"> 6864</span>    }</div>
+<div class="line"><a id="l06865" name="l06865"></a><span class="lineno"> 6865</span>    </div>
+<div class="line"><a id="l06866" name="l06866"></a><span class="lineno"> 6866</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>)                                          <span class="comment">/* spi interface */</span></div>
+<div class="line"><a id="l06867" name="l06867"></a><span class="lineno"> 6867</span>    {</div>
+<div class="line"><a id="l06868" name="l06868"></a><span class="lineno"> 6868</span>        res = handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#aec834df46e5185868dfdcc6fcec2e801">spi_qspi_init</a>();                                                     <span class="comment">/* spi init */</span></div>
+<div class="line"><a id="l06869" name="l06869"></a><span class="lineno"> 6869</span>        <span class="keywordflow">if</span> (res != 0)                                                                      <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l06870" name="l06870"></a><span class="lineno"> 6870</span>        {</div>
+<div class="line"><a id="l06871" name="l06871"></a><span class="lineno"> 6871</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: spi init failed.\n&quot;</span>);                             <span class="comment">/* spi init failed */</span></div>
+<div class="line"><a id="l06872" name="l06872"></a><span class="lineno"> 6872</span>           </div>
+<div class="line"><a id="l06873" name="l06873"></a><span class="lineno"> 6873</span>            <span class="keywordflow">return</span> 1;                                                                      <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l06874" name="l06874"></a><span class="lineno"> 6874</span>        }</div>
+<div class="line"><a id="l06875" name="l06875"></a><span class="lineno"> 6875</span>        <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">dual_quad_spi_enable</a> != 0)                                             <span class="comment">/* enable dual quad spi */</span></div>
+<div class="line"><a id="l06876" name="l06876"></a><span class="lineno"> 6876</span>        {</div>
+<div class="line"><a id="l06877" name="l06877"></a><span class="lineno"> 6877</span>            res = a_w25qxx_qspi_write_read(handle,</div>
+<div class="line"><a id="l06878" name="l06878"></a><span class="lineno"> 6878</span>                                           <a class="code hl_define" href="driver__w25qxx_8c.html#ad344065461b2c71521017984f040b425">W25QXX_COMMAND_RELEASE_POWER_DOWN</a>, 1,</div>
+<div class="line"><a id="l06879" name="l06879"></a><span class="lineno"> 6879</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l06880" name="l06880"></a><span class="lineno"> 6880</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l06881" name="l06881"></a><span class="lineno"> 6881</span>                                           3 * 8, NULL, 0x00,</div>
+<div class="line"><a id="l06882" name="l06882"></a><span class="lineno"> 6882</span>                                          (uint8_t *)&amp;<span class="keywordtype">id</span>, 1, 1);                           <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l06883" name="l06883"></a><span class="lineno"> 6883</span>            <span class="keywordflow">if</span> (res != 0)                                                                  <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l06884" name="l06884"></a><span class="lineno"> 6884</span>            {</div>
+<div class="line"><a id="l06885" name="l06885"></a><span class="lineno"> 6885</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: release power down failed.\n&quot;</span>);               <span class="comment">/* release power down failed */</span></div>
+<div class="line"><a id="l06886" name="l06886"></a><span class="lineno"> 6886</span>                (void)handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a4568e23228174b7d32678d9a96d2420c">spi_qspi_deinit</a>();                                           </div>
+<div class="line"><a id="l06888" name="l06888"></a><span class="lineno"> 6888</span>                <span class="keywordflow">return</span> 1;                                                                  <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l06889" name="l06889"></a><span class="lineno"> 6889</span>            }</div>
+<div class="line"><a id="l06890" name="l06890"></a><span class="lineno"> 6890</span>            res = a_w25qxx_qspi_write_read(handle,</div>
+<div class="line"><a id="l06891" name="l06891"></a><span class="lineno"> 6891</span>                                           <a class="code hl_define" href="driver__w25qxx_8c.html#a6dae3a832abc19d1861fafb32f231d94">W25QXX_COMMAND_ENABLE_RESET</a>, 1,</div>
+<div class="line"><a id="l06892" name="l06892"></a><span class="lineno"> 6892</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l06893" name="l06893"></a><span class="lineno"> 6893</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l06894" name="l06894"></a><span class="lineno"> 6894</span>                                           0x00, NULL, 0x00,</div>
+<div class="line"><a id="l06895" name="l06895"></a><span class="lineno"> 6895</span>                                           NULL, 0x00, 0x00);                              <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l06896" name="l06896"></a><span class="lineno"> 6896</span>            <span class="keywordflow">if</span> (res != 0)                                                                  <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l06897" name="l06897"></a><span class="lineno"> 6897</span>            {</div>
+<div class="line"><a id="l06898" name="l06898"></a><span class="lineno"> 6898</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: enable reset failed.\n&quot;</span>);                     <span class="comment">/* enable reset failed */</span></div>
+<div class="line"><a id="l06899" name="l06899"></a><span class="lineno"> 6899</span>                (void)handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a4568e23228174b7d32678d9a96d2420c">spi_qspi_deinit</a>();                                           </div>
+<div class="line"><a id="l06901" name="l06901"></a><span class="lineno"> 6901</span>                <span class="keywordflow">return</span> 7;                                                                  <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l06902" name="l06902"></a><span class="lineno"> 6902</span>            }</div>
+<div class="line"><a id="l06903" name="l06903"></a><span class="lineno"> 6903</span>            res = a_w25qxx_qspi_write_read(handle,</div>
+<div class="line"><a id="l06904" name="l06904"></a><span class="lineno"> 6904</span>                                           <a class="code hl_define" href="driver__w25qxx_8c.html#ab25182298c921c8f7f42216e0d5aa56b">W25QXX_COMMAND_RESET_DEVICE</a>, 1,</div>
+<div class="line"><a id="l06905" name="l06905"></a><span class="lineno"> 6905</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l06906" name="l06906"></a><span class="lineno"> 6906</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l06907" name="l06907"></a><span class="lineno"> 6907</span>                                           0x00, NULL, 0x00,</div>
+<div class="line"><a id="l06908" name="l06908"></a><span class="lineno"> 6908</span>                                           NULL, 0x00, 0x00);                              <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l06909" name="l06909"></a><span class="lineno"> 6909</span>            <span class="keywordflow">if</span> (res != 0)                                                                  <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l06910" name="l06910"></a><span class="lineno"> 6910</span>            {</div>
+<div class="line"><a id="l06911" name="l06911"></a><span class="lineno"> 6911</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: reset device failed.\n&quot;</span>);                     <span class="comment">/* reset device failed */</span></div>
+<div class="line"><a id="l06912" name="l06912"></a><span class="lineno"> 6912</span>                (void)handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a4568e23228174b7d32678d9a96d2420c">spi_qspi_deinit</a>();                                           </div>
+<div class="line"><a id="l06914" name="l06914"></a><span class="lineno"> 6914</span>                <span class="keywordflow">return</span> 7;                                                                  <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l06915" name="l06915"></a><span class="lineno"> 6915</span>            }</div>
+<div class="line"><a id="l06916" name="l06916"></a><span class="lineno"> 6916</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a406c9433252b7366de417b7a60915c81">delay_ms</a>(10);                                                          <span class="comment">/* delay 10 ms */</span></div>
+<div class="line"><a id="l06917" name="l06917"></a><span class="lineno"> 6917</span>            res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#af6d9a5bc0b57b041e22af80b85e53f56">W25QXX_COMMAND_READ_MANUFACTURER</a>, 1,</div>
+<div class="line"><a id="l06918" name="l06918"></a><span class="lineno"> 6918</span>                                           0x00000000, 1, 3,</div>
+<div class="line"><a id="l06919" name="l06919"></a><span class="lineno"> 6919</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l06920" name="l06920"></a><span class="lineno"> 6920</span>                                           0, NULL, 0x00,</div>
+<div class="line"><a id="l06921" name="l06921"></a><span class="lineno"> 6921</span>                                          (uint8_t *)out, 2, 1);                           <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l06922" name="l06922"></a><span class="lineno"> 6922</span>            <span class="keywordflow">if</span> (res != 0)                                                                  <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l06923" name="l06923"></a><span class="lineno"> 6923</span>            {</div>
+<div class="line"><a id="l06924" name="l06924"></a><span class="lineno"> 6924</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: get manufacturer device id failed.\n&quot;</span>);       <span class="comment">/* get manufacturer device id failed */</span></div>
+<div class="line"><a id="l06925" name="l06925"></a><span class="lineno"> 6925</span>                (void)handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a4568e23228174b7d32678d9a96d2420c">spi_qspi_deinit</a>();                                           </div>
+<div class="line"><a id="l06927" name="l06927"></a><span class="lineno"> 6927</span>                <span class="keywordflow">return</span> 1;                                                                  <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l06928" name="l06928"></a><span class="lineno"> 6928</span>            }</div>
+<div class="line"><a id="l06929" name="l06929"></a><span class="lineno"> 6929</span>            <span class="keywordtype">id</span> = (uint16_t)out[0] &lt;&lt; 8 | out[1];                                           <span class="comment">/* set id */</span></div>
+<div class="line"><a id="l06930" name="l06930"></a><span class="lineno"> 6930</span>            <span class="keywordflow">if</span> (<span class="keywordtype">id</span> != handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a>)                                                        <span class="comment">/* check id */</span></div>
+<div class="line"><a id="l06931" name="l06931"></a><span class="lineno"> 6931</span>            {</div>
+<div class="line"><a id="l06932" name="l06932"></a><span class="lineno"> 6932</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: id is invalid.\n&quot;</span>);                           <span class="comment">/* id is invalid */</span></div>
+<div class="line"><a id="l06933" name="l06933"></a><span class="lineno"> 6933</span>                (void)handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a4568e23228174b7d32678d9a96d2420c">spi_qspi_deinit</a>();                                           </div>
+<div class="line"><a id="l06935" name="l06935"></a><span class="lineno"> 6935</span>                <span class="keywordflow">return</span> 6;                                                                  <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l06936" name="l06936"></a><span class="lineno"> 6936</span>            }</div>
+<div class="line"><a id="l06937" name="l06937"></a><span class="lineno"> 6937</span>            <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)</div>
+<div class="line"><a id="l06938" name="l06938"></a><span class="lineno"> 6938</span>            {</div>
+<div class="line"><a id="l06939" name="l06939"></a><span class="lineno"> 6939</span>                res = a_w25qxx_qspi_write_read(handle, 0xE9, 1,</div>
+<div class="line"><a id="l06940" name="l06940"></a><span class="lineno"> 6940</span>                                               0x00000000, 0, 0,</div>
+<div class="line"><a id="l06941" name="l06941"></a><span class="lineno"> 6941</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l06942" name="l06942"></a><span class="lineno"> 6942</span>                                               0, NULL, 0x00,</div>
+<div class="line"><a id="l06943" name="l06943"></a><span class="lineno"> 6943</span>                                               NULL, 0, 0);                                <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l06944" name="l06944"></a><span class="lineno"> 6944</span>                <span class="keywordflow">if</span> (res != 0)                                                              <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l06945" name="l06945"></a><span class="lineno"> 6945</span>                {</div>
+<div class="line"><a id="l06946" name="l06946"></a><span class="lineno"> 6946</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: enter 3 byte mode failed.\n&quot;</span>);            <span class="comment">/* enter 3 byte mode failed */</span></div>
+<div class="line"><a id="l06947" name="l06947"></a><span class="lineno"> 6947</span>                    (void)handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a4568e23228174b7d32678d9a96d2420c">spi_qspi_deinit</a>();                                       </div>
+<div class="line"><a id="l06949" name="l06949"></a><span class="lineno"> 6949</span>                    <span class="keywordflow">return</span> 1;                                                              <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l06950" name="l06950"></a><span class="lineno"> 6950</span>                }</div>
+<div class="line"><a id="l06951" name="l06951"></a><span class="lineno"> 6951</span>            }</div>
+<div class="line"><a id="l06952" name="l06952"></a><span class="lineno"> 6952</span>        }</div>
+<div class="line"><a id="l06953" name="l06953"></a><span class="lineno"> 6953</span>        <span class="keywordflow">else</span>                                                                               <span class="comment">/* single spi */</span></div>
+<div class="line"><a id="l06954" name="l06954"></a><span class="lineno"> 6954</span>        {</div>
+<div class="line"><a id="l06955" name="l06955"></a><span class="lineno"> 6955</span>            buf[0] = <a class="code hl_define" href="driver__w25qxx_8c.html#ad344065461b2c71521017984f040b425">W25QXX_COMMAND_RELEASE_POWER_DOWN</a>;                                    <span class="comment">/* release power down command */</span></div>
+<div class="line"><a id="l06956" name="l06956"></a><span class="lineno"> 6956</span>            buf[1] = 0xFF;                                                                 <span class="comment">/* dummy */</span></div>
+<div class="line"><a id="l06957" name="l06957"></a><span class="lineno"> 6957</span>            buf[2] = 0xFF;                                                                 <span class="comment">/* dummy */</span></div>
+<div class="line"><a id="l06958" name="l06958"></a><span class="lineno"> 6958</span>            buf[3] = 0xFF;                                                                 <span class="comment">/* dummy */</span></div>
+<div class="line"><a id="l06959" name="l06959"></a><span class="lineno"> 6959</span>            res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 4,</div>
+<div class="line"><a id="l06960" name="l06960"></a><span class="lineno"> 6960</span>                                         (uint8_t *)&amp;<span class="keywordtype">id</span>, 1);                               <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l06961" name="l06961"></a><span class="lineno"> 6961</span>            <span class="keywordflow">if</span> (res != 0)                                                                  <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l06962" name="l06962"></a><span class="lineno"> 6962</span>            {</div>
+<div class="line"><a id="l06963" name="l06963"></a><span class="lineno"> 6963</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: release power down failed.\n&quot;</span>);               <span class="comment">/* release power down failed */</span></div>
+<div class="line"><a id="l06964" name="l06964"></a><span class="lineno"> 6964</span>                (void)handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a4568e23228174b7d32678d9a96d2420c">spi_qspi_deinit</a>();                                           </div>
+<div class="line"><a id="l06966" name="l06966"></a><span class="lineno"> 6966</span>                <span class="keywordflow">return</span> 1;                                                                  <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l06967" name="l06967"></a><span class="lineno"> 6967</span>            }</div>
+<div class="line"><a id="l06968" name="l06968"></a><span class="lineno"> 6968</span>            buf[0] = <a class="code hl_define" href="driver__w25qxx_8c.html#a6dae3a832abc19d1861fafb32f231d94">W25QXX_COMMAND_ENABLE_RESET</a>;                                          <span class="comment">/* enable reset command */</span></div>
+<div class="line"><a id="l06969" name="l06969"></a><span class="lineno"> 6969</span>            res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 1, NULL, 0);             <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l06970" name="l06970"></a><span class="lineno"> 6970</span>            <span class="keywordflow">if</span> (res != 0)                                                                  <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l06971" name="l06971"></a><span class="lineno"> 6971</span>            {</div>
+<div class="line"><a id="l06972" name="l06972"></a><span class="lineno"> 6972</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: enable reset failed.\n&quot;</span>);                     <span class="comment">/* enable reset failed */</span></div>
+<div class="line"><a id="l06973" name="l06973"></a><span class="lineno"> 6973</span>                (void)handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a4568e23228174b7d32678d9a96d2420c">spi_qspi_deinit</a>();                                           </div>
+<div class="line"><a id="l06975" name="l06975"></a><span class="lineno"> 6975</span>                <span class="keywordflow">return</span> 7;                                                                  <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l06976" name="l06976"></a><span class="lineno"> 6976</span>            }</div>
+<div class="line"><a id="l06977" name="l06977"></a><span class="lineno"> 6977</span>            buf[0] = <a class="code hl_define" href="driver__w25qxx_8c.html#ab25182298c921c8f7f42216e0d5aa56b">W25QXX_COMMAND_RESET_DEVICE</a>;                                          <span class="comment">/* reset device command */</span></div>
+<div class="line"><a id="l06978" name="l06978"></a><span class="lineno"> 6978</span>            res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 1, NULL, 0);             <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l06979" name="l06979"></a><span class="lineno"> 6979</span>            <span class="keywordflow">if</span> (res != 0)                                                                  <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l06980" name="l06980"></a><span class="lineno"> 6980</span>            {</div>
+<div class="line"><a id="l06981" name="l06981"></a><span class="lineno"> 6981</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: reset device failed.\n&quot;</span>);                     <span class="comment">/* reset device failed */</span></div>
+<div class="line"><a id="l06982" name="l06982"></a><span class="lineno"> 6982</span>                (void)handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a4568e23228174b7d32678d9a96d2420c">spi_qspi_deinit</a>();                                           </div>
+<div class="line"><a id="l06984" name="l06984"></a><span class="lineno"> 6984</span>                <span class="keywordflow">return</span> 7;                                                                  <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l06985" name="l06985"></a><span class="lineno"> 6985</span>            }</div>
+<div class="line"><a id="l06986" name="l06986"></a><span class="lineno"> 6986</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a406c9433252b7366de417b7a60915c81">delay_ms</a>(10);                                                          <span class="comment">/* delay 10 ms */</span></div>
+<div class="line"><a id="l06987" name="l06987"></a><span class="lineno"> 6987</span>            buf[0] = <a class="code hl_define" href="driver__w25qxx_8c.html#af6d9a5bc0b57b041e22af80b85e53f56">W25QXX_COMMAND_READ_MANUFACTURER</a>;                                     <span class="comment">/* read manufacturer command */</span></div>
+<div class="line"><a id="l06988" name="l06988"></a><span class="lineno"> 6988</span>            buf[1] = 0x00;                                                                 <span class="comment">/* dummy */</span></div>
+<div class="line"><a id="l06989" name="l06989"></a><span class="lineno"> 6989</span>            buf[2] = 0x00;                                                                 <span class="comment">/* dummy */</span></div>
+<div class="line"><a id="l06990" name="l06990"></a><span class="lineno"> 6990</span>            buf[3] = 0x00;                                                                 <span class="comment">/* dummy */</span></div>
+<div class="line"><a id="l06991" name="l06991"></a><span class="lineno"> 6991</span>            res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 4,</div>
+<div class="line"><a id="l06992" name="l06992"></a><span class="lineno"> 6992</span>                                         (uint8_t *)out, 2);                               <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l06993" name="l06993"></a><span class="lineno"> 6993</span>            <span class="keywordflow">if</span> (res != 0)                                                                  <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l06994" name="l06994"></a><span class="lineno"> 6994</span>            {</div>
+<div class="line"><a id="l06995" name="l06995"></a><span class="lineno"> 6995</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: get manufacturer device id failed.\n&quot;</span>);       <span class="comment">/* get manufacturer device id failed */</span></div>
+<div class="line"><a id="l06996" name="l06996"></a><span class="lineno"> 6996</span>                (void)handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a4568e23228174b7d32678d9a96d2420c">spi_qspi_deinit</a>();                                           </div>
+<div class="line"><a id="l06998" name="l06998"></a><span class="lineno"> 6998</span>                <span class="keywordflow">return</span> 4;                                                                  <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l06999" name="l06999"></a><span class="lineno"> 6999</span>            }</div>
+<div class="line"><a id="l07000" name="l07000"></a><span class="lineno"> 7000</span>            <span class="keywordtype">id</span> = (uint16_t)out[0] &lt;&lt; 8 | out[1];                                           <span class="comment">/* set id */</span></div>
+<div class="line"><a id="l07001" name="l07001"></a><span class="lineno"> 7001</span>            <span class="keywordflow">if</span> (<span class="keywordtype">id</span> != handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a>)                                                        <span class="comment">/* check id */</span></div>
+<div class="line"><a id="l07002" name="l07002"></a><span class="lineno"> 7002</span>            {</div>
+<div class="line"><a id="l07003" name="l07003"></a><span class="lineno"> 7003</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: id is invalid.\n&quot;</span>);                           <span class="comment">/* id is invalid */</span></div>
+<div class="line"><a id="l07004" name="l07004"></a><span class="lineno"> 7004</span>                (void)handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a4568e23228174b7d32678d9a96d2420c">spi_qspi_deinit</a>();                                           </div>
+<div class="line"><a id="l07006" name="l07006"></a><span class="lineno"> 7006</span>                <span class="keywordflow">return</span> 6;                                                                  <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l07007" name="l07007"></a><span class="lineno"> 7007</span>            }</div>
+<div class="line"><a id="l07008" name="l07008"></a><span class="lineno"> 7008</span>            <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)</div>
+<div class="line"><a id="l07009" name="l07009"></a><span class="lineno"> 7009</span>            {</div>
+<div class="line"><a id="l07010" name="l07010"></a><span class="lineno"> 7010</span>                buf[0] = 0xE9;                                                             <span class="comment">/* 3 byte mode */</span></div>
+<div class="line"><a id="l07011" name="l07011"></a><span class="lineno"> 7011</span>                res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 1, NULL, 0);         <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l07012" name="l07012"></a><span class="lineno"> 7012</span>                <span class="keywordflow">if</span> (res != 0)                                                              <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l07013" name="l07013"></a><span class="lineno"> 7013</span>                {</div>
+<div class="line"><a id="l07014" name="l07014"></a><span class="lineno"> 7014</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: set address mode failed.\n&quot;</span>);             <span class="comment">/* set address mode failed */</span></div>
+<div class="line"><a id="l07015" name="l07015"></a><span class="lineno"> 7015</span>                    (void)handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a4568e23228174b7d32678d9a96d2420c">spi_qspi_deinit</a>();                                       </div>
+<div class="line"><a id="l07017" name="l07017"></a><span class="lineno"> 7017</span>                    <span class="keywordflow">return</span> 8;                                                              <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l07018" name="l07018"></a><span class="lineno"> 7018</span>                }</div>
+<div class="line"><a id="l07019" name="l07019"></a><span class="lineno"> 7019</span>            }</div>
+<div class="line"><a id="l07020" name="l07020"></a><span class="lineno"> 7020</span>        }</div>
+<div class="line"><a id="l07021" name="l07021"></a><span class="lineno"> 7021</span>    }</div>
+<div class="line"><a id="l07022" name="l07022"></a><span class="lineno"> 7022</span>    <span class="keywordflow">else</span></div>
+<div class="line"><a id="l07023" name="l07023"></a><span class="lineno"> 7023</span>    {</div>
+<div class="line"><a id="l07024" name="l07024"></a><span class="lineno"> 7024</span>        res = handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#aec834df46e5185868dfdcc6fcec2e801">spi_qspi_init</a>();                                                     <span class="comment">/* qspi init */</span></div>
+<div class="line"><a id="l07025" name="l07025"></a><span class="lineno"> 7025</span>        <span class="keywordflow">if</span> (res != 0)                                                                      <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l07026" name="l07026"></a><span class="lineno"> 7026</span>        {</div>
+<div class="line"><a id="l07027" name="l07027"></a><span class="lineno"> 7027</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: qspi init failed.\n&quot;</span>);                            <span class="comment">/* qspi init failed */</span></div>
+<div class="line"><a id="l07028" name="l07028"></a><span class="lineno"> 7028</span>           </div>
+<div class="line"><a id="l07029" name="l07029"></a><span class="lineno"> 7029</span>            <span class="keywordflow">return</span> 1;                                                                      <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l07030" name="l07030"></a><span class="lineno"> 7030</span>        }</div>
+<div class="line"><a id="l07031" name="l07031"></a><span class="lineno"> 7031</span>        res = a_w25qxx_qspi_write_read(handle,</div>
+<div class="line"><a id="l07032" name="l07032"></a><span class="lineno"> 7032</span>                                       <a class="code hl_define" href="driver__w25qxx_8c.html#ad344065461b2c71521017984f040b425">W25QXX_COMMAND_RELEASE_POWER_DOWN</a>, 1,</div>
+<div class="line"><a id="l07033" name="l07033"></a><span class="lineno"> 7033</span>                                       0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l07034" name="l07034"></a><span class="lineno"> 7034</span>                                       0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l07035" name="l07035"></a><span class="lineno"> 7035</span>                                       3 * 8, NULL, 0x00,</div>
+<div class="line"><a id="l07036" name="l07036"></a><span class="lineno"> 7036</span>                                      (uint8_t *)&amp;<span class="keywordtype">id</span>, 1, 1);                               <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l07037" name="l07037"></a><span class="lineno"> 7037</span>        <span class="keywordflow">if</span> (res != 0)                                                                      <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l07038" name="l07038"></a><span class="lineno"> 7038</span>        {</div>
+<div class="line"><a id="l07039" name="l07039"></a><span class="lineno"> 7039</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: release power down failed.\n&quot;</span>);                   <span class="comment">/* release power down failed */</span></div>
+<div class="line"><a id="l07040" name="l07040"></a><span class="lineno"> 7040</span>            (void)handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a4568e23228174b7d32678d9a96d2420c">spi_qspi_deinit</a>();                                               </div>
+<div class="line"><a id="l07042" name="l07042"></a><span class="lineno"> 7042</span>            <span class="keywordflow">return</span> 1;                                                                      <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l07043" name="l07043"></a><span class="lineno"> 7043</span>        }</div>
+<div class="line"><a id="l07044" name="l07044"></a><span class="lineno"> 7044</span>        res = a_w25qxx_qspi_write_read(handle,</div>
+<div class="line"><a id="l07045" name="l07045"></a><span class="lineno"> 7045</span>                                       <a class="code hl_define" href="driver__w25qxx_8c.html#a6dae3a832abc19d1861fafb32f231d94">W25QXX_COMMAND_ENABLE_RESET</a>, 1,</div>
+<div class="line"><a id="l07046" name="l07046"></a><span class="lineno"> 7046</span>                                       0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l07047" name="l07047"></a><span class="lineno"> 7047</span>                                       0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l07048" name="l07048"></a><span class="lineno"> 7048</span>                                       0x00, NULL, 0x00,</div>
+<div class="line"><a id="l07049" name="l07049"></a><span class="lineno"> 7049</span>                                       NULL, 0x00, 0x00);                                  <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l07050" name="l07050"></a><span class="lineno"> 7050</span>        <span class="keywordflow">if</span> (res != 0)                                                                      <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l07051" name="l07051"></a><span class="lineno"> 7051</span>        {</div>
+<div class="line"><a id="l07052" name="l07052"></a><span class="lineno"> 7052</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: enable reset failed.\n&quot;</span>);                         <span class="comment">/* enable reset failed */</span></div>
+<div class="line"><a id="l07053" name="l07053"></a><span class="lineno"> 7053</span>            (void)handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a4568e23228174b7d32678d9a96d2420c">spi_qspi_deinit</a>();                                               </div>
+<div class="line"><a id="l07055" name="l07055"></a><span class="lineno"> 7055</span>            <span class="keywordflow">return</span> 7;                                                                      <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l07056" name="l07056"></a><span class="lineno"> 7056</span>        }</div>
+<div class="line"><a id="l07057" name="l07057"></a><span class="lineno"> 7057</span>        res = a_w25qxx_qspi_write_read(handle,</div>
+<div class="line"><a id="l07058" name="l07058"></a><span class="lineno"> 7058</span>                                       <a class="code hl_define" href="driver__w25qxx_8c.html#ab25182298c921c8f7f42216e0d5aa56b">W25QXX_COMMAND_RESET_DEVICE</a>, 1,</div>
+<div class="line"><a id="l07059" name="l07059"></a><span class="lineno"> 7059</span>                                       0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l07060" name="l07060"></a><span class="lineno"> 7060</span>                                       0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l07061" name="l07061"></a><span class="lineno"> 7061</span>                                       0x00, NULL, 0x00,</div>
+<div class="line"><a id="l07062" name="l07062"></a><span class="lineno"> 7062</span>                                       NULL, 0x00, 0x00);                                  <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l07063" name="l07063"></a><span class="lineno"> 7063</span>        <span class="keywordflow">if</span> (res != 0)                                                                      <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l07064" name="l07064"></a><span class="lineno"> 7064</span>        {</div>
+<div class="line"><a id="l07065" name="l07065"></a><span class="lineno"> 7065</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: reset device failed.\n&quot;</span>);                         <span class="comment">/* reset device failed */</span></div>
+<div class="line"><a id="l07066" name="l07066"></a><span class="lineno"> 7066</span>            (void)handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a4568e23228174b7d32678d9a96d2420c">spi_qspi_deinit</a>();                                               </div>
+<div class="line"><a id="l07068" name="l07068"></a><span class="lineno"> 7068</span>            <span class="keywordflow">return</span> 7;                                                                      <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l07069" name="l07069"></a><span class="lineno"> 7069</span>        }</div>
+<div class="line"><a id="l07070" name="l07070"></a><span class="lineno"> 7070</span>        handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a406c9433252b7366de417b7a60915c81">delay_ms</a>(10);                                                              <span class="comment">/* delay 10 ms */</span></div>
+<div class="line"><a id="l07071" name="l07071"></a><span class="lineno"> 7071</span>        res = a_w25qxx_qspi_write_read(handle,</div>
+<div class="line"><a id="l07072" name="l07072"></a><span class="lineno"> 7072</span>                                       <a class="code hl_define" href="driver__w25qxx_8c.html#a4a8cdc5b6ce75029df877263bdf35f2a">W25QXX_COMMAND_READ_STATUS_REG2</a>, 1,</div>
+<div class="line"><a id="l07073" name="l07073"></a><span class="lineno"> 7073</span>                                       0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l07074" name="l07074"></a><span class="lineno"> 7074</span>                                       0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l07075" name="l07075"></a><span class="lineno"> 7075</span>                                       0x00, NULL, 0x00,</div>
+<div class="line"><a id="l07076" name="l07076"></a><span class="lineno"> 7076</span>                                      (uint8_t *)&amp;status, 1, 1);                           <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l07077" name="l07077"></a><span class="lineno"> 7077</span>        <span class="keywordflow">if</span> (res != 0)                                                                      <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l07078" name="l07078"></a><span class="lineno"> 7078</span>        {</div>
+<div class="line"><a id="l07079" name="l07079"></a><span class="lineno"> 7079</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: read status 2 failed.\n&quot;</span>);                        <span class="comment">/* read status 2 failed */</span></div>
+<div class="line"><a id="l07080" name="l07080"></a><span class="lineno"> 7080</span>            (void)handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a4568e23228174b7d32678d9a96d2420c">spi_qspi_deinit</a>();                                               </div>
+<div class="line"><a id="l07082" name="l07082"></a><span class="lineno"> 7082</span>            <span class="keywordflow">return</span> 5;                                                                      <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l07083" name="l07083"></a><span class="lineno"> 7083</span>        }</div>
+<div class="line"><a id="l07084" name="l07084"></a><span class="lineno"> 7084</span>        <span class="keywordflow">if</span> ((status &amp; 0x02) == 0)                                                          <span class="comment">/* check status */</span></div>
+<div class="line"><a id="l07085" name="l07085"></a><span class="lineno"> 7085</span>        {</div>
+<div class="line"><a id="l07086" name="l07086"></a><span class="lineno"> 7086</span>            res = a_w25qxx_qspi_write_read(handle,</div>
+<div class="line"><a id="l07087" name="l07087"></a><span class="lineno"> 7087</span>                                           <a class="code hl_define" href="driver__w25qxx_8c.html#a7c9e980e30f499dd97b02935c91f2c02">W25QXX_COMMAND_VOLATILE_SR_WRITE_ENABLE</a>, 1,</div>
+<div class="line"><a id="l07088" name="l07088"></a><span class="lineno"> 7088</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l07089" name="l07089"></a><span class="lineno"> 7089</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l07090" name="l07090"></a><span class="lineno"> 7090</span>                                           0x00, NULL, 0x00,</div>
+<div class="line"><a id="l07091" name="l07091"></a><span class="lineno"> 7091</span>                                           NULL, 0x00, 0x00);                              <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l07092" name="l07092"></a><span class="lineno"> 7092</span>            <span class="keywordflow">if</span> (res != 0)                                                                  <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l07093" name="l07093"></a><span class="lineno"> 7093</span>            {</div>
+<div class="line"><a id="l07094" name="l07094"></a><span class="lineno"> 7094</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: set sr write enable failed.\n&quot;</span>);              <span class="comment">/* set sr write enable failed */</span></div>
+<div class="line"><a id="l07095" name="l07095"></a><span class="lineno"> 7095</span>                (void)handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a4568e23228174b7d32678d9a96d2420c">spi_qspi_deinit</a>();                                           </div>
+<div class="line"><a id="l07097" name="l07097"></a><span class="lineno"> 7097</span>                <span class="keywordflow">return</span> 5;                                                                  <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l07098" name="l07098"></a><span class="lineno"> 7098</span>            }</div>
+<div class="line"><a id="l07099" name="l07099"></a><span class="lineno"> 7099</span>            res = a_w25qxx_qspi_write_read(handle,</div>
+<div class="line"><a id="l07100" name="l07100"></a><span class="lineno"> 7100</span>                                           <a class="code hl_define" href="driver__w25qxx_8c.html#a4be10ed873d56bb183d9b1bde9105135">W25QXX_COMMAND_WRITE_STATUS_REG2</a>, 1,</div>
+<div class="line"><a id="l07101" name="l07101"></a><span class="lineno"> 7101</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l07102" name="l07102"></a><span class="lineno"> 7102</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l07103" name="l07103"></a><span class="lineno"> 7103</span>                                           0x00, NULL, 0x00,</div>
+<div class="line"><a id="l07104" name="l07104"></a><span class="lineno"> 7104</span>                                           NULL, 0x00, 0x00);                              <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l07105" name="l07105"></a><span class="lineno"> 7105</span>            <span class="keywordflow">if</span> (res != 0)                                                                  <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l07106" name="l07106"></a><span class="lineno"> 7106</span>            {</div>
+<div class="line"><a id="l07107" name="l07107"></a><span class="lineno"> 7107</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write status 2 failed.\n&quot;</span>);                   <span class="comment">/* write status 2 failed */</span></div>
+<div class="line"><a id="l07108" name="l07108"></a><span class="lineno"> 7108</span>                (void)handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a4568e23228174b7d32678d9a96d2420c">spi_qspi_deinit</a>();                                           </div>
+<div class="line"><a id="l07110" name="l07110"></a><span class="lineno"> 7110</span>                <span class="keywordflow">return</span> 5;                                                                  <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l07111" name="l07111"></a><span class="lineno"> 7111</span>            }</div>
+<div class="line"><a id="l07112" name="l07112"></a><span class="lineno"> 7112</span>        }</div>
+<div class="line"><a id="l07113" name="l07113"></a><span class="lineno"> 7113</span>        res = a_w25qxx_qspi_write_read(handle,</div>
+<div class="line"><a id="l07114" name="l07114"></a><span class="lineno"> 7114</span>                                       <a class="code hl_define" href="driver__w25qxx_8c.html#a052d5373086b473bf0d450ea1bd73828">W25QXX_COMMAND_ENTER_QSPI_MODE</a>, 1,</div>
+<div class="line"><a id="l07115" name="l07115"></a><span class="lineno"> 7115</span>                                       0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l07116" name="l07116"></a><span class="lineno"> 7116</span>                                       0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l07117" name="l07117"></a><span class="lineno"> 7117</span>                                       0x00, NULL, 0x00,</div>
+<div class="line"><a id="l07118" name="l07118"></a><span class="lineno"> 7118</span>                                       NULL, 0x00, 0x00);                                  <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l07119" name="l07119"></a><span class="lineno"> 7119</span>        <span class="keywordflow">if</span> (res != 0)                                                                      <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l07120" name="l07120"></a><span class="lineno"> 7120</span>        {</div>
+<div class="line"><a id="l07121" name="l07121"></a><span class="lineno"> 7121</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: enter qspi failed.\n&quot;</span>);                           <span class="comment">/* enter qspi failed */</span></div>
+<div class="line"><a id="l07122" name="l07122"></a><span class="lineno"> 7122</span>            (void)handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a4568e23228174b7d32678d9a96d2420c">spi_qspi_deinit</a>();                                               </div>
+<div class="line"><a id="l07124" name="l07124"></a><span class="lineno"> 7124</span>            <span class="keywordflow">return</span> 5;                                                                      <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l07125" name="l07125"></a><span class="lineno"> 7125</span>        }</div>
+<div class="line"><a id="l07126" name="l07126"></a><span class="lineno"> 7126</span>        handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a406c9433252b7366de417b7a60915c81">delay_ms</a>(10);                                                              <span class="comment">/* delay 10 ms */</span></div>
+<div class="line"><a id="l07127" name="l07127"></a><span class="lineno"> 7127</span>        buf[0] = 3 &lt;&lt; 4;                                                                   <span class="comment">/* set 8 read dummy */</span></div>
+<div class="line"><a id="l07128" name="l07128"></a><span class="lineno"> 7128</span>        handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a3d28993689552e18d554dc0644efcf16">param</a> = buf[0];                                                            <span class="comment">/* set param */</span></div>
+<div class="line"><a id="l07129" name="l07129"></a><span class="lineno"> 7129</span>        handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#aff7b59f569ec689a7580bd6911daafd5">dummy</a> = 8;                                                                 <span class="comment">/* set dummy */</span></div>
+<div class="line"><a id="l07130" name="l07130"></a><span class="lineno"> 7130</span>        res = a_w25qxx_qspi_write_read(handle, 0xC0, 4,</div>
+<div class="line"><a id="l07131" name="l07131"></a><span class="lineno"> 7131</span>                                       0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l07132" name="l07132"></a><span class="lineno"> 7132</span>                                       0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l07133" name="l07133"></a><span class="lineno"> 7133</span>                                       0, (uint8_t *)buf, 1,</div>
+<div class="line"><a id="l07134" name="l07134"></a><span class="lineno"> 7134</span>                                       NULL, 0x00, 4);                                     <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l07135" name="l07135"></a><span class="lineno"> 7135</span>        <span class="keywordflow">if</span> (res != 0)                                                                      <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l07136" name="l07136"></a><span class="lineno"> 7136</span>        {</div>
+<div class="line"><a id="l07137" name="l07137"></a><span class="lineno"> 7137</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: set read parameters failed.\n&quot;</span>);                  <span class="comment">/* set read parameters failed */</span></div>
+<div class="line"><a id="l07138" name="l07138"></a><span class="lineno"> 7138</span>            (void)handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a4568e23228174b7d32678d9a96d2420c">spi_qspi_deinit</a>();                                               </div>
+<div class="line"><a id="l07140" name="l07140"></a><span class="lineno"> 7140</span>            <span class="keywordflow">return</span> 5;                                                                      <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l07141" name="l07141"></a><span class="lineno"> 7141</span>        }</div>
+<div class="line"><a id="l07142" name="l07142"></a><span class="lineno"> 7142</span>        res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#af6d9a5bc0b57b041e22af80b85e53f56">W25QXX_COMMAND_READ_MANUFACTURER</a>, 4,</div>
+<div class="line"><a id="l07143" name="l07143"></a><span class="lineno"> 7143</span>                                       0x00000000, 4, 3,</div>
+<div class="line"><a id="l07144" name="l07144"></a><span class="lineno"> 7144</span>                                       0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l07145" name="l07145"></a><span class="lineno"> 7145</span>                                       0, NULL, 0x00,</div>
+<div class="line"><a id="l07146" name="l07146"></a><span class="lineno"> 7146</span>                                      (uint8_t *)out, 2, 4);                               <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l07147" name="l07147"></a><span class="lineno"> 7147</span>        <span class="keywordflow">if</span> (res != 0)                                                                      <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l07148" name="l07148"></a><span class="lineno"> 7148</span>        {</div>
+<div class="line"><a id="l07149" name="l07149"></a><span class="lineno"> 7149</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: get manufacturer device id failed.\n&quot;</span>);           <span class="comment">/* get manufacturer device id failed */</span></div>
+<div class="line"><a id="l07150" name="l07150"></a><span class="lineno"> 7150</span>            (void)handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a4568e23228174b7d32678d9a96d2420c">spi_qspi_deinit</a>();                                               </div>
+<div class="line"><a id="l07152" name="l07152"></a><span class="lineno"> 7152</span>            <span class="keywordflow">return</span> 1;                                                                      <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l07153" name="l07153"></a><span class="lineno"> 7153</span>        }</div>
+<div class="line"><a id="l07154" name="l07154"></a><span class="lineno"> 7154</span>        <span class="keywordtype">id</span> = (uint16_t)out[0] &lt;&lt; 8 | out[1];                                               <span class="comment">/* set id */</span></div>
+<div class="line"><a id="l07155" name="l07155"></a><span class="lineno"> 7155</span>        <span class="keywordflow">if</span> (<span class="keywordtype">id</span> != handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a>)                                                            <span class="comment">/* check id */</span></div>
+<div class="line"><a id="l07156" name="l07156"></a><span class="lineno"> 7156</span>        {</div>
+<div class="line"><a id="l07157" name="l07157"></a><span class="lineno"> 7157</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: id is invalid.\n&quot;</span>);                               <span class="comment">/* id is invalid */</span></div>
+<div class="line"><a id="l07158" name="l07158"></a><span class="lineno"> 7158</span>            (void)handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a4568e23228174b7d32678d9a96d2420c">spi_qspi_deinit</a>();                                               </div>
+<div class="line"><a id="l07160" name="l07160"></a><span class="lineno"> 7160</span>            <span class="keywordflow">return</span> 6;                                                                      <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l07161" name="l07161"></a><span class="lineno"> 7161</span>        }</div>
+<div class="line"><a id="l07162" name="l07162"></a><span class="lineno"> 7162</span>        <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)</div>
+<div class="line"><a id="l07163" name="l07163"></a><span class="lineno"> 7163</span>        {</div>
+<div class="line"><a id="l07164" name="l07164"></a><span class="lineno"> 7164</span>            res = a_w25qxx_qspi_write_read(handle, 0xE9, 4,</div>
+<div class="line"><a id="l07165" name="l07165"></a><span class="lineno"> 7165</span>                                           0x00000000, 0, 0,</div>
+<div class="line"><a id="l07166" name="l07166"></a><span class="lineno"> 7166</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l07167" name="l07167"></a><span class="lineno"> 7167</span>                                           0, NULL, 0x00,</div>
+<div class="line"><a id="l07168" name="l07168"></a><span class="lineno"> 7168</span>                                           NULL, 0, 0);                                    <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l07169" name="l07169"></a><span class="lineno"> 7169</span>            <span class="keywordflow">if</span> (res != 0)                                                                  <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l07170" name="l07170"></a><span class="lineno"> 7170</span>            {</div>
+<div class="line"><a id="l07171" name="l07171"></a><span class="lineno"> 7171</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: enter 3 byte mode failed.\n&quot;</span>);                <span class="comment">/* enter 3 byte mode failed */</span></div>
+<div class="line"><a id="l07172" name="l07172"></a><span class="lineno"> 7172</span>                (void)handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a4568e23228174b7d32678d9a96d2420c">spi_qspi_deinit</a>();                                           </div>
+<div class="line"><a id="l07174" name="l07174"></a><span class="lineno"> 7174</span>                <span class="keywordflow">return</span> 1;                                                                  <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l07175" name="l07175"></a><span class="lineno"> 7175</span>            }</div>
+<div class="line"><a id="l07176" name="l07176"></a><span class="lineno"> 7176</span>        }</div>
+<div class="line"><a id="l07177" name="l07177"></a><span class="lineno"> 7177</span>    }</div>
+<div class="line"><a id="l07178" name="l07178"></a><span class="lineno"> 7178</span>    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> = <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>;                                     <span class="comment">/* set address mode */</span></div>
+<div class="line"><a id="l07179" name="l07179"></a><span class="lineno"> 7179</span>    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">inited</a> = 1;                                                                    <span class="comment">/* initialize inited */</span></div>
+<div class="line"><a id="l07180" name="l07180"></a><span class="lineno"> 7180</span>    </div>
+<div class="line"><a id="l07181" name="l07181"></a><span class="lineno"> 7181</span>    <span class="keywordflow">return</span> 0;                                                                              <span class="comment">/* success return 0 */</span></div>
+<div class="line"><a id="l07182" name="l07182"></a><span class="lineno"> 7182</span>}</div>
+</div>
+<div class="line"><a id="l07183" name="l07183"></a><span class="lineno"> 7183</span> </div>
+<div class="foldopen" id="foldopen07195" data-start="{" data-end="}">
+<div class="line"><a id="l07195" name="l07195"></a><span class="lineno"><a class="line" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d"> 7195</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle)</div>
+<div class="line"><a id="l07196" name="l07196"></a><span class="lineno"> 7196</span>{</div>
+<div class="line"><a id="l07197" name="l07197"></a><span class="lineno"> 7197</span>    uint8_t res;</div>
+<div class="line"><a id="l07198" name="l07198"></a><span class="lineno"> 7198</span>    uint8_t buf[1];</div>
+<div class="line"><a id="l07199" name="l07199"></a><span class="lineno"> 7199</span>    </div>
+<div class="line"><a id="l07200" name="l07200"></a><span class="lineno"> 7200</span>    <span class="keywordflow">if</span> (handle == NULL)                                                            <span class="comment">/* check handle */</span></div>
+<div class="line"><a id="l07201" name="l07201"></a><span class="lineno"> 7201</span>    {</div>
+<div class="line"><a id="l07202" name="l07202"></a><span class="lineno"> 7202</span>        <span class="keywordflow">return</span> 2;                                                                  <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l07203" name="l07203"></a><span class="lineno"> 7203</span>    }   </div>
+<div class="line"><a id="l07204" name="l07204"></a><span class="lineno"> 7204</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">inited</a> != 1)                                                       <span class="comment">/* check handle initialization */</span></div>
+<div class="line"><a id="l07205" name="l07205"></a><span class="lineno"> 7205</span>    {</div>
+<div class="line"><a id="l07206" name="l07206"></a><span class="lineno"> 7206</span>        <span class="keywordflow">return</span> 3;                                                                  <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l07207" name="l07207"></a><span class="lineno"> 7207</span>    }</div>
+<div class="line"><a id="l07208" name="l07208"></a><span class="lineno"> 7208</span> </div>
+<div class="line"><a id="l07209" name="l07209"></a><span class="lineno"> 7209</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>)                                  <span class="comment">/* spi interface */</span></div>
+<div class="line"><a id="l07210" name="l07210"></a><span class="lineno"> 7210</span>    {</div>
+<div class="line"><a id="l07211" name="l07211"></a><span class="lineno"> 7211</span>        <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">dual_quad_spi_enable</a> != 0)                                     <span class="comment">/* enable dual quad spi */</span></div>
+<div class="line"><a id="l07212" name="l07212"></a><span class="lineno"> 7212</span>        {</div>
+<div class="line"><a id="l07213" name="l07213"></a><span class="lineno"> 7213</span>            res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#a6fe4d603e33b7c8b8310a884e02a130b">W25QXX_COMMAND_POWER_DOWN</a>, 1,</div>
+<div class="line"><a id="l07214" name="l07214"></a><span class="lineno"> 7214</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l07215" name="l07215"></a><span class="lineno"> 7215</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l07216" name="l07216"></a><span class="lineno"> 7216</span>                                           0, NULL, 0x00,</div>
+<div class="line"><a id="l07217" name="l07217"></a><span class="lineno"> 7217</span>                                           NULL, 0x00, 0);                         <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l07218" name="l07218"></a><span class="lineno"> 7218</span>            <span class="keywordflow">if</span> (res != 0)                                                          <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l07219" name="l07219"></a><span class="lineno"> 7219</span>            {</div>
+<div class="line"><a id="l07220" name="l07220"></a><span class="lineno"> 7220</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: power down failed.\n&quot;</span>);               <span class="comment">/* power down failed */</span></div>
+<div class="line"><a id="l07221" name="l07221"></a><span class="lineno"> 7221</span>               </div>
+<div class="line"><a id="l07222" name="l07222"></a><span class="lineno"> 7222</span>                <span class="keywordflow">return</span> 4;                                                          <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l07223" name="l07223"></a><span class="lineno"> 7223</span>            }</div>
+<div class="line"><a id="l07224" name="l07224"></a><span class="lineno"> 7224</span>        }</div>
+<div class="line"><a id="l07225" name="l07225"></a><span class="lineno"> 7225</span>        <span class="keywordflow">else</span>                                                                       <span class="comment">/* single spi */</span></div>
+<div class="line"><a id="l07226" name="l07226"></a><span class="lineno"> 7226</span>        {</div>
+<div class="line"><a id="l07227" name="l07227"></a><span class="lineno"> 7227</span>            buf[0] = <a class="code hl_define" href="driver__w25qxx_8c.html#a6fe4d603e33b7c8b8310a884e02a130b">W25QXX_COMMAND_POWER_DOWN</a>;                                    <span class="comment">/* power down command */</span></div>
+<div class="line"><a id="l07228" name="l07228"></a><span class="lineno"> 7228</span>            res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf,</div>
+<div class="line"><a id="l07229" name="l07229"></a><span class="lineno"> 7229</span>                                          1, NULL, 0);                             <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l07230" name="l07230"></a><span class="lineno"> 7230</span>            <span class="keywordflow">if</span> (res != 0)                                                          <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l07231" name="l07231"></a><span class="lineno"> 7231</span>            {</div>
+<div class="line"><a id="l07232" name="l07232"></a><span class="lineno"> 7232</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: power down failed.\n&quot;</span>);               <span class="comment">/* power down failed */</span></div>
+<div class="line"><a id="l07233" name="l07233"></a><span class="lineno"> 7233</span>               </div>
+<div class="line"><a id="l07234" name="l07234"></a><span class="lineno"> 7234</span>                <span class="keywordflow">return</span> 4;                                                          <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l07235" name="l07235"></a><span class="lineno"> 7235</span>            }</div>
+<div class="line"><a id="l07236" name="l07236"></a><span class="lineno"> 7236</span>        }</div>
+<div class="line"><a id="l07237" name="l07237"></a><span class="lineno"> 7237</span>    }</div>
+<div class="line"><a id="l07238" name="l07238"></a><span class="lineno"> 7238</span>    <span class="keywordflow">else</span>                                                                           <span class="comment">/* qspi interface */</span></div>
+<div class="line"><a id="l07239" name="l07239"></a><span class="lineno"> 7239</span>    {</div>
+<div class="line"><a id="l07240" name="l07240"></a><span class="lineno"> 7240</span>        res = a_w25qxx_qspi_write_read(handle, 0xFF, 4,</div>
+<div class="line"><a id="l07241" name="l07241"></a><span class="lineno"> 7241</span>                                       0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l07242" name="l07242"></a><span class="lineno"> 7242</span>                                       0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l07243" name="l07243"></a><span class="lineno"> 7243</span>                                       0, NULL, 0x00,</div>
+<div class="line"><a id="l07244" name="l07244"></a><span class="lineno"> 7244</span>                                       NULL, 0x00, 0);                             <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l07245" name="l07245"></a><span class="lineno"> 7245</span>        <span class="keywordflow">if</span> (res != 0)                                                              <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l07246" name="l07246"></a><span class="lineno"> 7246</span>        {</div>
+<div class="line"><a id="l07247" name="l07247"></a><span class="lineno"> 7247</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: exit qspi mode failed.\n&quot;</span>);               <span class="comment">/* exit qspi mode failed */</span></div>
+<div class="line"><a id="l07248" name="l07248"></a><span class="lineno"> 7248</span>           </div>
+<div class="line"><a id="l07249" name="l07249"></a><span class="lineno"> 7249</span>            <span class="keywordflow">return</span> 1;                                                              <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l07250" name="l07250"></a><span class="lineno"> 7250</span>        }</div>
+<div class="line"><a id="l07251" name="l07251"></a><span class="lineno"> 7251</span>        handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a406c9433252b7366de417b7a60915c81">delay_ms</a>(10);                                                      <span class="comment">/* delay 10 ms */</span></div>
+<div class="line"><a id="l07252" name="l07252"></a><span class="lineno"> 7252</span>        res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#a6fe4d603e33b7c8b8310a884e02a130b">W25QXX_COMMAND_POWER_DOWN</a>, 1,</div>
+<div class="line"><a id="l07253" name="l07253"></a><span class="lineno"> 7253</span>                                       0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l07254" name="l07254"></a><span class="lineno"> 7254</span>                                       0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l07255" name="l07255"></a><span class="lineno"> 7255</span>                                       0, NULL, 0x00,</div>
+<div class="line"><a id="l07256" name="l07256"></a><span class="lineno"> 7256</span>                                       NULL, 0x00, 0);                             <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l07257" name="l07257"></a><span class="lineno"> 7257</span>        <span class="keywordflow">if</span> (res != 0)                                                              <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l07258" name="l07258"></a><span class="lineno"> 7258</span>        {</div>
+<div class="line"><a id="l07259" name="l07259"></a><span class="lineno"> 7259</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: power down failed.\n&quot;</span>);                   <span class="comment">/* power down failed */</span></div>
+<div class="line"><a id="l07260" name="l07260"></a><span class="lineno"> 7260</span>           </div>
+<div class="line"><a id="l07261" name="l07261"></a><span class="lineno"> 7261</span>            <span class="keywordflow">return</span> 4;                                                              <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l07262" name="l07262"></a><span class="lineno"> 7262</span>        }</div>
+<div class="line"><a id="l07263" name="l07263"></a><span class="lineno"> 7263</span>    }</div>
+<div class="line"><a id="l07264" name="l07264"></a><span class="lineno"> 7264</span>    res = handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a4568e23228174b7d32678d9a96d2420c">spi_qspi_deinit</a>();                                               <span class="comment">/* qspi deinit */</span></div>
+<div class="line"><a id="l07265" name="l07265"></a><span class="lineno"> 7265</span>    <span class="keywordflow">if</span> (res != 0)                                                                  <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l07266" name="l07266"></a><span class="lineno"> 7266</span>    {</div>
+<div class="line"><a id="l07267" name="l07267"></a><span class="lineno"> 7267</span>        handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: spi or qspi deinit failed.\n&quot;</span>);               <span class="comment">/* spi or qspi deinit failed */</span></div>
+<div class="line"><a id="l07268" name="l07268"></a><span class="lineno"> 7268</span>       </div>
+<div class="line"><a id="l07269" name="l07269"></a><span class="lineno"> 7269</span>        <span class="keywordflow">return</span> 1;                                                                  <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l07270" name="l07270"></a><span class="lineno"> 7270</span>    }</div>
+<div class="line"><a id="l07271" name="l07271"></a><span class="lineno"> 7271</span>    </div>
+<div class="line"><a id="l07272" name="l07272"></a><span class="lineno"> 7272</span>    <span class="keywordflow">return</span> 0;                                                                      <span class="comment">/* success return 0 */</span></div>
+<div class="line"><a id="l07273" name="l07273"></a><span class="lineno"> 7273</span>}</div>
+</div>
+<div class="line"><a id="l07274" name="l07274"></a><span class="lineno"> 7274</span> </div>
+<div class="foldopen" id="foldopen07289" data-start="{" data-end="}">
+<div class="line"><a id="l07289" name="l07289"></a><span class="lineno"><a class="line" href="group__w25qxx__basic__driver.html#gae7479fc9ce911a52e3c5b6f1a615b879"> 7289</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__basic__driver.html#gae7479fc9ce911a52e3c5b6f1a615b879">w25qxx_read</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint32_t len)</div>
+<div class="line"><a id="l07290" name="l07290"></a><span class="lineno"> 7290</span>{</div>
+<div class="line"><a id="l07291" name="l07291"></a><span class="lineno"> 7291</span>    uint8_t res;</div>
+<div class="line"><a id="l07292" name="l07292"></a><span class="lineno"> 7292</span>    uint8_t buf[6];</div>
+<div class="line"><a id="l07293" name="l07293"></a><span class="lineno"> 7293</span>    </div>
+<div class="line"><a id="l07294" name="l07294"></a><span class="lineno"> 7294</span>    <span class="keywordflow">if</span> (handle == NULL)                                                                                   <span class="comment">/* check handle */</span></div>
+<div class="line"><a id="l07295" name="l07295"></a><span class="lineno"> 7295</span>    {</div>
+<div class="line"><a id="l07296" name="l07296"></a><span class="lineno"> 7296</span>        <span class="keywordflow">return</span> 2;                                                                                         <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l07297" name="l07297"></a><span class="lineno"> 7297</span>    }   </div>
+<div class="line"><a id="l07298" name="l07298"></a><span class="lineno"> 7298</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">inited</a> != 1)                                                                              <span class="comment">/* check handle initialization */</span></div>
+<div class="line"><a id="l07299" name="l07299"></a><span class="lineno"> 7299</span>    {</div>
+<div class="line"><a id="l07300" name="l07300"></a><span class="lineno"> 7300</span>        <span class="keywordflow">return</span> 3;                                                                                         <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l07301" name="l07301"></a><span class="lineno"> 7301</span>    }</div>
+<div class="line"><a id="l07302" name="l07302"></a><span class="lineno"> 7302</span>    </div>
+<div class="line"><a id="l07303" name="l07303"></a><span class="lineno"> 7303</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>)                                                         <span class="comment">/* spi interface */</span></div>
+<div class="line"><a id="l07304" name="l07304"></a><span class="lineno"> 7304</span>    {</div>
+<div class="line"><a id="l07305" name="l07305"></a><span class="lineno"> 7305</span>        <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">dual_quad_spi_enable</a> != 0)                                                            <span class="comment">/* enable dual quad spi */</span></div>
+<div class="line"><a id="l07306" name="l07306"></a><span class="lineno"> 7306</span>        {</div>
+<div class="line"><a id="l07307" name="l07307"></a><span class="lineno"> 7307</span>            <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                       <span class="comment">/* 3 address mode */</span></div>
+<div class="line"><a id="l07308" name="l07308"></a><span class="lineno"> 7308</span>            {</div>
+<div class="line"><a id="l07309" name="l07309"></a><span class="lineno"> 7309</span>                <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)                                                              <span class="comment">/* &gt;128Mb */</span></div>
+<div class="line"><a id="l07310" name="l07310"></a><span class="lineno"> 7310</span>                {</div>
+<div class="line"><a id="l07311" name="l07311"></a><span class="lineno"> 7311</span>                    res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>, 1,</div>
+<div class="line"><a id="l07312" name="l07312"></a><span class="lineno"> 7312</span>                                                   0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l07313" name="l07313"></a><span class="lineno"> 7313</span>                                                   0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l07314" name="l07314"></a><span class="lineno"> 7314</span>                                                   0x00, NULL, 0x00,</div>
+<div class="line"><a id="l07315" name="l07315"></a><span class="lineno"> 7315</span>                                                   NULL, 0x00, 0x00);                                     <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l07316" name="l07316"></a><span class="lineno"> 7316</span>                    <span class="keywordflow">if</span> (res != 0)                                                                         <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l07317" name="l07317"></a><span class="lineno"> 7317</span>                    {</div>
+<div class="line"><a id="l07318" name="l07318"></a><span class="lineno"> 7318</span>                        handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                            <span class="comment">/* write enable failed */</span></div>
+<div class="line"><a id="l07319" name="l07319"></a><span class="lineno"> 7319</span>                       </div>
+<div class="line"><a id="l07320" name="l07320"></a><span class="lineno"> 7320</span>                        <span class="keywordflow">return</span> 1;                                                                         <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l07321" name="l07321"></a><span class="lineno"> 7321</span>                    }</div>
+<div class="line"><a id="l07322" name="l07322"></a><span class="lineno"> 7322</span>                    buf[0] = (addr &gt;&gt; 24) &amp; 0xFF;                                                         <span class="comment">/* 31 - 24 bits */</span></div>
+<div class="line"><a id="l07323" name="l07323"></a><span class="lineno"> 7323</span>                    res = a_w25qxx_qspi_write_read(handle, 0xC5, 1,</div>
+<div class="line"><a id="l07324" name="l07324"></a><span class="lineno"> 7324</span>                                                   0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l07325" name="l07325"></a><span class="lineno"> 7325</span>                                                   0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l07326" name="l07326"></a><span class="lineno"> 7326</span>                                                   0, (uint8_t *)buf, 0x01,</div>
+<div class="line"><a id="l07327" name="l07327"></a><span class="lineno"> 7327</span>                                                   NULL, 0x00, 1);                                        <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l07328" name="l07328"></a><span class="lineno"> 7328</span>                    <span class="keywordflow">if</span> (res != 0)                                                                         <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l07329" name="l07329"></a><span class="lineno"> 7329</span>                    {</div>
+<div class="line"><a id="l07330" name="l07330"></a><span class="lineno"> 7330</span>                        handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write extended addr register failed.\n&quot;</span>);            <span class="comment">/* write extended addr register failed */</span></div>
+<div class="line"><a id="l07331" name="l07331"></a><span class="lineno"> 7331</span>                       </div>
+<div class="line"><a id="l07332" name="l07332"></a><span class="lineno"> 7332</span>                        <span class="keywordflow">return</span> 1;                                                                         <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l07333" name="l07333"></a><span class="lineno"> 7333</span>                    }</div>
+<div class="line"><a id="l07334" name="l07334"></a><span class="lineno"> 7334</span>                }</div>
+<div class="line"><a id="l07335" name="l07335"></a><span class="lineno"> 7335</span>                res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#ac957b31a68db8c14f88a196a98b0aa18">W25QXX_COMMAND_FAST_READ</a>, 1,</div>
+<div class="line"><a id="l07336" name="l07336"></a><span class="lineno"> 7336</span>                                               addr, 1, 3,</div>
+<div class="line"><a id="l07337" name="l07337"></a><span class="lineno"> 7337</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l07338" name="l07338"></a><span class="lineno"> 7338</span>                                               8, NULL, 0x00,                                             <span class="comment">/* spi write */</span></div>
+<div class="line"><a id="l07339" name="l07339"></a><span class="lineno"> 7339</span>                                               data, len, 1);                                             <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l07340" name="l07340"></a><span class="lineno"> 7340</span>                <span class="keywordflow">if</span> (res != 0)                                                                             <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l07341" name="l07341"></a><span class="lineno"> 7341</span>                {</div>
+<div class="line"><a id="l07342" name="l07342"></a><span class="lineno"> 7342</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read failed.\n&quot;</span>);                                   <span class="comment">/* fast read failed */</span></div>
+<div class="line"><a id="l07343" name="l07343"></a><span class="lineno"> 7343</span>                   </div>
+<div class="line"><a id="l07344" name="l07344"></a><span class="lineno"> 7344</span>                    <span class="keywordflow">return</span> 1;                                                                             <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l07345" name="l07345"></a><span class="lineno"> 7345</span>                }</div>
+<div class="line"><a id="l07346" name="l07346"></a><span class="lineno"> 7346</span>            }</div>
+<div class="line"><a id="l07347" name="l07347"></a><span class="lineno"> 7347</span>            <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>) &amp;&amp; (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>))</div>
+<div class="line"><a id="l07348" name="l07348"></a><span class="lineno"> 7348</span>            {</div>
+<div class="line"><a id="l07349" name="l07349"></a><span class="lineno"> 7349</span>                res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#ac957b31a68db8c14f88a196a98b0aa18">W25QXX_COMMAND_FAST_READ</a>, 1,</div>
+<div class="line"><a id="l07350" name="l07350"></a><span class="lineno"> 7350</span>                                               addr, 1, 4,</div>
+<div class="line"><a id="l07351" name="l07351"></a><span class="lineno"> 7351</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l07352" name="l07352"></a><span class="lineno"> 7352</span>                                               8, NULL, 0x00,                                             <span class="comment">/* spi write */</span></div>
+<div class="line"><a id="l07353" name="l07353"></a><span class="lineno"> 7353</span>                                               data, len, 1);                                             <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l07354" name="l07354"></a><span class="lineno"> 7354</span>                <span class="keywordflow">if</span> (res != 0)                                                                             <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l07355" name="l07355"></a><span class="lineno"> 7355</span>                {</div>
+<div class="line"><a id="l07356" name="l07356"></a><span class="lineno"> 7356</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read failed.\n&quot;</span>);                                   <span class="comment">/* fast read failed */</span></div>
+<div class="line"><a id="l07357" name="l07357"></a><span class="lineno"> 7357</span>                   </div>
+<div class="line"><a id="l07358" name="l07358"></a><span class="lineno"> 7358</span>                    <span class="keywordflow">return</span> 1;                                                                             <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l07359" name="l07359"></a><span class="lineno"> 7359</span>                }</div>
+<div class="line"><a id="l07360" name="l07360"></a><span class="lineno"> 7360</span>            }</div>
+<div class="line"><a id="l07361" name="l07361"></a><span class="lineno"> 7361</span>            <span class="keywordflow">else</span></div>
+<div class="line"><a id="l07362" name="l07362"></a><span class="lineno"> 7362</span>            {</div>
+<div class="line"><a id="l07363" name="l07363"></a><span class="lineno"> 7363</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: address mode is invalid.\n&quot;</span>);                                <span class="comment">/* address mode is invalid */</span></div>
+<div class="line"><a id="l07364" name="l07364"></a><span class="lineno"> 7364</span>               </div>
+<div class="line"><a id="l07365" name="l07365"></a><span class="lineno"> 7365</span>                <span class="keywordflow">return</span> 4;                                                                                 <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l07366" name="l07366"></a><span class="lineno"> 7366</span>            }</div>
+<div class="line"><a id="l07367" name="l07367"></a><span class="lineno"> 7367</span>        }</div>
+<div class="line"><a id="l07368" name="l07368"></a><span class="lineno"> 7368</span>        <span class="keywordflow">else</span>                                                                                              <span class="comment">/* single spi */</span></div>
+<div class="line"><a id="l07369" name="l07369"></a><span class="lineno"> 7369</span>        {</div>
+<div class="line"><a id="l07370" name="l07370"></a><span class="lineno"> 7370</span>            <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                       <span class="comment">/* 3 address mode */</span></div>
+<div class="line"><a id="l07371" name="l07371"></a><span class="lineno"> 7371</span>            {</div>
+<div class="line"><a id="l07372" name="l07372"></a><span class="lineno"> 7372</span>                <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)                                                              <span class="comment">/* &gt;128Mb */</span></div>
+<div class="line"><a id="l07373" name="l07373"></a><span class="lineno"> 7373</span>                {</div>
+<div class="line"><a id="l07374" name="l07374"></a><span class="lineno"> 7374</span>                    buf[0] = <a class="code hl_define" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>;                                                 <span class="comment">/* write enable command */</span></div>
+<div class="line"><a id="l07375" name="l07375"></a><span class="lineno"> 7375</span>                    res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 1, NULL, 0);                    <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l07376" name="l07376"></a><span class="lineno"> 7376</span>                    <span class="keywordflow">if</span> (res != 0)                                                                         <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l07377" name="l07377"></a><span class="lineno"> 7377</span>                    {</div>
+<div class="line"><a id="l07378" name="l07378"></a><span class="lineno"> 7378</span>                        handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                            <span class="comment">/* write enable failed */</span></div>
+<div class="line"><a id="l07379" name="l07379"></a><span class="lineno"> 7379</span>                       </div>
+<div class="line"><a id="l07380" name="l07380"></a><span class="lineno"> 7380</span>                        <span class="keywordflow">return</span> 1;                                                                         <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l07381" name="l07381"></a><span class="lineno"> 7381</span>                    }</div>
+<div class="line"><a id="l07382" name="l07382"></a><span class="lineno"> 7382</span>                    buf[0] = 0xC5;                                                                        <span class="comment">/* write extended addr register command */</span></div>
+<div class="line"><a id="l07383" name="l07383"></a><span class="lineno"> 7383</span>                    buf[1] = (addr &gt;&gt; 24) &amp; 0xFF;                                                         <span class="comment">/* 31 - 24 bits */</span></div>
+<div class="line"><a id="l07384" name="l07384"></a><span class="lineno"> 7384</span>                    res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 2, NULL, 0);                    <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l07385" name="l07385"></a><span class="lineno"> 7385</span>                    <span class="keywordflow">if</span> (res != 0)                                                                         <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l07386" name="l07386"></a><span class="lineno"> 7386</span>                    {</div>
+<div class="line"><a id="l07387" name="l07387"></a><span class="lineno"> 7387</span>                        handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write extended addr register failed.\n&quot;</span>);            <span class="comment">/* write extended addr register failed */</span></div>
+<div class="line"><a id="l07388" name="l07388"></a><span class="lineno"> 7388</span>                       </div>
+<div class="line"><a id="l07389" name="l07389"></a><span class="lineno"> 7389</span>                        <span class="keywordflow">return</span> 1;                                                                         <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l07390" name="l07390"></a><span class="lineno"> 7390</span>                    }</div>
+<div class="line"><a id="l07391" name="l07391"></a><span class="lineno"> 7391</span>                }</div>
+<div class="line"><a id="l07392" name="l07392"></a><span class="lineno"> 7392</span>                buf[0] = <a class="code hl_define" href="driver__w25qxx_8c.html#ac957b31a68db8c14f88a196a98b0aa18">W25QXX_COMMAND_FAST_READ</a>;                                                        <span class="comment">/* fast read command */</span></div>
+<div class="line"><a id="l07393" name="l07393"></a><span class="lineno"> 7393</span>                buf[1] = (addr &gt;&gt; 16) &amp; 0xFF;                                                             <span class="comment">/* 23 - 16 bits */</span></div>
+<div class="line"><a id="l07394" name="l07394"></a><span class="lineno"> 7394</span>                buf[2] = (addr &gt;&gt; 8) &amp; 0xFF;                                                              <span class="comment">/* 15 - 8  bits */</span></div>
+<div class="line"><a id="l07395" name="l07395"></a><span class="lineno"> 7395</span>                buf[3] = (addr &gt;&gt; 0) &amp; 0xFF;                                                              <span class="comment">/* 7 - 0 bits */</span></div>
+<div class="line"><a id="l07396" name="l07396"></a><span class="lineno"> 7396</span>                buf[4] = 0x00;                                                                            <span class="comment">/* dummy */</span></div>
+<div class="line"><a id="l07397" name="l07397"></a><span class="lineno"> 7397</span>                res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 5, (uint8_t *)data, (uint32_t)len); <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l07398" name="l07398"></a><span class="lineno"> 7398</span>                <span class="keywordflow">if</span> (res != 0)                                                                             <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l07399" name="l07399"></a><span class="lineno"> 7399</span>                {</div>
+<div class="line"><a id="l07400" name="l07400"></a><span class="lineno"> 7400</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read failed.\n&quot;</span>);                                   <span class="comment">/* fast read failed */</span></div>
+<div class="line"><a id="l07401" name="l07401"></a><span class="lineno"> 7401</span>                   </div>
+<div class="line"><a id="l07402" name="l07402"></a><span class="lineno"> 7402</span>                    <span class="keywordflow">return</span> 1;                                                                             <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l07403" name="l07403"></a><span class="lineno"> 7403</span>                }</div>
+<div class="line"><a id="l07404" name="l07404"></a><span class="lineno"> 7404</span>            }</div>
+<div class="line"><a id="l07405" name="l07405"></a><span class="lineno"> 7405</span>            <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>)</div>
+<div class="line"><a id="l07406" name="l07406"></a><span class="lineno"> 7406</span>                    &amp;&amp; (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>))                                                         <span class="comment">/* check address mode */</span></div>
+<div class="line"><a id="l07407" name="l07407"></a><span class="lineno"> 7407</span>            {</div>
+<div class="line"><a id="l07408" name="l07408"></a><span class="lineno"> 7408</span>                buf[0] = <a class="code hl_define" href="driver__w25qxx_8c.html#ac957b31a68db8c14f88a196a98b0aa18">W25QXX_COMMAND_FAST_READ</a>;                                                        <span class="comment">/* fast read command */</span></div>
+<div class="line"><a id="l07409" name="l07409"></a><span class="lineno"> 7409</span>                buf[1] = (addr &gt;&gt; 24) &amp; 0xFF;                                                             <span class="comment">/* 31 - 24 bits */</span></div>
+<div class="line"><a id="l07410" name="l07410"></a><span class="lineno"> 7410</span>                buf[2] = (addr &gt;&gt; 16) &amp; 0xFF;                                                             <span class="comment">/* 23 - 16 bits */</span></div>
+<div class="line"><a id="l07411" name="l07411"></a><span class="lineno"> 7411</span>                buf[3] = (addr &gt;&gt; 8) &amp; 0xFF;                                                              <span class="comment">/* 15 - 8  bits */</span></div>
+<div class="line"><a id="l07412" name="l07412"></a><span class="lineno"> 7412</span>                buf[4] = (addr &gt;&gt; 0) &amp; 0xFF;                                                              <span class="comment">/* 7 - 0 bits */</span></div>
+<div class="line"><a id="l07413" name="l07413"></a><span class="lineno"> 7413</span>                buf[5] = 0x00;                                                                            <span class="comment">/* dummy */</span></div>
+<div class="line"><a id="l07414" name="l07414"></a><span class="lineno"> 7414</span>                res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 6, (uint8_t *)data, (uint32_t)len); <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l07415" name="l07415"></a><span class="lineno"> 7415</span>                <span class="keywordflow">if</span> (res != 0)                                                                             <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l07416" name="l07416"></a><span class="lineno"> 7416</span>                {</div>
+<div class="line"><a id="l07417" name="l07417"></a><span class="lineno"> 7417</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read failed.\n&quot;</span>);                                   <span class="comment">/* fast read failed */</span></div>
+<div class="line"><a id="l07418" name="l07418"></a><span class="lineno"> 7418</span>                   </div>
+<div class="line"><a id="l07419" name="l07419"></a><span class="lineno"> 7419</span>                    <span class="keywordflow">return</span> 1;                                                                             <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l07420" name="l07420"></a><span class="lineno"> 7420</span>                }</div>
+<div class="line"><a id="l07421" name="l07421"></a><span class="lineno"> 7421</span>            }</div>
+<div class="line"><a id="l07422" name="l07422"></a><span class="lineno"> 7422</span>            <span class="keywordflow">else</span></div>
+<div class="line"><a id="l07423" name="l07423"></a><span class="lineno"> 7423</span>            {</div>
+<div class="line"><a id="l07424" name="l07424"></a><span class="lineno"> 7424</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: address mode is invalid.\n&quot;</span>);                                <span class="comment">/* address mode is invalid */</span></div>
+<div class="line"><a id="l07425" name="l07425"></a><span class="lineno"> 7425</span>               </div>
+<div class="line"><a id="l07426" name="l07426"></a><span class="lineno"> 7426</span>                <span class="keywordflow">return</span> 4;                                                                                 <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l07427" name="l07427"></a><span class="lineno"> 7427</span>            }</div>
+<div class="line"><a id="l07428" name="l07428"></a><span class="lineno"> 7428</span>        }</div>
+<div class="line"><a id="l07429" name="l07429"></a><span class="lineno"> 7429</span>    }</div>
+<div class="line"><a id="l07430" name="l07430"></a><span class="lineno"> 7430</span>    <span class="keywordflow">else</span>                                                                                                  <span class="comment">/* qspi interface */</span></div>
+<div class="line"><a id="l07431" name="l07431"></a><span class="lineno"> 7431</span>    {</div>
+<div class="line"><a id="l07432" name="l07432"></a><span class="lineno"> 7432</span>        <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                           <span class="comment">/* 3 address mode */</span></div>
+<div class="line"><a id="l07433" name="l07433"></a><span class="lineno"> 7433</span>        {</div>
+<div class="line"><a id="l07434" name="l07434"></a><span class="lineno"> 7434</span>            <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)                                                                  <span class="comment">/* &gt;128Mb */</span></div>
+<div class="line"><a id="l07435" name="l07435"></a><span class="lineno"> 7435</span>            {</div>
+<div class="line"><a id="l07436" name="l07436"></a><span class="lineno"> 7436</span>                res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>, 4,</div>
+<div class="line"><a id="l07437" name="l07437"></a><span class="lineno"> 7437</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l07438" name="l07438"></a><span class="lineno"> 7438</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l07439" name="l07439"></a><span class="lineno"> 7439</span>                                               0x00, NULL, 0x00,</div>
+<div class="line"><a id="l07440" name="l07440"></a><span class="lineno"> 7440</span>                                               NULL, 0x00, 0x00);                                         <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l07441" name="l07441"></a><span class="lineno"> 7441</span>                <span class="keywordflow">if</span> (res != 0)                                                                             <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l07442" name="l07442"></a><span class="lineno"> 7442</span>                {</div>
+<div class="line"><a id="l07443" name="l07443"></a><span class="lineno"> 7443</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                                <span class="comment">/* write enable failed */</span></div>
+<div class="line"><a id="l07444" name="l07444"></a><span class="lineno"> 7444</span>                   </div>
+<div class="line"><a id="l07445" name="l07445"></a><span class="lineno"> 7445</span>                    <span class="keywordflow">return</span> 1;                                                                             <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l07446" name="l07446"></a><span class="lineno"> 7446</span>                }</div>
+<div class="line"><a id="l07447" name="l07447"></a><span class="lineno"> 7447</span>                buf[0] = (addr &gt;&gt; 24) &amp; 0xFF;                                                             <span class="comment">/* 31 - 24 bits */</span></div>
+<div class="line"><a id="l07448" name="l07448"></a><span class="lineno"> 7448</span>                res = a_w25qxx_qspi_write_read(handle, 0xC5, 4,</div>
+<div class="line"><a id="l07449" name="l07449"></a><span class="lineno"> 7449</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l07450" name="l07450"></a><span class="lineno"> 7450</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l07451" name="l07451"></a><span class="lineno"> 7451</span>                                               0, (uint8_t *)buf, 0x01,</div>
+<div class="line"><a id="l07452" name="l07452"></a><span class="lineno"> 7452</span>                                               NULL, 0x00, 4);                                            <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l07453" name="l07453"></a><span class="lineno"> 7453</span>                <span class="keywordflow">if</span> (res != 0)                                                                             <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l07454" name="l07454"></a><span class="lineno"> 7454</span>                {</div>
+<div class="line"><a id="l07455" name="l07455"></a><span class="lineno"> 7455</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write extended addr register failed.\n&quot;</span>);                <span class="comment">/* write extended addr register failed */</span></div>
+<div class="line"><a id="l07456" name="l07456"></a><span class="lineno"> 7456</span>                   </div>
+<div class="line"><a id="l07457" name="l07457"></a><span class="lineno"> 7457</span>                    <span class="keywordflow">return</span> 1;                                                                             <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l07458" name="l07458"></a><span class="lineno"> 7458</span>                }</div>
+<div class="line"><a id="l07459" name="l07459"></a><span class="lineno"> 7459</span>            }</div>
+<div class="line"><a id="l07460" name="l07460"></a><span class="lineno"> 7460</span>            res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#ac957b31a68db8c14f88a196a98b0aa18">W25QXX_COMMAND_FAST_READ</a>, 4,</div>
+<div class="line"><a id="l07461" name="l07461"></a><span class="lineno"> 7461</span>                                           addr, 4, 3,</div>
+<div class="line"><a id="l07462" name="l07462"></a><span class="lineno"> 7462</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l07463" name="l07463"></a><span class="lineno"> 7463</span>                                           handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#aff7b59f569ec689a7580bd6911daafd5">dummy</a>, NULL, 0x00,                                     <span class="comment">/* spi write */</span></div>
+<div class="line"><a id="l07464" name="l07464"></a><span class="lineno"> 7464</span>                                           data, len, 4);                                                 <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l07465" name="l07465"></a><span class="lineno"> 7465</span>            <span class="keywordflow">if</span> (res != 0)                                                                                 <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l07466" name="l07466"></a><span class="lineno"> 7466</span>            {</div>
+<div class="line"><a id="l07467" name="l07467"></a><span class="lineno"> 7467</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read failed.\n&quot;</span>);                                       <span class="comment">/* fast read failed */</span></div>
+<div class="line"><a id="l07468" name="l07468"></a><span class="lineno"> 7468</span>               </div>
+<div class="line"><a id="l07469" name="l07469"></a><span class="lineno"> 7469</span>                <span class="keywordflow">return</span> 1;                                                                                 <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l07470" name="l07470"></a><span class="lineno"> 7470</span>            }</div>
+<div class="line"><a id="l07471" name="l07471"></a><span class="lineno"> 7471</span>        }</div>
+<div class="line"><a id="l07472" name="l07472"></a><span class="lineno"> 7472</span>        <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>) &amp;&amp; (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>))</div>
+<div class="line"><a id="l07473" name="l07473"></a><span class="lineno"> 7473</span>        {</div>
+<div class="line"><a id="l07474" name="l07474"></a><span class="lineno"> 7474</span>            res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#ac957b31a68db8c14f88a196a98b0aa18">W25QXX_COMMAND_FAST_READ</a>, 4,</div>
+<div class="line"><a id="l07475" name="l07475"></a><span class="lineno"> 7475</span>                                           addr, 4, 4,</div>
+<div class="line"><a id="l07476" name="l07476"></a><span class="lineno"> 7476</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l07477" name="l07477"></a><span class="lineno"> 7477</span>                                           handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#aff7b59f569ec689a7580bd6911daafd5">dummy</a>, NULL, 0x00,                                     <span class="comment">/* spi write */</span></div>
+<div class="line"><a id="l07478" name="l07478"></a><span class="lineno"> 7478</span>                                           data, len, 4);                                                 <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l07479" name="l07479"></a><span class="lineno"> 7479</span>            <span class="keywordflow">if</span> (res != 0)                                                                                 <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l07480" name="l07480"></a><span class="lineno"> 7480</span>            {</div>
+<div class="line"><a id="l07481" name="l07481"></a><span class="lineno"> 7481</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read failed.\n&quot;</span>);                                       <span class="comment">/* fast read failed */</span></div>
+<div class="line"><a id="l07482" name="l07482"></a><span class="lineno"> 7482</span>               </div>
+<div class="line"><a id="l07483" name="l07483"></a><span class="lineno"> 7483</span>                <span class="keywordflow">return</span> 1;                                                                                 <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l07484" name="l07484"></a><span class="lineno"> 7484</span>            }</div>
+<div class="line"><a id="l07485" name="l07485"></a><span class="lineno"> 7485</span>        }</div>
+<div class="line"><a id="l07486" name="l07486"></a><span class="lineno"> 7486</span>        <span class="keywordflow">else</span></div>
+<div class="line"><a id="l07487" name="l07487"></a><span class="lineno"> 7487</span>        {</div>
+<div class="line"><a id="l07488" name="l07488"></a><span class="lineno"> 7488</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: address mode is invalid.\n&quot;</span>);                                    <span class="comment">/* address mode is invalid */</span></div>
+<div class="line"><a id="l07489" name="l07489"></a><span class="lineno"> 7489</span>           </div>
+<div class="line"><a id="l07490" name="l07490"></a><span class="lineno"> 7490</span>            <span class="keywordflow">return</span> 4;                                                                                     <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l07491" name="l07491"></a><span class="lineno"> 7491</span>        }</div>
+<div class="line"><a id="l07492" name="l07492"></a><span class="lineno"> 7492</span>    }</div>
+<div class="line"><a id="l07493" name="l07493"></a><span class="lineno"> 7493</span>    </div>
+<div class="line"><a id="l07494" name="l07494"></a><span class="lineno"> 7494</span>    <span class="keywordflow">return</span> 0;                                                                                             <span class="comment">/* success return 0 */</span></div>
+<div class="line"><a id="l07495" name="l07495"></a><span class="lineno"> 7495</span>}</div>
+</div>
+<div class="line"><a id="l07496" name="l07496"></a><span class="lineno"> 7496</span> </div>
+<div class="line"><a id="l07508" name="l07508"></a><span class="lineno"> 7508</span><span class="keyword">static</span> uint8_t a_w25qxx_read(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint32_t len)</div>
+<div class="line"><a id="l07509" name="l07509"></a><span class="lineno"> 7509</span>{</div>
+<div class="line"><a id="l07510" name="l07510"></a><span class="lineno"> 7510</span>    uint8_t res;</div>
+<div class="line"><a id="l07511" name="l07511"></a><span class="lineno"> 7511</span>    uint8_t buf[6];</div>
+<div class="line"><a id="l07512" name="l07512"></a><span class="lineno"> 7512</span> </div>
+<div class="line"><a id="l07513" name="l07513"></a><span class="lineno"> 7513</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>)                                                         <span class="comment">/* spi interface */</span></div>
+<div class="line"><a id="l07514" name="l07514"></a><span class="lineno"> 7514</span>    {</div>
+<div class="line"><a id="l07515" name="l07515"></a><span class="lineno"> 7515</span>        <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">dual_quad_spi_enable</a> != 0)                                                            <span class="comment">/* enable dual quad spi */</span></div>
+<div class="line"><a id="l07516" name="l07516"></a><span class="lineno"> 7516</span>        {</div>
+<div class="line"><a id="l07517" name="l07517"></a><span class="lineno"> 7517</span>            <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                       <span class="comment">/* 3 address mode */</span></div>
+<div class="line"><a id="l07518" name="l07518"></a><span class="lineno"> 7518</span>            {</div>
+<div class="line"><a id="l07519" name="l07519"></a><span class="lineno"> 7519</span>                <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)                                                              <span class="comment">/* &gt;128Mb */</span></div>
+<div class="line"><a id="l07520" name="l07520"></a><span class="lineno"> 7520</span>                {</div>
+<div class="line"><a id="l07521" name="l07521"></a><span class="lineno"> 7521</span>                    res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>, 1,</div>
+<div class="line"><a id="l07522" name="l07522"></a><span class="lineno"> 7522</span>                                                   0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l07523" name="l07523"></a><span class="lineno"> 7523</span>                                                   0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l07524" name="l07524"></a><span class="lineno"> 7524</span>                                                   0x00, NULL, 0x00,</div>
+<div class="line"><a id="l07525" name="l07525"></a><span class="lineno"> 7525</span>                                                   NULL, 0x00, 0x00);                                     <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l07526" name="l07526"></a><span class="lineno"> 7526</span>                    <span class="keywordflow">if</span> (res != 0)                                                                         <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l07527" name="l07527"></a><span class="lineno"> 7527</span>                    {</div>
+<div class="line"><a id="l07528" name="l07528"></a><span class="lineno"> 7528</span>                        handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                            <span class="comment">/* write enable failed */</span></div>
+<div class="line"><a id="l07529" name="l07529"></a><span class="lineno"> 7529</span>                       </div>
+<div class="line"><a id="l07530" name="l07530"></a><span class="lineno"> 7530</span>                        <span class="keywordflow">return</span> 1;                                                                         <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l07531" name="l07531"></a><span class="lineno"> 7531</span>                    }</div>
+<div class="line"><a id="l07532" name="l07532"></a><span class="lineno"> 7532</span>                    buf[0] = (addr &gt;&gt; 24) &amp; 0xFF;                                                         <span class="comment">/* 31 - 24 bits */</span></div>
+<div class="line"><a id="l07533" name="l07533"></a><span class="lineno"> 7533</span>                    res = a_w25qxx_qspi_write_read(handle, 0xC5, 1,</div>
+<div class="line"><a id="l07534" name="l07534"></a><span class="lineno"> 7534</span>                                                   0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l07535" name="l07535"></a><span class="lineno"> 7535</span>                                                   0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l07536" name="l07536"></a><span class="lineno"> 7536</span>                                                   0, (uint8_t *)buf, 0x01,</div>
+<div class="line"><a id="l07537" name="l07537"></a><span class="lineno"> 7537</span>                                                   NULL, 0x00, 1);                                        <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l07538" name="l07538"></a><span class="lineno"> 7538</span>                    <span class="keywordflow">if</span> (res != 0)                                                                         <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l07539" name="l07539"></a><span class="lineno"> 7539</span>                    {</div>
+<div class="line"><a id="l07540" name="l07540"></a><span class="lineno"> 7540</span>                        handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write extended addr register failed.\n&quot;</span>);            <span class="comment">/* write extended addr register failed */</span></div>
+<div class="line"><a id="l07541" name="l07541"></a><span class="lineno"> 7541</span>                       </div>
+<div class="line"><a id="l07542" name="l07542"></a><span class="lineno"> 7542</span>                        <span class="keywordflow">return</span> 1;                                                                         <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l07543" name="l07543"></a><span class="lineno"> 7543</span>                    }</div>
+<div class="line"><a id="l07544" name="l07544"></a><span class="lineno"> 7544</span>                }</div>
+<div class="line"><a id="l07545" name="l07545"></a><span class="lineno"> 7545</span>                res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#ac957b31a68db8c14f88a196a98b0aa18">W25QXX_COMMAND_FAST_READ</a>, 1,</div>
+<div class="line"><a id="l07546" name="l07546"></a><span class="lineno"> 7546</span>                                               addr, 1, 3,</div>
+<div class="line"><a id="l07547" name="l07547"></a><span class="lineno"> 7547</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l07548" name="l07548"></a><span class="lineno"> 7548</span>                                               8, NULL, 0x00,</div>
+<div class="line"><a id="l07549" name="l07549"></a><span class="lineno"> 7549</span>                                               data, len, 1);                                             <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l07550" name="l07550"></a><span class="lineno"> 7550</span>                <span class="keywordflow">if</span> (res != 0)                                                                             <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l07551" name="l07551"></a><span class="lineno"> 7551</span>                {</div>
+<div class="line"><a id="l07552" name="l07552"></a><span class="lineno"> 7552</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read failed.\n&quot;</span>);                                   <span class="comment">/* fast read failed */</span></div>
+<div class="line"><a id="l07553" name="l07553"></a><span class="lineno"> 7553</span>                   </div>
+<div class="line"><a id="l07554" name="l07554"></a><span class="lineno"> 7554</span>                    <span class="keywordflow">return</span> 1;                                                                             <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l07555" name="l07555"></a><span class="lineno"> 7555</span>                }</div>
+<div class="line"><a id="l07556" name="l07556"></a><span class="lineno"> 7556</span>            }</div>
+<div class="line"><a id="l07557" name="l07557"></a><span class="lineno"> 7557</span>            <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>) &amp;&amp; (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>))</div>
+<div class="line"><a id="l07558" name="l07558"></a><span class="lineno"> 7558</span>            {</div>
+<div class="line"><a id="l07559" name="l07559"></a><span class="lineno"> 7559</span>                res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#ac957b31a68db8c14f88a196a98b0aa18">W25QXX_COMMAND_FAST_READ</a>, 1,</div>
+<div class="line"><a id="l07560" name="l07560"></a><span class="lineno"> 7560</span>                                               addr, 1, 4,</div>
+<div class="line"><a id="l07561" name="l07561"></a><span class="lineno"> 7561</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l07562" name="l07562"></a><span class="lineno"> 7562</span>                                               8, NULL, 0x00,</div>
+<div class="line"><a id="l07563" name="l07563"></a><span class="lineno"> 7563</span>                                               data, len, 1);                                             <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l07564" name="l07564"></a><span class="lineno"> 7564</span>                <span class="keywordflow">if</span> (res != 0)                                                                             <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l07565" name="l07565"></a><span class="lineno"> 7565</span>                {</div>
+<div class="line"><a id="l07566" name="l07566"></a><span class="lineno"> 7566</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read failed.\n&quot;</span>);                                   <span class="comment">/* fast read failed */</span></div>
+<div class="line"><a id="l07567" name="l07567"></a><span class="lineno"> 7567</span>                   </div>
+<div class="line"><a id="l07568" name="l07568"></a><span class="lineno"> 7568</span>                    <span class="keywordflow">return</span> 1;                                                                             <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l07569" name="l07569"></a><span class="lineno"> 7569</span>                }</div>
+<div class="line"><a id="l07570" name="l07570"></a><span class="lineno"> 7570</span>            }</div>
+<div class="line"><a id="l07571" name="l07571"></a><span class="lineno"> 7571</span>            <span class="keywordflow">else</span></div>
+<div class="line"><a id="l07572" name="l07572"></a><span class="lineno"> 7572</span>            {</div>
+<div class="line"><a id="l07573" name="l07573"></a><span class="lineno"> 7573</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: address mode is invalid.\n&quot;</span>);                                <span class="comment">/* address mode is invalid */</span></div>
+<div class="line"><a id="l07574" name="l07574"></a><span class="lineno"> 7574</span>               </div>
+<div class="line"><a id="l07575" name="l07575"></a><span class="lineno"> 7575</span>                <span class="keywordflow">return</span> 1;                                                                                 <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l07576" name="l07576"></a><span class="lineno"> 7576</span>            }</div>
+<div class="line"><a id="l07577" name="l07577"></a><span class="lineno"> 7577</span>        }</div>
+<div class="line"><a id="l07578" name="l07578"></a><span class="lineno"> 7578</span>        <span class="keywordflow">else</span></div>
+<div class="line"><a id="l07579" name="l07579"></a><span class="lineno"> 7579</span>        {</div>
+<div class="line"><a id="l07580" name="l07580"></a><span class="lineno"> 7580</span>            <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                       <span class="comment">/* 3 address mode */</span></div>
+<div class="line"><a id="l07581" name="l07581"></a><span class="lineno"> 7581</span>            {</div>
+<div class="line"><a id="l07582" name="l07582"></a><span class="lineno"> 7582</span>                <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)                                                              <span class="comment">/* &gt;128Mb */</span></div>
+<div class="line"><a id="l07583" name="l07583"></a><span class="lineno"> 7583</span>                {</div>
+<div class="line"><a id="l07584" name="l07584"></a><span class="lineno"> 7584</span>                    buf[0] = <a class="code hl_define" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>;                                                 <span class="comment">/* write enable command */</span></div>
+<div class="line"><a id="l07585" name="l07585"></a><span class="lineno"> 7585</span>                    res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 1, NULL, 0);                    <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l07586" name="l07586"></a><span class="lineno"> 7586</span>                    <span class="keywordflow">if</span> (res != 0)                                                                         <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l07587" name="l07587"></a><span class="lineno"> 7587</span>                    {</div>
+<div class="line"><a id="l07588" name="l07588"></a><span class="lineno"> 7588</span>                        handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                            <span class="comment">/* write enable failed */</span></div>
+<div class="line"><a id="l07589" name="l07589"></a><span class="lineno"> 7589</span>                       </div>
+<div class="line"><a id="l07590" name="l07590"></a><span class="lineno"> 7590</span>                        <span class="keywordflow">return</span> 1;                                                                         <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l07591" name="l07591"></a><span class="lineno"> 7591</span>                    }</div>
+<div class="line"><a id="l07592" name="l07592"></a><span class="lineno"> 7592</span>                    buf[0] = 0xC5;                                                                        <span class="comment">/* write extended addr register command */</span></div>
+<div class="line"><a id="l07593" name="l07593"></a><span class="lineno"> 7593</span>                    buf[1] = (addr &gt;&gt; 24) &amp; 0xFF;                                                         <span class="comment">/* 31 - 24 bits */</span></div>
+<div class="line"><a id="l07594" name="l07594"></a><span class="lineno"> 7594</span>                    res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 2, NULL, 0);                    <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l07595" name="l07595"></a><span class="lineno"> 7595</span>                    <span class="keywordflow">if</span> (res != 0)                                                                         <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l07596" name="l07596"></a><span class="lineno"> 7596</span>                    {</div>
+<div class="line"><a id="l07597" name="l07597"></a><span class="lineno"> 7597</span>                        handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write extended addr register failed.\n&quot;</span>);            <span class="comment">/* write extended addr register failed */</span></div>
+<div class="line"><a id="l07598" name="l07598"></a><span class="lineno"> 7598</span>                       </div>
+<div class="line"><a id="l07599" name="l07599"></a><span class="lineno"> 7599</span>                        <span class="keywordflow">return</span> 1;                                                                         <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l07600" name="l07600"></a><span class="lineno"> 7600</span>                    }</div>
+<div class="line"><a id="l07601" name="l07601"></a><span class="lineno"> 7601</span>                }</div>
+<div class="line"><a id="l07602" name="l07602"></a><span class="lineno"> 7602</span>                buf[0] = <a class="code hl_define" href="driver__w25qxx_8c.html#ac957b31a68db8c14f88a196a98b0aa18">W25QXX_COMMAND_FAST_READ</a>;                                                        <span class="comment">/* fast read command */</span></div>
+<div class="line"><a id="l07603" name="l07603"></a><span class="lineno"> 7603</span>                buf[1] = (addr &gt;&gt; 16) &amp; 0xFF;                                                             <span class="comment">/* 23 - 16 bits */</span></div>
+<div class="line"><a id="l07604" name="l07604"></a><span class="lineno"> 7604</span>                buf[2] = (addr &gt;&gt; 8) &amp; 0xFF;                                                              <span class="comment">/* 15 - 8  bits */</span></div>
+<div class="line"><a id="l07605" name="l07605"></a><span class="lineno"> 7605</span>                buf[3] = (addr &gt;&gt; 0) &amp; 0xFF;                                                              <span class="comment">/* 7 - 0 bits */</span></div>
+<div class="line"><a id="l07606" name="l07606"></a><span class="lineno"> 7606</span>                buf[4] = 0x00;                                                                            <span class="comment">/* dummy */</span></div>
+<div class="line"><a id="l07607" name="l07607"></a><span class="lineno"> 7607</span>                res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 5, (uint8_t *)data, (uint32_t)len); <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l07608" name="l07608"></a><span class="lineno"> 7608</span>                <span class="keywordflow">if</span> (res != 0)                                                                             <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l07609" name="l07609"></a><span class="lineno"> 7609</span>                {</div>
+<div class="line"><a id="l07610" name="l07610"></a><span class="lineno"> 7610</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read failed.\n&quot;</span>);                                   <span class="comment">/* fast read failed */</span></div>
+<div class="line"><a id="l07611" name="l07611"></a><span class="lineno"> 7611</span>                   </div>
+<div class="line"><a id="l07612" name="l07612"></a><span class="lineno"> 7612</span>                    <span class="keywordflow">return</span> 1;                                                                             <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l07613" name="l07613"></a><span class="lineno"> 7613</span>                }</div>
+<div class="line"><a id="l07614" name="l07614"></a><span class="lineno"> 7614</span>            }</div>
+<div class="line"><a id="l07615" name="l07615"></a><span class="lineno"> 7615</span>            <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>) &amp;&amp; (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>))   <span class="comment">/* check address mode */</span></div>
+<div class="line"><a id="l07616" name="l07616"></a><span class="lineno"> 7616</span>            {</div>
+<div class="line"><a id="l07617" name="l07617"></a><span class="lineno"> 7617</span>                buf[0] = <a class="code hl_define" href="driver__w25qxx_8c.html#ac957b31a68db8c14f88a196a98b0aa18">W25QXX_COMMAND_FAST_READ</a>;                                                        <span class="comment">/* fast read command */</span></div>
+<div class="line"><a id="l07618" name="l07618"></a><span class="lineno"> 7618</span>                buf[1] = (addr &gt;&gt; 24) &amp; 0xFF;                                                             <span class="comment">/* 31 - 24 bits */</span></div>
+<div class="line"><a id="l07619" name="l07619"></a><span class="lineno"> 7619</span>                buf[2] = (addr &gt;&gt; 16) &amp; 0xFF;                                                             <span class="comment">/* 23 - 16 bits */</span></div>
+<div class="line"><a id="l07620" name="l07620"></a><span class="lineno"> 7620</span>                buf[3] = (addr &gt;&gt; 8) &amp; 0xFF;                                                              <span class="comment">/* 15 - 8  bits */</span></div>
+<div class="line"><a id="l07621" name="l07621"></a><span class="lineno"> 7621</span>                buf[4] = (addr &gt;&gt; 0) &amp; 0xFF;                                                              <span class="comment">/* 7 - 0 bits */</span></div>
+<div class="line"><a id="l07622" name="l07622"></a><span class="lineno"> 7622</span>                buf[5] = 0x00;                                                                            <span class="comment">/* dummy */</span></div>
+<div class="line"><a id="l07623" name="l07623"></a><span class="lineno"> 7623</span>                res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 6, (uint8_t *)data, (uint32_t)len); <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l07624" name="l07624"></a><span class="lineno"> 7624</span>                <span class="keywordflow">if</span> (res != 0)                                                                             <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l07625" name="l07625"></a><span class="lineno"> 7625</span>                {</div>
+<div class="line"><a id="l07626" name="l07626"></a><span class="lineno"> 7626</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read failed.\n&quot;</span>);                                   <span class="comment">/* fast read failed */</span></div>
+<div class="line"><a id="l07627" name="l07627"></a><span class="lineno"> 7627</span>                   </div>
+<div class="line"><a id="l07628" name="l07628"></a><span class="lineno"> 7628</span>                    <span class="keywordflow">return</span> 1;                                                                             <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l07629" name="l07629"></a><span class="lineno"> 7629</span>                }</div>
+<div class="line"><a id="l07630" name="l07630"></a><span class="lineno"> 7630</span>            }</div>
+<div class="line"><a id="l07631" name="l07631"></a><span class="lineno"> 7631</span>            <span class="keywordflow">else</span></div>
+<div class="line"><a id="l07632" name="l07632"></a><span class="lineno"> 7632</span>            {</div>
+<div class="line"><a id="l07633" name="l07633"></a><span class="lineno"> 7633</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: address mode is invalid.\n&quot;</span>);                                <span class="comment">/* address mode is invalid */</span></div>
+<div class="line"><a id="l07634" name="l07634"></a><span class="lineno"> 7634</span>               </div>
+<div class="line"><a id="l07635" name="l07635"></a><span class="lineno"> 7635</span>                <span class="keywordflow">return</span> 1;                                                                                 <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l07636" name="l07636"></a><span class="lineno"> 7636</span>            }</div>
+<div class="line"><a id="l07637" name="l07637"></a><span class="lineno"> 7637</span>        }</div>
+<div class="line"><a id="l07638" name="l07638"></a><span class="lineno"> 7638</span>    }</div>
+<div class="line"><a id="l07639" name="l07639"></a><span class="lineno"> 7639</span>    <span class="keywordflow">else</span>                                                                                                  <span class="comment">/* qspi interface */</span></div>
+<div class="line"><a id="l07640" name="l07640"></a><span class="lineno"> 7640</span>    {</div>
+<div class="line"><a id="l07641" name="l07641"></a><span class="lineno"> 7641</span>        <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                           <span class="comment">/* 3 address mode */</span></div>
+<div class="line"><a id="l07642" name="l07642"></a><span class="lineno"> 7642</span>        {</div>
+<div class="line"><a id="l07643" name="l07643"></a><span class="lineno"> 7643</span>            <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)                                                                  <span class="comment">/* &gt;128Mb */</span></div>
+<div class="line"><a id="l07644" name="l07644"></a><span class="lineno"> 7644</span>            {</div>
+<div class="line"><a id="l07645" name="l07645"></a><span class="lineno"> 7645</span>                res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>, 4,</div>
+<div class="line"><a id="l07646" name="l07646"></a><span class="lineno"> 7646</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l07647" name="l07647"></a><span class="lineno"> 7647</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l07648" name="l07648"></a><span class="lineno"> 7648</span>                                               0x00, NULL, 0x00,</div>
+<div class="line"><a id="l07649" name="l07649"></a><span class="lineno"> 7649</span>                                               NULL, 0x00, 0x00);                                         <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l07650" name="l07650"></a><span class="lineno"> 7650</span>                <span class="keywordflow">if</span> (res != 0)                                                                             <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l07651" name="l07651"></a><span class="lineno"> 7651</span>                {</div>
+<div class="line"><a id="l07652" name="l07652"></a><span class="lineno"> 7652</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                                <span class="comment">/* write enable failed */</span></div>
+<div class="line"><a id="l07653" name="l07653"></a><span class="lineno"> 7653</span>                   </div>
+<div class="line"><a id="l07654" name="l07654"></a><span class="lineno"> 7654</span>                    <span class="keywordflow">return</span> 1;                                                                             <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l07655" name="l07655"></a><span class="lineno"> 7655</span>                }</div>
+<div class="line"><a id="l07656" name="l07656"></a><span class="lineno"> 7656</span>                buf[0] = (addr &gt;&gt; 24) &amp; 0xFF;                                                             <span class="comment">/* 31 - 24 bits */</span></div>
+<div class="line"><a id="l07657" name="l07657"></a><span class="lineno"> 7657</span>                res = a_w25qxx_qspi_write_read(handle, 0xC5, 4,</div>
+<div class="line"><a id="l07658" name="l07658"></a><span class="lineno"> 7658</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l07659" name="l07659"></a><span class="lineno"> 7659</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l07660" name="l07660"></a><span class="lineno"> 7660</span>                                               0, (uint8_t *)buf, 0x01,</div>
+<div class="line"><a id="l07661" name="l07661"></a><span class="lineno"> 7661</span>                                               NULL, 0x00, 4);                                            <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l07662" name="l07662"></a><span class="lineno"> 7662</span>                <span class="keywordflow">if</span> (res != 0)                                                                             <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l07663" name="l07663"></a><span class="lineno"> 7663</span>                {</div>
+<div class="line"><a id="l07664" name="l07664"></a><span class="lineno"> 7664</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write extended addr register failed.\n&quot;</span>);                <span class="comment">/* write extended addr register failed */</span></div>
+<div class="line"><a id="l07665" name="l07665"></a><span class="lineno"> 7665</span>                   </div>
+<div class="line"><a id="l07666" name="l07666"></a><span class="lineno"> 7666</span>                    <span class="keywordflow">return</span> 1;                                                                             <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l07667" name="l07667"></a><span class="lineno"> 7667</span>                }</div>
+<div class="line"><a id="l07668" name="l07668"></a><span class="lineno"> 7668</span>            }</div>
+<div class="line"><a id="l07669" name="l07669"></a><span class="lineno"> 7669</span>            res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#ac957b31a68db8c14f88a196a98b0aa18">W25QXX_COMMAND_FAST_READ</a>, 4,</div>
+<div class="line"><a id="l07670" name="l07670"></a><span class="lineno"> 7670</span>                                           addr, 4, 3,</div>
+<div class="line"><a id="l07671" name="l07671"></a><span class="lineno"> 7671</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l07672" name="l07672"></a><span class="lineno"> 7672</span>                                           handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#aff7b59f569ec689a7580bd6911daafd5">dummy</a>, NULL, 0x00,                                     <span class="comment">/* spi write */</span></div>
+<div class="line"><a id="l07673" name="l07673"></a><span class="lineno"> 7673</span>                                           data, len, 4);                                                 <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l07674" name="l07674"></a><span class="lineno"> 7674</span>            <span class="keywordflow">if</span> (res != 0)                                                                                 <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l07675" name="l07675"></a><span class="lineno"> 7675</span>            {</div>
+<div class="line"><a id="l07676" name="l07676"></a><span class="lineno"> 7676</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read failed.\n&quot;</span>);                                       <span class="comment">/* fast read failed */</span></div>
+<div class="line"><a id="l07677" name="l07677"></a><span class="lineno"> 7677</span>               </div>
+<div class="line"><a id="l07678" name="l07678"></a><span class="lineno"> 7678</span>                <span class="keywordflow">return</span> 1;                                                                                 <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l07679" name="l07679"></a><span class="lineno"> 7679</span>            }</div>
+<div class="line"><a id="l07680" name="l07680"></a><span class="lineno"> 7680</span>        }</div>
+<div class="line"><a id="l07681" name="l07681"></a><span class="lineno"> 7681</span>        <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>) &amp;&amp; (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>))</div>
+<div class="line"><a id="l07682" name="l07682"></a><span class="lineno"> 7682</span>        {</div>
+<div class="line"><a id="l07683" name="l07683"></a><span class="lineno"> 7683</span>            res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#ac957b31a68db8c14f88a196a98b0aa18">W25QXX_COMMAND_FAST_READ</a>, 4,</div>
+<div class="line"><a id="l07684" name="l07684"></a><span class="lineno"> 7684</span>                                           addr, 4, 4,</div>
+<div class="line"><a id="l07685" name="l07685"></a><span class="lineno"> 7685</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l07686" name="l07686"></a><span class="lineno"> 7686</span>                                           handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#aff7b59f569ec689a7580bd6911daafd5">dummy</a>, NULL, 0x00,                                     <span class="comment">/* spi write */</span></div>
+<div class="line"><a id="l07687" name="l07687"></a><span class="lineno"> 7687</span>                                           data, len, 4);                                                 <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l07688" name="l07688"></a><span class="lineno"> 7688</span>            <span class="keywordflow">if</span> (res != 0)                                                                                 <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l07689" name="l07689"></a><span class="lineno"> 7689</span>            {</div>
+<div class="line"><a id="l07690" name="l07690"></a><span class="lineno"> 7690</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read failed.\n&quot;</span>);                                       <span class="comment">/* fast read failed */</span></div>
+<div class="line"><a id="l07691" name="l07691"></a><span class="lineno"> 7691</span>               </div>
+<div class="line"><a id="l07692" name="l07692"></a><span class="lineno"> 7692</span>                <span class="keywordflow">return</span> 1;                                                                                 <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l07693" name="l07693"></a><span class="lineno"> 7693</span>            }</div>
+<div class="line"><a id="l07694" name="l07694"></a><span class="lineno"> 7694</span>        }</div>
+<div class="line"><a id="l07695" name="l07695"></a><span class="lineno"> 7695</span>        <span class="keywordflow">else</span></div>
+<div class="line"><a id="l07696" name="l07696"></a><span class="lineno"> 7696</span>        {</div>
+<div class="line"><a id="l07697" name="l07697"></a><span class="lineno"> 7697</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: address mode is invalid.\n&quot;</span>);                                    <span class="comment">/* address mode is invalid */</span></div>
+<div class="line"><a id="l07698" name="l07698"></a><span class="lineno"> 7698</span>           </div>
+<div class="line"><a id="l07699" name="l07699"></a><span class="lineno"> 7699</span>            <span class="keywordflow">return</span> 1;                                                                                     <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l07700" name="l07700"></a><span class="lineno"> 7700</span>        }</div>
+<div class="line"><a id="l07701" name="l07701"></a><span class="lineno"> 7701</span>    }</div>
+<div class="line"><a id="l07702" name="l07702"></a><span class="lineno"> 7702</span>    </div>
+<div class="line"><a id="l07703" name="l07703"></a><span class="lineno"> 7703</span>    <span class="keywordflow">return</span> 0;                                                                                             <span class="comment">/* success return 0 */</span></div>
+<div class="line"><a id="l07704" name="l07704"></a><span class="lineno"> 7704</span>}</div>
+<div class="line"><a id="l07705" name="l07705"></a><span class="lineno"> 7705</span> </div>
+<div class="line"><a id="l07715" name="l07715"></a><span class="lineno"> 7715</span><span class="keyword">static</span> uint8_t a_w25qxx_erase_sector(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint32_t addr)</div>
+<div class="line"><a id="l07716" name="l07716"></a><span class="lineno"> 7716</span>{</div>
+<div class="line"><a id="l07717" name="l07717"></a><span class="lineno"> 7717</span>    uint8_t res;</div>
+<div class="line"><a id="l07718" name="l07718"></a><span class="lineno"> 7718</span>    uint8_t status;</div>
+<div class="line"><a id="l07719" name="l07719"></a><span class="lineno"> 7719</span>    uint32_t timeout;</div>
+<div class="line"><a id="l07720" name="l07720"></a><span class="lineno"> 7720</span>    uint8_t buf[5];</div>
+<div class="line"><a id="l07721" name="l07721"></a><span class="lineno"> 7721</span> </div>
+<div class="line"><a id="l07722" name="l07722"></a><span class="lineno"> 7722</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>)                                                           <span class="comment">/* spi interface */</span></div>
+<div class="line"><a id="l07723" name="l07723"></a><span class="lineno"> 7723</span>    {</div>
+<div class="line"><a id="l07724" name="l07724"></a><span class="lineno"> 7724</span>        <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">dual_quad_spi_enable</a> != 0)                                                              <span class="comment">/* enable dual quad spi */</span></div>
+<div class="line"><a id="l07725" name="l07725"></a><span class="lineno"> 7725</span>        {</div>
+<div class="line"><a id="l07726" name="l07726"></a><span class="lineno"> 7726</span>            res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>, 1,</div>
+<div class="line"><a id="l07727" name="l07727"></a><span class="lineno"> 7727</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l07728" name="l07728"></a><span class="lineno"> 7728</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l07729" name="l07729"></a><span class="lineno"> 7729</span>                                           0x00, NULL, 0x00,</div>
+<div class="line"><a id="l07730" name="l07730"></a><span class="lineno"> 7730</span>                                           NULL, 0x00, 0x00);                                               <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l07731" name="l07731"></a><span class="lineno"> 7731</span>            <span class="keywordflow">if</span> (res != 0)                                                                                   <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l07732" name="l07732"></a><span class="lineno"> 7732</span>            {</div>
+<div class="line"><a id="l07733" name="l07733"></a><span class="lineno"> 7733</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                                      <span class="comment">/* write enable failed */</span></div>
+<div class="line"><a id="l07734" name="l07734"></a><span class="lineno"> 7734</span>               </div>
+<div class="line"><a id="l07735" name="l07735"></a><span class="lineno"> 7735</span>                <span class="keywordflow">return</span> 1;                                                                                   <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l07736" name="l07736"></a><span class="lineno"> 7736</span>            }</div>
+<div class="line"><a id="l07737" name="l07737"></a><span class="lineno"> 7737</span>            <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                         <span class="comment">/* 3 address mode */</span></div>
+<div class="line"><a id="l07738" name="l07738"></a><span class="lineno"> 7738</span>            {</div>
+<div class="line"><a id="l07739" name="l07739"></a><span class="lineno"> 7739</span>                <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)                                                                <span class="comment">/* &gt;128Mb */</span></div>
+<div class="line"><a id="l07740" name="l07740"></a><span class="lineno"> 7740</span>                {</div>
+<div class="line"><a id="l07741" name="l07741"></a><span class="lineno"> 7741</span>                    buf[0] = (addr &gt;&gt; 24) &amp; 0xFF;                                                           <span class="comment">/* 31 - 24 bits */</span></div>
+<div class="line"><a id="l07742" name="l07742"></a><span class="lineno"> 7742</span>                    res = a_w25qxx_qspi_write_read(handle, 0xC5, 1,</div>
+<div class="line"><a id="l07743" name="l07743"></a><span class="lineno"> 7743</span>                                                   0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l07744" name="l07744"></a><span class="lineno"> 7744</span>                                                   0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l07745" name="l07745"></a><span class="lineno"> 7745</span>                                                   0, (uint8_t *)buf, 0x01,</div>
+<div class="line"><a id="l07746" name="l07746"></a><span class="lineno"> 7746</span>                                                   NULL, 0x00, 1);                                          <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l07747" name="l07747"></a><span class="lineno"> 7747</span>                    <span class="keywordflow">if</span> (res != 0)                                                                           <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l07748" name="l07748"></a><span class="lineno"> 7748</span>                    {</div>
+<div class="line"><a id="l07749" name="l07749"></a><span class="lineno"> 7749</span>                        handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write extended addr register failed.\n&quot;</span>);              <span class="comment">/* write extended addr register failed */</span></div>
+<div class="line"><a id="l07750" name="l07750"></a><span class="lineno"> 7750</span>                       </div>
+<div class="line"><a id="l07751" name="l07751"></a><span class="lineno"> 7751</span>                        <span class="keywordflow">return</span> 1;                                                                           <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l07752" name="l07752"></a><span class="lineno"> 7752</span>                    }</div>
+<div class="line"><a id="l07753" name="l07753"></a><span class="lineno"> 7753</span>                    res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>, 1,</div>
+<div class="line"><a id="l07754" name="l07754"></a><span class="lineno"> 7754</span>                                                   0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l07755" name="l07755"></a><span class="lineno"> 7755</span>                                                   0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l07756" name="l07756"></a><span class="lineno"> 7756</span>                                                   0x00, NULL, 0x00,</div>
+<div class="line"><a id="l07757" name="l07757"></a><span class="lineno"> 7757</span>                                                   NULL, 0x00, 0x00);                                       <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l07758" name="l07758"></a><span class="lineno"> 7758</span>                    <span class="keywordflow">if</span> (res != 0)                                                                           <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l07759" name="l07759"></a><span class="lineno"> 7759</span>                    {</div>
+<div class="line"><a id="l07760" name="l07760"></a><span class="lineno"> 7760</span>                        handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                              <span class="comment">/* write enable failed */</span></div>
+<div class="line"><a id="l07761" name="l07761"></a><span class="lineno"> 7761</span>                       </div>
+<div class="line"><a id="l07762" name="l07762"></a><span class="lineno"> 7762</span>                        <span class="keywordflow">return</span> 1;                                                                           <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l07763" name="l07763"></a><span class="lineno"> 7763</span>                    }</div>
+<div class="line"><a id="l07764" name="l07764"></a><span class="lineno"> 7764</span>                }</div>
+<div class="line"><a id="l07765" name="l07765"></a><span class="lineno"> 7765</span>                res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#a6e7cd159f91e23930450725fd6910f9c">W25QXX_COMMAND_SECTOR_ERASE_4K</a>, 1,</div>
+<div class="line"><a id="l07766" name="l07766"></a><span class="lineno"> 7766</span>                                               addr, 1, 3,</div>
+<div class="line"><a id="l07767" name="l07767"></a><span class="lineno"> 7767</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l07768" name="l07768"></a><span class="lineno"> 7768</span>                                               0, NULL, 0x00,</div>
+<div class="line"><a id="l07769" name="l07769"></a><span class="lineno"> 7769</span>                                               NULL, 0x00, 0x00);                                           <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l07770" name="l07770"></a><span class="lineno"> 7770</span>                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l07771" name="l07771"></a><span class="lineno"> 7771</span>                {</div>
+<div class="line"><a id="l07772" name="l07772"></a><span class="lineno"> 7772</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: sector erase 4k failed.\n&quot;</span>);                               <span class="comment">/* sector erase 4k failed */</span></div>
+<div class="line"><a id="l07773" name="l07773"></a><span class="lineno"> 7773</span>                   </div>
+<div class="line"><a id="l07774" name="l07774"></a><span class="lineno"> 7774</span>                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l07775" name="l07775"></a><span class="lineno"> 7775</span>                }</div>
+<div class="line"><a id="l07776" name="l07776"></a><span class="lineno"> 7776</span>            }</div>
+<div class="line"><a id="l07777" name="l07777"></a><span class="lineno"> 7777</span>            <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>) &amp;&amp; (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>))</div>
+<div class="line"><a id="l07778" name="l07778"></a><span class="lineno"> 7778</span>            {</div>
+<div class="line"><a id="l07779" name="l07779"></a><span class="lineno"> 7779</span>                res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#a6e7cd159f91e23930450725fd6910f9c">W25QXX_COMMAND_SECTOR_ERASE_4K</a>, 1,</div>
+<div class="line"><a id="l07780" name="l07780"></a><span class="lineno"> 7780</span>                                               addr, 1, 4,</div>
+<div class="line"><a id="l07781" name="l07781"></a><span class="lineno"> 7781</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l07782" name="l07782"></a><span class="lineno"> 7782</span>                                               0, NULL, 0x00,</div>
+<div class="line"><a id="l07783" name="l07783"></a><span class="lineno"> 7783</span>                                               NULL, 0x00, 0x00);                                           <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l07784" name="l07784"></a><span class="lineno"> 7784</span>                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l07785" name="l07785"></a><span class="lineno"> 7785</span>                {</div>
+<div class="line"><a id="l07786" name="l07786"></a><span class="lineno"> 7786</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: sector erase 4k failed.\n&quot;</span>);                               <span class="comment">/* sector erase 4k failed */</span></div>
+<div class="line"><a id="l07787" name="l07787"></a><span class="lineno"> 7787</span>                   </div>
+<div class="line"><a id="l07788" name="l07788"></a><span class="lineno"> 7788</span>                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l07789" name="l07789"></a><span class="lineno"> 7789</span>                }</div>
+<div class="line"><a id="l07790" name="l07790"></a><span class="lineno"> 7790</span>            }</div>
+<div class="line"><a id="l07791" name="l07791"></a><span class="lineno"> 7791</span>            <span class="keywordflow">else</span></div>
+<div class="line"><a id="l07792" name="l07792"></a><span class="lineno"> 7792</span>            {</div>
+<div class="line"><a id="l07793" name="l07793"></a><span class="lineno"> 7793</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: address mode is invalid.\n&quot;</span>);                                  <span class="comment">/* address mode is invalid */</span></div>
+<div class="line"><a id="l07794" name="l07794"></a><span class="lineno"> 7794</span>               </div>
+<div class="line"><a id="l07795" name="l07795"></a><span class="lineno"> 7795</span>                <span class="keywordflow">return</span> 1;                                                                                   <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l07796" name="l07796"></a><span class="lineno"> 7796</span>            }</div>
+<div class="line"><a id="l07797" name="l07797"></a><span class="lineno"> 7797</span>            </div>
+<div class="line"><a id="l07798" name="l07798"></a><span class="lineno"> 7798</span>            timeout = 400;                                                                                  <span class="comment">/* max 400 ms */</span></div>
+<div class="line"><a id="l07799" name="l07799"></a><span class="lineno"> 7799</span>            <span class="keywordflow">while</span> (timeout != 0)                                                                            <span class="comment">/* check timeout */</span></div>
+<div class="line"><a id="l07800" name="l07800"></a><span class="lineno"> 7800</span>            {</div>
+<div class="line"><a id="l07801" name="l07801"></a><span class="lineno"> 7801</span>                res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#adf682969c34f4b31a87dd92dd18ccea3">W25QXX_COMMAND_READ_STATUS_REG1</a>, 1,</div>
+<div class="line"><a id="l07802" name="l07802"></a><span class="lineno"> 7802</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l07803" name="l07803"></a><span class="lineno"> 7803</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l07804" name="l07804"></a><span class="lineno"> 7804</span>                                               0, NULL, 0,</div>
+<div class="line"><a id="l07805" name="l07805"></a><span class="lineno"> 7805</span>                                              (uint8_t *)&amp;status, 1, 1);                                    <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l07806" name="l07806"></a><span class="lineno"> 7806</span>                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l07807" name="l07807"></a><span class="lineno"> 7807</span>                {</div>
+<div class="line"><a id="l07808" name="l07808"></a><span class="lineno"> 7808</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: get status1 failed.\n&quot;</span>);                                   <span class="comment">/* get status1 failed */</span></div>
+<div class="line"><a id="l07809" name="l07809"></a><span class="lineno"> 7809</span>                   </div>
+<div class="line"><a id="l07810" name="l07810"></a><span class="lineno"> 7810</span>                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l07811" name="l07811"></a><span class="lineno"> 7811</span>                }</div>
+<div class="line"><a id="l07812" name="l07812"></a><span class="lineno"> 7812</span>                <span class="keywordflow">if</span> ((status &amp; 0x01) == 0x00)                                                                <span class="comment">/* check status */</span></div>
+<div class="line"><a id="l07813" name="l07813"></a><span class="lineno"> 7813</span>                {</div>
+<div class="line"><a id="l07814" name="l07814"></a><span class="lineno"> 7814</span>                    <span class="keywordflow">break</span>;                                                                                  <span class="comment">/* break */</span></div>
+<div class="line"><a id="l07815" name="l07815"></a><span class="lineno"> 7815</span>                }</div>
+<div class="line"><a id="l07816" name="l07816"></a><span class="lineno"> 7816</span>                timeout--;                                                                                  <span class="comment">/* timeout-- */</span></div>
+<div class="line"><a id="l07817" name="l07817"></a><span class="lineno"> 7817</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a406c9433252b7366de417b7a60915c81">delay_ms</a>(1);                                                                        <span class="comment">/* delay 1 ms */</span></div>
+<div class="line"><a id="l07818" name="l07818"></a><span class="lineno"> 7818</span>            }</div>
+<div class="line"><a id="l07819" name="l07819"></a><span class="lineno"> 7819</span>            <span class="keywordflow">if</span> (timeout == 0)</div>
+<div class="line"><a id="l07820" name="l07820"></a><span class="lineno"> 7820</span>            {</div>
+<div class="line"><a id="l07821" name="l07821"></a><span class="lineno"> 7821</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: sector erase 4k timeout.\n&quot;</span>);                                  <span class="comment">/* sector erase 4k timeout */</span></div>
+<div class="line"><a id="l07822" name="l07822"></a><span class="lineno"> 7822</span>               </div>
+<div class="line"><a id="l07823" name="l07823"></a><span class="lineno"> 7823</span>                <span class="keywordflow">return</span> 1;                                                                                   <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l07824" name="l07824"></a><span class="lineno"> 7824</span>            }</div>
+<div class="line"><a id="l07825" name="l07825"></a><span class="lineno"> 7825</span>        }</div>
+<div class="line"><a id="l07826" name="l07826"></a><span class="lineno"> 7826</span>        <span class="keywordflow">else</span>                                                                                                <span class="comment">/* single spi */</span></div>
+<div class="line"><a id="l07827" name="l07827"></a><span class="lineno"> 7827</span>        {</div>
+<div class="line"><a id="l07828" name="l07828"></a><span class="lineno"> 7828</span>            buf[0] = <a class="code hl_define" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>;                                                           <span class="comment">/* write enable command */</span></div>
+<div class="line"><a id="l07829" name="l07829"></a><span class="lineno"> 7829</span>            res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 1, NULL, 0);                              <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l07830" name="l07830"></a><span class="lineno"> 7830</span>            <span class="keywordflow">if</span> (res != 0)                                                                                   <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l07831" name="l07831"></a><span class="lineno"> 7831</span>            {</div>
+<div class="line"><a id="l07832" name="l07832"></a><span class="lineno"> 7832</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                                      <span class="comment">/* write enable failed */</span></div>
+<div class="line"><a id="l07833" name="l07833"></a><span class="lineno"> 7833</span>               </div>
+<div class="line"><a id="l07834" name="l07834"></a><span class="lineno"> 7834</span>                <span class="keywordflow">return</span> 1;                                                                                   <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l07835" name="l07835"></a><span class="lineno"> 7835</span>            }</div>
+<div class="line"><a id="l07836" name="l07836"></a><span class="lineno"> 7836</span>            <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                         <span class="comment">/* 3 address mode */</span></div>
+<div class="line"><a id="l07837" name="l07837"></a><span class="lineno"> 7837</span>            {</div>
+<div class="line"><a id="l07838" name="l07838"></a><span class="lineno"> 7838</span>                <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)                                                                <span class="comment">/* &gt;128Mb */</span></div>
+<div class="line"><a id="l07839" name="l07839"></a><span class="lineno"> 7839</span>                {</div>
+<div class="line"><a id="l07840" name="l07840"></a><span class="lineno"> 7840</span>                    buf[0] = 0xC5;                                                                          <span class="comment">/* write extended addr register command */</span></div>
+<div class="line"><a id="l07841" name="l07841"></a><span class="lineno"> 7841</span>                    buf[1] = (addr &gt;&gt; 24) &amp; 0xFF;                                                           <span class="comment">/* 31 - 24 bits */</span></div>
+<div class="line"><a id="l07842" name="l07842"></a><span class="lineno"> 7842</span>                    res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 2, NULL, 0);                      <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l07843" name="l07843"></a><span class="lineno"> 7843</span>                    <span class="keywordflow">if</span> (res != 0)                                                                           <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l07844" name="l07844"></a><span class="lineno"> 7844</span>                    {</div>
+<div class="line"><a id="l07845" name="l07845"></a><span class="lineno"> 7845</span>                        handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write extended addr register failed.\n&quot;</span>);              <span class="comment">/* write extended addr register failed */</span></div>
+<div class="line"><a id="l07846" name="l07846"></a><span class="lineno"> 7846</span>                       </div>
+<div class="line"><a id="l07847" name="l07847"></a><span class="lineno"> 7847</span>                        <span class="keywordflow">return</span> 1;                                                                           <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l07848" name="l07848"></a><span class="lineno"> 7848</span>                    }</div>
+<div class="line"><a id="l07849" name="l07849"></a><span class="lineno"> 7849</span>                    buf[0] = <a class="code hl_define" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>;                                                   <span class="comment">/* write enable command */</span></div>
+<div class="line"><a id="l07850" name="l07850"></a><span class="lineno"> 7850</span>                    res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 1, NULL, 0);                      <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l07851" name="l07851"></a><span class="lineno"> 7851</span>                    <span class="keywordflow">if</span> (res != 0)                                                                           <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l07852" name="l07852"></a><span class="lineno"> 7852</span>                    {</div>
+<div class="line"><a id="l07853" name="l07853"></a><span class="lineno"> 7853</span>                        handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                              <span class="comment">/* write enable failed */</span></div>
+<div class="line"><a id="l07854" name="l07854"></a><span class="lineno"> 7854</span>                       </div>
+<div class="line"><a id="l07855" name="l07855"></a><span class="lineno"> 7855</span>                        <span class="keywordflow">return</span> 1;                                                                           <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l07856" name="l07856"></a><span class="lineno"> 7856</span>                    }</div>
+<div class="line"><a id="l07857" name="l07857"></a><span class="lineno"> 7857</span>                }</div>
+<div class="line"><a id="l07858" name="l07858"></a><span class="lineno"> 7858</span>                buf[0] = <a class="code hl_define" href="driver__w25qxx_8c.html#a6e7cd159f91e23930450725fd6910f9c">W25QXX_COMMAND_SECTOR_ERASE_4K</a>;                                                    <span class="comment">/* sector erase 4k command */</span></div>
+<div class="line"><a id="l07859" name="l07859"></a><span class="lineno"> 7859</span>                buf[1] = (addr &gt;&gt; 16) &amp; 0xFF;                                                               <span class="comment">/* 23 - 16 bits */</span></div>
+<div class="line"><a id="l07860" name="l07860"></a><span class="lineno"> 7860</span>                buf[2] = (addr &gt;&gt; 8) &amp; 0xFF;                                                                <span class="comment">/* 15 - 8  bits */</span></div>
+<div class="line"><a id="l07861" name="l07861"></a><span class="lineno"> 7861</span>                buf[3] = (addr &gt;&gt; 0) &amp; 0xFF;                                                                <span class="comment">/* 7 - 0 bits */</span></div>
+<div class="line"><a id="l07862" name="l07862"></a><span class="lineno"> 7862</span>                res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 4, NULL, 0);                          <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l07863" name="l07863"></a><span class="lineno"> 7863</span>                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l07864" name="l07864"></a><span class="lineno"> 7864</span>                {</div>
+<div class="line"><a id="l07865" name="l07865"></a><span class="lineno"> 7865</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: sector erase 4k failed.\n&quot;</span>);                               <span class="comment">/* sector erase 4k failed */</span></div>
+<div class="line"><a id="l07866" name="l07866"></a><span class="lineno"> 7866</span>                   </div>
+<div class="line"><a id="l07867" name="l07867"></a><span class="lineno"> 7867</span>                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l07868" name="l07868"></a><span class="lineno"> 7868</span>                }</div>
+<div class="line"><a id="l07869" name="l07869"></a><span class="lineno"> 7869</span>            }</div>
+<div class="line"><a id="l07870" name="l07870"></a><span class="lineno"> 7870</span>            <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>) &amp;&amp; (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>))</div>
+<div class="line"><a id="l07871" name="l07871"></a><span class="lineno"> 7871</span>            {</div>
+<div class="line"><a id="l07872" name="l07872"></a><span class="lineno"> 7872</span>                buf[0] = <a class="code hl_define" href="driver__w25qxx_8c.html#a6e7cd159f91e23930450725fd6910f9c">W25QXX_COMMAND_SECTOR_ERASE_4K</a>;                                                    <span class="comment">/* sector erase 4k command */</span></div>
+<div class="line"><a id="l07873" name="l07873"></a><span class="lineno"> 7873</span>                buf[1] = (addr &gt;&gt; 24) &amp; 0xFF;                                                               <span class="comment">/* 31 - 24 bits */</span></div>
+<div class="line"><a id="l07874" name="l07874"></a><span class="lineno"> 7874</span>                buf[2] = (addr &gt;&gt; 16) &amp; 0xFF;                                                               <span class="comment">/* 23 - 16 bits */</span></div>
+<div class="line"><a id="l07875" name="l07875"></a><span class="lineno"> 7875</span>                buf[3] = (addr &gt;&gt; 8) &amp; 0xFF;                                                                <span class="comment">/* 15 - 8  bits */</span></div>
+<div class="line"><a id="l07876" name="l07876"></a><span class="lineno"> 7876</span>                buf[4] = (addr &gt;&gt; 0) &amp; 0xFF;                                                                <span class="comment">/* 7 - 0 bits */</span></div>
+<div class="line"><a id="l07877" name="l07877"></a><span class="lineno"> 7877</span>                res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 5, NULL, 0);                          <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l07878" name="l07878"></a><span class="lineno"> 7878</span>                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l07879" name="l07879"></a><span class="lineno"> 7879</span>                {</div>
+<div class="line"><a id="l07880" name="l07880"></a><span class="lineno"> 7880</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: sector erase 4k failed.\n&quot;</span>);                               <span class="comment">/* sector erase 4k failed */</span></div>
+<div class="line"><a id="l07881" name="l07881"></a><span class="lineno"> 7881</span>                   </div>
+<div class="line"><a id="l07882" name="l07882"></a><span class="lineno"> 7882</span>                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l07883" name="l07883"></a><span class="lineno"> 7883</span>                }</div>
+<div class="line"><a id="l07884" name="l07884"></a><span class="lineno"> 7884</span>            }</div>
+<div class="line"><a id="l07885" name="l07885"></a><span class="lineno"> 7885</span>            <span class="keywordflow">else</span></div>
+<div class="line"><a id="l07886" name="l07886"></a><span class="lineno"> 7886</span>            {</div>
+<div class="line"><a id="l07887" name="l07887"></a><span class="lineno"> 7887</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: address mode is invalid.\n&quot;</span>);                                  <span class="comment">/* address mode is invalid */</span></div>
+<div class="line"><a id="l07888" name="l07888"></a><span class="lineno"> 7888</span>               </div>
+<div class="line"><a id="l07889" name="l07889"></a><span class="lineno"> 7889</span>                <span class="keywordflow">return</span> 1;                                                                                   <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l07890" name="l07890"></a><span class="lineno"> 7890</span>            }</div>
+<div class="line"><a id="l07891" name="l07891"></a><span class="lineno"> 7891</span>            </div>
+<div class="line"><a id="l07892" name="l07892"></a><span class="lineno"> 7892</span>            timeout = 400;                                                                                  <span class="comment">/* max 400 ms */</span></div>
+<div class="line"><a id="l07893" name="l07893"></a><span class="lineno"> 7893</span>            <span class="keywordflow">while</span> (timeout != 0)                                                                            <span class="comment">/* check timeout */</span></div>
+<div class="line"><a id="l07894" name="l07894"></a><span class="lineno"> 7894</span>            {</div>
+<div class="line"><a id="l07895" name="l07895"></a><span class="lineno"> 7895</span>                buf[0] = <a class="code hl_define" href="driver__w25qxx_8c.html#adf682969c34f4b31a87dd92dd18ccea3">W25QXX_COMMAND_READ_STATUS_REG1</a>;                                                   <span class="comment">/* read status1 command */</span></div>
+<div class="line"><a id="l07896" name="l07896"></a><span class="lineno"> 7896</span>                res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 1, (uint8_t *)&amp;status, 1);            <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l07897" name="l07897"></a><span class="lineno"> 7897</span>                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l07898" name="l07898"></a><span class="lineno"> 7898</span>                {</div>
+<div class="line"><a id="l07899" name="l07899"></a><span class="lineno"> 7899</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: get status1 failed.\n&quot;</span>);                                   <span class="comment">/* get status1 failed */</span></div>
+<div class="line"><a id="l07900" name="l07900"></a><span class="lineno"> 7900</span>                   </div>
+<div class="line"><a id="l07901" name="l07901"></a><span class="lineno"> 7901</span>                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l07902" name="l07902"></a><span class="lineno"> 7902</span>                }</div>
+<div class="line"><a id="l07903" name="l07903"></a><span class="lineno"> 7903</span>                <span class="keywordflow">if</span> ((status &amp; 0x01) == 0x00)                                                                <span class="comment">/* check status */</span></div>
+<div class="line"><a id="l07904" name="l07904"></a><span class="lineno"> 7904</span>                {</div>
+<div class="line"><a id="l07905" name="l07905"></a><span class="lineno"> 7905</span>                    <span class="keywordflow">break</span>;                                                                                  <span class="comment">/* break */</span></div>
+<div class="line"><a id="l07906" name="l07906"></a><span class="lineno"> 7906</span>                }</div>
+<div class="line"><a id="l07907" name="l07907"></a><span class="lineno"> 7907</span>                timeout--;                                                                                  <span class="comment">/* timeout-- */</span></div>
+<div class="line"><a id="l07908" name="l07908"></a><span class="lineno"> 7908</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a406c9433252b7366de417b7a60915c81">delay_ms</a>(1);                                                                        <span class="comment">/* delay 1 ms */</span></div>
+<div class="line"><a id="l07909" name="l07909"></a><span class="lineno"> 7909</span>            }</div>
+<div class="line"><a id="l07910" name="l07910"></a><span class="lineno"> 7910</span>            <span class="keywordflow">if</span> (timeout == 0)</div>
+<div class="line"><a id="l07911" name="l07911"></a><span class="lineno"> 7911</span>            {</div>
+<div class="line"><a id="l07912" name="l07912"></a><span class="lineno"> 7912</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: sector erase 4k timeout.\n&quot;</span>);                                  <span class="comment">/* sector erase 4k timeout */</span></div>
+<div class="line"><a id="l07913" name="l07913"></a><span class="lineno"> 7913</span>               </div>
+<div class="line"><a id="l07914" name="l07914"></a><span class="lineno"> 7914</span>                <span class="keywordflow">return</span> 1;                                                                                   <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l07915" name="l07915"></a><span class="lineno"> 7915</span>            }</div>
+<div class="line"><a id="l07916" name="l07916"></a><span class="lineno"> 7916</span>        }</div>
+<div class="line"><a id="l07917" name="l07917"></a><span class="lineno"> 7917</span>    }</div>
+<div class="line"><a id="l07918" name="l07918"></a><span class="lineno"> 7918</span>    <span class="keywordflow">else</span></div>
+<div class="line"><a id="l07919" name="l07919"></a><span class="lineno"> 7919</span>    {</div>
+<div class="line"><a id="l07920" name="l07920"></a><span class="lineno"> 7920</span>        res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>, 4,</div>
+<div class="line"><a id="l07921" name="l07921"></a><span class="lineno"> 7921</span>                                       0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l07922" name="l07922"></a><span class="lineno"> 7922</span>                                       0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l07923" name="l07923"></a><span class="lineno"> 7923</span>                                       0x00, NULL, 0x00,</div>
+<div class="line"><a id="l07924" name="l07924"></a><span class="lineno"> 7924</span>                                       NULL, 0x00, 0x00);                                                   <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l07925" name="l07925"></a><span class="lineno"> 7925</span>        <span class="keywordflow">if</span> (res != 0)                                                                                       <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l07926" name="l07926"></a><span class="lineno"> 7926</span>        {</div>
+<div class="line"><a id="l07927" name="l07927"></a><span class="lineno"> 7927</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                                          <span class="comment">/* write enable failed */</span></div>
+<div class="line"><a id="l07928" name="l07928"></a><span class="lineno"> 7928</span>           </div>
+<div class="line"><a id="l07929" name="l07929"></a><span class="lineno"> 7929</span>            <span class="keywordflow">return</span> 1;                                                                                       <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l07930" name="l07930"></a><span class="lineno"> 7930</span>        }</div>
+<div class="line"><a id="l07931" name="l07931"></a><span class="lineno"> 7931</span>        <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                             <span class="comment">/* 3 address mode */</span></div>
+<div class="line"><a id="l07932" name="l07932"></a><span class="lineno"> 7932</span>        {</div>
+<div class="line"><a id="l07933" name="l07933"></a><span class="lineno"> 7933</span>            <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)                                                                    <span class="comment">/* &gt;128Mb */</span></div>
+<div class="line"><a id="l07934" name="l07934"></a><span class="lineno"> 7934</span>            {</div>
+<div class="line"><a id="l07935" name="l07935"></a><span class="lineno"> 7935</span>                buf[0] = (addr &gt;&gt; 24) &amp; 0xFF;                                                               <span class="comment">/* 31 - 24 bits */</span></div>
+<div class="line"><a id="l07936" name="l07936"></a><span class="lineno"> 7936</span>                res = a_w25qxx_qspi_write_read(handle, 0xC5, 4,</div>
+<div class="line"><a id="l07937" name="l07937"></a><span class="lineno"> 7937</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l07938" name="l07938"></a><span class="lineno"> 7938</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l07939" name="l07939"></a><span class="lineno"> 7939</span>                                               0, (uint8_t *)buf, 0x01,</div>
+<div class="line"><a id="l07940" name="l07940"></a><span class="lineno"> 7940</span>                                               NULL, 0x00, 4);                                              <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l07941" name="l07941"></a><span class="lineno"> 7941</span>                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l07942" name="l07942"></a><span class="lineno"> 7942</span>                {</div>
+<div class="line"><a id="l07943" name="l07943"></a><span class="lineno"> 7943</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write extended addr register failed.\n&quot;</span>);                  <span class="comment">/* write extended addr register failed */</span></div>
+<div class="line"><a id="l07944" name="l07944"></a><span class="lineno"> 7944</span>                   </div>
+<div class="line"><a id="l07945" name="l07945"></a><span class="lineno"> 7945</span>                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l07946" name="l07946"></a><span class="lineno"> 7946</span>                }</div>
+<div class="line"><a id="l07947" name="l07947"></a><span class="lineno"> 7947</span>                res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>, 4,</div>
+<div class="line"><a id="l07948" name="l07948"></a><span class="lineno"> 7948</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l07949" name="l07949"></a><span class="lineno"> 7949</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l07950" name="l07950"></a><span class="lineno"> 7950</span>                                               0x00, NULL, 0x00,</div>
+<div class="line"><a id="l07951" name="l07951"></a><span class="lineno"> 7951</span>                                               NULL, 0x00, 0x00);                                           <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l07952" name="l07952"></a><span class="lineno"> 7952</span>                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l07953" name="l07953"></a><span class="lineno"> 7953</span>                {</div>
+<div class="line"><a id="l07954" name="l07954"></a><span class="lineno"> 7954</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                                  <span class="comment">/* write enable failed */</span></div>
+<div class="line"><a id="l07955" name="l07955"></a><span class="lineno"> 7955</span>                   </div>
+<div class="line"><a id="l07956" name="l07956"></a><span class="lineno"> 7956</span>                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l07957" name="l07957"></a><span class="lineno"> 7957</span>                }</div>
+<div class="line"><a id="l07958" name="l07958"></a><span class="lineno"> 7958</span>            }</div>
+<div class="line"><a id="l07959" name="l07959"></a><span class="lineno"> 7959</span>            res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#a6e7cd159f91e23930450725fd6910f9c">W25QXX_COMMAND_SECTOR_ERASE_4K</a>, 4,</div>
+<div class="line"><a id="l07960" name="l07960"></a><span class="lineno"> 7960</span>                                           addr, 4, 3,</div>
+<div class="line"><a id="l07961" name="l07961"></a><span class="lineno"> 7961</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l07962" name="l07962"></a><span class="lineno"> 7962</span>                                           0, NULL, 0x00,</div>
+<div class="line"><a id="l07963" name="l07963"></a><span class="lineno"> 7963</span>                                           NULL, 0x00, 0x00);                                               <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l07964" name="l07964"></a><span class="lineno"> 7964</span>            <span class="keywordflow">if</span> (res != 0)                                                                                   <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l07965" name="l07965"></a><span class="lineno"> 7965</span>            {</div>
+<div class="line"><a id="l07966" name="l07966"></a><span class="lineno"> 7966</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: sector erase 4k failed.\n&quot;</span>);                                   <span class="comment">/* sector erase 4k failed */</span></div>
+<div class="line"><a id="l07967" name="l07967"></a><span class="lineno"> 7967</span>               </div>
+<div class="line"><a id="l07968" name="l07968"></a><span class="lineno"> 7968</span>                <span class="keywordflow">return</span> 1;                                                                                   <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l07969" name="l07969"></a><span class="lineno"> 7969</span>            }</div>
+<div class="line"><a id="l07970" name="l07970"></a><span class="lineno"> 7970</span>        }</div>
+<div class="line"><a id="l07971" name="l07971"></a><span class="lineno"> 7971</span>        <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>) &amp;&amp; (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>))</div>
+<div class="line"><a id="l07972" name="l07972"></a><span class="lineno"> 7972</span>        {</div>
+<div class="line"><a id="l07973" name="l07973"></a><span class="lineno"> 7973</span>            res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#a6e7cd159f91e23930450725fd6910f9c">W25QXX_COMMAND_SECTOR_ERASE_4K</a>, 4,</div>
+<div class="line"><a id="l07974" name="l07974"></a><span class="lineno"> 7974</span>                                           addr, 4, 4,</div>
+<div class="line"><a id="l07975" name="l07975"></a><span class="lineno"> 7975</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l07976" name="l07976"></a><span class="lineno"> 7976</span>                                           0, NULL, 0x00,</div>
+<div class="line"><a id="l07977" name="l07977"></a><span class="lineno"> 7977</span>                                           NULL, 0x00, 0x00);                                               <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l07978" name="l07978"></a><span class="lineno"> 7978</span>            <span class="keywordflow">if</span> (res != 0)                                                                                   <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l07979" name="l07979"></a><span class="lineno"> 7979</span>            {</div>
+<div class="line"><a id="l07980" name="l07980"></a><span class="lineno"> 7980</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: sector erase 4k failed.\n&quot;</span>);                                   <span class="comment">/* sector erase 4k failed */</span></div>
+<div class="line"><a id="l07981" name="l07981"></a><span class="lineno"> 7981</span>               </div>
+<div class="line"><a id="l07982" name="l07982"></a><span class="lineno"> 7982</span>                <span class="keywordflow">return</span> 1;                                                                                   <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l07983" name="l07983"></a><span class="lineno"> 7983</span>            }</div>
+<div class="line"><a id="l07984" name="l07984"></a><span class="lineno"> 7984</span>        }</div>
+<div class="line"><a id="l07985" name="l07985"></a><span class="lineno"> 7985</span>        <span class="keywordflow">else</span></div>
+<div class="line"><a id="l07986" name="l07986"></a><span class="lineno"> 7986</span>        {</div>
+<div class="line"><a id="l07987" name="l07987"></a><span class="lineno"> 7987</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: address mode is invalid.\n&quot;</span>);                                      <span class="comment">/* address mode is invalid */</span></div>
+<div class="line"><a id="l07988" name="l07988"></a><span class="lineno"> 7988</span>           </div>
+<div class="line"><a id="l07989" name="l07989"></a><span class="lineno"> 7989</span>            <span class="keywordflow">return</span> 1;                                                                                       <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l07990" name="l07990"></a><span class="lineno"> 7990</span>        }</div>
+<div class="line"><a id="l07991" name="l07991"></a><span class="lineno"> 7991</span>        </div>
+<div class="line"><a id="l07992" name="l07992"></a><span class="lineno"> 7992</span>        timeout = 400;                                                                                      <span class="comment">/* max 400 ms */</span></div>
+<div class="line"><a id="l07993" name="l07993"></a><span class="lineno"> 7993</span>        <span class="keywordflow">while</span> (timeout != 0)                                                                                <span class="comment">/* check timeout */</span></div>
+<div class="line"><a id="l07994" name="l07994"></a><span class="lineno"> 7994</span>        {</div>
+<div class="line"><a id="l07995" name="l07995"></a><span class="lineno"> 7995</span>            res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#adf682969c34f4b31a87dd92dd18ccea3">W25QXX_COMMAND_READ_STATUS_REG1</a>, 4,</div>
+<div class="line"><a id="l07996" name="l07996"></a><span class="lineno"> 7996</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l07997" name="l07997"></a><span class="lineno"> 7997</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l07998" name="l07998"></a><span class="lineno"> 7998</span>                                           0, NULL, 0,</div>
+<div class="line"><a id="l07999" name="l07999"></a><span class="lineno"> 7999</span>                                          (uint8_t *)&amp;status, 1, 4);                                        <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l08000" name="l08000"></a><span class="lineno"> 8000</span>            <span class="keywordflow">if</span> (res != 0)                                                                                   <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l08001" name="l08001"></a><span class="lineno"> 8001</span>            {</div>
+<div class="line"><a id="l08002" name="l08002"></a><span class="lineno"> 8002</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: get status1 failed.\n&quot;</span>);                                       <span class="comment">/* get status1 failed */</span></div>
+<div class="line"><a id="l08003" name="l08003"></a><span class="lineno"> 8003</span>               </div>
+<div class="line"><a id="l08004" name="l08004"></a><span class="lineno"> 8004</span>                <span class="keywordflow">return</span> 1;                                                                                   <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l08005" name="l08005"></a><span class="lineno"> 8005</span>            }</div>
+<div class="line"><a id="l08006" name="l08006"></a><span class="lineno"> 8006</span>            <span class="keywordflow">if</span> ((status &amp; 0x01) == 0x00)                                                                    <span class="comment">/* check status */</span></div>
+<div class="line"><a id="l08007" name="l08007"></a><span class="lineno"> 8007</span>            {</div>
+<div class="line"><a id="l08008" name="l08008"></a><span class="lineno"> 8008</span>                <span class="keywordflow">break</span>;                                                                                      <span class="comment">/* break */</span></div>
+<div class="line"><a id="l08009" name="l08009"></a><span class="lineno"> 8009</span>            }</div>
+<div class="line"><a id="l08010" name="l08010"></a><span class="lineno"> 8010</span>            timeout--;                                                                                      <span class="comment">/* timeout-- */</span></div>
+<div class="line"><a id="l08011" name="l08011"></a><span class="lineno"> 8011</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a406c9433252b7366de417b7a60915c81">delay_ms</a>(1);                                                                            <span class="comment">/* delay 1 ms */</span></div>
+<div class="line"><a id="l08012" name="l08012"></a><span class="lineno"> 8012</span>        }</div>
+<div class="line"><a id="l08013" name="l08013"></a><span class="lineno"> 8013</span>        <span class="keywordflow">if</span> (timeout == 0)</div>
+<div class="line"><a id="l08014" name="l08014"></a><span class="lineno"> 8014</span>        {</div>
+<div class="line"><a id="l08015" name="l08015"></a><span class="lineno"> 8015</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: sector erase 4k timeout.\n&quot;</span>);                                      <span class="comment">/* sector erase 4k timeout */</span></div>
+<div class="line"><a id="l08016" name="l08016"></a><span class="lineno"> 8016</span>           </div>
+<div class="line"><a id="l08017" name="l08017"></a><span class="lineno"> 8017</span>            <span class="keywordflow">return</span> 1;                                                                                       <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l08018" name="l08018"></a><span class="lineno"> 8018</span>        }</div>
+<div class="line"><a id="l08019" name="l08019"></a><span class="lineno"> 8019</span>    }</div>
+<div class="line"><a id="l08020" name="l08020"></a><span class="lineno"> 8020</span>    </div>
+<div class="line"><a id="l08021" name="l08021"></a><span class="lineno"> 8021</span>    <span class="keywordflow">return</span> 0;                                                                                               <span class="comment">/* success return 0 */</span></div>
+<div class="line"><a id="l08022" name="l08022"></a><span class="lineno"> 8022</span>}</div>
+<div class="line"><a id="l08023" name="l08023"></a><span class="lineno"> 8023</span> </div>
+<div class="line"><a id="l08035" name="l08035"></a><span class="lineno"> 8035</span><span class="keyword">static</span> uint8_t a_w25qxx_page_program(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint16_t len)</div>
+<div class="line"><a id="l08036" name="l08036"></a><span class="lineno"> 8036</span>{</div>
+<div class="line"><a id="l08037" name="l08037"></a><span class="lineno"> 8037</span>    uint8_t res;</div>
+<div class="line"><a id="l08038" name="l08038"></a><span class="lineno"> 8038</span>    uint8_t status;</div>
+<div class="line"><a id="l08039" name="l08039"></a><span class="lineno"> 8039</span>    uint32_t timeout;</div>
+<div class="line"><a id="l08040" name="l08040"></a><span class="lineno"> 8040</span>    uint8_t buf[2];</div>
+<div class="line"><a id="l08041" name="l08041"></a><span class="lineno"> 8041</span> </div>
+<div class="line"><a id="l08042" name="l08042"></a><span class="lineno"> 8042</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>)                                                           <span class="comment">/* spi interface */</span></div>
+<div class="line"><a id="l08043" name="l08043"></a><span class="lineno"> 8043</span>    {</div>
+<div class="line"><a id="l08044" name="l08044"></a><span class="lineno"> 8044</span>        <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">dual_quad_spi_enable</a> != 0)                                                              <span class="comment">/* enable dual quad spi */</span></div>
+<div class="line"><a id="l08045" name="l08045"></a><span class="lineno"> 8045</span>        {</div>
+<div class="line"><a id="l08046" name="l08046"></a><span class="lineno"> 8046</span>            res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>, 1,</div>
+<div class="line"><a id="l08047" name="l08047"></a><span class="lineno"> 8047</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l08048" name="l08048"></a><span class="lineno"> 8048</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l08049" name="l08049"></a><span class="lineno"> 8049</span>                                           0x00, NULL, 0x00,</div>
+<div class="line"><a id="l08050" name="l08050"></a><span class="lineno"> 8050</span>                                           NULL, 0x00, 0x00);                                               <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l08051" name="l08051"></a><span class="lineno"> 8051</span>            <span class="keywordflow">if</span> (res != 0)                                                                                   <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l08052" name="l08052"></a><span class="lineno"> 8052</span>            {</div>
+<div class="line"><a id="l08053" name="l08053"></a><span class="lineno"> 8053</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                                      <span class="comment">/* write enable failed */</span></div>
+<div class="line"><a id="l08054" name="l08054"></a><span class="lineno"> 8054</span>               </div>
+<div class="line"><a id="l08055" name="l08055"></a><span class="lineno"> 8055</span>                <span class="keywordflow">return</span> 1;                                                                                   <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l08056" name="l08056"></a><span class="lineno"> 8056</span>            }</div>
+<div class="line"><a id="l08057" name="l08057"></a><span class="lineno"> 8057</span>            <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                         <span class="comment">/* 3 address mode */</span></div>
+<div class="line"><a id="l08058" name="l08058"></a><span class="lineno"> 8058</span>            {</div>
+<div class="line"><a id="l08059" name="l08059"></a><span class="lineno"> 8059</span>                <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)                                                                <span class="comment">/* &gt;128Mb */</span></div>
+<div class="line"><a id="l08060" name="l08060"></a><span class="lineno"> 8060</span>                {</div>
+<div class="line"><a id="l08061" name="l08061"></a><span class="lineno"> 8061</span>                    buf[0] = (addr &gt;&gt; 24) &amp; 0xFF;                                                           <span class="comment">/* 31 - 24 bits */</span></div>
+<div class="line"><a id="l08062" name="l08062"></a><span class="lineno"> 8062</span>                    res = a_w25qxx_qspi_write_read(handle, 0xC5, 1,</div>
+<div class="line"><a id="l08063" name="l08063"></a><span class="lineno"> 8063</span>                                                   0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l08064" name="l08064"></a><span class="lineno"> 8064</span>                                                   0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l08065" name="l08065"></a><span class="lineno"> 8065</span>                                                   0, (uint8_t *)buf, 0x01,</div>
+<div class="line"><a id="l08066" name="l08066"></a><span class="lineno"> 8066</span>                                                   NULL, 0x00, 1);                                          <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l08067" name="l08067"></a><span class="lineno"> 8067</span>                    <span class="keywordflow">if</span> (res != 0)                                                                           <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l08068" name="l08068"></a><span class="lineno"> 8068</span>                    {</div>
+<div class="line"><a id="l08069" name="l08069"></a><span class="lineno"> 8069</span>                        handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write extended addr register failed.\n&quot;</span>);              <span class="comment">/* write extended addr register failed */</span></div>
+<div class="line"><a id="l08070" name="l08070"></a><span class="lineno"> 8070</span>                       </div>
+<div class="line"><a id="l08071" name="l08071"></a><span class="lineno"> 8071</span>                        <span class="keywordflow">return</span> 1;                                                                           <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l08072" name="l08072"></a><span class="lineno"> 8072</span>                    }</div>
+<div class="line"><a id="l08073" name="l08073"></a><span class="lineno"> 8073</span>                    res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>, 1,</div>
+<div class="line"><a id="l08074" name="l08074"></a><span class="lineno"> 8074</span>                                                   0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l08075" name="l08075"></a><span class="lineno"> 8075</span>                                                   0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l08076" name="l08076"></a><span class="lineno"> 8076</span>                                                   0x00, NULL, 0x00,</div>
+<div class="line"><a id="l08077" name="l08077"></a><span class="lineno"> 8077</span>                                                   NULL, 0x00, 0x00);                                       <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l08078" name="l08078"></a><span class="lineno"> 8078</span>                    <span class="keywordflow">if</span> (res != 0)                                                                           <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l08079" name="l08079"></a><span class="lineno"> 8079</span>                    {</div>
+<div class="line"><a id="l08080" name="l08080"></a><span class="lineno"> 8080</span>                        handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                              <span class="comment">/* write enable failed */</span></div>
+<div class="line"><a id="l08081" name="l08081"></a><span class="lineno"> 8081</span>                       </div>
+<div class="line"><a id="l08082" name="l08082"></a><span class="lineno"> 8082</span>                        <span class="keywordflow">return</span> 1;                                                                           <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l08083" name="l08083"></a><span class="lineno"> 8083</span>                    }</div>
+<div class="line"><a id="l08084" name="l08084"></a><span class="lineno"> 8084</span>                }</div>
+<div class="line"><a id="l08085" name="l08085"></a><span class="lineno"> 8085</span>                res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#aebca01f1f7fd279523d29e579998574a">W25QXX_COMMAND_PAGE_PROGRAM</a>, 1,</div>
+<div class="line"><a id="l08086" name="l08086"></a><span class="lineno"> 8086</span>                                               addr, 1, 3,</div>
+<div class="line"><a id="l08087" name="l08087"></a><span class="lineno"> 8087</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l08088" name="l08088"></a><span class="lineno"> 8088</span>                                               0, data, len,</div>
+<div class="line"><a id="l08089" name="l08089"></a><span class="lineno"> 8089</span>                                               NULL, 0x00, 1);                                              <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l08090" name="l08090"></a><span class="lineno"> 8090</span>                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l08091" name="l08091"></a><span class="lineno"> 8091</span>                {</div>
+<div class="line"><a id="l08092" name="l08092"></a><span class="lineno"> 8092</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: page program failed.\n&quot;</span>);                                  <span class="comment">/* page program failed */</span></div>
+<div class="line"><a id="l08093" name="l08093"></a><span class="lineno"> 8093</span>                   </div>
+<div class="line"><a id="l08094" name="l08094"></a><span class="lineno"> 8094</span>                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l08095" name="l08095"></a><span class="lineno"> 8095</span>                }</div>
+<div class="line"><a id="l08096" name="l08096"></a><span class="lineno"> 8096</span>            }</div>
+<div class="line"><a id="l08097" name="l08097"></a><span class="lineno"> 8097</span>            <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>) &amp;&amp; (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>))</div>
+<div class="line"><a id="l08098" name="l08098"></a><span class="lineno"> 8098</span>            {</div>
+<div class="line"><a id="l08099" name="l08099"></a><span class="lineno"> 8099</span>                res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#aebca01f1f7fd279523d29e579998574a">W25QXX_COMMAND_PAGE_PROGRAM</a>, 1,</div>
+<div class="line"><a id="l08100" name="l08100"></a><span class="lineno"> 8100</span>                                               addr, 1, 4,</div>
+<div class="line"><a id="l08101" name="l08101"></a><span class="lineno"> 8101</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l08102" name="l08102"></a><span class="lineno"> 8102</span>                                               0, data, len,</div>
+<div class="line"><a id="l08103" name="l08103"></a><span class="lineno"> 8103</span>                                               NULL, 0x00, 1);                                              <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l08104" name="l08104"></a><span class="lineno"> 8104</span>                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l08105" name="l08105"></a><span class="lineno"> 8105</span>                {</div>
+<div class="line"><a id="l08106" name="l08106"></a><span class="lineno"> 8106</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: page program failed.\n&quot;</span>);                                  <span class="comment">/* page program failed */</span></div>
+<div class="line"><a id="l08107" name="l08107"></a><span class="lineno"> 8107</span>                   </div>
+<div class="line"><a id="l08108" name="l08108"></a><span class="lineno"> 8108</span>                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l08109" name="l08109"></a><span class="lineno"> 8109</span>                }</div>
+<div class="line"><a id="l08110" name="l08110"></a><span class="lineno"> 8110</span>            }</div>
+<div class="line"><a id="l08111" name="l08111"></a><span class="lineno"> 8111</span>            <span class="keywordflow">else</span></div>
+<div class="line"><a id="l08112" name="l08112"></a><span class="lineno"> 8112</span>            {</div>
+<div class="line"><a id="l08113" name="l08113"></a><span class="lineno"> 8113</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: address mode is invalid.\n&quot;</span>);                                  <span class="comment">/* address mode is invalid */</span></div>
+<div class="line"><a id="l08114" name="l08114"></a><span class="lineno"> 8114</span>               </div>
+<div class="line"><a id="l08115" name="l08115"></a><span class="lineno"> 8115</span>                <span class="keywordflow">return</span> 1;                                                                                   <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l08116" name="l08116"></a><span class="lineno"> 8116</span>            }</div>
+<div class="line"><a id="l08117" name="l08117"></a><span class="lineno"> 8117</span>            </div>
+<div class="line"><a id="l08118" name="l08118"></a><span class="lineno"> 8118</span>            timeout = 3 * 100;                                                                              <span class="comment">/* max 3 ms */</span></div>
+<div class="line"><a id="l08119" name="l08119"></a><span class="lineno"> 8119</span>            <span class="keywordflow">while</span> (timeout != 0)                                                                            <span class="comment">/* check timeout */</span></div>
+<div class="line"><a id="l08120" name="l08120"></a><span class="lineno"> 8120</span>            {</div>
+<div class="line"><a id="l08121" name="l08121"></a><span class="lineno"> 8121</span>                res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#adf682969c34f4b31a87dd92dd18ccea3">W25QXX_COMMAND_READ_STATUS_REG1</a>, 1,</div>
+<div class="line"><a id="l08122" name="l08122"></a><span class="lineno"> 8122</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l08123" name="l08123"></a><span class="lineno"> 8123</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l08124" name="l08124"></a><span class="lineno"> 8124</span>                                               0, NULL, 0,</div>
+<div class="line"><a id="l08125" name="l08125"></a><span class="lineno"> 8125</span>                                              (uint8_t *)&amp;status, 1, 1);                                    <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l08126" name="l08126"></a><span class="lineno"> 8126</span>                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l08127" name="l08127"></a><span class="lineno"> 8127</span>                {</div>
+<div class="line"><a id="l08128" name="l08128"></a><span class="lineno"> 8128</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: page program failed.\n&quot;</span>);                                  <span class="comment">/* page program failed */</span></div>
+<div class="line"><a id="l08129" name="l08129"></a><span class="lineno"> 8129</span>                   </div>
+<div class="line"><a id="l08130" name="l08130"></a><span class="lineno"> 8130</span>                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l08131" name="l08131"></a><span class="lineno"> 8131</span>                }</div>
+<div class="line"><a id="l08132" name="l08132"></a><span class="lineno"> 8132</span>                <span class="keywordflow">if</span> ((status &amp; 0x01) == 0x00)                                                                <span class="comment">/* check status */</span></div>
+<div class="line"><a id="l08133" name="l08133"></a><span class="lineno"> 8133</span>                {</div>
+<div class="line"><a id="l08134" name="l08134"></a><span class="lineno"> 8134</span>                    <span class="keywordflow">break</span>;                                                                                  <span class="comment">/* break */</span></div>
+<div class="line"><a id="l08135" name="l08135"></a><span class="lineno"> 8135</span>                }</div>
+<div class="line"><a id="l08136" name="l08136"></a><span class="lineno"> 8136</span>                timeout--;                                                                                  <span class="comment">/* timeout-- */</span></div>
+<div class="line"><a id="l08137" name="l08137"></a><span class="lineno"> 8137</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a97ffc4fce945527bd6ab25a3596caef7">delay_us</a>(10);                                                                       <span class="comment">/* delay 10 us */</span></div>
+<div class="line"><a id="l08138" name="l08138"></a><span class="lineno"> 8138</span>            }</div>
+<div class="line"><a id="l08139" name="l08139"></a><span class="lineno"> 8139</span>            <span class="keywordflow">if</span> (timeout == 0)</div>
+<div class="line"><a id="l08140" name="l08140"></a><span class="lineno"> 8140</span>            {</div>
+<div class="line"><a id="l08141" name="l08141"></a><span class="lineno"> 8141</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: page program timeout.\n&quot;</span>);                                     <span class="comment">/* page program timeout */</span></div>
+<div class="line"><a id="l08142" name="l08142"></a><span class="lineno"> 8142</span>               </div>
+<div class="line"><a id="l08143" name="l08143"></a><span class="lineno"> 8143</span>                <span class="keywordflow">return</span> 1;                                                                                   <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l08144" name="l08144"></a><span class="lineno"> 8144</span>            }</div>
+<div class="line"><a id="l08145" name="l08145"></a><span class="lineno"> 8145</span>        }</div>
+<div class="line"><a id="l08146" name="l08146"></a><span class="lineno"> 8146</span>        <span class="keywordflow">else</span>                                                                                                <span class="comment">/* single spi */</span></div>
+<div class="line"><a id="l08147" name="l08147"></a><span class="lineno"> 8147</span>        {</div>
+<div class="line"><a id="l08148" name="l08148"></a><span class="lineno"> 8148</span>            buf[0] = <a class="code hl_define" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>;                                                           <span class="comment">/* write enable command */</span></div>
+<div class="line"><a id="l08149" name="l08149"></a><span class="lineno"> 8149</span>            res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 1, NULL, 0);                              <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l08150" name="l08150"></a><span class="lineno"> 8150</span>            <span class="keywordflow">if</span> (res != 0)                                                                                   <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l08151" name="l08151"></a><span class="lineno"> 8151</span>            {</div>
+<div class="line"><a id="l08152" name="l08152"></a><span class="lineno"> 8152</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                                      <span class="comment">/* write enable failed */</span></div>
+<div class="line"><a id="l08153" name="l08153"></a><span class="lineno"> 8153</span>               </div>
+<div class="line"><a id="l08154" name="l08154"></a><span class="lineno"> 8154</span>                <span class="keywordflow">return</span> 1;                                                                                   <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l08155" name="l08155"></a><span class="lineno"> 8155</span>            }</div>
+<div class="line"><a id="l08156" name="l08156"></a><span class="lineno"> 8156</span>            <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                         <span class="comment">/* 3 address mode */</span></div>
+<div class="line"><a id="l08157" name="l08157"></a><span class="lineno"> 8157</span>            {</div>
+<div class="line"><a id="l08158" name="l08158"></a><span class="lineno"> 8158</span>                <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)                                                                <span class="comment">/* &gt;128Mb */</span></div>
+<div class="line"><a id="l08159" name="l08159"></a><span class="lineno"> 8159</span>                {</div>
+<div class="line"><a id="l08160" name="l08160"></a><span class="lineno"> 8160</span>                    buf[0] = 0xC5;                                                                          <span class="comment">/* write extended addr register command */</span></div>
+<div class="line"><a id="l08161" name="l08161"></a><span class="lineno"> 8161</span>                    buf[1] = (addr &gt;&gt; 24) &amp; 0xFF;                                                           <span class="comment">/* 31 - 24 bits */</span></div>
+<div class="line"><a id="l08162" name="l08162"></a><span class="lineno"> 8162</span>                    res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 2, NULL, 0);                      <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l08163" name="l08163"></a><span class="lineno"> 8163</span>                    <span class="keywordflow">if</span> (res != 0)                                                                           <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l08164" name="l08164"></a><span class="lineno"> 8164</span>                    {</div>
+<div class="line"><a id="l08165" name="l08165"></a><span class="lineno"> 8165</span>                        handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write extended addr register failed.\n&quot;</span>);              <span class="comment">/* write extended addr register failed */</span></div>
+<div class="line"><a id="l08166" name="l08166"></a><span class="lineno"> 8166</span>                       </div>
+<div class="line"><a id="l08167" name="l08167"></a><span class="lineno"> 8167</span>                        <span class="keywordflow">return</span> 1;                                                                           <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l08168" name="l08168"></a><span class="lineno"> 8168</span>                    }</div>
+<div class="line"><a id="l08169" name="l08169"></a><span class="lineno"> 8169</span>                    buf[0] = <a class="code hl_define" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>;                                                   <span class="comment">/* write enable command */</span></div>
+<div class="line"><a id="l08170" name="l08170"></a><span class="lineno"> 8170</span>                    res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 1, NULL, 0);                      <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l08171" name="l08171"></a><span class="lineno"> 8171</span>                    <span class="keywordflow">if</span> (res != 0)                                                                           <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l08172" name="l08172"></a><span class="lineno"> 8172</span>                    {</div>
+<div class="line"><a id="l08173" name="l08173"></a><span class="lineno"> 8173</span>                        handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                              <span class="comment">/* write enable failed */</span></div>
+<div class="line"><a id="l08174" name="l08174"></a><span class="lineno"> 8174</span>                       </div>
+<div class="line"><a id="l08175" name="l08175"></a><span class="lineno"> 8175</span>                        <span class="keywordflow">return</span> 1;                                                                           <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l08176" name="l08176"></a><span class="lineno"> 8176</span>                    }</div>
+<div class="line"><a id="l08177" name="l08177"></a><span class="lineno"> 8177</span>                }</div>
+<div class="line"><a id="l08178" name="l08178"></a><span class="lineno"> 8178</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a2121914a1858618e9216fa2daf0a42a2">buf</a>[0] = <a class="code hl_define" href="driver__w25qxx_8c.html#aebca01f1f7fd279523d29e579998574a">W25QXX_COMMAND_PAGE_PROGRAM</a>;                                               <span class="comment">/* page program command */</span></div>
+<div class="line"><a id="l08179" name="l08179"></a><span class="lineno"> 8179</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a2121914a1858618e9216fa2daf0a42a2">buf</a>[1] = (addr &gt;&gt; 16) &amp; 0xFF;                                                       <span class="comment">/* 23 - 16 bits */</span></div>
+<div class="line"><a id="l08180" name="l08180"></a><span class="lineno"> 8180</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a2121914a1858618e9216fa2daf0a42a2">buf</a>[2] = (addr &gt;&gt; 8) &amp; 0xFF;                                                        <span class="comment">/* 15 - 8  bits */</span></div>
+<div class="line"><a id="l08181" name="l08181"></a><span class="lineno"> 8181</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a2121914a1858618e9216fa2daf0a42a2">buf</a>[3] = (addr &gt;&gt; 0) &amp; 0xFF;                                                        <span class="comment">/* 7 - 0 bits */</span></div>
+<div class="line"><a id="l08182" name="l08182"></a><span class="lineno"> 8182</span>                memcpy(&amp;handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a2121914a1858618e9216fa2daf0a42a2">buf</a>[4], data, len);                                                         <span class="comment">/* copy data */</span></div>
+<div class="line"><a id="l08183" name="l08183"></a><span class="lineno"> 8183</span>                res = a_w25qxx_spi_write_read(handle, (uint8_t *)handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a2121914a1858618e9216fa2daf0a42a2">buf</a>, 4 + len, NULL, 0);            <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l08184" name="l08184"></a><span class="lineno"> 8184</span>                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l08185" name="l08185"></a><span class="lineno"> 8185</span>                {</div>
+<div class="line"><a id="l08186" name="l08186"></a><span class="lineno"> 8186</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: page program failed.\n&quot;</span>);                                  <span class="comment">/* page program failed */</span></div>
+<div class="line"><a id="l08187" name="l08187"></a><span class="lineno"> 8187</span>                   </div>
+<div class="line"><a id="l08188" name="l08188"></a><span class="lineno"> 8188</span>                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l08189" name="l08189"></a><span class="lineno"> 8189</span>                }</div>
+<div class="line"><a id="l08190" name="l08190"></a><span class="lineno"> 8190</span>            }</div>
+<div class="line"><a id="l08191" name="l08191"></a><span class="lineno"> 8191</span>            <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>)</div>
+<div class="line"><a id="l08192" name="l08192"></a><span class="lineno"> 8192</span>                     &amp;&amp; (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>))                                                          <span class="comment">/* 4 address mode */</span></div>
+<div class="line"><a id="l08193" name="l08193"></a><span class="lineno"> 8193</span>            {</div>
+<div class="line"><a id="l08194" name="l08194"></a><span class="lineno"> 8194</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a2121914a1858618e9216fa2daf0a42a2">buf</a>[0] = <a class="code hl_define" href="driver__w25qxx_8c.html#aebca01f1f7fd279523d29e579998574a">W25QXX_COMMAND_PAGE_PROGRAM</a>;                                               <span class="comment">/* page program command */</span></div>
+<div class="line"><a id="l08195" name="l08195"></a><span class="lineno"> 8195</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a2121914a1858618e9216fa2daf0a42a2">buf</a>[1] = (addr &gt;&gt; 24) &amp; 0xFF;                                                       <span class="comment">/* 31 - 24 bits */</span></div>
+<div class="line"><a id="l08196" name="l08196"></a><span class="lineno"> 8196</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a2121914a1858618e9216fa2daf0a42a2">buf</a>[2] = (addr &gt;&gt; 16) &amp; 0xFF;                                                       <span class="comment">/* 23 - 16 bits */</span></div>
+<div class="line"><a id="l08197" name="l08197"></a><span class="lineno"> 8197</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a2121914a1858618e9216fa2daf0a42a2">buf</a>[3] = (addr &gt;&gt; 8) &amp; 0xFF;                                                        <span class="comment">/* 15 - 8  bits */</span></div>
+<div class="line"><a id="l08198" name="l08198"></a><span class="lineno"> 8198</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a2121914a1858618e9216fa2daf0a42a2">buf</a>[4] = (addr &gt;&gt; 0) &amp; 0xFF;                                                        <span class="comment">/* 7 - 0 bits */</span></div>
+<div class="line"><a id="l08199" name="l08199"></a><span class="lineno"> 8199</span>                memcpy(&amp;handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a2121914a1858618e9216fa2daf0a42a2">buf</a>[5], data, len);                                                         <span class="comment">/* copy data */</span></div>
+<div class="line"><a id="l08200" name="l08200"></a><span class="lineno"> 8200</span>                res = a_w25qxx_spi_write_read(handle, (uint8_t *)handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a2121914a1858618e9216fa2daf0a42a2">buf</a>, 5 + len, NULL, 0);            <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l08201" name="l08201"></a><span class="lineno"> 8201</span>                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l08202" name="l08202"></a><span class="lineno"> 8202</span>                {</div>
+<div class="line"><a id="l08203" name="l08203"></a><span class="lineno"> 8203</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: page program failed.\n&quot;</span>);                                  <span class="comment">/* page program failed */</span></div>
+<div class="line"><a id="l08204" name="l08204"></a><span class="lineno"> 8204</span>                   </div>
+<div class="line"><a id="l08205" name="l08205"></a><span class="lineno"> 8205</span>                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l08206" name="l08206"></a><span class="lineno"> 8206</span>                }</div>
+<div class="line"><a id="l08207" name="l08207"></a><span class="lineno"> 8207</span>            }</div>
+<div class="line"><a id="l08208" name="l08208"></a><span class="lineno"> 8208</span>            <span class="keywordflow">else</span></div>
+<div class="line"><a id="l08209" name="l08209"></a><span class="lineno"> 8209</span>            {</div>
+<div class="line"><a id="l08210" name="l08210"></a><span class="lineno"> 8210</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: address mode is invalid.\n&quot;</span>);                                  <span class="comment">/* address mode is invalid */</span></div>
+<div class="line"><a id="l08211" name="l08211"></a><span class="lineno"> 8211</span>               </div>
+<div class="line"><a id="l08212" name="l08212"></a><span class="lineno"> 8212</span>                <span class="keywordflow">return</span> 1;                                                                                   <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l08213" name="l08213"></a><span class="lineno"> 8213</span>            }</div>
+<div class="line"><a id="l08214" name="l08214"></a><span class="lineno"> 8214</span>            </div>
+<div class="line"><a id="l08215" name="l08215"></a><span class="lineno"> 8215</span>            timeout = 3 * 100;                                                                              <span class="comment">/* max 3 ms */</span></div>
+<div class="line"><a id="l08216" name="l08216"></a><span class="lineno"> 8216</span>            <span class="keywordflow">while</span> (timeout != 0)                                                                            <span class="comment">/* check timeout */</span></div>
+<div class="line"><a id="l08217" name="l08217"></a><span class="lineno"> 8217</span>            {</div>
+<div class="line"><a id="l08218" name="l08218"></a><span class="lineno"> 8218</span>                buf[0] = <a class="code hl_define" href="driver__w25qxx_8c.html#adf682969c34f4b31a87dd92dd18ccea3">W25QXX_COMMAND_READ_STATUS_REG1</a>;                                                   <span class="comment">/* read status1 command */</span></div>
+<div class="line"><a id="l08219" name="l08219"></a><span class="lineno"> 8219</span>                res = a_w25qxx_spi_write_read(handle, (uint8_t *)buf, 1, (uint8_t *)&amp;status, 1);            <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l08220" name="l08220"></a><span class="lineno"> 8220</span>                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l08221" name="l08221"></a><span class="lineno"> 8221</span>                {</div>
+<div class="line"><a id="l08222" name="l08222"></a><span class="lineno"> 8222</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: get status1 failed.\n&quot;</span>);                                   <span class="comment">/* get status1 failed */</span></div>
+<div class="line"><a id="l08223" name="l08223"></a><span class="lineno"> 8223</span>                   </div>
+<div class="line"><a id="l08224" name="l08224"></a><span class="lineno"> 8224</span>                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l08225" name="l08225"></a><span class="lineno"> 8225</span>                }</div>
+<div class="line"><a id="l08226" name="l08226"></a><span class="lineno"> 8226</span>                <span class="keywordflow">if</span> ((status &amp; 0x01) == 0x00)                                                                <span class="comment">/* check status */</span></div>
+<div class="line"><a id="l08227" name="l08227"></a><span class="lineno"> 8227</span>                {</div>
+<div class="line"><a id="l08228" name="l08228"></a><span class="lineno"> 8228</span>                    <span class="keywordflow">break</span>;                                                                                  <span class="comment">/* break */</span></div>
+<div class="line"><a id="l08229" name="l08229"></a><span class="lineno"> 8229</span>                }</div>
+<div class="line"><a id="l08230" name="l08230"></a><span class="lineno"> 8230</span>                timeout--;                                                                                  <span class="comment">/* timeout-- */</span></div>
+<div class="line"><a id="l08231" name="l08231"></a><span class="lineno"> 8231</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a97ffc4fce945527bd6ab25a3596caef7">delay_us</a>(10);                                                                       <span class="comment">/* delay 10 us */</span></div>
+<div class="line"><a id="l08232" name="l08232"></a><span class="lineno"> 8232</span>            }</div>
+<div class="line"><a id="l08233" name="l08233"></a><span class="lineno"> 8233</span>            <span class="keywordflow">if</span> (timeout == 0)</div>
+<div class="line"><a id="l08234" name="l08234"></a><span class="lineno"> 8234</span>            {</div>
+<div class="line"><a id="l08235" name="l08235"></a><span class="lineno"> 8235</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: page program timeout.\n&quot;</span>);                                     <span class="comment">/* page program timeout */</span></div>
+<div class="line"><a id="l08236" name="l08236"></a><span class="lineno"> 8236</span>               </div>
+<div class="line"><a id="l08237" name="l08237"></a><span class="lineno"> 8237</span>                <span class="keywordflow">return</span> 1;                                                                                   <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l08238" name="l08238"></a><span class="lineno"> 8238</span>            }</div>
+<div class="line"><a id="l08239" name="l08239"></a><span class="lineno"> 8239</span>        }</div>
+<div class="line"><a id="l08240" name="l08240"></a><span class="lineno"> 8240</span>    }</div>
+<div class="line"><a id="l08241" name="l08241"></a><span class="lineno"> 8241</span>    <span class="keywordflow">else</span></div>
+<div class="line"><a id="l08242" name="l08242"></a><span class="lineno"> 8242</span>    {</div>
+<div class="line"><a id="l08243" name="l08243"></a><span class="lineno"> 8243</span>        res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>, 4,</div>
+<div class="line"><a id="l08244" name="l08244"></a><span class="lineno"> 8244</span>                                       0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l08245" name="l08245"></a><span class="lineno"> 8245</span>                                       0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l08246" name="l08246"></a><span class="lineno"> 8246</span>                                       0x00, NULL, 0x00,</div>
+<div class="line"><a id="l08247" name="l08247"></a><span class="lineno"> 8247</span>                                       NULL, 0x00, 0x00);                                                   <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l08248" name="l08248"></a><span class="lineno"> 8248</span>        <span class="keywordflow">if</span> (res != 0)                                                                                       <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l08249" name="l08249"></a><span class="lineno"> 8249</span>        {</div>
+<div class="line"><a id="l08250" name="l08250"></a><span class="lineno"> 8250</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                                          <span class="comment">/* write enable failed */</span></div>
+<div class="line"><a id="l08251" name="l08251"></a><span class="lineno"> 8251</span>           </div>
+<div class="line"><a id="l08252" name="l08252"></a><span class="lineno"> 8252</span>            <span class="keywordflow">return</span> 1;                                                                                       <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l08253" name="l08253"></a><span class="lineno"> 8253</span>        }</div>
+<div class="line"><a id="l08254" name="l08254"></a><span class="lineno"> 8254</span>        <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>)                                             <span class="comment">/* 3 address mode */</span></div>
+<div class="line"><a id="l08255" name="l08255"></a><span class="lineno"> 8255</span>        {</div>
+<div class="line"><a id="l08256" name="l08256"></a><span class="lineno"> 8256</span>            <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)                                                                    <span class="comment">/* &gt;128Mb */</span></div>
+<div class="line"><a id="l08257" name="l08257"></a><span class="lineno"> 8257</span>            {</div>
+<div class="line"><a id="l08258" name="l08258"></a><span class="lineno"> 8258</span>                buf[0] = (addr &gt;&gt; 24) &amp; 0xFF;                                                               <span class="comment">/* 31 - 24 bits */</span></div>
+<div class="line"><a id="l08259" name="l08259"></a><span class="lineno"> 8259</span>                res = a_w25qxx_qspi_write_read(handle, 0xC5, 4,</div>
+<div class="line"><a id="l08260" name="l08260"></a><span class="lineno"> 8260</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l08261" name="l08261"></a><span class="lineno"> 8261</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l08262" name="l08262"></a><span class="lineno"> 8262</span>                                               0, (uint8_t *)buf, 0x01,</div>
+<div class="line"><a id="l08263" name="l08263"></a><span class="lineno"> 8263</span>                                               NULL, 0x00, 4);                                              <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l08264" name="l08264"></a><span class="lineno"> 8264</span>                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l08265" name="l08265"></a><span class="lineno"> 8265</span>                {</div>
+<div class="line"><a id="l08266" name="l08266"></a><span class="lineno"> 8266</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write extended addr register failed.\n&quot;</span>);                  <span class="comment">/* write extended addr register failed */</span></div>
+<div class="line"><a id="l08267" name="l08267"></a><span class="lineno"> 8267</span>                   </div>
+<div class="line"><a id="l08268" name="l08268"></a><span class="lineno"> 8268</span>                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l08269" name="l08269"></a><span class="lineno"> 8269</span>                }</div>
+<div class="line"><a id="l08270" name="l08270"></a><span class="lineno"> 8270</span>                res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a>, 4,</div>
+<div class="line"><a id="l08271" name="l08271"></a><span class="lineno"> 8271</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l08272" name="l08272"></a><span class="lineno"> 8272</span>                                               0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l08273" name="l08273"></a><span class="lineno"> 8273</span>                                               0x00, NULL, 0x00,</div>
+<div class="line"><a id="l08274" name="l08274"></a><span class="lineno"> 8274</span>                                               NULL, 0x00, 0x00);                                           <span class="comment">/* qspi write read */</span></div>
+<div class="line"><a id="l08275" name="l08275"></a><span class="lineno"> 8275</span>                <span class="keywordflow">if</span> (res != 0)                                                                               <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l08276" name="l08276"></a><span class="lineno"> 8276</span>                {</div>
+<div class="line"><a id="l08277" name="l08277"></a><span class="lineno"> 8277</span>                    handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write enable failed.\n&quot;</span>);                                  <span class="comment">/* write enable failed */</span></div>
+<div class="line"><a id="l08278" name="l08278"></a><span class="lineno"> 8278</span>                   </div>
+<div class="line"><a id="l08279" name="l08279"></a><span class="lineno"> 8279</span>                    <span class="keywordflow">return</span> 1;                                                                               <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l08280" name="l08280"></a><span class="lineno"> 8280</span>                }</div>
+<div class="line"><a id="l08281" name="l08281"></a><span class="lineno"> 8281</span>            }</div>
+<div class="line"><a id="l08282" name="l08282"></a><span class="lineno"> 8282</span>            res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#aebca01f1f7fd279523d29e579998574a">W25QXX_COMMAND_PAGE_PROGRAM</a>, 4,</div>
+<div class="line"><a id="l08283" name="l08283"></a><span class="lineno"> 8283</span>                                           addr, 4, 3,</div>
+<div class="line"><a id="l08284" name="l08284"></a><span class="lineno"> 8284</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l08285" name="l08285"></a><span class="lineno"> 8285</span>                                           0, data, len,</div>
+<div class="line"><a id="l08286" name="l08286"></a><span class="lineno"> 8286</span>                                           NULL, 0x00, 4);                                                  <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l08287" name="l08287"></a><span class="lineno"> 8287</span>            <span class="keywordflow">if</span> (res != 0)                                                                                   <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l08288" name="l08288"></a><span class="lineno"> 8288</span>            {</div>
+<div class="line"><a id="l08289" name="l08289"></a><span class="lineno"> 8289</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: page program failed.\n&quot;</span>);                                      <span class="comment">/* page program failed */</span></div>
+<div class="line"><a id="l08290" name="l08290"></a><span class="lineno"> 8290</span>               </div>
+<div class="line"><a id="l08291" name="l08291"></a><span class="lineno"> 8291</span>                  <span class="keywordflow">return</span> 1;                                                                                 <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l08292" name="l08292"></a><span class="lineno"> 8292</span>            }</div>
+<div class="line"><a id="l08293" name="l08293"></a><span class="lineno"> 8293</span>        }</div>
+<div class="line"><a id="l08294" name="l08294"></a><span class="lineno"> 8294</span>        <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a> == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>) &amp;&amp; (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a> &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>))</div>
+<div class="line"><a id="l08295" name="l08295"></a><span class="lineno"> 8295</span>        {</div>
+<div class="line"><a id="l08296" name="l08296"></a><span class="lineno"> 8296</span>            res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#aebca01f1f7fd279523d29e579998574a">W25QXX_COMMAND_PAGE_PROGRAM</a>, 4,</div>
+<div class="line"><a id="l08297" name="l08297"></a><span class="lineno"> 8297</span>                                           addr, 4, 4,</div>
+<div class="line"><a id="l08298" name="l08298"></a><span class="lineno"> 8298</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l08299" name="l08299"></a><span class="lineno"> 8299</span>                                           0, data, len,</div>
+<div class="line"><a id="l08300" name="l08300"></a><span class="lineno"> 8300</span>                                           NULL, 0x00, 4);                                                  <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l08301" name="l08301"></a><span class="lineno"> 8301</span>            <span class="keywordflow">if</span> (res != 0)                                                                                   <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l08302" name="l08302"></a><span class="lineno"> 8302</span>            {</div>
+<div class="line"><a id="l08303" name="l08303"></a><span class="lineno"> 8303</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: page program failed.\n&quot;</span>);                                      <span class="comment">/* page program failed */</span></div>
+<div class="line"><a id="l08304" name="l08304"></a><span class="lineno"> 8304</span>               </div>
+<div class="line"><a id="l08305" name="l08305"></a><span class="lineno"> 8305</span>                <span class="keywordflow">return</span> 1;                                                                                   <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l08306" name="l08306"></a><span class="lineno"> 8306</span>            }</div>
+<div class="line"><a id="l08307" name="l08307"></a><span class="lineno"> 8307</span>        }</div>
+<div class="line"><a id="l08308" name="l08308"></a><span class="lineno"> 8308</span>        <span class="keywordflow">else</span></div>
+<div class="line"><a id="l08309" name="l08309"></a><span class="lineno"> 8309</span>        {</div>
+<div class="line"><a id="l08310" name="l08310"></a><span class="lineno"> 8310</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: address mode is invalid.\n&quot;</span>);                                      <span class="comment">/* address mode is invalid */</span></div>
+<div class="line"><a id="l08311" name="l08311"></a><span class="lineno"> 8311</span>           </div>
+<div class="line"><a id="l08312" name="l08312"></a><span class="lineno"> 8312</span>            <span class="keywordflow">return</span> 1;                                                                                       <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l08313" name="l08313"></a><span class="lineno"> 8313</span>        }</div>
+<div class="line"><a id="l08314" name="l08314"></a><span class="lineno"> 8314</span>        </div>
+<div class="line"><a id="l08315" name="l08315"></a><span class="lineno"> 8315</span>        timeout = 3 * 100;                                                                                  <span class="comment">/* max 3 ms */</span></div>
+<div class="line"><a id="l08316" name="l08316"></a><span class="lineno"> 8316</span>        <span class="keywordflow">while</span> (timeout != 0)                                                                                <span class="comment">/* check timeout */</span></div>
+<div class="line"><a id="l08317" name="l08317"></a><span class="lineno"> 8317</span>        {</div>
+<div class="line"><a id="l08318" name="l08318"></a><span class="lineno"> 8318</span>            res = a_w25qxx_qspi_write_read(handle, <a class="code hl_define" href="driver__w25qxx_8c.html#adf682969c34f4b31a87dd92dd18ccea3">W25QXX_COMMAND_READ_STATUS_REG1</a>, 4,</div>
+<div class="line"><a id="l08319" name="l08319"></a><span class="lineno"> 8319</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l08320" name="l08320"></a><span class="lineno"> 8320</span>                                           0x00000000, 0x00, 0x00,</div>
+<div class="line"><a id="l08321" name="l08321"></a><span class="lineno"> 8321</span>                                           0, NULL, 0,</div>
+<div class="line"><a id="l08322" name="l08322"></a><span class="lineno"> 8322</span>                                          (uint8_t *)&amp;status, 1, 4);                                        <span class="comment">/* spi write read */</span></div>
+<div class="line"><a id="l08323" name="l08323"></a><span class="lineno"> 8323</span>            <span class="keywordflow">if</span> (res != 0)                                                                                   <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l08324" name="l08324"></a><span class="lineno"> 8324</span>            {</div>
+<div class="line"><a id="l08325" name="l08325"></a><span class="lineno"> 8325</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: page program failed.\n&quot;</span>);                                      <span class="comment">/* page program failed */</span></div>
+<div class="line"><a id="l08326" name="l08326"></a><span class="lineno"> 8326</span>               </div>
+<div class="line"><a id="l08327" name="l08327"></a><span class="lineno"> 8327</span>                <span class="keywordflow">return</span> 1;                                                                                   <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l08328" name="l08328"></a><span class="lineno"> 8328</span>            }</div>
+<div class="line"><a id="l08329" name="l08329"></a><span class="lineno"> 8329</span>            <span class="keywordflow">if</span> ((status &amp; 0x01) == 0x00)                                                                    <span class="comment">/* check status */</span></div>
+<div class="line"><a id="l08330" name="l08330"></a><span class="lineno"> 8330</span>            {</div>
+<div class="line"><a id="l08331" name="l08331"></a><span class="lineno"> 8331</span>                <span class="keywordflow">break</span>;                                                                                      <span class="comment">/* break */</span></div>
+<div class="line"><a id="l08332" name="l08332"></a><span class="lineno"> 8332</span>            }</div>
+<div class="line"><a id="l08333" name="l08333"></a><span class="lineno"> 8333</span>            timeout--;                                                                                      <span class="comment">/* timeout-- */</span></div>
+<div class="line"><a id="l08334" name="l08334"></a><span class="lineno"> 8334</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a97ffc4fce945527bd6ab25a3596caef7">delay_us</a>(10);                                                                           <span class="comment">/* delay 10 us */</span></div>
+<div class="line"><a id="l08335" name="l08335"></a><span class="lineno"> 8335</span>        }</div>
+<div class="line"><a id="l08336" name="l08336"></a><span class="lineno"> 8336</span>        <span class="keywordflow">if</span> (timeout == 0)</div>
+<div class="line"><a id="l08337" name="l08337"></a><span class="lineno"> 8337</span>        {</div>
+<div class="line"><a id="l08338" name="l08338"></a><span class="lineno"> 8338</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: page program timeout.\n&quot;</span>);                                         <span class="comment">/* page program timeout */</span></div>
+<div class="line"><a id="l08339" name="l08339"></a><span class="lineno"> 8339</span>           </div>
+<div class="line"><a id="l08340" name="l08340"></a><span class="lineno"> 8340</span>            <span class="keywordflow">return</span> 1;                                                                                       <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l08341" name="l08341"></a><span class="lineno"> 8341</span>        }</div>
+<div class="line"><a id="l08342" name="l08342"></a><span class="lineno"> 8342</span>    }</div>
+<div class="line"><a id="l08343" name="l08343"></a><span class="lineno"> 8343</span>    </div>
+<div class="line"><a id="l08344" name="l08344"></a><span class="lineno"> 8344</span>    <span class="keywordflow">return</span> 0;                                                                                               <span class="comment">/* success return 0 */</span></div>
+<div class="line"><a id="l08345" name="l08345"></a><span class="lineno"> 8345</span>}</div>
+<div class="line"><a id="l08346" name="l08346"></a><span class="lineno"> 8346</span> </div>
+<div class="line"><a id="l08358" name="l08358"></a><span class="lineno"> 8358</span><span class="keyword">static</span> uint8_t a_w25qxx_write_no_check(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint32_t len)</div>
+<div class="line"><a id="l08359" name="l08359"></a><span class="lineno"> 8359</span>{</div>
+<div class="line"><a id="l08360" name="l08360"></a><span class="lineno"> 8360</span>    uint8_t res;</div>
+<div class="line"><a id="l08361" name="l08361"></a><span class="lineno"> 8361</span>    uint16_t page_remain;</div>
+<div class="line"><a id="l08362" name="l08362"></a><span class="lineno"> 8362</span>    </div>
+<div class="line"><a id="l08363" name="l08363"></a><span class="lineno"> 8363</span>    page_remain = 256 - addr % 256;                                         <span class="comment">/* get remain */</span></div>
+<div class="line"><a id="l08364" name="l08364"></a><span class="lineno"> 8364</span>    <span class="keywordflow">if</span> (len &lt;= page_remain)                                                 <span class="comment">/* check length */</span></div>
+<div class="line"><a id="l08365" name="l08365"></a><span class="lineno"> 8365</span>    {</div>
+<div class="line"><a id="l08366" name="l08366"></a><span class="lineno"> 8366</span>        page_remain = (uint16_t)len;                                        <span class="comment">/* page remain */</span></div>
+<div class="line"><a id="l08367" name="l08367"></a><span class="lineno"> 8367</span>    }</div>
+<div class="line"><a id="l08368" name="l08368"></a><span class="lineno"> 8368</span>    <span class="keywordflow">while</span>( 1)                                                               <span class="comment">/* loop */</span></div>
+<div class="line"><a id="l08369" name="l08369"></a><span class="lineno"> 8369</span>    { </div>
+<div class="line"><a id="l08370" name="l08370"></a><span class="lineno"> 8370</span>        res = a_w25qxx_page_program(handle, addr, data, page_remain);       <span class="comment">/* page program */</span></div>
+<div class="line"><a id="l08371" name="l08371"></a><span class="lineno"> 8371</span>        <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l08372" name="l08372"></a><span class="lineno"> 8372</span>        {</div>
+<div class="line"><a id="l08373" name="l08373"></a><span class="lineno"> 8373</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: page program failed.\n&quot;</span>);          <span class="comment">/* page program failed */</span></div>
+<div class="line"><a id="l08374" name="l08374"></a><span class="lineno"> 8374</span>           </div>
+<div class="line"><a id="l08375" name="l08375"></a><span class="lineno"> 8375</span>            <span class="keywordflow">return</span> 1;                                                       <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l08376" name="l08376"></a><span class="lineno"> 8376</span>        }</div>
+<div class="line"><a id="l08377" name="l08377"></a><span class="lineno"> 8377</span>        <span class="keywordflow">if</span> (len == page_remain)                                             <span class="comment">/* check length */</span></div>
+<div class="line"><a id="l08378" name="l08378"></a><span class="lineno"> 8378</span>        {</div>
+<div class="line"><a id="l08379" name="l08379"></a><span class="lineno"> 8379</span>            <span class="keywordflow">break</span>;                                                          <span class="comment">/* break loop */</span></div>
+<div class="line"><a id="l08380" name="l08380"></a><span class="lineno"> 8380</span>        }</div>
+<div class="line"><a id="l08381" name="l08381"></a><span class="lineno"> 8381</span>        <span class="keywordflow">else</span></div>
+<div class="line"><a id="l08382" name="l08382"></a><span class="lineno"> 8382</span>        {</div>
+<div class="line"><a id="l08383" name="l08383"></a><span class="lineno"> 8383</span>            data += page_remain;                                            <span class="comment">/* data + page_remain */</span></div>
+<div class="line"><a id="l08384" name="l08384"></a><span class="lineno"> 8384</span>            addr += page_remain;                                            <span class="comment">/* address + page_remain */</span></div>
+<div class="line"><a id="l08385" name="l08385"></a><span class="lineno"> 8385</span>            len -= page_remain;                                             <span class="comment">/* length - page_remain */</span></div>
+<div class="line"><a id="l08386" name="l08386"></a><span class="lineno"> 8386</span>            <span class="keywordflow">if</span> (len &gt; 256)                                                  <span class="comment">/* check length */</span></div>
+<div class="line"><a id="l08387" name="l08387"></a><span class="lineno"> 8387</span>            {</div>
+<div class="line"><a id="l08388" name="l08388"></a><span class="lineno"> 8388</span>                page_remain = 256;                                          <span class="comment">/* set page remain */</span></div>
+<div class="line"><a id="l08389" name="l08389"></a><span class="lineno"> 8389</span>            }</div>
+<div class="line"><a id="l08390" name="l08390"></a><span class="lineno"> 8390</span>            <span class="keywordflow">else</span></div>
+<div class="line"><a id="l08391" name="l08391"></a><span class="lineno"> 8391</span>            {</div>
+<div class="line"><a id="l08392" name="l08392"></a><span class="lineno"> 8392</span>                page_remain = (uint16_t)len;                                <span class="comment">/* set length */</span></div>
+<div class="line"><a id="l08393" name="l08393"></a><span class="lineno"> 8393</span>            }</div>
+<div class="line"><a id="l08394" name="l08394"></a><span class="lineno"> 8394</span>        }</div>
+<div class="line"><a id="l08395" name="l08395"></a><span class="lineno"> 8395</span>    }</div>
+<div class="line"><a id="l08396" name="l08396"></a><span class="lineno"> 8396</span>    </div>
+<div class="line"><a id="l08397" name="l08397"></a><span class="lineno"> 8397</span>    <span class="keywordflow">return</span> 0;                                                               <span class="comment">/* success return 0 */</span></div>
+<div class="line"><a id="l08398" name="l08398"></a><span class="lineno"> 8398</span>}</div>
+<div class="line"><a id="l08399" name="l08399"></a><span class="lineno"> 8399</span> </div>
+<div class="foldopen" id="foldopen08415" data-start="{" data-end="}">
+<div class="line"><a id="l08415" name="l08415"></a><span class="lineno"><a class="line" href="group__w25qxx__basic__driver.html#gaaee8264d840e51460821cb6e609338ee"> 8415</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__basic__driver.html#gaaee8264d840e51460821cb6e609338ee">w25qxx_write</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint32_t len)</div>
+<div class="line"><a id="l08416" name="l08416"></a><span class="lineno"> 8416</span>{</div>
+<div class="line"><a id="l08417" name="l08417"></a><span class="lineno"> 8417</span>    uint8_t res;</div>
+<div class="line"><a id="l08418" name="l08418"></a><span class="lineno"> 8418</span>    uint32_t sec_pos;</div>
+<div class="line"><a id="l08419" name="l08419"></a><span class="lineno"> 8419</span>    uint32_t sec_off;</div>
+<div class="line"><a id="l08420" name="l08420"></a><span class="lineno"> 8420</span>    uint32_t sec_remain;</div>
+<div class="line"><a id="l08421" name="l08421"></a><span class="lineno"> 8421</span>    uint32_t i;</div>
+<div class="line"><a id="l08422" name="l08422"></a><span class="lineno"> 8422</span>    </div>
+<div class="line"><a id="l08423" name="l08423"></a><span class="lineno"> 8423</span>    <span class="keywordflow">if</span> (handle == NULL)                                                                        <span class="comment">/* check handle */</span></div>
+<div class="line"><a id="l08424" name="l08424"></a><span class="lineno"> 8424</span>    {</div>
+<div class="line"><a id="l08425" name="l08425"></a><span class="lineno"> 8425</span>        <span class="keywordflow">return</span> 2;                                                                              <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l08426" name="l08426"></a><span class="lineno"> 8426</span>    }   </div>
+<div class="line"><a id="l08427" name="l08427"></a><span class="lineno"> 8427</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">inited</a> != 1)                                                                   <span class="comment">/* check handle initialization */</span></div>
+<div class="line"><a id="l08428" name="l08428"></a><span class="lineno"> 8428</span>    {</div>
+<div class="line"><a id="l08429" name="l08429"></a><span class="lineno"> 8429</span>        <span class="keywordflow">return</span> 3;                                                                              <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l08430" name="l08430"></a><span class="lineno"> 8430</span>    }</div>
+<div class="line"><a id="l08431" name="l08431"></a><span class="lineno"> 8431</span> </div>
+<div class="line"><a id="l08432" name="l08432"></a><span class="lineno"> 8432</span>    sec_pos = addr / 4096;                                                                     <span class="comment">/* get sector position */</span></div>
+<div class="line"><a id="l08433" name="l08433"></a><span class="lineno"> 8433</span>    sec_off = addr % 4096;                                                                     <span class="comment">/* get sector offset */</span></div>
+<div class="line"><a id="l08434" name="l08434"></a><span class="lineno"> 8434</span>    sec_remain = 4096 - sec_off;                                                               <span class="comment">/* get sector remain */</span></div>
+<div class="line"><a id="l08435" name="l08435"></a><span class="lineno"> 8435</span>    <span class="keywordflow">if</span> (len &lt;= sec_remain)                                                                     <span class="comment">/* check length */</span></div>
+<div class="line"><a id="l08436" name="l08436"></a><span class="lineno"> 8436</span>    {</div>
+<div class="line"><a id="l08437" name="l08437"></a><span class="lineno"> 8437</span>        sec_remain = len;                                                                      <span class="comment">/* set remain */</span></div>
+<div class="line"><a id="l08438" name="l08438"></a><span class="lineno"> 8438</span>    }</div>
+<div class="line"><a id="l08439" name="l08439"></a><span class="lineno"> 8439</span>    <span class="keywordflow">while</span>(1)                                                                                   <span class="comment">/* loop */</span></div>
+<div class="line"><a id="l08440" name="l08440"></a><span class="lineno"> 8440</span>    {    </div>
+<div class="line"><a id="l08441" name="l08441"></a><span class="lineno"> 8441</span>        res = a_w25qxx_read(handle, sec_pos * 4096, handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#ac80aa2927adf500634749513e88c474b">buf_4k</a>, 4096);                     <span class="comment">/* read 4k data */</span></div>
+<div class="line"><a id="l08442" name="l08442"></a><span class="lineno"> 8442</span>        <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l08443" name="l08443"></a><span class="lineno"> 8443</span>        {</div>
+<div class="line"><a id="l08444" name="l08444"></a><span class="lineno"> 8444</span>            handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: read failed.\n&quot;</span>);                                     <span class="comment">/* read failed */</span></div>
+<div class="line"><a id="l08445" name="l08445"></a><span class="lineno"> 8445</span>           </div>
+<div class="line"><a id="l08446" name="l08446"></a><span class="lineno"> 8446</span>            <span class="keywordflow">return</span> 4;                                                                          <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l08447" name="l08447"></a><span class="lineno"> 8447</span>        }</div>
+<div class="line"><a id="l08448" name="l08448"></a><span class="lineno"> 8448</span>        <span class="keywordflow">for</span> (i = 0; i&lt; sec_remain; i++)                                                        <span class="comment">/* sec_remain length */</span></div>
+<div class="line"><a id="l08449" name="l08449"></a><span class="lineno"> 8449</span>        {</div>
+<div class="line"><a id="l08450" name="l08450"></a><span class="lineno"> 8450</span>            <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#ac80aa2927adf500634749513e88c474b">buf_4k</a>[sec_off + i] != 0xFF)                                           <span class="comment">/* check 0xFF */</span></div>
+<div class="line"><a id="l08451" name="l08451"></a><span class="lineno"> 8451</span>            {</div>
+<div class="line"><a id="l08452" name="l08452"></a><span class="lineno"> 8452</span>                <span class="keywordflow">break</span>;                                                                         <span class="comment">/* break loop */</span></div>
+<div class="line"><a id="l08453" name="l08453"></a><span class="lineno"> 8453</span>            }</div>
+<div class="line"><a id="l08454" name="l08454"></a><span class="lineno"> 8454</span>        }</div>
+<div class="line"><a id="l08455" name="l08455"></a><span class="lineno"> 8455</span>        <span class="keywordflow">if</span> (i &lt; sec_remain)                                                                    <span class="comment">/* not all is 0xFF */</span></div>
+<div class="line"><a id="l08456" name="l08456"></a><span class="lineno"> 8456</span>        {</div>
+<div class="line"><a id="l08457" name="l08457"></a><span class="lineno"> 8457</span>            res = a_w25qxx_erase_sector(handle, sec_pos * 4096);                               <span class="comment">/* erase sector */</span></div>
+<div class="line"><a id="l08458" name="l08458"></a><span class="lineno"> 8458</span>            <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l08459" name="l08459"></a><span class="lineno"> 8459</span>            {</div>
+<div class="line"><a id="l08460" name="l08460"></a><span class="lineno"> 8460</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: erase sector failed.\n&quot;</span>);                         <span class="comment">/* erase sector failed */</span></div>
+<div class="line"><a id="l08461" name="l08461"></a><span class="lineno"> 8461</span>               </div>
+<div class="line"><a id="l08462" name="l08462"></a><span class="lineno"> 8462</span>                <span class="keywordflow">return</span> 5;                                                                      <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l08463" name="l08463"></a><span class="lineno"> 8463</span>            }</div>
+<div class="line"><a id="l08464" name="l08464"></a><span class="lineno"> 8464</span>            <span class="keywordflow">for</span> (i = 0; i&lt;sec_remain; i++)                                                     <span class="comment">/* sec_remain length */</span></div>
+<div class="line"><a id="l08465" name="l08465"></a><span class="lineno"> 8465</span>            {</div>
+<div class="line"><a id="l08466" name="l08466"></a><span class="lineno"> 8466</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#ac80aa2927adf500634749513e88c474b">buf_4k</a>[i + sec_off] = data[i];                                         <span class="comment">/* copy data */</span></div>
+<div class="line"><a id="l08467" name="l08467"></a><span class="lineno"> 8467</span>            }</div>
+<div class="line"><a id="l08468" name="l08468"></a><span class="lineno"> 8468</span>            res = a_w25qxx_write_no_check(handle, sec_pos * 4096, handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#ac80aa2927adf500634749513e88c474b">buf_4k</a>, 4096);       <span class="comment">/* write data no check */</span></div>
+<div class="line"><a id="l08469" name="l08469"></a><span class="lineno"> 8469</span>            <span class="keywordflow">if</span> (res != 0)                                                                      <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l08470" name="l08470"></a><span class="lineno"> 8470</span>            {</div>
+<div class="line"><a id="l08471" name="l08471"></a><span class="lineno"> 8471</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write failed.\n&quot;</span>);                                <span class="comment">/* write failed */</span></div>
+<div class="line"><a id="l08472" name="l08472"></a><span class="lineno"> 8472</span>               </div>
+<div class="line"><a id="l08473" name="l08473"></a><span class="lineno"> 8473</span>                <span class="keywordflow">return</span> 1;                                                                      <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l08474" name="l08474"></a><span class="lineno"> 8474</span>            }</div>
+<div class="line"><a id="l08475" name="l08475"></a><span class="lineno"> 8475</span>        }</div>
+<div class="line"><a id="l08476" name="l08476"></a><span class="lineno"> 8476</span>        <span class="keywordflow">else</span></div>
+<div class="line"><a id="l08477" name="l08477"></a><span class="lineno"> 8477</span>        {</div>
+<div class="line"><a id="l08478" name="l08478"></a><span class="lineno"> 8478</span>            res = a_w25qxx_write_no_check(handle, addr, data, sec_remain);                     <span class="comment">/* write data */</span></div>
+<div class="line"><a id="l08479" name="l08479"></a><span class="lineno"> 8479</span>            <span class="keywordflow">if</span> (res != 0)                                                                      <span class="comment">/* check result */</span></div>
+<div class="line"><a id="l08480" name="l08480"></a><span class="lineno"> 8480</span>            {</div>
+<div class="line"><a id="l08481" name="l08481"></a><span class="lineno"> 8481</span>                handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>(<span class="stringliteral">&quot;w25qxx: write failed.\n&quot;</span>);                                <span class="comment">/* write failed */</span></div>
+<div class="line"><a id="l08482" name="l08482"></a><span class="lineno"> 8482</span>               </div>
+<div class="line"><a id="l08483" name="l08483"></a><span class="lineno"> 8483</span>                <span class="keywordflow">return</span> 1;                                                                      <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l08484" name="l08484"></a><span class="lineno"> 8484</span>            }</div>
+<div class="line"><a id="l08485" name="l08485"></a><span class="lineno"> 8485</span>        }    </div>
+<div class="line"><a id="l08486" name="l08486"></a><span class="lineno"> 8486</span>        <span class="keywordflow">if</span> (len == sec_remain)                                                                 <span class="comment">/* check length length*/</span></div>
+<div class="line"><a id="l08487" name="l08487"></a><span class="lineno"> 8487</span>        {</div>
+<div class="line"><a id="l08488" name="l08488"></a><span class="lineno"> 8488</span>            <span class="keywordflow">break</span>;                                                                             <span class="comment">/* break loop */</span></div>
+<div class="line"><a id="l08489" name="l08489"></a><span class="lineno"> 8489</span>        }</div>
+<div class="line"><a id="l08490" name="l08490"></a><span class="lineno"> 8490</span>        <span class="keywordflow">else</span></div>
+<div class="line"><a id="l08491" name="l08491"></a><span class="lineno"> 8491</span>        {</div>
+<div class="line"><a id="l08492" name="l08492"></a><span class="lineno"> 8492</span>            sec_pos++;                                                                         <span class="comment">/* sector++ */</span></div>
+<div class="line"><a id="l08493" name="l08493"></a><span class="lineno"> 8493</span>            sec_off = 0;                                                                       <span class="comment">/* set offset */</span></div>
+<div class="line"><a id="l08494" name="l08494"></a><span class="lineno"> 8494</span>            data += sec_remain;                                                                <span class="comment">/* data + remain */</span></div>
+<div class="line"><a id="l08495" name="l08495"></a><span class="lineno"> 8495</span>            addr += sec_remain;                                                                <span class="comment">/* addr + remain */</span></div>
+<div class="line"><a id="l08496" name="l08496"></a><span class="lineno"> 8496</span>            len -= sec_remain;                                                                 <span class="comment">/* len - remain */</span></div>
+<div class="line"><a id="l08497" name="l08497"></a><span class="lineno"> 8497</span>            <span class="keywordflow">if</span> (len &gt; 4096)                                                                    <span class="comment">/* check length */</span></div>
+<div class="line"><a id="l08498" name="l08498"></a><span class="lineno"> 8498</span>            {</div>
+<div class="line"><a id="l08499" name="l08499"></a><span class="lineno"> 8499</span>                sec_remain = 4096;                                                             <span class="comment">/* set 4096 */</span></div>
+<div class="line"><a id="l08500" name="l08500"></a><span class="lineno"> 8500</span>            }</div>
+<div class="line"><a id="l08501" name="l08501"></a><span class="lineno"> 8501</span>            <span class="keywordflow">else</span></div>
+<div class="line"><a id="l08502" name="l08502"></a><span class="lineno"> 8502</span>            {</div>
+<div class="line"><a id="l08503" name="l08503"></a><span class="lineno"> 8503</span>                sec_remain = len;                                                              <span class="comment">/* set length */</span></div>
+<div class="line"><a id="l08504" name="l08504"></a><span class="lineno"> 8504</span>            }</div>
+<div class="line"><a id="l08505" name="l08505"></a><span class="lineno"> 8505</span>        }</div>
+<div class="line"><a id="l08506" name="l08506"></a><span class="lineno"> 8506</span>    }</div>
+<div class="line"><a id="l08507" name="l08507"></a><span class="lineno"> 8507</span>    </div>
+<div class="line"><a id="l08508" name="l08508"></a><span class="lineno"> 8508</span>    <span class="keywordflow">return</span> 0;                                                                                  <span class="comment">/* success return 0 */</span></div>
+<div class="line"><a id="l08509" name="l08509"></a><span class="lineno"> 8509</span>}</div>
+</div>
+<div class="line"><a id="l08510" name="l08510"></a><span class="lineno"> 8510</span> </div>
+<div class="foldopen" id="foldopen08535" data-start="{" data-end="}">
+<div class="line"><a id="l08535" name="l08535"></a><span class="lineno"><a class="line" href="group__w25qxx__extern__driver.html#ga9623a3bec148b148498480518a66cb2b"> 8535</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__extern__driver.html#ga9623a3bec148b148498480518a66cb2b">w25qxx_write_read_reg</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint8_t instruction, uint8_t instruction_line,</div>
+<div class="line"><a id="l08536" name="l08536"></a><span class="lineno"> 8536</span>                              uint32_t address, uint8_t address_line, uint8_t address_len,</div>
+<div class="line"><a id="l08537" name="l08537"></a><span class="lineno"> 8537</span>                              uint32_t alternate, uint8_t alternate_line, uint8_t alternate_len,</div>
+<div class="line"><a id="l08538" name="l08538"></a><span class="lineno"> 8538</span>                              uint8_t dummy, uint8_t *in_buf, uint32_t in_len,</div>
+<div class="line"><a id="l08539" name="l08539"></a><span class="lineno"> 8539</span>                              uint8_t *out_buf, uint32_t out_len, uint8_t data_line)</div>
+<div class="line"><a id="l08540" name="l08540"></a><span class="lineno"> 8540</span>{</div>
+<div class="line"><a id="l08541" name="l08541"></a><span class="lineno"> 8541</span>    </div>
+<div class="line"><a id="l08542" name="l08542"></a><span class="lineno"> 8542</span>    <span class="keywordflow">if</span> (handle == NULL)                                                          <span class="comment">/* check handle */</span></div>
+<div class="line"><a id="l08543" name="l08543"></a><span class="lineno"> 8543</span>    {</div>
+<div class="line"><a id="l08544" name="l08544"></a><span class="lineno"> 8544</span>        <span class="keywordflow">return</span> 2;                                                                <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l08545" name="l08545"></a><span class="lineno"> 8545</span>    }   </div>
+<div class="line"><a id="l08546" name="l08546"></a><span class="lineno"> 8546</span>    <span class="keywordflow">if</span> (handle-&gt;<a class="code hl_variable" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">inited</a> != 1)                                                     <span class="comment">/* check handle initialization */</span></div>
+<div class="line"><a id="l08547" name="l08547"></a><span class="lineno"> 8547</span>    {</div>
+<div class="line"><a id="l08548" name="l08548"></a><span class="lineno"> 8548</span>        <span class="keywordflow">return</span> 3;                                                                <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l08549" name="l08549"></a><span class="lineno"> 8549</span>    }</div>
+<div class="line"><a id="l08550" name="l08550"></a><span class="lineno"> 8550</span>    </div>
+<div class="line"><a id="l08551" name="l08551"></a><span class="lineno"> 8551</span>    <span class="keywordflow">return</span> a_w25qxx_qspi_write_read(handle, instruction, instruction_line,</div>
+<div class="line"><a id="l08552" name="l08552"></a><span class="lineno"> 8552</span>                                    address, address_line, address_len,</div>
+<div class="line"><a id="l08553" name="l08553"></a><span class="lineno"> 8553</span>                                    alternate, alternate_line, alternate_len,</div>
+<div class="line"><a id="l08554" name="l08554"></a><span class="lineno"> 8554</span>                                    dummy, in_buf, in_len,</div>
+<div class="line"><a id="l08555" name="l08555"></a><span class="lineno"> 8555</span>                                    out_buf, out_len, data_line);                <span class="comment">/* write and read */</span></div>
+<div class="line"><a id="l08556" name="l08556"></a><span class="lineno"> 8556</span>}</div>
+</div>
+<div class="line"><a id="l08557" name="l08557"></a><span class="lineno"> 8557</span> </div>
+<div class="foldopen" id="foldopen08566" data-start="{" data-end="}">
+<div class="line"><a id="l08566" name="l08566"></a><span class="lineno"><a class="line" href="group__w25qxx__basic__driver.html#ga996e2d3009432e7f8c1a5175c4438a57"> 8566</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__basic__driver.html#ga996e2d3009432e7f8c1a5175c4438a57">w25qxx_info</a>(<a class="code hl_struct" href="structw25qxx__info__s.html">w25qxx_info_t</a> *info)</div>
+<div class="line"><a id="l08567" name="l08567"></a><span class="lineno"> 8567</span>{</div>
+<div class="line"><a id="l08568" name="l08568"></a><span class="lineno"> 8568</span>    <span class="keywordflow">if</span> (info == NULL)                                               <span class="comment">/* check handle */</span></div>
+<div class="line"><a id="l08569" name="l08569"></a><span class="lineno"> 8569</span>    {</div>
+<div class="line"><a id="l08570" name="l08570"></a><span class="lineno"> 8570</span>        <span class="keywordflow">return</span> 2;                                                   <span class="comment">/* return error */</span></div>
+<div class="line"><a id="l08571" name="l08571"></a><span class="lineno"> 8571</span>    }</div>
+<div class="line"><a id="l08572" name="l08572"></a><span class="lineno"> 8572</span>    </div>
+<div class="line"><a id="l08573" name="l08573"></a><span class="lineno"> 8573</span>    memset(info, 0, <span class="keyword">sizeof</span>(<a class="code hl_struct" href="structw25qxx__info__s.html">w25qxx_info_t</a>));                         <span class="comment">/* initialize w25qxx info structure */</span></div>
+<div class="line"><a id="l08574" name="l08574"></a><span class="lineno"> 8574</span>    strncpy(info-&gt;<a class="code hl_variable" href="structw25qxx__info__s.html#af890958c72bd715cc6454a10dc846ae6">chip_name</a>, <a class="code hl_define" href="driver__w25qxx_8c.html#adc9da0a24824ca1239b593f6459b3954">CHIP_NAME</a>, 32);                        <span class="comment">/* copy chip name */</span></div>
+<div class="line"><a id="l08575" name="l08575"></a><span class="lineno"> 8575</span>    strncpy(info-&gt;<a class="code hl_variable" href="structw25qxx__info__s.html#ad25285dbf810c90f8eaf3fcef6f2b2ea">manufacturer_name</a>, <a class="code hl_define" href="driver__w25qxx_8c.html#aaa2b8f5b105c3019df0cb346f472e803">MANUFACTURER_NAME</a>, 32);        <span class="comment">/* copy manufacturer name */</span></div>
+<div class="line"><a id="l08576" name="l08576"></a><span class="lineno"> 8576</span>    strncpy(info-&gt;<a class="code hl_variable" href="structw25qxx__info__s.html#a5778305279cae46b2ecf862e97f73600">interface</a>, <span class="stringliteral">&quot;SPI QSPI&quot;</span>, 16);                       <span class="comment">/* copy interface name */</span></div>
+<div class="line"><a id="l08577" name="l08577"></a><span class="lineno"> 8577</span>    info-&gt;<a class="code hl_variable" href="structw25qxx__info__s.html#ad8bde6ddadaf43d951e62f3befb9d35a">supply_voltage_min_v</a> = <a class="code hl_define" href="driver__w25qxx_8c.html#aac8d8cbd899667d609787ef4cf37054d">SUPPLY_VOLTAGE_MIN</a>;                <span class="comment">/* set minimal supply voltage */</span></div>
+<div class="line"><a id="l08578" name="l08578"></a><span class="lineno"> 8578</span>    info-&gt;<a class="code hl_variable" href="structw25qxx__info__s.html#a3d2b12bcac7a85ea8646bff9debe8660">supply_voltage_max_v</a> = <a class="code hl_define" href="driver__w25qxx_8c.html#a68eba8b601afe11f1b871d944976c035">SUPPLY_VOLTAGE_MAX</a>;                <span class="comment">/* set maximum supply voltage */</span></div>
+<div class="line"><a id="l08579" name="l08579"></a><span class="lineno"> 8579</span>    info-&gt;<a class="code hl_variable" href="structw25qxx__info__s.html#a9db82802561bf22d799b03a345f1d1dc">max_current_ma</a> = <a class="code hl_define" href="driver__w25qxx_8c.html#a2989837a37d6d63b59c6dd541b785435">MAX_CURRENT</a>;                             <span class="comment">/* set maximum current */</span></div>
+<div class="line"><a id="l08580" name="l08580"></a><span class="lineno"> 8580</span>    info-&gt;<a class="code hl_variable" href="structw25qxx__info__s.html#a3366a5dce9b829e03c3d321c2b4df3f6">temperature_max</a> = <a class="code hl_define" href="driver__w25qxx_8c.html#a90c0b20d54005712fcc8cb01281360e9">TEMPERATURE_MAX</a>;                        <span class="comment">/* set minimal temperature */</span></div>
+<div class="line"><a id="l08581" name="l08581"></a><span class="lineno"> 8581</span>    info-&gt;<a class="code hl_variable" href="structw25qxx__info__s.html#a8f9dbe66ac0b66ebae0a36fcb4ba368e">temperature_min</a> = <a class="code hl_define" href="driver__w25qxx_8c.html#aab353db5bf4eb787f86a2080f609a551">TEMPERATURE_MIN</a>;                        <span class="comment">/* set maximum temperature */</span></div>
+<div class="line"><a id="l08582" name="l08582"></a><span class="lineno"> 8582</span>    info-&gt;<a class="code hl_variable" href="structw25qxx__info__s.html#a41b0bd442708b70d252c50b92c75265a">driver_version</a> = <a class="code hl_define" href="driver__w25qxx_8c.html#ae578001fe043b4cca7a0edd801cfe9c4">DRIVER_VERSION</a>;                          <span class="comment">/* set driver version */</span></div>
+<div class="line"><a id="l08583" name="l08583"></a><span class="lineno"> 8583</span>    </div>
+<div class="line"><a id="l08584" name="l08584"></a><span class="lineno"> 8584</span>    <span class="keywordflow">return</span> 0;                                                       <span class="comment">/* success return 0 */</span></div>
+<div class="line"><a id="l08585" name="l08585"></a><span class="lineno"> 8585</span>}</div>
+</div>
+<div class="ttc" id="adriver__w25qxx_8c_html_a052d5373086b473bf0d450ea1bd73828"><div class="ttname"><a href="driver__w25qxx_8c.html#a052d5373086b473bf0d450ea1bd73828">W25QXX_COMMAND_ENTER_QSPI_MODE</a></div><div class="ttdeci">#define W25QXX_COMMAND_ENTER_QSPI_MODE</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l00072">driver_w25qxx.c:72</a></div></div>
+<div class="ttc" id="adriver__w25qxx_8c_html_a09798bdb3fabdf7bb4cfd8bce18100ce"><div class="ttname"><a href="driver__w25qxx_8c.html#a09798bdb3fabdf7bb4cfd8bce18100ce">W25QXX_COMMAND_READ_STATUS_REG3</a></div><div class="ttdeci">#define W25QXX_COMMAND_READ_STATUS_REG3</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l00059">driver_w25qxx.c:59</a></div></div>
+<div class="ttc" id="adriver__w25qxx_8c_html_a0daeb46fb8b219a3d6b37d426c5c0e95"><div class="ttname"><a href="driver__w25qxx_8c.html#a0daeb46fb8b219a3d6b37d426c5c0e95">W25QXX_COMMAND_ERASE_PROGRAM_RESUME</a></div><div class="ttdeci">#define W25QXX_COMMAND_ERASE_PROGRAM_RESUME</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l00065">driver_w25qxx.c:65</a></div></div>
+<div class="ttc" id="adriver__w25qxx_8c_html_a19e055bec30de0ad30e7f8ab5feea6a8"><div class="ttname"><a href="driver__w25qxx_8c.html#a19e055bec30de0ad30e7f8ab5feea6a8">W25QXX_COMMAND_READ_BLOCK_LOCK</a></div><div class="ttdeci">#define W25QXX_COMMAND_READ_BLOCK_LOCK</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l00091">driver_w25qxx.c:91</a></div></div>
+<div class="ttc" id="adriver__w25qxx_8c_html_a2232ada3558228c2902d654989ca65f1"><div class="ttname"><a href="driver__w25qxx_8c.html#a2232ada3558228c2902d654989ca65f1">W25QXX_COMMAND_FAST_READ_DUAL_IO</a></div><div class="ttdeci">#define W25QXX_COMMAND_FAST_READ_DUAL_IO</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l00092">driver_w25qxx.c:92</a></div></div>
+<div class="ttc" id="adriver__w25qxx_8c_html_a23fcd6d9b067580d534d626c43b7cff3"><div class="ttname"><a href="driver__w25qxx_8c.html#a23fcd6d9b067580d534d626c43b7cff3">W25QXX_COMMAND_READ_DATA</a></div><div class="ttdeci">#define W25QXX_COMMAND_READ_DATA</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l00081">driver_w25qxx.c:81</a></div></div>
+<div class="ttc" id="adriver__w25qxx_8c_html_a2989837a37d6d63b59c6dd541b785435"><div class="ttname"><a href="driver__w25qxx_8c.html#a2989837a37d6d63b59c6dd541b785435">MAX_CURRENT</a></div><div class="ttdeci">#define MAX_CURRENT</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l00046">driver_w25qxx.c:46</a></div></div>
+<div class="ttc" id="adriver__w25qxx_8c_html_a328f6a9635b1ec6868410375de90b0df"><div class="ttname"><a href="driver__w25qxx_8c.html#a328f6a9635b1ec6868410375de90b0df">W25QXX_COMMAND_INDIVIDUAL_BLOCK_LOCK</a></div><div class="ttdeci">#define W25QXX_COMMAND_INDIVIDUAL_BLOCK_LOCK</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l00089">driver_w25qxx.c:89</a></div></div>
+<div class="ttc" id="adriver__w25qxx_8c_html_a36dfb1951fe152d63e3715a161646713"><div class="ttname"><a href="driver__w25qxx_8c.html#a36dfb1951fe152d63e3715a161646713">W25QXX_COMMAND_WRITE_DISABLE</a></div><div class="ttdeci">#define W25QXX_COMMAND_WRITE_DISABLE</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l00056">driver_w25qxx.c:56</a></div></div>
+<div class="ttc" id="adriver__w25qxx_8c_html_a374c09f79cc61a3e7ac374bca5122e25"><div class="ttname"><a href="driver__w25qxx_8c.html#a374c09f79cc61a3e7ac374bca5122e25">W25QXX_COMMAND_DEVICE_ID_DUAL_IO</a></div><div class="ttdeci">#define W25QXX_COMMAND_DEVICE_ID_DUAL_IO</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l00093">driver_w25qxx.c:93</a></div></div>
+<div class="ttc" id="adriver__w25qxx_8c_html_a3cc8b61583b5eb9d7c1ecd6831689718"><div class="ttname"><a href="driver__w25qxx_8c.html#a3cc8b61583b5eb9d7c1ecd6831689718">W25QXX_COMMAND_INDIVIDUAL_BLOCK_UNLOCK</a></div><div class="ttdeci">#define W25QXX_COMMAND_INDIVIDUAL_BLOCK_UNLOCK</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l00090">driver_w25qxx.c:90</a></div></div>
+<div class="ttc" id="adriver__w25qxx_8c_html_a43f9a1e3c03d4a7d2a991e81f0e89f51"><div class="ttname"><a href="driver__w25qxx_8c.html#a43f9a1e3c03d4a7d2a991e81f0e89f51">W25QXX_COMMAND_ERASE_PROGRAM_SUSPEND</a></div><div class="ttdeci">#define W25QXX_COMMAND_ERASE_PROGRAM_SUSPEND</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l00064">driver_w25qxx.c:64</a></div></div>
+<div class="ttc" id="adriver__w25qxx_8c_html_a4a8cdc5b6ce75029df877263bdf35f2a"><div class="ttname"><a href="driver__w25qxx_8c.html#a4a8cdc5b6ce75029df877263bdf35f2a">W25QXX_COMMAND_READ_STATUS_REG2</a></div><div class="ttdeci">#define W25QXX_COMMAND_READ_STATUS_REG2</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l00058">driver_w25qxx.c:58</a></div></div>
+<div class="ttc" id="adriver__w25qxx_8c_html_a4be10ed873d56bb183d9b1bde9105135"><div class="ttname"><a href="driver__w25qxx_8c.html#a4be10ed873d56bb183d9b1bde9105135">W25QXX_COMMAND_WRITE_STATUS_REG2</a></div><div class="ttdeci">#define W25QXX_COMMAND_WRITE_STATUS_REG2</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l00061">driver_w25qxx.c:61</a></div></div>
+<div class="ttc" id="adriver__w25qxx_8c_html_a4c5a1ed46f4d662a61bc06573ab548a0"><div class="ttname"><a href="driver__w25qxx_8c.html#a4c5a1ed46f4d662a61bc06573ab548a0">W25QXX_COMMAND_BLOCK_ERASE_64K</a></div><div class="ttdeci">#define W25QXX_COMMAND_BLOCK_ERASE_64K</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l00080">driver_w25qxx.c:80</a></div></div>
+<div class="ttc" id="adriver__w25qxx_8c_html_a4dc5fb2c3c15ef86df56b534b874a919"><div class="ttname"><a href="driver__w25qxx_8c.html#a4dc5fb2c3c15ef86df56b534b874a919">W25QXX_COMMAND_READ_SECURITY_REGISTER</a></div><div class="ttdeci">#define W25QXX_COMMAND_READ_SECURITY_REGISTER</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l00088">driver_w25qxx.c:88</a></div></div>
+<div class="ttc" id="adriver__w25qxx_8c_html_a54ddb3d948c4bb95cc62199676c817b2"><div class="ttname"><a href="driver__w25qxx_8c.html#a54ddb3d948c4bb95cc62199676c817b2">W25QXX_COMMAND_FAST_READ_QUAD_OUTPUT</a></div><div class="ttdeci">#define W25QXX_COMMAND_FAST_READ_QUAD_OUTPUT</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l00084">driver_w25qxx.c:84</a></div></div>
+<div class="ttc" id="adriver__w25qxx_8c_html_a54f3ece548cd5eadc94642235442315a"><div class="ttname"><a href="driver__w25qxx_8c.html#a54f3ece548cd5eadc94642235442315a">W25QXX_COMMAND_JEDEC_ID</a></div><div class="ttdeci">#define W25QXX_COMMAND_JEDEC_ID</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l00069">driver_w25qxx.c:69</a></div></div>
+<div class="ttc" id="adriver__w25qxx_8c_html_a63774c5ebbdf5445466d840fad567bf6"><div class="ttname"><a href="driver__w25qxx_8c.html#a63774c5ebbdf5445466d840fad567bf6">W25QXX_COMMAND_READ_SFDP_REGISTER</a></div><div class="ttdeci">#define W25QXX_COMMAND_READ_SFDP_REGISTER</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l00085">driver_w25qxx.c:85</a></div></div>
+<div class="ttc" id="adriver__w25qxx_8c_html_a63ec9ecd709fcb69107756f253616a6e"><div class="ttname"><a href="driver__w25qxx_8c.html#a63ec9ecd709fcb69107756f253616a6e">W25QXX_COMMAND_CHIP_ERASE</a></div><div class="ttdeci">#define W25QXX_COMMAND_CHIP_ERASE</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l00063">driver_w25qxx.c:63</a></div></div>
+<div class="ttc" id="adriver__w25qxx_8c_html_a68eba8b601afe11f1b871d944976c035"><div class="ttname"><a href="driver__w25qxx_8c.html#a68eba8b601afe11f1b871d944976c035">SUPPLY_VOLTAGE_MAX</a></div><div class="ttdeci">#define SUPPLY_VOLTAGE_MAX</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l00045">driver_w25qxx.c:45</a></div></div>
+<div class="ttc" id="adriver__w25qxx_8c_html_a6aeed0a651b31064f25ab2f57fdacf2f"><div class="ttname"><a href="driver__w25qxx_8c.html#a6aeed0a651b31064f25ab2f57fdacf2f">W25QXX_COMMAND_READ_UNIQUE_ID</a></div><div class="ttdeci">#define W25QXX_COMMAND_READ_UNIQUE_ID</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l00075">driver_w25qxx.c:75</a></div></div>
+<div class="ttc" id="adriver__w25qxx_8c_html_a6d099dc6afb59cc950d3abe96b840158"><div class="ttname"><a href="driver__w25qxx_8c.html#a6d099dc6afb59cc950d3abe96b840158">W25QXX_COMMAND_WRITE_STATUS_REG3</a></div><div class="ttdeci">#define W25QXX_COMMAND_WRITE_STATUS_REG3</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l00062">driver_w25qxx.c:62</a></div></div>
+<div class="ttc" id="adriver__w25qxx_8c_html_a6dae3a832abc19d1861fafb32f231d94"><div class="ttname"><a href="driver__w25qxx_8c.html#a6dae3a832abc19d1861fafb32f231d94">W25QXX_COMMAND_ENABLE_RESET</a></div><div class="ttdeci">#define W25QXX_COMMAND_ENABLE_RESET</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l00073">driver_w25qxx.c:73</a></div></div>
+<div class="ttc" id="adriver__w25qxx_8c_html_a6e7cd159f91e23930450725fd6910f9c"><div class="ttname"><a href="driver__w25qxx_8c.html#a6e7cd159f91e23930450725fd6910f9c">W25QXX_COMMAND_SECTOR_ERASE_4K</a></div><div class="ttdeci">#define W25QXX_COMMAND_SECTOR_ERASE_4K</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l00078">driver_w25qxx.c:78</a></div></div>
+<div class="ttc" id="adriver__w25qxx_8c_html_a6fe4d603e33b7c8b8310a884e02a130b"><div class="ttname"><a href="driver__w25qxx_8c.html#a6fe4d603e33b7c8b8310a884e02a130b">W25QXX_COMMAND_POWER_DOWN</a></div><div class="ttdeci">#define W25QXX_COMMAND_POWER_DOWN</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l00066">driver_w25qxx.c:66</a></div></div>
+<div class="ttc" id="adriver__w25qxx_8c_html_a7573bc250d850078be3221c29521bc5c"><div class="ttname"><a href="driver__w25qxx_8c.html#a7573bc250d850078be3221c29521bc5c">W25QXX_COMMAND_DEVICE_ID_QUAD_IO</a></div><div class="ttdeci">#define W25QXX_COMMAND_DEVICE_ID_QUAD_IO</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l00098">driver_w25qxx.c:98</a></div></div>
+<div class="ttc" id="adriver__w25qxx_8c_html_a7c9e980e30f499dd97b02935c91f2c02"><div class="ttname"><a href="driver__w25qxx_8c.html#a7c9e980e30f499dd97b02935c91f2c02">W25QXX_COMMAND_VOLATILE_SR_WRITE_ENABLE</a></div><div class="ttdeci">#define W25QXX_COMMAND_VOLATILE_SR_WRITE_ENABLE</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l00055">driver_w25qxx.c:55</a></div></div>
+<div class="ttc" id="adriver__w25qxx_8c_html_a80d19998d9d1218d0fa69e7d4d6b0ecb"><div class="ttname"><a href="driver__w25qxx_8c.html#a80d19998d9d1218d0fa69e7d4d6b0ecb">W25QXX_COMMAND_FAST_READ_QUAD_IO</a></div><div class="ttdeci">#define W25QXX_COMMAND_FAST_READ_QUAD_IO</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l00095">driver_w25qxx.c:95</a></div></div>
+<div class="ttc" id="adriver__w25qxx_8c_html_a8212fac3d1e43024621b6b560a8dddfe"><div class="ttname"><a href="driver__w25qxx_8c.html#a8212fac3d1e43024621b6b560a8dddfe">W25QXX_COMMAND_QUAD_PAGE_PROGRAM</a></div><div class="ttdeci">#define W25QXX_COMMAND_QUAD_PAGE_PROGRAM</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l00077">driver_w25qxx.c:77</a></div></div>
+<div class="ttc" id="adriver__w25qxx_8c_html_a842f8d646fc8f8ed72422fc1d789498c"><div class="ttname"><a href="driver__w25qxx_8c.html#a842f8d646fc8f8ed72422fc1d789498c">W25QXX_COMMAND_ERASE_SECURITY_REGISTER</a></div><div class="ttdeci">#define W25QXX_COMMAND_ERASE_SECURITY_REGISTER</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l00086">driver_w25qxx.c:86</a></div></div>
+<div class="ttc" id="adriver__w25qxx_8c_html_a8bfb4e869985f5fa21ea7d1d262f90ad"><div class="ttname"><a href="driver__w25qxx_8c.html#a8bfb4e869985f5fa21ea7d1d262f90ad">W25QXX_COMMAND_BLOCK_ERASE_32K</a></div><div class="ttdeci">#define W25QXX_COMMAND_BLOCK_ERASE_32K</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l00079">driver_w25qxx.c:79</a></div></div>
+<div class="ttc" id="adriver__w25qxx_8c_html_a8d49efa8b978ae8fd3eb18d0e5ae73e8"><div class="ttname"><a href="driver__w25qxx_8c.html#a8d49efa8b978ae8fd3eb18d0e5ae73e8">W25QXX_COMMAND_FAST_READ_DUAL_OUTPUT</a></div><div class="ttdeci">#define W25QXX_COMMAND_FAST_READ_DUAL_OUTPUT</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l00083">driver_w25qxx.c:83</a></div></div>
+<div class="ttc" id="adriver__w25qxx_8c_html_a90c0b20d54005712fcc8cb01281360e9"><div class="ttname"><a href="driver__w25qxx_8c.html#a90c0b20d54005712fcc8cb01281360e9">TEMPERATURE_MAX</a></div><div class="ttdeci">#define TEMPERATURE_MAX</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l00048">driver_w25qxx.c:48</a></div></div>
+<div class="ttc" id="adriver__w25qxx_8c_html_a915ab53f5f2d1cad6b954205e76cb4d5"><div class="ttname"><a href="driver__w25qxx_8c.html#a915ab53f5f2d1cad6b954205e76cb4d5">W25QXX_COMMAND_PROGRAM_SECURITY_REGISTER</a></div><div class="ttdeci">#define W25QXX_COMMAND_PROGRAM_SECURITY_REGISTER</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l00087">driver_w25qxx.c:87</a></div></div>
+<div class="ttc" id="adriver__w25qxx_8c_html_a932f54ff92de8bbab4602ab85ac6c155"><div class="ttname"><a href="driver__w25qxx_8c.html#a932f54ff92de8bbab4602ab85ac6c155">W25QXX_COMMAND_WRITE_STATUS_REG1</a></div><div class="ttdeci">#define W25QXX_COMMAND_WRITE_STATUS_REG1</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l00060">driver_w25qxx.c:60</a></div></div>
+<div class="ttc" id="adriver__w25qxx_8c_html_a947382a74ac06eb8a2ff8f5bcb1b744d"><div class="ttname"><a href="driver__w25qxx_8c.html#a947382a74ac06eb8a2ff8f5bcb1b744d">W25QXX_COMMAND_WORD_READ_QUAD_IO</a></div><div class="ttdeci">#define W25QXX_COMMAND_WORD_READ_QUAD_IO</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l00096">driver_w25qxx.c:96</a></div></div>
+<div class="ttc" id="adriver__w25qxx_8c_html_aaa2b8f5b105c3019df0cb346f472e803"><div class="ttname"><a href="driver__w25qxx_8c.html#aaa2b8f5b105c3019df0cb346f472e803">MANUFACTURER_NAME</a></div><div class="ttdeci">#define MANUFACTURER_NAME</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l00043">driver_w25qxx.c:43</a></div></div>
+<div class="ttc" id="adriver__w25qxx_8c_html_aab353db5bf4eb787f86a2080f609a551"><div class="ttname"><a href="driver__w25qxx_8c.html#aab353db5bf4eb787f86a2080f609a551">TEMPERATURE_MIN</a></div><div class="ttdeci">#define TEMPERATURE_MIN</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l00047">driver_w25qxx.c:47</a></div></div>
+<div class="ttc" id="adriver__w25qxx_8c_html_aac8d8cbd899667d609787ef4cf37054d"><div class="ttname"><a href="driver__w25qxx_8c.html#aac8d8cbd899667d609787ef4cf37054d">SUPPLY_VOLTAGE_MIN</a></div><div class="ttdeci">#define SUPPLY_VOLTAGE_MIN</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l00044">driver_w25qxx.c:44</a></div></div>
+<div class="ttc" id="adriver__w25qxx_8c_html_ab25182298c921c8f7f42216e0d5aa56b"><div class="ttname"><a href="driver__w25qxx_8c.html#ab25182298c921c8f7f42216e0d5aa56b">W25QXX_COMMAND_RESET_DEVICE</a></div><div class="ttdeci">#define W25QXX_COMMAND_RESET_DEVICE</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l00074">driver_w25qxx.c:74</a></div></div>
+<div class="ttc" id="adriver__w25qxx_8c_html_ab96d2ad8602a5a50c988b8c09d4bbbc5"><div class="ttname"><a href="driver__w25qxx_8c.html#ab96d2ad8602a5a50c988b8c09d4bbbc5">W25QXX_COMMAND_GLOBAL_BLOCK_SECTOR_UNLOCK</a></div><div class="ttdeci">#define W25QXX_COMMAND_GLOBAL_BLOCK_SECTOR_UNLOCK</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l00071">driver_w25qxx.c:71</a></div></div>
+<div class="ttc" id="adriver__w25qxx_8c_html_ac957b31a68db8c14f88a196a98b0aa18"><div class="ttname"><a href="driver__w25qxx_8c.html#ac957b31a68db8c14f88a196a98b0aa18">W25QXX_COMMAND_FAST_READ</a></div><div class="ttdeci">#define W25QXX_COMMAND_FAST_READ</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l00082">driver_w25qxx.c:82</a></div></div>
+<div class="ttc" id="adriver__w25qxx_8c_html_acb7f8599b26c29356651690ec9b25e66"><div class="ttname"><a href="driver__w25qxx_8c.html#acb7f8599b26c29356651690ec9b25e66">W25QXX_COMMAND_OCTAL_WORD_READ_QUAD_IO</a></div><div class="ttdeci">#define W25QXX_COMMAND_OCTAL_WORD_READ_QUAD_IO</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l00097">driver_w25qxx.c:97</a></div></div>
+<div class="ttc" id="adriver__w25qxx_8c_html_acfb19490258b26729fa83fdd60c4d822"><div class="ttname"><a href="driver__w25qxx_8c.html#acfb19490258b26729fa83fdd60c4d822">W25QXX_COMMAND_SET_BURST_WITH_WRAP</a></div><div class="ttdeci">#define W25QXX_COMMAND_SET_BURST_WITH_WRAP</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l00094">driver_w25qxx.c:94</a></div></div>
+<div class="ttc" id="adriver__w25qxx_8c_html_ad344065461b2c71521017984f040b425"><div class="ttname"><a href="driver__w25qxx_8c.html#ad344065461b2c71521017984f040b425">W25QXX_COMMAND_RELEASE_POWER_DOWN</a></div><div class="ttdeci">#define W25QXX_COMMAND_RELEASE_POWER_DOWN</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l00067">driver_w25qxx.c:67</a></div></div>
+<div class="ttc" id="adriver__w25qxx_8c_html_adc9da0a24824ca1239b593f6459b3954"><div class="ttname"><a href="driver__w25qxx_8c.html#adc9da0a24824ca1239b593f6459b3954">CHIP_NAME</a></div><div class="ttdeci">#define CHIP_NAME</div><div class="ttdoc">chip information definition</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l00042">driver_w25qxx.c:42</a></div></div>
+<div class="ttc" id="adriver__w25qxx_8c_html_adf682969c34f4b31a87dd92dd18ccea3"><div class="ttname"><a href="driver__w25qxx_8c.html#adf682969c34f4b31a87dd92dd18ccea3">W25QXX_COMMAND_READ_STATUS_REG1</a></div><div class="ttdeci">#define W25QXX_COMMAND_READ_STATUS_REG1</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l00057">driver_w25qxx.c:57</a></div></div>
+<div class="ttc" id="adriver__w25qxx_8c_html_ae578001fe043b4cca7a0edd801cfe9c4"><div class="ttname"><a href="driver__w25qxx_8c.html#ae578001fe043b4cca7a0edd801cfe9c4">DRIVER_VERSION</a></div><div class="ttdeci">#define DRIVER_VERSION</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l00049">driver_w25qxx.c:49</a></div></div>
+<div class="ttc" id="adriver__w25qxx_8c_html_aebca01f1f7fd279523d29e579998574a"><div class="ttname"><a href="driver__w25qxx_8c.html#aebca01f1f7fd279523d29e579998574a">W25QXX_COMMAND_PAGE_PROGRAM</a></div><div class="ttdeci">#define W25QXX_COMMAND_PAGE_PROGRAM</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l00076">driver_w25qxx.c:76</a></div></div>
+<div class="ttc" id="adriver__w25qxx_8c_html_af0708c46377cfee2dff1ff429d8675d5"><div class="ttname"><a href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">W25QXX_COMMAND_WRITE_ENABLE</a></div><div class="ttdeci">#define W25QXX_COMMAND_WRITE_ENABLE</div><div class="ttdoc">chip command definition</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l00054">driver_w25qxx.c:54</a></div></div>
+<div class="ttc" id="adriver__w25qxx_8c_html_af6d9a5bc0b57b041e22af80b85e53f56"><div class="ttname"><a href="driver__w25qxx_8c.html#af6d9a5bc0b57b041e22af80b85e53f56">W25QXX_COMMAND_READ_MANUFACTURER</a></div><div class="ttdeci">#define W25QXX_COMMAND_READ_MANUFACTURER</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l00068">driver_w25qxx.c:68</a></div></div>
+<div class="ttc" id="adriver__w25qxx_8c_html_af81bc9ddfc8da8eb911435e835536ffb"><div class="ttname"><a href="driver__w25qxx_8c.html#af81bc9ddfc8da8eb911435e835536ffb">W25QXX_COMMAND_GLOBAL_BLOCK_SECTOR_LOCK</a></div><div class="ttdeci">#define W25QXX_COMMAND_GLOBAL_BLOCK_SECTOR_LOCK</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l00070">driver_w25qxx.c:70</a></div></div>
 <div class="ttc" id="adriver__w25qxx_8h_html"><div class="ttname"><a href="driver__w25qxx_8h.html">driver_w25qxx.h</a></div><div class="ttdoc">driver w25qxx header file</div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga05c69ac66309544eba4ff38a69f24c00"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga05c69ac66309544eba4ff38a69f24c00">w25qxx_erase_program_resume</a></div><div class="ttdeci">uint8_t w25qxx_erase_program_resume(w25qxx_handle_t *handle)</div><div class="ttdoc">resume erase or program</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l01722">driver_w25qxx.c:1722</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga0f8889d6a25c32e150a2ab30753d461d"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga0f8889d6a25c32e150a2ab30753d461d">w25qxx_enable_volatile_sr_write</a></div><div class="ttdeci">uint8_t w25qxx_enable_volatile_sr_write(w25qxx_handle_t *handle)</div><div class="ttdoc">enable volatile sr writing</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l00501">driver_w25qxx.c:501</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga11af244389478de68a6777076ee82d69"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga11af244389478de68a6777076ee82d69">w25qxx_get_unique_id</a></div><div class="ttdeci">uint8_t w25qxx_get_unique_id(w25qxx_handle_t *handle, uint8_t id[8])</div><div class="ttdoc">get the unique id</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l02764">driver_w25qxx.c:2764</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga1cd3aec1bdeabbaed5f049fbf83ceeb4"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga1cd3aec1bdeabbaed5f049fbf83ceeb4">w25qxx_get_manufacturer_device_id_dual_io</a></div><div class="ttdeci">uint8_t w25qxx_get_manufacturer_device_id_dual_io(w25qxx_handle_t *handle, uint8_t *manufacturer, uint8_t *device_id)</div><div class="ttdoc">get the manufacturer &amp;&amp; device id information with dual io</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l02038">driver_w25qxx.c:2038</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga1f80bbbaaa852eecfffb87737889363d"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga1f80bbbaaa852eecfffb87737889363d">w25qxx_page_program_quad_input</a></div><div class="ttdeci">uint8_t w25qxx_page_program_quad_input(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint16_t len)</div><div class="ttdoc">quad page program with quad input</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l04920">driver_w25qxx.c:4920</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga244a91b9c0c32e899ca89e1943045624"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga244a91b9c0c32e899ca89e1943045624">w25qxx_get_sfdp</a></div><div class="ttdeci">uint8_t w25qxx_get_sfdp(w25qxx_handle_t *handle, uint8_t sfdp[256])</div><div class="ttdoc">get the sfdp</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l02880">driver_w25qxx.c:2880</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga246e0bb07c8bbb39731f17906779c012"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga246e0bb07c8bbb39731f17906779c012">w25qxx_set_status1</a></div><div class="ttdeci">uint8_t w25qxx_set_status1(w25qxx_handle_t *handle, uint8_t status)</div><div class="ttdoc">set the status 1</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l00863">driver_w25qxx.c:863</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga2abebfe2a8d9377eb88448ffca73f222"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga2abebfe2a8d9377eb88448ffca73f222">w25qxx_reset_device</a></div><div class="ttdeci">uint8_t w25qxx_reset_device(w25qxx_handle_t *handle)</div><div class="ttdoc">reset the device</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l02690">driver_w25qxx.c:2690</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga2fd3023819e1aebe089a4a72eb136da3"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga2fd3023819e1aebe089a4a72eb136da3">w25qxx_qspi_read_wrap_length_t</a></div><div class="ttdeci">w25qxx_qspi_read_wrap_length_t</div><div class="ttdoc">w25qxx qspi read wrap length enumeration definition</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00122">driver_w25qxx.h:123</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga4c65debc4947bd9a61e0073105164b9c"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga4c65debc4947bd9a61e0073105164b9c">w25qxx_read_security_register</a></div><div class="ttdeci">uint8_t w25qxx_read_security_register(w25qxx_handle_t *handle, w25qxx_security_register_t num, uint8_t data[256])</div><div class="ttdoc">read the security register</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l03344">driver_w25qxx.c:3344</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga4e9c059ff78866e478e835cb27a92899"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga4e9c059ff78866e478e835cb27a92899">w25qxx_program_security_register</a></div><div class="ttdeci">uint8_t w25qxx_program_security_register(w25qxx_handle_t *handle, w25qxx_security_register_t num, uint8_t data[256])</div><div class="ttdoc">program the security register</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l03147">driver_w25qxx.c:3147</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga4f00c2c169cb7c3084841c6cd795e76b"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga4f00c2c169cb7c3084841c6cd795e76b">w25qxx_individual_block_lock</a></div><div class="ttdeci">uint8_t w25qxx_individual_block_lock(w25qxx_handle_t *handle, uint32_t addr)</div><div class="ttdoc">lock the individual block</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l06094">driver_w25qxx.c:6094</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga59e655ca78a175037ca810bbc8539a96"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga59e655ca78a175037ca810bbc8539a96">w25qxx_read_block_lock</a></div><div class="ttdeci">uint8_t w25qxx_read_block_lock(w25qxx_handle_t *handle, uint32_t addr, uint8_t *value)</div><div class="ttdoc">read the block lock</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l06529">driver_w25qxx.c:6529</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga61bd3ce40b76b6862c6a53e0e37a3455"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga61bd3ce40b76b6862c6a53e0e37a3455">w25qxx_get_manufacturer_device_id_quad_io</a></div><div class="ttdeci">uint8_t w25qxx_get_manufacturer_device_id_quad_io(w25qxx_handle_t *handle, uint8_t *manufacturer, uint8_t *device_id)</div><div class="ttdoc">get the manufacturer &amp;&amp; device id information with quad io</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l02122">driver_w25qxx.c:2122</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga6b9f75f7426a54ffdb1f5a057f8188f4"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga6b9f75f7426a54ffdb1f5a057f8188f4">w25qxx_exit_qspi_mode</a></div><div class="ttdeci">uint8_t w25qxx_exit_qspi_mode(w25qxx_handle_t *handle)</div><div class="ttdoc">exit the qspi mode</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l02572">driver_w25qxx.c:2572</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga6d62f7d14945cfde7cde7a0e9a4e3afb"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga6d62f7d14945cfde7cde7a0e9a4e3afb">w25qxx_global_block_unlock</a></div><div class="ttdeci">uint8_t w25qxx_global_block_unlock(w25qxx_handle_t *handle)</div><div class="ttdoc">unlock the whole block</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l02354">driver_w25qxx.c:2354</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga6ff284154302248f00db269146545443"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga6ff284154302248f00db269146545443">w25qxx_qspi_read_dummy_t</a></div><div class="ttdeci">w25qxx_qspi_read_dummy_t</div><div class="ttdoc">w25qxx qspi read dummy enumeration definition</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00111">driver_w25qxx.h:112</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga7a19230ca3916816ea8fb7421483d293"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga7a19230ca3916816ea8fb7421483d293">w25qxx_fast_read_dual_output</a></div><div class="ttdeci">uint8_t w25qxx_fast_read_dual_output(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">read with dual output in the fast mode</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l03858">driver_w25qxx.c:3858</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga7f88cedf7619071b3235ba094915b2a7"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga7f88cedf7619071b3235ba094915b2a7">w25qxx_individual_block_unlock</a></div><div class="ttdeci">uint8_t w25qxx_individual_block_unlock(w25qxx_handle_t *handle, uint32_t addr)</div><div class="ttdoc">unlock the individual block</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l06311">driver_w25qxx.c:6311</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga81ddc7d4b9f4f124163beea19cc33c7e"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga81ddc7d4b9f4f124163beea19cc33c7e">w25qxx_security_register_t</a></div><div class="ttdeci">w25qxx_security_register_t</div><div class="ttdoc">w25qxx security register enumeration definition</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00134">driver_w25qxx.h:135</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga88a62ec42e86db821ff3f0d3ab541dbb"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga88a62ec42e86db821ff3f0d3ab541dbb">w25qxx_octal_word_read_quad_io</a></div><div class="ttdeci">uint8_t w25qxx_octal_word_read_quad_io(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">octal word read with quad io</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l04459">driver_w25qxx.c:4459</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga8a93ba14a032e10a27f1495fdcf56058"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga8a93ba14a032e10a27f1495fdcf56058">w25qxx_get_jedec_id</a></div><div class="ttdeci">uint8_t w25qxx_get_jedec_id(w25qxx_handle_t *handle, uint8_t *manufacturer, uint8_t device_id[2])</div><div class="ttdoc">get the jedec id information</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l02203">driver_w25qxx.c:2203</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga94bbae2bf8906903e8dc2a28c490723d"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga94bbae2bf8906903e8dc2a28c490723d">w25qxx_burst_wrap_t</a></div><div class="ttdeci">w25qxx_burst_wrap_t</div><div class="ttdoc">w25qxx burst wrap enumeration definition</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00144">driver_w25qxx.h:145</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga99cf6a325a00921d4531004f0c1d75b1"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga99cf6a325a00921d4531004f0c1d75b1">w25qxx_get_status3</a></div><div class="ttdeci">uint8_t w25qxx_get_status3(w25qxx_handle_t *handle, uint8_t *status)</div><div class="ttdoc">get the status 3</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l00789">driver_w25qxx.c:789</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga9ad10781d888b32b43b9eba45d049624"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga9ad10781d888b32b43b9eba45d049624">w25qxx_set_read_parameters</a></div><div class="ttdeci">uint8_t w25qxx_set_read_parameters(w25qxx_handle_t *handle, w25qxx_qspi_read_dummy_t dummy, w25qxx_qspi_read_wrap_length_t length)</div><div class="ttdoc">set the read parameters</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l02427">driver_w25qxx.c:2427</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_gaa21237ecbd5951b8017799066e7db5d9"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gaa21237ecbd5951b8017799066e7db5d9">w25qxx_get_status2</a></div><div class="ttdeci">uint8_t w25qxx_get_status2(w25qxx_handle_t *handle, uint8_t *status)</div><div class="ttdoc">get the status 2</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l00716">driver_w25qxx.c:716</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_gaa5ab3548707a95ded115255432224c5a"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gaa5ab3548707a95ded115255432224c5a">w25qxx_enter_qspi_mode</a></div><div class="ttdeci">uint8_t w25qxx_enter_qspi_mode(w25qxx_handle_t *handle)</div><div class="ttdoc">enter the qspi mode</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l02494">driver_w25qxx.c:2494</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_gaa77d2b00b4fb9cf586f77ace827ea7c6"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gaa77d2b00b4fb9cf586f77ace827ea7c6">w25qxx_get_status1</a></div><div class="ttdeci">uint8_t w25qxx_get_status1(w25qxx_handle_t *handle, uint8_t *status)</div><div class="ttdoc">get the status 1</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l00643">driver_w25qxx.c:643</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_gaab5f28e8930d50dbc2178e39bc9fa456"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gaab5f28e8930d50dbc2178e39bc9fa456">w25qxx_set_status2</a></div><div class="ttdeci">uint8_t w25qxx_set_status2(w25qxx_handle_t *handle, uint8_t status)</div><div class="ttdoc">set the status 2</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l01062">driver_w25qxx.c:1062</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_gab5579bc42bc07a7657848140888a817c"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gab5579bc42bc07a7657848140888a817c">w25qxx_global_block_lock</a></div><div class="ttdeci">uint8_t w25qxx_global_block_lock(w25qxx_handle_t *handle)</div><div class="ttdoc">lock the whole block</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l02284">driver_w25qxx.c:2284</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_gab55b4e071e20feb58584025287949438"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gab55b4e071e20feb58584025287949438">w25qxx_enable_reset</a></div><div class="ttdeci">uint8_t w25qxx_enable_reset(w25qxx_handle_t *handle)</div><div class="ttdoc">enable the reset</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l02619">driver_w25qxx.c:2619</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_gab97a64bd3776874518f60381d921ae41"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gab97a64bd3776874518f60381d921ae41">w25qxx_fast_read_quad_io</a></div><div class="ttdeci">uint8_t w25qxx_fast_read_quad_io(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">read with quad io in the fast mode</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l04184">driver_w25qxx.c:4184</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_gac16a31269277051baad6c28fe4254b4a"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gac16a31269277051baad6c28fe4254b4a">w25qxx_disable_write</a></div><div class="ttdeci">uint8_t w25qxx_disable_write(w25qxx_handle_t *handle)</div><div class="ttdoc">disable writing</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l00572">driver_w25qxx.c:572</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_gac19c1d0f3fd48968ea2a93c1dbe3d75d"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gac19c1d0f3fd48968ea2a93c1dbe3d75d">w25qxx_set_burst_with_wrap</a></div><div class="ttdeci">uint8_t w25qxx_set_burst_with_wrap(w25qxx_handle_t *handle, w25qxx_burst_wrap_t wrap)</div><div class="ttdoc">set the burst with wrap</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l06746">driver_w25qxx.c:6746</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_gac7fbabc574c250eec100be861f5918ff"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gac7fbabc574c250eec100be861f5918ff">w25qxx_erase_program_suspend</a></div><div class="ttdeci">uint8_t w25qxx_erase_program_suspend(w25qxx_handle_t *handle)</div><div class="ttdoc">suspend erase or program</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l01650">driver_w25qxx.c:1650</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_gac894f4650905cba10dd3a31284de6d5e"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gac894f4650905cba10dd3a31284de6d5e">w25qxx_fast_read_dual_io</a></div><div class="ttdeci">uint8_t w25qxx_fast_read_dual_io(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">read with dual io in the fast mode</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l04076">driver_w25qxx.c:4076</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_gad97d7e410dd77c49334097a0fd332660"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gad97d7e410dd77c49334097a0fd332660">w25qxx_word_read_quad_io</a></div><div class="ttdeci">uint8_t w25qxx_word_read_quad_io(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">word read with quad io</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l04350">driver_w25qxx.c:4350</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_gada897a6c6d6acb99f4dd4ff9b65ad8ee"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gada897a6c6d6acb99f4dd4ff9b65ad8ee">w25qxx_set_status3</a></div><div class="ttdeci">uint8_t w25qxx_set_status3(w25qxx_handle_t *handle, uint8_t status)</div><div class="ttdoc">set the status 3</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l01261">driver_w25qxx.c:1261</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_gaeb269123feec054eaaf70f2ffb5797a3"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gaeb269123feec054eaaf70f2ffb5797a3">w25qxx_enable_write</a></div><div class="ttdeci">uint8_t w25qxx_enable_write(w25qxx_handle_t *handle)</div><div class="ttdoc">enable writing</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l00431">driver_w25qxx.c:431</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_gaf297e2c6877c64f8fd10a555f783ddaf"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gaf297e2c6877c64f8fd10a555f783ddaf">w25qxx_erase_security_register</a></div><div class="ttdeci">uint8_t w25qxx_erase_security_register(w25qxx_handle_t *handle, w25qxx_security_register_t num)</div><div class="ttdoc">erase the security register</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l02952">driver_w25qxx.c:2952</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_gaf4bfafd1f80aa0316a4b1a15183dcd50"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gaf4bfafd1f80aa0316a4b1a15183dcd50">w25qxx_fast_read_quad_output</a></div><div class="ttdeci">uint8_t w25qxx_fast_read_quad_output(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">read with quad output in the fast mode</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l03967">driver_w25qxx.c:3967</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga0862833b36831f92684980b2e21f2e39"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga0862833b36831f92684980b2e21f2e39">w25qxx_chip_erase</a></div><div class="ttdeci">uint8_t w25qxx_chip_erase(w25qxx_handle_t *handle)</div><div class="ttdoc">erase the chip</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l01459">driver_w25qxx.c:1459</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga09c9b52877516a2ee4c080dc249e7331"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga09c9b52877516a2ee4c080dc249e7331">w25qxx_release_power_down</a></div><div class="ttdeci">uint8_t w25qxx_release_power_down(w25qxx_handle_t *handle)</div><div class="ttdoc">release power down</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l01875">driver_w25qxx.c:1875</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga1e9ebf198137d23558dbf6470213c472"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga1e9ebf198137d23558dbf6470213c472">w25qxx_only_spi_read</a></div><div class="ttdeci">uint8_t w25qxx_only_spi_read(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">read only in the spi interface</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l03465">driver_w25qxx.c:3465</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga39c8fb382e8c3e4d57232dfa79af781c"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga39c8fb382e8c3e4d57232dfa79af781c">w25qxx_block_erase_32k</a></div><div class="ttdeci">uint8_t w25qxx_block_erase_32k(w25qxx_handle_t *handle, uint32_t addr)</div><div class="ttdoc">erase the 32k block</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l05419">driver_w25qxx.c:5419</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga3a52036a97b12fcbe2280b0901a80b90"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga3a52036a97b12fcbe2280b0901a80b90">w25qxx_get_address_mode</a></div><div class="ttdeci">uint8_t w25qxx_get_address_mode(w25qxx_handle_t *handle, w25qxx_address_mode_t *mode)</div><div class="ttdoc">get the chip address mode</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l00405">driver_w25qxx.c:405</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga50a62003d566402d46ada2f272c41eb5"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga50a62003d566402d46ada2f272c41eb5">w25qxx_set_interface</a></div><div class="ttdeci">uint8_t w25qxx_set_interface(w25qxx_handle_t *handle, w25qxx_interface_t interface)</div><div class="ttdoc">set the chip interface</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l00259">driver_w25qxx.c:259</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga6280e7e4ab26306436e2c210617a28b3"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga6280e7e4ab26306436e2c210617a28b3">w25qxx_page_program</a></div><div class="ttdeci">uint8_t w25qxx_page_program(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint16_t len)</div><div class="ttdoc">page program</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l04569">driver_w25qxx.c:4569</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga665139209b0abc386474a78d89cce6f2"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga665139209b0abc386474a78d89cce6f2">w25qxx_set_dual_quad_spi</a></div><div class="ttdeci">uint8_t w25qxx_set_dual_quad_spi(w25qxx_handle_t *handle, w25qxx_bool_t enable)</div><div class="ttdoc">enable or disable the dual quad spi</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l00175">driver_w25qxx.c:175</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga685379998dad173b6d9c0b0da270685c"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga685379998dad173b6d9c0b0da270685c">w25qxx_get_type</a></div><div class="ttdeci">uint8_t w25qxx_get_type(w25qxx_handle_t *handle, w25qxx_type_t *type)</div><div class="ttdoc">get the chip type</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l00238">driver_w25qxx.c:238</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga6cb4e5164464df549201dd96cb7a58b1"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga6cb4e5164464df549201dd96cb7a58b1">w25qxx_type_t</a></div><div class="ttdeci">w25qxx_type_t</div><div class="ttdoc">w25qxx type enumeration definition</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00062">driver_w25qxx.h:63</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga86ef839d475f3926a0be46bbc18d4b45"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga86ef839d475f3926a0be46bbc18d4b45">w25qxx_get_interface</a></div><div class="ttdeci">uint8_t w25qxx_get_interface(w25qxx_handle_t *handle, w25qxx_interface_t *interface)</div><div class="ttdoc">get the chip interface</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l00280">driver_w25qxx.c:280</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga8e7a163b3d255b8c7fc035d0d60f2491"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga8e7a163b3d255b8c7fc035d0d60f2491">w25qxx_init</a></div><div class="ttdeci">uint8_t w25qxx_init(w25qxx_handle_t *handle)</div><div class="ttdoc">initialize the chip</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l06819">driver_w25qxx.c:6819</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga921836a777b082ff4d0f322ccfda6b22"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga921836a777b082ff4d0f322ccfda6b22">w25qxx_get_manufacturer_device_id</a></div><div class="ttdeci">uint8_t w25qxx_get_manufacturer_device_id(w25qxx_handle_t *handle, uint8_t *manufacturer, uint8_t *device_id)</div><div class="ttdoc">get the manufacturer &amp;&amp; device id information</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l01952">driver_w25qxx.c:1952</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga996e2d3009432e7f8c1a5175c4438a57"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga996e2d3009432e7f8c1a5175c4438a57">w25qxx_info</a></div><div class="ttdeci">uint8_t w25qxx_info(w25qxx_info_t *info)</div><div class="ttdoc">get chip's information</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l08566">driver_w25qxx.c:8566</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga9a03c51b4c84655350c15fbfce0a6b40"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga9a03c51b4c84655350c15fbfce0a6b40">w25qxx_sector_erase_4k</a></div><div class="ttdeci">uint8_t w25qxx_sector_erase_4k(w25qxx_handle_t *handle, uint32_t addr)</div><div class="ttdoc">erase the 4k sector</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l05080">driver_w25qxx.c:5080</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_gaa293c3a46c4010a3af597a83e646de0d"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a></div><div class="ttdeci">uint8_t w25qxx_deinit(w25qxx_handle_t *handle)</div><div class="ttdoc">close the chip</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l07195">driver_w25qxx.c:7195</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_gaa4c45f146d1ade8a2da8e751818fa4a2"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gaa4c45f146d1ade8a2da8e751818fa4a2">w25qxx_address_mode_t</a></div><div class="ttdeci">w25qxx_address_mode_t</div><div class="ttdoc">w25qxx address mode enumeration definition</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00093">driver_w25qxx.h:94</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_gaa57189cd4170b73f8b1300ca15e27de6"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gaa57189cd4170b73f8b1300ca15e27de6">w25qxx_set_type</a></div><div class="ttdeci">uint8_t w25qxx_set_type(w25qxx_handle_t *handle, w25qxx_type_t type)</div><div class="ttdoc">set the chip type</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l00217">driver_w25qxx.c:217</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_gaaee8264d840e51460821cb6e609338ee"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gaaee8264d840e51460821cb6e609338ee">w25qxx_write</a></div><div class="ttdeci">uint8_t w25qxx_write(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">write data</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l08415">driver_w25qxx.c:8415</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_gac345ba10af5ad355578fa97697487123"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gac345ba10af5ad355578fa97697487123">w25qxx_fast_read</a></div><div class="ttdeci">uint8_t w25qxx_fast_read(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">read in the fast mode</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l03634">driver_w25qxx.c:3634</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_gacbf327a42336baf10713a1796ff4f2fe"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gacbf327a42336baf10713a1796ff4f2fe">w25qxx_interface_t</a></div><div class="ttdeci">w25qxx_interface_t</div><div class="ttdoc">w25qxx interface enumeration definition</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00075">driver_w25qxx.h:76</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_gad0e125eff304ce66fb3956d2c8c80656"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gad0e125eff304ce66fb3956d2c8c80656">w25qxx_set_address_mode</a></div><div class="ttdeci">uint8_t w25qxx_set_address_mode(w25qxx_handle_t *handle, w25qxx_address_mode_t mode)</div><div class="ttdoc">set the chip address mode</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l00304">driver_w25qxx.c:304</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_gad4c9b8b0a2d0916c13567f9d7e494cf8"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gad4c9b8b0a2d0916c13567f9d7e494cf8">w25qxx_get_dual_quad_spi</a></div><div class="ttdeci">uint8_t w25qxx_get_dual_quad_spi(w25qxx_handle_t *handle, w25qxx_bool_t *enable)</div><div class="ttdoc">get the dual quad spi status</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l00196">driver_w25qxx.c:196</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_gae4effce67e36120325e3c7b245b90142"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gae4effce67e36120325e3c7b245b90142">w25qxx_power_down</a></div><div class="ttdeci">uint8_t w25qxx_power_down(w25qxx_handle_t *handle)</div><div class="ttdoc">power down</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l01792">driver_w25qxx.c:1792</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_gae7479fc9ce911a52e3c5b6f1a615b879"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gae7479fc9ce911a52e3c5b6f1a615b879">w25qxx_read</a></div><div class="ttdeci">uint8_t w25qxx_read(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">read data</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l07289">driver_w25qxx.c:7289</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_gaf53bc5f6073482b9b74efd417ec7ac83"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gaf53bc5f6073482b9b74efd417ec7ac83">w25qxx_block_erase_64k</a></div><div class="ttdeci">uint8_t w25qxx_block_erase_64k(w25qxx_handle_t *handle, uint32_t addr)</div><div class="ttdoc">erase the 64k block</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l05758">driver_w25qxx.c:5758</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_gafb2690946f5baf4be6f3a63dde5491fb"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gafb2690946f5baf4be6f3a63dde5491fb">w25qxx_bool_t</a></div><div class="ttdeci">w25qxx_bool_t</div><div class="ttdoc">w25qxx bool enumeration definition</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00084">driver_w25qxx.h:85</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a></div><div class="ttdeci">@ W25Q256</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00069">driver_w25qxx.h:69</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a></div><div class="ttdeci">@ W25QXX_ADDRESS_MODE_3_BYTE</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00095">driver_w25qxx.h:95</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a></div><div class="ttdeci">@ W25QXX_ADDRESS_MODE_4_BYTE</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00096">driver_w25qxx.h:96</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_ggacbf327a42336baf10713a1796ff4f2fea895dcb5c91da89fad1c12161ffd2d5d4"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2fea895dcb5c91da89fad1c12161ffd2d5d4">W25QXX_INTERFACE_QSPI</a></div><div class="ttdeci">@ W25QXX_INTERFACE_QSPI</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00078">driver_w25qxx.h:78</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a></div><div class="ttdeci">@ W25QXX_INTERFACE_SPI</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00077">driver_w25qxx.h:77</a></div></div>
-<div class="ttc" id="agroup__w25qxx__extern__driver_html_ga9623a3bec148b148498480518a66cb2b"><div class="ttname"><a href="group__w25qxx__extern__driver.html#ga9623a3bec148b148498480518a66cb2b">w25qxx_write_read_reg</a></div><div class="ttdeci">uint8_t w25qxx_write_read_reg(w25qxx_handle_t *handle, uint8_t instruction, uint8_t instruction_line, uint32_t address, uint8_t address_line, uint8_t address_len, uint32_t alternate, uint8_t alternate_line, uint8_t alternate_len, uint8_t dummy, uint8_t *in_buf, uint32_t in_len, uint8_t *out_buf, uint32_t out_len, uint8_t data_line)</div><div class="ttdoc">write and read register</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l08535">driver_w25qxx.c:8535</a></div></div>
-<div class="ttc" id="astructw25qxx__handle__s_html"><div class="ttname"><a href="structw25qxx__handle__s.html">w25qxx_handle_s</a></div><div class="ttdoc">w25qxx handle structure definition</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00209">driver_w25qxx.h:210</a></div></div>
-<div class="ttc" id="astructw25qxx__handle__s_html_a19bedf28d2b9748f6a62d9ae93f4e68f"><div class="ttname"><a href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">w25qxx_handle_s::inited</a></div><div class="ttdeci">uint8_t inited</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00221">driver_w25qxx.h:221</a></div></div>
-<div class="ttc" id="astructw25qxx__handle__s_html_a2121914a1858618e9216fa2daf0a42a2"><div class="ttname"><a href="structw25qxx__handle__s.html#a2121914a1858618e9216fa2daf0a42a2">w25qxx_handle_s::buf</a></div><div class="ttdeci">uint8_t buf[256+6]</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00228">driver_w25qxx.h:228</a></div></div>
-<div class="ttc" id="astructw25qxx__handle__s_html_a2d39cde883403779e3da9dd39c32bec5"><div class="ttname"><a href="structw25qxx__handle__s.html#a2d39cde883403779e3da9dd39c32bec5">w25qxx_handle_s::spi_qspi_write_read</a></div><div class="ttdeci">uint8_t(* spi_qspi_write_read)(uint8_t instruction, uint8_t instruction_line, uint32_t address, uint8_t address_line, uint8_t address_len, uint32_t alternate, uint8_t alternate_line, uint8_t alternate_len, uint8_t dummy, uint8_t *in_buf, uint32_t in_len, uint8_t *out_buf, uint32_t out_len, uint8_t data_line)</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00213">driver_w25qxx.h:213</a></div></div>
-<div class="ttc" id="astructw25qxx__handle__s_html_a3d28993689552e18d554dc0644efcf16"><div class="ttname"><a href="structw25qxx__handle__s.html#a3d28993689552e18d554dc0644efcf16">w25qxx_handle_s::param</a></div><div class="ttdeci">uint8_t param</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00224">driver_w25qxx.h:224</a></div></div>
-<div class="ttc" id="astructw25qxx__handle__s_html_a406c9433252b7366de417b7a60915c81"><div class="ttname"><a href="structw25qxx__handle__s.html#a406c9433252b7366de417b7a60915c81">w25qxx_handle_s::delay_ms</a></div><div class="ttdeci">void(* delay_ms)(uint32_t ms)</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00218">driver_w25qxx.h:218</a></div></div>
-<div class="ttc" id="astructw25qxx__handle__s_html_a4568e23228174b7d32678d9a96d2420c"><div class="ttname"><a href="structw25qxx__handle__s.html#a4568e23228174b7d32678d9a96d2420c">w25qxx_handle_s::spi_qspi_deinit</a></div><div class="ttdeci">uint8_t(* spi_qspi_deinit)(void)</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00212">driver_w25qxx.h:212</a></div></div>
-<div class="ttc" id="astructw25qxx__handle__s_html_a5aafa09a37ea9bdb7d3788ff5d39c729"><div class="ttname"><a href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">w25qxx_handle_s::address_mode</a></div><div class="ttdeci">uint8_t address_mode</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00223">driver_w25qxx.h:223</a></div></div>
-<div class="ttc" id="astructw25qxx__handle__s_html_a769d5b3a6c14790a0e126e8fe70b384b"><div class="ttname"><a href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">w25qxx_handle_s::debug_print</a></div><div class="ttdeci">void(* debug_print)(const char *const fmt,...)</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00220">driver_w25qxx.h:220</a></div></div>
-<div class="ttc" id="astructw25qxx__handle__s_html_a97ffc4fce945527bd6ab25a3596caef7"><div class="ttname"><a href="structw25qxx__handle__s.html#a97ffc4fce945527bd6ab25a3596caef7">w25qxx_handle_s::delay_us</a></div><div class="ttdeci">void(* delay_us)(uint32_t us)</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00219">driver_w25qxx.h:219</a></div></div>
-<div class="ttc" id="astructw25qxx__handle__s_html_a9bdb5522ed967c80572351dd53dafe70"><div class="ttname"><a href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">w25qxx_handle_s::spi_qspi</a></div><div class="ttdeci">uint8_t spi_qspi</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00227">driver_w25qxx.h:227</a></div></div>
-<div class="ttc" id="astructw25qxx__handle__s_html_ac2bd5f4f7f52f548fd421c9eedbce1c7"><div class="ttname"><a href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">w25qxx_handle_s::dual_quad_spi_enable</a></div><div class="ttdeci">uint8_t dual_quad_spi_enable</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00226">driver_w25qxx.h:226</a></div></div>
-<div class="ttc" id="astructw25qxx__handle__s_html_ac80aa2927adf500634749513e88c474b"><div class="ttname"><a href="structw25qxx__handle__s.html#ac80aa2927adf500634749513e88c474b">w25qxx_handle_s::buf_4k</a></div><div class="ttdeci">uint8_t buf_4k[4096+1]</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00229">driver_w25qxx.h:229</a></div></div>
-<div class="ttc" id="astructw25qxx__handle__s_html_acb5cfd209ba75c853d03f701e7f91679"><div class="ttname"><a href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">w25qxx_handle_s::type</a></div><div class="ttdeci">uint16_t type</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00222">driver_w25qxx.h:222</a></div></div>
-<div class="ttc" id="astructw25qxx__handle__s_html_aec834df46e5185868dfdcc6fcec2e801"><div class="ttname"><a href="structw25qxx__handle__s.html#aec834df46e5185868dfdcc6fcec2e801">w25qxx_handle_s::spi_qspi_init</a></div><div class="ttdeci">uint8_t(* spi_qspi_init)(void)</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00211">driver_w25qxx.h:211</a></div></div>
-<div class="ttc" id="astructw25qxx__handle__s_html_aff7b59f569ec689a7580bd6911daafd5"><div class="ttname"><a href="structw25qxx__handle__s.html#aff7b59f569ec689a7580bd6911daafd5">w25qxx_handle_s::dummy</a></div><div class="ttdeci">uint8_t dummy</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00225">driver_w25qxx.h:225</a></div></div>
-<div class="ttc" id="astructw25qxx__info__s_html"><div class="ttname"><a href="structw25qxx__info__s.html">w25qxx_info_s</a></div><div class="ttdoc">w25qxx information structure definition</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00235">driver_w25qxx.h:236</a></div></div>
-<div class="ttc" id="astructw25qxx__info__s_html_a3366a5dce9b829e03c3d321c2b4df3f6"><div class="ttname"><a href="structw25qxx__info__s.html#a3366a5dce9b829e03c3d321c2b4df3f6">w25qxx_info_s::temperature_max</a></div><div class="ttdeci">float temperature_max</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00244">driver_w25qxx.h:244</a></div></div>
-<div class="ttc" id="astructw25qxx__info__s_html_a3d2b12bcac7a85ea8646bff9debe8660"><div class="ttname"><a href="structw25qxx__info__s.html#a3d2b12bcac7a85ea8646bff9debe8660">w25qxx_info_s::supply_voltage_max_v</a></div><div class="ttdeci">float supply_voltage_max_v</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00241">driver_w25qxx.h:241</a></div></div>
-<div class="ttc" id="astructw25qxx__info__s_html_a41b0bd442708b70d252c50b92c75265a"><div class="ttname"><a href="structw25qxx__info__s.html#a41b0bd442708b70d252c50b92c75265a">w25qxx_info_s::driver_version</a></div><div class="ttdeci">uint32_t driver_version</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00245">driver_w25qxx.h:245</a></div></div>
-<div class="ttc" id="astructw25qxx__info__s_html_a5778305279cae46b2ecf862e97f73600"><div class="ttname"><a href="structw25qxx__info__s.html#a5778305279cae46b2ecf862e97f73600">w25qxx_info_s::interface</a></div><div class="ttdeci">char interface[16]</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00239">driver_w25qxx.h:239</a></div></div>
-<div class="ttc" id="astructw25qxx__info__s_html_a8f9dbe66ac0b66ebae0a36fcb4ba368e"><div class="ttname"><a href="structw25qxx__info__s.html#a8f9dbe66ac0b66ebae0a36fcb4ba368e">w25qxx_info_s::temperature_min</a></div><div class="ttdeci">float temperature_min</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00243">driver_w25qxx.h:243</a></div></div>
-<div class="ttc" id="astructw25qxx__info__s_html_a9db82802561bf22d799b03a345f1d1dc"><div class="ttname"><a href="structw25qxx__info__s.html#a9db82802561bf22d799b03a345f1d1dc">w25qxx_info_s::max_current_ma</a></div><div class="ttdeci">float max_current_ma</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00242">driver_w25qxx.h:242</a></div></div>
-<div class="ttc" id="astructw25qxx__info__s_html_ad25285dbf810c90f8eaf3fcef6f2b2ea"><div class="ttname"><a href="structw25qxx__info__s.html#ad25285dbf810c90f8eaf3fcef6f2b2ea">w25qxx_info_s::manufacturer_name</a></div><div class="ttdeci">char manufacturer_name[32]</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00238">driver_w25qxx.h:238</a></div></div>
-<div class="ttc" id="astructw25qxx__info__s_html_ad8bde6ddadaf43d951e62f3befb9d35a"><div class="ttname"><a href="structw25qxx__info__s.html#ad8bde6ddadaf43d951e62f3befb9d35a">w25qxx_info_s::supply_voltage_min_v</a></div><div class="ttdeci">float supply_voltage_min_v</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00240">driver_w25qxx.h:240</a></div></div>
-<div class="ttc" id="astructw25qxx__info__s_html_af890958c72bd715cc6454a10dc846ae6"><div class="ttname"><a href="structw25qxx__info__s.html#af890958c72bd715cc6454a10dc846ae6">w25qxx_info_s::chip_name</a></div><div class="ttdeci">char chip_name[32]</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00237">driver_w25qxx.h:237</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga05c69ac66309544eba4ff38a69f24c00"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga05c69ac66309544eba4ff38a69f24c00">w25qxx_erase_program_resume</a></div><div class="ttdeci">uint8_t w25qxx_erase_program_resume(w25qxx_handle_t *handle)</div><div class="ttdoc">resume erase or program</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l01722">driver_w25qxx.c:1722</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga0f8889d6a25c32e150a2ab30753d461d"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga0f8889d6a25c32e150a2ab30753d461d">w25qxx_enable_volatile_sr_write</a></div><div class="ttdeci">uint8_t w25qxx_enable_volatile_sr_write(w25qxx_handle_t *handle)</div><div class="ttdoc">enable volatile sr writing</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l00501">driver_w25qxx.c:501</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga11af244389478de68a6777076ee82d69"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga11af244389478de68a6777076ee82d69">w25qxx_get_unique_id</a></div><div class="ttdeci">uint8_t w25qxx_get_unique_id(w25qxx_handle_t *handle, uint8_t id[8])</div><div class="ttdoc">get the unique id</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l02764">driver_w25qxx.c:2764</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga1cd3aec1bdeabbaed5f049fbf83ceeb4"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga1cd3aec1bdeabbaed5f049fbf83ceeb4">w25qxx_get_manufacturer_device_id_dual_io</a></div><div class="ttdeci">uint8_t w25qxx_get_manufacturer_device_id_dual_io(w25qxx_handle_t *handle, uint8_t *manufacturer, uint8_t *device_id)</div><div class="ttdoc">get the manufacturer &amp;&amp; device id information with dual io</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l02038">driver_w25qxx.c:2038</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga1f80bbbaaa852eecfffb87737889363d"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga1f80bbbaaa852eecfffb87737889363d">w25qxx_page_program_quad_input</a></div><div class="ttdeci">uint8_t w25qxx_page_program_quad_input(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint16_t len)</div><div class="ttdoc">quad page program with quad input</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l04920">driver_w25qxx.c:4920</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga244a91b9c0c32e899ca89e1943045624"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga244a91b9c0c32e899ca89e1943045624">w25qxx_get_sfdp</a></div><div class="ttdeci">uint8_t w25qxx_get_sfdp(w25qxx_handle_t *handle, uint8_t sfdp[256])</div><div class="ttdoc">get the sfdp</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l02880">driver_w25qxx.c:2880</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga246e0bb07c8bbb39731f17906779c012"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga246e0bb07c8bbb39731f17906779c012">w25qxx_set_status1</a></div><div class="ttdeci">uint8_t w25qxx_set_status1(w25qxx_handle_t *handle, uint8_t status)</div><div class="ttdoc">set the status 1</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l00863">driver_w25qxx.c:863</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga2abebfe2a8d9377eb88448ffca73f222"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga2abebfe2a8d9377eb88448ffca73f222">w25qxx_reset_device</a></div><div class="ttdeci">uint8_t w25qxx_reset_device(w25qxx_handle_t *handle)</div><div class="ttdoc">reset the device</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l02690">driver_w25qxx.c:2690</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga2fd3023819e1aebe089a4a72eb136da3"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga2fd3023819e1aebe089a4a72eb136da3">w25qxx_qspi_read_wrap_length_t</a></div><div class="ttdeci">w25qxx_qspi_read_wrap_length_t</div><div class="ttdoc">w25qxx qspi read wrap length enumeration definition</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00122">driver_w25qxx.h:123</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga4c65debc4947bd9a61e0073105164b9c"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga4c65debc4947bd9a61e0073105164b9c">w25qxx_read_security_register</a></div><div class="ttdeci">uint8_t w25qxx_read_security_register(w25qxx_handle_t *handle, w25qxx_security_register_t num, uint8_t data[256])</div><div class="ttdoc">read the security register</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l03344">driver_w25qxx.c:3344</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga4e9c059ff78866e478e835cb27a92899"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga4e9c059ff78866e478e835cb27a92899">w25qxx_program_security_register</a></div><div class="ttdeci">uint8_t w25qxx_program_security_register(w25qxx_handle_t *handle, w25qxx_security_register_t num, uint8_t data[256])</div><div class="ttdoc">program the security register</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l03147">driver_w25qxx.c:3147</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga4f00c2c169cb7c3084841c6cd795e76b"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga4f00c2c169cb7c3084841c6cd795e76b">w25qxx_individual_block_lock</a></div><div class="ttdeci">uint8_t w25qxx_individual_block_lock(w25qxx_handle_t *handle, uint32_t addr)</div><div class="ttdoc">lock the individual block</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l06094">driver_w25qxx.c:6094</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga59e655ca78a175037ca810bbc8539a96"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga59e655ca78a175037ca810bbc8539a96">w25qxx_read_block_lock</a></div><div class="ttdeci">uint8_t w25qxx_read_block_lock(w25qxx_handle_t *handle, uint32_t addr, uint8_t *value)</div><div class="ttdoc">read the block lock</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l06529">driver_w25qxx.c:6529</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga61bd3ce40b76b6862c6a53e0e37a3455"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga61bd3ce40b76b6862c6a53e0e37a3455">w25qxx_get_manufacturer_device_id_quad_io</a></div><div class="ttdeci">uint8_t w25qxx_get_manufacturer_device_id_quad_io(w25qxx_handle_t *handle, uint8_t *manufacturer, uint8_t *device_id)</div><div class="ttdoc">get the manufacturer &amp;&amp; device id information with quad io</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l02122">driver_w25qxx.c:2122</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga6b9f75f7426a54ffdb1f5a057f8188f4"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga6b9f75f7426a54ffdb1f5a057f8188f4">w25qxx_exit_qspi_mode</a></div><div class="ttdeci">uint8_t w25qxx_exit_qspi_mode(w25qxx_handle_t *handle)</div><div class="ttdoc">exit the qspi mode</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l02572">driver_w25qxx.c:2572</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga6d62f7d14945cfde7cde7a0e9a4e3afb"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga6d62f7d14945cfde7cde7a0e9a4e3afb">w25qxx_global_block_unlock</a></div><div class="ttdeci">uint8_t w25qxx_global_block_unlock(w25qxx_handle_t *handle)</div><div class="ttdoc">unlock the whole block</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l02354">driver_w25qxx.c:2354</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga6ff284154302248f00db269146545443"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga6ff284154302248f00db269146545443">w25qxx_qspi_read_dummy_t</a></div><div class="ttdeci">w25qxx_qspi_read_dummy_t</div><div class="ttdoc">w25qxx qspi read dummy enumeration definition</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00111">driver_w25qxx.h:112</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga7a19230ca3916816ea8fb7421483d293"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga7a19230ca3916816ea8fb7421483d293">w25qxx_fast_read_dual_output</a></div><div class="ttdeci">uint8_t w25qxx_fast_read_dual_output(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">read with dual output in the fast mode</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l03858">driver_w25qxx.c:3858</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga7f88cedf7619071b3235ba094915b2a7"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga7f88cedf7619071b3235ba094915b2a7">w25qxx_individual_block_unlock</a></div><div class="ttdeci">uint8_t w25qxx_individual_block_unlock(w25qxx_handle_t *handle, uint32_t addr)</div><div class="ttdoc">unlock the individual block</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l06311">driver_w25qxx.c:6311</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga81ddc7d4b9f4f124163beea19cc33c7e"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga81ddc7d4b9f4f124163beea19cc33c7e">w25qxx_security_register_t</a></div><div class="ttdeci">w25qxx_security_register_t</div><div class="ttdoc">w25qxx security register enumeration definition</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00134">driver_w25qxx.h:135</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga88a62ec42e86db821ff3f0d3ab541dbb"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga88a62ec42e86db821ff3f0d3ab541dbb">w25qxx_octal_word_read_quad_io</a></div><div class="ttdeci">uint8_t w25qxx_octal_word_read_quad_io(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">octal word read with quad io</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l04459">driver_w25qxx.c:4459</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga8a93ba14a032e10a27f1495fdcf56058"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga8a93ba14a032e10a27f1495fdcf56058">w25qxx_get_jedec_id</a></div><div class="ttdeci">uint8_t w25qxx_get_jedec_id(w25qxx_handle_t *handle, uint8_t *manufacturer, uint8_t device_id[2])</div><div class="ttdoc">get the jedec id information</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l02203">driver_w25qxx.c:2203</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga94bbae2bf8906903e8dc2a28c490723d"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga94bbae2bf8906903e8dc2a28c490723d">w25qxx_burst_wrap_t</a></div><div class="ttdeci">w25qxx_burst_wrap_t</div><div class="ttdoc">w25qxx burst wrap enumeration definition</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00144">driver_w25qxx.h:145</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga99cf6a325a00921d4531004f0c1d75b1"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga99cf6a325a00921d4531004f0c1d75b1">w25qxx_get_status3</a></div><div class="ttdeci">uint8_t w25qxx_get_status3(w25qxx_handle_t *handle, uint8_t *status)</div><div class="ttdoc">get the status 3</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l00789">driver_w25qxx.c:789</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga9ad10781d888b32b43b9eba45d049624"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga9ad10781d888b32b43b9eba45d049624">w25qxx_set_read_parameters</a></div><div class="ttdeci">uint8_t w25qxx_set_read_parameters(w25qxx_handle_t *handle, w25qxx_qspi_read_dummy_t dummy, w25qxx_qspi_read_wrap_length_t length)</div><div class="ttdoc">set the read parameters</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l02427">driver_w25qxx.c:2427</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_gaa21237ecbd5951b8017799066e7db5d9"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gaa21237ecbd5951b8017799066e7db5d9">w25qxx_get_status2</a></div><div class="ttdeci">uint8_t w25qxx_get_status2(w25qxx_handle_t *handle, uint8_t *status)</div><div class="ttdoc">get the status 2</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l00716">driver_w25qxx.c:716</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_gaa5ab3548707a95ded115255432224c5a"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gaa5ab3548707a95ded115255432224c5a">w25qxx_enter_qspi_mode</a></div><div class="ttdeci">uint8_t w25qxx_enter_qspi_mode(w25qxx_handle_t *handle)</div><div class="ttdoc">enter the qspi mode</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l02494">driver_w25qxx.c:2494</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_gaa77d2b00b4fb9cf586f77ace827ea7c6"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gaa77d2b00b4fb9cf586f77ace827ea7c6">w25qxx_get_status1</a></div><div class="ttdeci">uint8_t w25qxx_get_status1(w25qxx_handle_t *handle, uint8_t *status)</div><div class="ttdoc">get the status 1</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l00643">driver_w25qxx.c:643</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_gaab5f28e8930d50dbc2178e39bc9fa456"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gaab5f28e8930d50dbc2178e39bc9fa456">w25qxx_set_status2</a></div><div class="ttdeci">uint8_t w25qxx_set_status2(w25qxx_handle_t *handle, uint8_t status)</div><div class="ttdoc">set the status 2</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l01062">driver_w25qxx.c:1062</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_gab5579bc42bc07a7657848140888a817c"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gab5579bc42bc07a7657848140888a817c">w25qxx_global_block_lock</a></div><div class="ttdeci">uint8_t w25qxx_global_block_lock(w25qxx_handle_t *handle)</div><div class="ttdoc">lock the whole block</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l02284">driver_w25qxx.c:2284</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_gab55b4e071e20feb58584025287949438"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gab55b4e071e20feb58584025287949438">w25qxx_enable_reset</a></div><div class="ttdeci">uint8_t w25qxx_enable_reset(w25qxx_handle_t *handle)</div><div class="ttdoc">enable the reset</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l02619">driver_w25qxx.c:2619</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_gab97a64bd3776874518f60381d921ae41"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gab97a64bd3776874518f60381d921ae41">w25qxx_fast_read_quad_io</a></div><div class="ttdeci">uint8_t w25qxx_fast_read_quad_io(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">read with quad io in the fast mode</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l04184">driver_w25qxx.c:4184</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_gac16a31269277051baad6c28fe4254b4a"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gac16a31269277051baad6c28fe4254b4a">w25qxx_disable_write</a></div><div class="ttdeci">uint8_t w25qxx_disable_write(w25qxx_handle_t *handle)</div><div class="ttdoc">disable writing</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l00572">driver_w25qxx.c:572</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_gac19c1d0f3fd48968ea2a93c1dbe3d75d"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gac19c1d0f3fd48968ea2a93c1dbe3d75d">w25qxx_set_burst_with_wrap</a></div><div class="ttdeci">uint8_t w25qxx_set_burst_with_wrap(w25qxx_handle_t *handle, w25qxx_burst_wrap_t wrap)</div><div class="ttdoc">set the burst with wrap</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l06746">driver_w25qxx.c:6746</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_gac7fbabc574c250eec100be861f5918ff"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gac7fbabc574c250eec100be861f5918ff">w25qxx_erase_program_suspend</a></div><div class="ttdeci">uint8_t w25qxx_erase_program_suspend(w25qxx_handle_t *handle)</div><div class="ttdoc">suspend erase or program</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l01650">driver_w25qxx.c:1650</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_gac894f4650905cba10dd3a31284de6d5e"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gac894f4650905cba10dd3a31284de6d5e">w25qxx_fast_read_dual_io</a></div><div class="ttdeci">uint8_t w25qxx_fast_read_dual_io(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">read with dual io in the fast mode</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l04076">driver_w25qxx.c:4076</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_gad97d7e410dd77c49334097a0fd332660"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gad97d7e410dd77c49334097a0fd332660">w25qxx_word_read_quad_io</a></div><div class="ttdeci">uint8_t w25qxx_word_read_quad_io(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">word read with quad io</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l04350">driver_w25qxx.c:4350</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_gada897a6c6d6acb99f4dd4ff9b65ad8ee"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gada897a6c6d6acb99f4dd4ff9b65ad8ee">w25qxx_set_status3</a></div><div class="ttdeci">uint8_t w25qxx_set_status3(w25qxx_handle_t *handle, uint8_t status)</div><div class="ttdoc">set the status 3</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l01261">driver_w25qxx.c:1261</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_gaeb269123feec054eaaf70f2ffb5797a3"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gaeb269123feec054eaaf70f2ffb5797a3">w25qxx_enable_write</a></div><div class="ttdeci">uint8_t w25qxx_enable_write(w25qxx_handle_t *handle)</div><div class="ttdoc">enable writing</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l00431">driver_w25qxx.c:431</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_gaf297e2c6877c64f8fd10a555f783ddaf"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gaf297e2c6877c64f8fd10a555f783ddaf">w25qxx_erase_security_register</a></div><div class="ttdeci">uint8_t w25qxx_erase_security_register(w25qxx_handle_t *handle, w25qxx_security_register_t num)</div><div class="ttdoc">erase the security register</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l02952">driver_w25qxx.c:2952</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_gaf4bfafd1f80aa0316a4b1a15183dcd50"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gaf4bfafd1f80aa0316a4b1a15183dcd50">w25qxx_fast_read_quad_output</a></div><div class="ttdeci">uint8_t w25qxx_fast_read_quad_output(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">read with quad output in the fast mode</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l03967">driver_w25qxx.c:3967</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga0862833b36831f92684980b2e21f2e39"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga0862833b36831f92684980b2e21f2e39">w25qxx_chip_erase</a></div><div class="ttdeci">uint8_t w25qxx_chip_erase(w25qxx_handle_t *handle)</div><div class="ttdoc">erase the chip</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l01459">driver_w25qxx.c:1459</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga09c9b52877516a2ee4c080dc249e7331"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga09c9b52877516a2ee4c080dc249e7331">w25qxx_release_power_down</a></div><div class="ttdeci">uint8_t w25qxx_release_power_down(w25qxx_handle_t *handle)</div><div class="ttdoc">release power down</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l01875">driver_w25qxx.c:1875</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga1e9ebf198137d23558dbf6470213c472"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga1e9ebf198137d23558dbf6470213c472">w25qxx_only_spi_read</a></div><div class="ttdeci">uint8_t w25qxx_only_spi_read(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">read only in the spi interface</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l03465">driver_w25qxx.c:3465</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga39c8fb382e8c3e4d57232dfa79af781c"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga39c8fb382e8c3e4d57232dfa79af781c">w25qxx_block_erase_32k</a></div><div class="ttdeci">uint8_t w25qxx_block_erase_32k(w25qxx_handle_t *handle, uint32_t addr)</div><div class="ttdoc">erase the 32k block</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l05419">driver_w25qxx.c:5419</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga3a52036a97b12fcbe2280b0901a80b90"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga3a52036a97b12fcbe2280b0901a80b90">w25qxx_get_address_mode</a></div><div class="ttdeci">uint8_t w25qxx_get_address_mode(w25qxx_handle_t *handle, w25qxx_address_mode_t *mode)</div><div class="ttdoc">get the chip address mode</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l00405">driver_w25qxx.c:405</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga50a62003d566402d46ada2f272c41eb5"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga50a62003d566402d46ada2f272c41eb5">w25qxx_set_interface</a></div><div class="ttdeci">uint8_t w25qxx_set_interface(w25qxx_handle_t *handle, w25qxx_interface_t interface)</div><div class="ttdoc">set the chip interface</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l00259">driver_w25qxx.c:259</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga6280e7e4ab26306436e2c210617a28b3"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga6280e7e4ab26306436e2c210617a28b3">w25qxx_page_program</a></div><div class="ttdeci">uint8_t w25qxx_page_program(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint16_t len)</div><div class="ttdoc">page program</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l04569">driver_w25qxx.c:4569</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga665139209b0abc386474a78d89cce6f2"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga665139209b0abc386474a78d89cce6f2">w25qxx_set_dual_quad_spi</a></div><div class="ttdeci">uint8_t w25qxx_set_dual_quad_spi(w25qxx_handle_t *handle, w25qxx_bool_t enable)</div><div class="ttdoc">enable or disable the dual quad spi</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l00175">driver_w25qxx.c:175</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga685379998dad173b6d9c0b0da270685c"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga685379998dad173b6d9c0b0da270685c">w25qxx_get_type</a></div><div class="ttdeci">uint8_t w25qxx_get_type(w25qxx_handle_t *handle, w25qxx_type_t *type)</div><div class="ttdoc">get the chip type</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l00238">driver_w25qxx.c:238</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga6cb4e5164464df549201dd96cb7a58b1"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga6cb4e5164464df549201dd96cb7a58b1">w25qxx_type_t</a></div><div class="ttdeci">w25qxx_type_t</div><div class="ttdoc">w25qxx type enumeration definition</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00062">driver_w25qxx.h:63</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga86ef839d475f3926a0be46bbc18d4b45"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga86ef839d475f3926a0be46bbc18d4b45">w25qxx_get_interface</a></div><div class="ttdeci">uint8_t w25qxx_get_interface(w25qxx_handle_t *handle, w25qxx_interface_t *interface)</div><div class="ttdoc">get the chip interface</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l00280">driver_w25qxx.c:280</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga8e7a163b3d255b8c7fc035d0d60f2491"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga8e7a163b3d255b8c7fc035d0d60f2491">w25qxx_init</a></div><div class="ttdeci">uint8_t w25qxx_init(w25qxx_handle_t *handle)</div><div class="ttdoc">initialize the chip</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l06819">driver_w25qxx.c:6819</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga921836a777b082ff4d0f322ccfda6b22"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga921836a777b082ff4d0f322ccfda6b22">w25qxx_get_manufacturer_device_id</a></div><div class="ttdeci">uint8_t w25qxx_get_manufacturer_device_id(w25qxx_handle_t *handle, uint8_t *manufacturer, uint8_t *device_id)</div><div class="ttdoc">get the manufacturer &amp;&amp; device id information</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l01952">driver_w25qxx.c:1952</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga996e2d3009432e7f8c1a5175c4438a57"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga996e2d3009432e7f8c1a5175c4438a57">w25qxx_info</a></div><div class="ttdeci">uint8_t w25qxx_info(w25qxx_info_t *info)</div><div class="ttdoc">get chip's information</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l08566">driver_w25qxx.c:8566</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga9a03c51b4c84655350c15fbfce0a6b40"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga9a03c51b4c84655350c15fbfce0a6b40">w25qxx_sector_erase_4k</a></div><div class="ttdeci">uint8_t w25qxx_sector_erase_4k(w25qxx_handle_t *handle, uint32_t addr)</div><div class="ttdoc">erase the 4k sector</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l05080">driver_w25qxx.c:5080</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_gaa293c3a46c4010a3af597a83e646de0d"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a></div><div class="ttdeci">uint8_t w25qxx_deinit(w25qxx_handle_t *handle)</div><div class="ttdoc">close the chip</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l07195">driver_w25qxx.c:7195</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_gaa4c45f146d1ade8a2da8e751818fa4a2"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gaa4c45f146d1ade8a2da8e751818fa4a2">w25qxx_address_mode_t</a></div><div class="ttdeci">w25qxx_address_mode_t</div><div class="ttdoc">w25qxx address mode enumeration definition</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00093">driver_w25qxx.h:94</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_gaa57189cd4170b73f8b1300ca15e27de6"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gaa57189cd4170b73f8b1300ca15e27de6">w25qxx_set_type</a></div><div class="ttdeci">uint8_t w25qxx_set_type(w25qxx_handle_t *handle, w25qxx_type_t type)</div><div class="ttdoc">set the chip type</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l00217">driver_w25qxx.c:217</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_gaaee8264d840e51460821cb6e609338ee"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gaaee8264d840e51460821cb6e609338ee">w25qxx_write</a></div><div class="ttdeci">uint8_t w25qxx_write(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">write data</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l08415">driver_w25qxx.c:8415</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_gac345ba10af5ad355578fa97697487123"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gac345ba10af5ad355578fa97697487123">w25qxx_fast_read</a></div><div class="ttdeci">uint8_t w25qxx_fast_read(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">read in the fast mode</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l03634">driver_w25qxx.c:3634</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_gacbf327a42336baf10713a1796ff4f2fe"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gacbf327a42336baf10713a1796ff4f2fe">w25qxx_interface_t</a></div><div class="ttdeci">w25qxx_interface_t</div><div class="ttdoc">w25qxx interface enumeration definition</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00075">driver_w25qxx.h:76</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_gad0e125eff304ce66fb3956d2c8c80656"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gad0e125eff304ce66fb3956d2c8c80656">w25qxx_set_address_mode</a></div><div class="ttdeci">uint8_t w25qxx_set_address_mode(w25qxx_handle_t *handle, w25qxx_address_mode_t mode)</div><div class="ttdoc">set the chip address mode</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l00304">driver_w25qxx.c:304</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_gad4c9b8b0a2d0916c13567f9d7e494cf8"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gad4c9b8b0a2d0916c13567f9d7e494cf8">w25qxx_get_dual_quad_spi</a></div><div class="ttdeci">uint8_t w25qxx_get_dual_quad_spi(w25qxx_handle_t *handle, w25qxx_bool_t *enable)</div><div class="ttdoc">get the dual quad spi status</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l00196">driver_w25qxx.c:196</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_gae4effce67e36120325e3c7b245b90142"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gae4effce67e36120325e3c7b245b90142">w25qxx_power_down</a></div><div class="ttdeci">uint8_t w25qxx_power_down(w25qxx_handle_t *handle)</div><div class="ttdoc">power down</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l01792">driver_w25qxx.c:1792</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_gae7479fc9ce911a52e3c5b6f1a615b879"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gae7479fc9ce911a52e3c5b6f1a615b879">w25qxx_read</a></div><div class="ttdeci">uint8_t w25qxx_read(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">read data</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l07289">driver_w25qxx.c:7289</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_gaf53bc5f6073482b9b74efd417ec7ac83"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gaf53bc5f6073482b9b74efd417ec7ac83">w25qxx_block_erase_64k</a></div><div class="ttdeci">uint8_t w25qxx_block_erase_64k(w25qxx_handle_t *handle, uint32_t addr)</div><div class="ttdoc">erase the 64k block</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l05758">driver_w25qxx.c:5758</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_gafb2690946f5baf4be6f3a63dde5491fb"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gafb2690946f5baf4be6f3a63dde5491fb">w25qxx_bool_t</a></div><div class="ttdeci">w25qxx_bool_t</div><div class="ttdoc">w25qxx bool enumeration definition</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00084">driver_w25qxx.h:85</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a></div><div class="ttdeci">@ W25Q256</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00069">driver_w25qxx.h:69</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a></div><div class="ttdeci">@ W25QXX_ADDRESS_MODE_3_BYTE</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00095">driver_w25qxx.h:95</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a></div><div class="ttdeci">@ W25QXX_ADDRESS_MODE_4_BYTE</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00096">driver_w25qxx.h:96</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_ggacbf327a42336baf10713a1796ff4f2fea895dcb5c91da89fad1c12161ffd2d5d4"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2fea895dcb5c91da89fad1c12161ffd2d5d4">W25QXX_INTERFACE_QSPI</a></div><div class="ttdeci">@ W25QXX_INTERFACE_QSPI</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00078">driver_w25qxx.h:78</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a></div><div class="ttdeci">@ W25QXX_INTERFACE_SPI</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00077">driver_w25qxx.h:77</a></div></div>
+<div class="ttc" id="agroup__w25qxx__extern__driver_html_ga9623a3bec148b148498480518a66cb2b"><div class="ttname"><a href="group__w25qxx__extern__driver.html#ga9623a3bec148b148498480518a66cb2b">w25qxx_write_read_reg</a></div><div class="ttdeci">uint8_t w25qxx_write_read_reg(w25qxx_handle_t *handle, uint8_t instruction, uint8_t instruction_line, uint32_t address, uint8_t address_line, uint8_t address_len, uint32_t alternate, uint8_t alternate_line, uint8_t alternate_len, uint8_t dummy, uint8_t *in_buf, uint32_t in_len, uint8_t *out_buf, uint32_t out_len, uint8_t data_line)</div><div class="ttdoc">write and read register</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l08535">driver_w25qxx.c:8535</a></div></div>
+<div class="ttc" id="astructw25qxx__handle__s_html"><div class="ttname"><a href="structw25qxx__handle__s.html">w25qxx_handle_s</a></div><div class="ttdoc">w25qxx handle structure definition</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00209">driver_w25qxx.h:210</a></div></div>
+<div class="ttc" id="astructw25qxx__handle__s_html_a19bedf28d2b9748f6a62d9ae93f4e68f"><div class="ttname"><a href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">w25qxx_handle_s::inited</a></div><div class="ttdeci">uint8_t inited</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00221">driver_w25qxx.h:221</a></div></div>
+<div class="ttc" id="astructw25qxx__handle__s_html_a2121914a1858618e9216fa2daf0a42a2"><div class="ttname"><a href="structw25qxx__handle__s.html#a2121914a1858618e9216fa2daf0a42a2">w25qxx_handle_s::buf</a></div><div class="ttdeci">uint8_t buf[256+6]</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00228">driver_w25qxx.h:228</a></div></div>
+<div class="ttc" id="astructw25qxx__handle__s_html_a2d39cde883403779e3da9dd39c32bec5"><div class="ttname"><a href="structw25qxx__handle__s.html#a2d39cde883403779e3da9dd39c32bec5">w25qxx_handle_s::spi_qspi_write_read</a></div><div class="ttdeci">uint8_t(* spi_qspi_write_read)(uint8_t instruction, uint8_t instruction_line, uint32_t address, uint8_t address_line, uint8_t address_len, uint32_t alternate, uint8_t alternate_line, uint8_t alternate_len, uint8_t dummy, uint8_t *in_buf, uint32_t in_len, uint8_t *out_buf, uint32_t out_len, uint8_t data_line)</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00213">driver_w25qxx.h:213</a></div></div>
+<div class="ttc" id="astructw25qxx__handle__s_html_a3d28993689552e18d554dc0644efcf16"><div class="ttname"><a href="structw25qxx__handle__s.html#a3d28993689552e18d554dc0644efcf16">w25qxx_handle_s::param</a></div><div class="ttdeci">uint8_t param</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00224">driver_w25qxx.h:224</a></div></div>
+<div class="ttc" id="astructw25qxx__handle__s_html_a406c9433252b7366de417b7a60915c81"><div class="ttname"><a href="structw25qxx__handle__s.html#a406c9433252b7366de417b7a60915c81">w25qxx_handle_s::delay_ms</a></div><div class="ttdeci">void(* delay_ms)(uint32_t ms)</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00218">driver_w25qxx.h:218</a></div></div>
+<div class="ttc" id="astructw25qxx__handle__s_html_a4568e23228174b7d32678d9a96d2420c"><div class="ttname"><a href="structw25qxx__handle__s.html#a4568e23228174b7d32678d9a96d2420c">w25qxx_handle_s::spi_qspi_deinit</a></div><div class="ttdeci">uint8_t(* spi_qspi_deinit)(void)</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00212">driver_w25qxx.h:212</a></div></div>
+<div class="ttc" id="astructw25qxx__handle__s_html_a5aafa09a37ea9bdb7d3788ff5d39c729"><div class="ttname"><a href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">w25qxx_handle_s::address_mode</a></div><div class="ttdeci">uint8_t address_mode</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00223">driver_w25qxx.h:223</a></div></div>
+<div class="ttc" id="astructw25qxx__handle__s_html_a769d5b3a6c14790a0e126e8fe70b384b"><div class="ttname"><a href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">w25qxx_handle_s::debug_print</a></div><div class="ttdeci">void(* debug_print)(const char *const fmt,...)</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00220">driver_w25qxx.h:220</a></div></div>
+<div class="ttc" id="astructw25qxx__handle__s_html_a97ffc4fce945527bd6ab25a3596caef7"><div class="ttname"><a href="structw25qxx__handle__s.html#a97ffc4fce945527bd6ab25a3596caef7">w25qxx_handle_s::delay_us</a></div><div class="ttdeci">void(* delay_us)(uint32_t us)</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00219">driver_w25qxx.h:219</a></div></div>
+<div class="ttc" id="astructw25qxx__handle__s_html_a9bdb5522ed967c80572351dd53dafe70"><div class="ttname"><a href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">w25qxx_handle_s::spi_qspi</a></div><div class="ttdeci">uint8_t spi_qspi</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00227">driver_w25qxx.h:227</a></div></div>
+<div class="ttc" id="astructw25qxx__handle__s_html_ac2bd5f4f7f52f548fd421c9eedbce1c7"><div class="ttname"><a href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">w25qxx_handle_s::dual_quad_spi_enable</a></div><div class="ttdeci">uint8_t dual_quad_spi_enable</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00226">driver_w25qxx.h:226</a></div></div>
+<div class="ttc" id="astructw25qxx__handle__s_html_ac80aa2927adf500634749513e88c474b"><div class="ttname"><a href="structw25qxx__handle__s.html#ac80aa2927adf500634749513e88c474b">w25qxx_handle_s::buf_4k</a></div><div class="ttdeci">uint8_t buf_4k[4096+1]</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00229">driver_w25qxx.h:229</a></div></div>
+<div class="ttc" id="astructw25qxx__handle__s_html_acb5cfd209ba75c853d03f701e7f91679"><div class="ttname"><a href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">w25qxx_handle_s::type</a></div><div class="ttdeci">uint16_t type</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00222">driver_w25qxx.h:222</a></div></div>
+<div class="ttc" id="astructw25qxx__handle__s_html_aec834df46e5185868dfdcc6fcec2e801"><div class="ttname"><a href="structw25qxx__handle__s.html#aec834df46e5185868dfdcc6fcec2e801">w25qxx_handle_s::spi_qspi_init</a></div><div class="ttdeci">uint8_t(* spi_qspi_init)(void)</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00211">driver_w25qxx.h:211</a></div></div>
+<div class="ttc" id="astructw25qxx__handle__s_html_aff7b59f569ec689a7580bd6911daafd5"><div class="ttname"><a href="structw25qxx__handle__s.html#aff7b59f569ec689a7580bd6911daafd5">w25qxx_handle_s::dummy</a></div><div class="ttdeci">uint8_t dummy</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00225">driver_w25qxx.h:225</a></div></div>
+<div class="ttc" id="astructw25qxx__info__s_html"><div class="ttname"><a href="structw25qxx__info__s.html">w25qxx_info_s</a></div><div class="ttdoc">w25qxx information structure definition</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00235">driver_w25qxx.h:236</a></div></div>
+<div class="ttc" id="astructw25qxx__info__s_html_a3366a5dce9b829e03c3d321c2b4df3f6"><div class="ttname"><a href="structw25qxx__info__s.html#a3366a5dce9b829e03c3d321c2b4df3f6">w25qxx_info_s::temperature_max</a></div><div class="ttdeci">float temperature_max</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00244">driver_w25qxx.h:244</a></div></div>
+<div class="ttc" id="astructw25qxx__info__s_html_a3d2b12bcac7a85ea8646bff9debe8660"><div class="ttname"><a href="structw25qxx__info__s.html#a3d2b12bcac7a85ea8646bff9debe8660">w25qxx_info_s::supply_voltage_max_v</a></div><div class="ttdeci">float supply_voltage_max_v</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00241">driver_w25qxx.h:241</a></div></div>
+<div class="ttc" id="astructw25qxx__info__s_html_a41b0bd442708b70d252c50b92c75265a"><div class="ttname"><a href="structw25qxx__info__s.html#a41b0bd442708b70d252c50b92c75265a">w25qxx_info_s::driver_version</a></div><div class="ttdeci">uint32_t driver_version</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00245">driver_w25qxx.h:245</a></div></div>
+<div class="ttc" id="astructw25qxx__info__s_html_a5778305279cae46b2ecf862e97f73600"><div class="ttname"><a href="structw25qxx__info__s.html#a5778305279cae46b2ecf862e97f73600">w25qxx_info_s::interface</a></div><div class="ttdeci">char interface[16]</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00239">driver_w25qxx.h:239</a></div></div>
+<div class="ttc" id="astructw25qxx__info__s_html_a8f9dbe66ac0b66ebae0a36fcb4ba368e"><div class="ttname"><a href="structw25qxx__info__s.html#a8f9dbe66ac0b66ebae0a36fcb4ba368e">w25qxx_info_s::temperature_min</a></div><div class="ttdeci">float temperature_min</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00243">driver_w25qxx.h:243</a></div></div>
+<div class="ttc" id="astructw25qxx__info__s_html_a9db82802561bf22d799b03a345f1d1dc"><div class="ttname"><a href="structw25qxx__info__s.html#a9db82802561bf22d799b03a345f1d1dc">w25qxx_info_s::max_current_ma</a></div><div class="ttdeci">float max_current_ma</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00242">driver_w25qxx.h:242</a></div></div>
+<div class="ttc" id="astructw25qxx__info__s_html_ad25285dbf810c90f8eaf3fcef6f2b2ea"><div class="ttname"><a href="structw25qxx__info__s.html#ad25285dbf810c90f8eaf3fcef6f2b2ea">w25qxx_info_s::manufacturer_name</a></div><div class="ttdeci">char manufacturer_name[32]</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00238">driver_w25qxx.h:238</a></div></div>
+<div class="ttc" id="astructw25qxx__info__s_html_ad8bde6ddadaf43d951e62f3befb9d35a"><div class="ttname"><a href="structw25qxx__info__s.html#ad8bde6ddadaf43d951e62f3befb9d35a">w25qxx_info_s::supply_voltage_min_v</a></div><div class="ttdeci">float supply_voltage_min_v</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00240">driver_w25qxx.h:240</a></div></div>
+<div class="ttc" id="astructw25qxx__info__s_html_af890958c72bd715cc6454a10dc846ae6"><div class="ttname"><a href="structw25qxx__info__s.html#af890958c72bd715cc6454a10dc846ae6">w25qxx_info_s::chip_name</a></div><div class="ttdeci">char chip_name[32]</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00237">driver_w25qxx.h:237</a></div></div>
 </div><!-- fragment --></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
     <li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="driver__w25qxx_8c.html">driver_w25qxx.c</a></li>
-    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
+    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/driver__w25qxx_8h.html b/doc/html/driver__w25qxx_8h.html
index 82717b4..de578f4 100644
--- a/doc/html/driver__w25qxx_8h.html
+++ b/doc/html/driver__w25qxx_8h.html
@@ -1,9 +1,9 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.8"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>LibDriver W25QXX: src/driver_w25qxx.h File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -23,11 +23,10 @@
 <div id="titlearea">
 <table cellspacing="0" cellpadding="0">
  <tbody>
- <tr style="height: 56px;">
+ <tr id="projectrow">
   <td id="projectlogo"><img alt="Logo" src="doxygen.png"/></td>
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">LibDriver W25QXX
-   &#160;<span id="projectnumber">1.0.0</span>
+  <td id="projectalign">
+   <div id="projectname">LibDriver W25QXX<span id="projectnumber">&#160;1.0.0</span>
    </div>
    <div id="projectbrief">W25QXX full function driver</div>
   </td>
@@ -36,21 +35,22 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.8 -->
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search/",'.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
 <script type="text/javascript" src="menu.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(function() {
   initMenu('',true,false,'search.php','Search');
   $(document).ready(function() { init_search(); });
 });
-/* @license-end */</script>
+/* @license-end */
+</script>
 <div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
@@ -64,7 +64,7 @@
   </div>
 </div>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(document).ready(function(){initNavTree('driver__w25qxx_8h.html',''); initResizable(); });
 /* @license-end */
 </script>
@@ -78,9 +78,16 @@
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
 </div>
 
 <div class="header">
@@ -90,8 +97,7 @@
 <a href="#typedef-members">Typedefs</a> &#124;
 <a href="#enum-members">Enumerations</a> &#124;
 <a href="#func-members">Functions</a>  </div>
-  <div class="headertitle">
-<div class="title">driver_w25qxx.h File Reference</div>  </div>
+  <div class="headertitle"><div class="title">driver_w25qxx.h File Reference</div></div>
 </div><!--header-->
 <div class="contents">
 
@@ -103,7 +109,7 @@
 </div>
 <p><a href="driver__w25qxx_8h_source.html">Go to the source code of this file.</a></p>
 <table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
 Data Structures</h2></td></tr>
 <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structw25qxx__handle__s.html">w25qxx_handle_s</a></td></tr>
 <tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">w25qxx handle structure definition  <a href="structw25qxx__handle__s.html#details">More...</a><br /></td></tr>
@@ -112,42 +118,42 @@
 <tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">w25qxx information structure definition  <a href="structw25qxx__info__s.html#details">More...</a><br /></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="define-members" name="define-members"></a>
 Macros</h2></td></tr>
-<tr class="memitem:ga995378489f95bc6bbddbe710557e3384"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__link__driver.html#ga995378489f95bc6bbddbe710557e3384">DRIVER_W25QXX_LINK_INIT</a>(HANDLE,  STRUCTURE)&#160;&#160;&#160;memset(HANDLE, 0, sizeof(STRUCTURE))</td></tr>
-<tr class="memdesc:ga995378489f95bc6bbddbe710557e3384"><td class="mdescLeft">&#160;</td><td class="mdescRight">initialize w25qxx_handle_t structure  <a href="group__w25qxx__link__driver.html#ga995378489f95bc6bbddbe710557e3384">More...</a><br /></td></tr>
+<tr class="memitem:ga995378489f95bc6bbddbe710557e3384" id="r_ga995378489f95bc6bbddbe710557e3384"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__link__driver.html#ga995378489f95bc6bbddbe710557e3384">DRIVER_W25QXX_LINK_INIT</a>(HANDLE,  STRUCTURE)&#160;&#160;&#160;memset(HANDLE, 0, sizeof(STRUCTURE))</td></tr>
+<tr class="memdesc:ga995378489f95bc6bbddbe710557e3384"><td class="mdescLeft">&#160;</td><td class="mdescRight">initialize w25qxx_handle_t structure  <br /></td></tr>
 <tr class="separator:ga995378489f95bc6bbddbe710557e3384"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab2587de93f1dba5664eede8cd787a88a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__link__driver.html#gab2587de93f1dba5664eede8cd787a88a">DRIVER_W25QXX_LINK_SPI_QSPI_INIT</a>(HANDLE,  FUC)&#160;&#160;&#160;(HANDLE)-&gt;spi_qspi_init = FUC</td></tr>
-<tr class="memdesc:gab2587de93f1dba5664eede8cd787a88a"><td class="mdescLeft">&#160;</td><td class="mdescRight">link spi_qspi_init function  <a href="group__w25qxx__link__driver.html#gab2587de93f1dba5664eede8cd787a88a">More...</a><br /></td></tr>
+<tr class="memitem:gab2587de93f1dba5664eede8cd787a88a" id="r_gab2587de93f1dba5664eede8cd787a88a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__link__driver.html#gab2587de93f1dba5664eede8cd787a88a">DRIVER_W25QXX_LINK_SPI_QSPI_INIT</a>(HANDLE,  FUC)&#160;&#160;&#160;(HANDLE)-&gt;spi_qspi_init = FUC</td></tr>
+<tr class="memdesc:gab2587de93f1dba5664eede8cd787a88a"><td class="mdescLeft">&#160;</td><td class="mdescRight">link spi_qspi_init function  <br /></td></tr>
 <tr class="separator:gab2587de93f1dba5664eede8cd787a88a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaec8b55e83b46907be1dd9e7c50be550d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__link__driver.html#gaec8b55e83b46907be1dd9e7c50be550d">DRIVER_W25QXX_LINK_SPI_QSPI_DEINIT</a>(HANDLE,  FUC)&#160;&#160;&#160;(HANDLE)-&gt;spi_qspi_deinit = FUC</td></tr>
-<tr class="memdesc:gaec8b55e83b46907be1dd9e7c50be550d"><td class="mdescLeft">&#160;</td><td class="mdescRight">link spi_qspi_deinit function  <a href="group__w25qxx__link__driver.html#gaec8b55e83b46907be1dd9e7c50be550d">More...</a><br /></td></tr>
+<tr class="memitem:gaec8b55e83b46907be1dd9e7c50be550d" id="r_gaec8b55e83b46907be1dd9e7c50be550d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__link__driver.html#gaec8b55e83b46907be1dd9e7c50be550d">DRIVER_W25QXX_LINK_SPI_QSPI_DEINIT</a>(HANDLE,  FUC)&#160;&#160;&#160;(HANDLE)-&gt;spi_qspi_deinit = FUC</td></tr>
+<tr class="memdesc:gaec8b55e83b46907be1dd9e7c50be550d"><td class="mdescLeft">&#160;</td><td class="mdescRight">link spi_qspi_deinit function  <br /></td></tr>
 <tr class="separator:gaec8b55e83b46907be1dd9e7c50be550d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac8f0ca0a725790bace3241d1d616e3d1"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__link__driver.html#gac8f0ca0a725790bace3241d1d616e3d1">DRIVER_W25QXX_LINK_SPI_QSPI_WRITE_READ</a>(HANDLE,  FUC)&#160;&#160;&#160;(HANDLE)-&gt;spi_qspi_write_read = FUC</td></tr>
-<tr class="memdesc:gac8f0ca0a725790bace3241d1d616e3d1"><td class="mdescLeft">&#160;</td><td class="mdescRight">link spi_qspi_write_read function  <a href="group__w25qxx__link__driver.html#gac8f0ca0a725790bace3241d1d616e3d1">More...</a><br /></td></tr>
+<tr class="memitem:gac8f0ca0a725790bace3241d1d616e3d1" id="r_gac8f0ca0a725790bace3241d1d616e3d1"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__link__driver.html#gac8f0ca0a725790bace3241d1d616e3d1">DRIVER_W25QXX_LINK_SPI_QSPI_WRITE_READ</a>(HANDLE,  FUC)&#160;&#160;&#160;(HANDLE)-&gt;spi_qspi_write_read = FUC</td></tr>
+<tr class="memdesc:gac8f0ca0a725790bace3241d1d616e3d1"><td class="mdescLeft">&#160;</td><td class="mdescRight">link spi_qspi_write_read function  <br /></td></tr>
 <tr class="separator:gac8f0ca0a725790bace3241d1d616e3d1"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga7555618f13d2de0003ae6d9483085180"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__link__driver.html#ga7555618f13d2de0003ae6d9483085180">DRIVER_W25QXX_LINK_DELAY_MS</a>(HANDLE,  FUC)&#160;&#160;&#160;(HANDLE)-&gt;delay_ms = FUC</td></tr>
-<tr class="memdesc:ga7555618f13d2de0003ae6d9483085180"><td class="mdescLeft">&#160;</td><td class="mdescRight">link delay_ms function  <a href="group__w25qxx__link__driver.html#ga7555618f13d2de0003ae6d9483085180">More...</a><br /></td></tr>
+<tr class="memitem:ga7555618f13d2de0003ae6d9483085180" id="r_ga7555618f13d2de0003ae6d9483085180"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__link__driver.html#ga7555618f13d2de0003ae6d9483085180">DRIVER_W25QXX_LINK_DELAY_MS</a>(HANDLE,  FUC)&#160;&#160;&#160;(HANDLE)-&gt;delay_ms = FUC</td></tr>
+<tr class="memdesc:ga7555618f13d2de0003ae6d9483085180"><td class="mdescLeft">&#160;</td><td class="mdescRight">link delay_ms function  <br /></td></tr>
 <tr class="separator:ga7555618f13d2de0003ae6d9483085180"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gafc81bf850c80dfa316f0c6ab40be6e67"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__link__driver.html#gafc81bf850c80dfa316f0c6ab40be6e67">DRIVER_W25QXX_LINK_DELAY_US</a>(HANDLE,  FUC)&#160;&#160;&#160;(HANDLE)-&gt;delay_us = FUC</td></tr>
-<tr class="memdesc:gafc81bf850c80dfa316f0c6ab40be6e67"><td class="mdescLeft">&#160;</td><td class="mdescRight">link delay_us function  <a href="group__w25qxx__link__driver.html#gafc81bf850c80dfa316f0c6ab40be6e67">More...</a><br /></td></tr>
+<tr class="memitem:gafc81bf850c80dfa316f0c6ab40be6e67" id="r_gafc81bf850c80dfa316f0c6ab40be6e67"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__link__driver.html#gafc81bf850c80dfa316f0c6ab40be6e67">DRIVER_W25QXX_LINK_DELAY_US</a>(HANDLE,  FUC)&#160;&#160;&#160;(HANDLE)-&gt;delay_us = FUC</td></tr>
+<tr class="memdesc:gafc81bf850c80dfa316f0c6ab40be6e67"><td class="mdescLeft">&#160;</td><td class="mdescRight">link delay_us function  <br /></td></tr>
 <tr class="separator:gafc81bf850c80dfa316f0c6ab40be6e67"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab8d49ef9dca942fe5f37c30dcd7e22a6"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__link__driver.html#gab8d49ef9dca942fe5f37c30dcd7e22a6">DRIVER_W25QXX_LINK_DEBUG_PRINT</a>(HANDLE,  FUC)&#160;&#160;&#160;(HANDLE)-&gt;debug_print = FUC</td></tr>
-<tr class="memdesc:gab8d49ef9dca942fe5f37c30dcd7e22a6"><td class="mdescLeft">&#160;</td><td class="mdescRight">link debug_print function  <a href="group__w25qxx__link__driver.html#gab8d49ef9dca942fe5f37c30dcd7e22a6">More...</a><br /></td></tr>
+<tr class="memitem:gab8d49ef9dca942fe5f37c30dcd7e22a6" id="r_gab8d49ef9dca942fe5f37c30dcd7e22a6"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__link__driver.html#gab8d49ef9dca942fe5f37c30dcd7e22a6">DRIVER_W25QXX_LINK_DEBUG_PRINT</a>(HANDLE,  FUC)&#160;&#160;&#160;(HANDLE)-&gt;debug_print = FUC</td></tr>
+<tr class="memdesc:gab8d49ef9dca942fe5f37c30dcd7e22a6"><td class="mdescLeft">&#160;</td><td class="mdescRight">link debug_print function  <br /></td></tr>
 <tr class="separator:gab8d49ef9dca942fe5f37c30dcd7e22a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="typedef-members" name="typedef-members"></a>
 Typedefs</h2></td></tr>
-<tr class="memitem:ga56d8a7b5f8b7eaed8df0b6dc90c266be"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structw25qxx__handle__s.html">w25qxx_handle_s</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a></td></tr>
-<tr class="memdesc:ga56d8a7b5f8b7eaed8df0b6dc90c266be"><td class="mdescLeft">&#160;</td><td class="mdescRight">w25qxx handle structure definition  <a href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">More...</a><br /></td></tr>
+<tr class="memitem:ga56d8a7b5f8b7eaed8df0b6dc90c266be" id="r_ga56d8a7b5f8b7eaed8df0b6dc90c266be"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structw25qxx__handle__s.html">w25qxx_handle_s</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a></td></tr>
+<tr class="memdesc:ga56d8a7b5f8b7eaed8df0b6dc90c266be"><td class="mdescLeft">&#160;</td><td class="mdescRight">w25qxx handle structure definition  <br /></td></tr>
 <tr class="separator:ga56d8a7b5f8b7eaed8df0b6dc90c266be"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga601d841ddd0ff8ad3ab52e07c679ef19"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structw25qxx__info__s.html">w25qxx_info_s</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#ga601d841ddd0ff8ad3ab52e07c679ef19">w25qxx_info_t</a></td></tr>
-<tr class="memdesc:ga601d841ddd0ff8ad3ab52e07c679ef19"><td class="mdescLeft">&#160;</td><td class="mdescRight">w25qxx information structure definition  <a href="group__w25qxx__basic__driver.html#ga601d841ddd0ff8ad3ab52e07c679ef19">More...</a><br /></td></tr>
+<tr class="memitem:ga601d841ddd0ff8ad3ab52e07c679ef19" id="r_ga601d841ddd0ff8ad3ab52e07c679ef19"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structw25qxx__info__s.html">w25qxx_info_s</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#ga601d841ddd0ff8ad3ab52e07c679ef19">w25qxx_info_t</a></td></tr>
+<tr class="memdesc:ga601d841ddd0ff8ad3ab52e07c679ef19"><td class="mdescLeft">&#160;</td><td class="mdescRight">w25qxx information structure definition  <br /></td></tr>
 <tr class="separator:ga601d841ddd0ff8ad3ab52e07c679ef19"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="enum-members" name="enum-members"></a>
 Enumerations</h2></td></tr>
-<tr class="memitem:ga6cb4e5164464df549201dd96cb7a58b1"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#ga6cb4e5164464df549201dd96cb7a58b1">w25qxx_type_t</a> { <br />
+<tr class="memitem:ga6cb4e5164464df549201dd96cb7a58b1" id="r_ga6cb4e5164464df549201dd96cb7a58b1"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#ga6cb4e5164464df549201dd96cb7a58b1">w25qxx_type_t</a> { <br />
 &#160;&#160;<a class="el" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a1ad4f72437de5f26cb7b212d4d91e7c2">W25Q80</a> = 0XEF13U
 , <a class="el" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a66acb81a2d520a7d92ce1d37210c6435">W25Q16</a> = 0XEF14U
 , <a class="el" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a4fdad551be6485441db5951f196db7cb">W25Q32</a> = 0XEF15U
@@ -159,42 +165,42 @@
  }</td></tr>
 <tr class="memdesc:ga6cb4e5164464df549201dd96cb7a58b1"><td class="mdescLeft">&#160;</td><td class="mdescRight">w25qxx type enumeration definition  <a href="group__w25qxx__basic__driver.html#ga6cb4e5164464df549201dd96cb7a58b1">More...</a><br /></td></tr>
 <tr class="separator:ga6cb4e5164464df549201dd96cb7a58b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gacbf327a42336baf10713a1796ff4f2fe"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#gacbf327a42336baf10713a1796ff4f2fe">w25qxx_interface_t</a> { <a class="el" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a> = 0x00
+<tr class="memitem:gacbf327a42336baf10713a1796ff4f2fe" id="r_gacbf327a42336baf10713a1796ff4f2fe"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#gacbf327a42336baf10713a1796ff4f2fe">w25qxx_interface_t</a> { <a class="el" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a> = 0x00
 , <a class="el" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2fea895dcb5c91da89fad1c12161ffd2d5d4">W25QXX_INTERFACE_QSPI</a> = 0x01
  }</td></tr>
 <tr class="memdesc:gacbf327a42336baf10713a1796ff4f2fe"><td class="mdescLeft">&#160;</td><td class="mdescRight">w25qxx interface enumeration definition  <a href="group__w25qxx__basic__driver.html#gacbf327a42336baf10713a1796ff4f2fe">More...</a><br /></td></tr>
 <tr class="separator:gacbf327a42336baf10713a1796ff4f2fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gafb2690946f5baf4be6f3a63dde5491fb"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#gafb2690946f5baf4be6f3a63dde5491fb">w25qxx_bool_t</a> { <a class="el" href="group__w25qxx__basic__driver.html#ggafb2690946f5baf4be6f3a63dde5491fba02afbdc2c6c3d761cd31ac39c857ee9a">W25QXX_BOOL_FALSE</a> = 0x00
+<tr class="memitem:gafb2690946f5baf4be6f3a63dde5491fb" id="r_gafb2690946f5baf4be6f3a63dde5491fb"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#gafb2690946f5baf4be6f3a63dde5491fb">w25qxx_bool_t</a> { <a class="el" href="group__w25qxx__basic__driver.html#ggafb2690946f5baf4be6f3a63dde5491fba02afbdc2c6c3d761cd31ac39c857ee9a">W25QXX_BOOL_FALSE</a> = 0x00
 , <a class="el" href="group__w25qxx__basic__driver.html#ggafb2690946f5baf4be6f3a63dde5491fbae2a935d12b0b1bc9fc321246ee0e0df8">W25QXX_BOOL_TRUE</a> = 0x01
  }</td></tr>
 <tr class="memdesc:gafb2690946f5baf4be6f3a63dde5491fb"><td class="mdescLeft">&#160;</td><td class="mdescRight">w25qxx bool enumeration definition  <a href="group__w25qxx__basic__driver.html#gafb2690946f5baf4be6f3a63dde5491fb">More...</a><br /></td></tr>
 <tr class="separator:gafb2690946f5baf4be6f3a63dde5491fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa4c45f146d1ade8a2da8e751818fa4a2"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#gaa4c45f146d1ade8a2da8e751818fa4a2">w25qxx_address_mode_t</a> { <a class="el" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a> = 0x00
+<tr class="memitem:gaa4c45f146d1ade8a2da8e751818fa4a2" id="r_gaa4c45f146d1ade8a2da8e751818fa4a2"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#gaa4c45f146d1ade8a2da8e751818fa4a2">w25qxx_address_mode_t</a> { <a class="el" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a> = 0x00
 , <a class="el" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a> = 0x01
  }</td></tr>
 <tr class="memdesc:gaa4c45f146d1ade8a2da8e751818fa4a2"><td class="mdescLeft">&#160;</td><td class="mdescRight">w25qxx address mode enumeration definition  <a href="group__w25qxx__basic__driver.html#gaa4c45f146d1ade8a2da8e751818fa4a2">More...</a><br /></td></tr>
 <tr class="separator:gaa4c45f146d1ade8a2da8e751818fa4a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6ff284154302248f00db269146545443"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga6ff284154302248f00db269146545443">w25qxx_qspi_read_dummy_t</a> { <a class="el" href="group__w25qxx__advance__driver.html#gga6ff284154302248f00db269146545443ad73634a0f4534c3ae35d4242b2bc8f13">W25QXX_QSPI_READ_DUMMY_2_33MHZ</a> = 0x00
+<tr class="memitem:ga6ff284154302248f00db269146545443" id="r_ga6ff284154302248f00db269146545443"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga6ff284154302248f00db269146545443">w25qxx_qspi_read_dummy_t</a> { <a class="el" href="group__w25qxx__advance__driver.html#gga6ff284154302248f00db269146545443ad73634a0f4534c3ae35d4242b2bc8f13">W25QXX_QSPI_READ_DUMMY_2_33MHZ</a> = 0x00
 , <a class="el" href="group__w25qxx__advance__driver.html#gga6ff284154302248f00db269146545443a6423b5606e72af6479fe31a6a9883aeb">W25QXX_QSPI_READ_DUMMY_4_55MHZ</a> = 0x01
 , <a class="el" href="group__w25qxx__advance__driver.html#gga6ff284154302248f00db269146545443a78393debe12bbb3efb710e38e3c1d550">W25QXX_QSPI_READ_DUMMY_6_80MHZ</a> = 0x02
 , <a class="el" href="group__w25qxx__advance__driver.html#gga6ff284154302248f00db269146545443ade1d3511f15c7d92de8c5d8967c471c3">W25QXX_QSPI_READ_DUMMY_8_80MHZ</a> = 0x03
  }</td></tr>
 <tr class="memdesc:ga6ff284154302248f00db269146545443"><td class="mdescLeft">&#160;</td><td class="mdescRight">w25qxx qspi read dummy enumeration definition  <a href="group__w25qxx__advance__driver.html#ga6ff284154302248f00db269146545443">More...</a><br /></td></tr>
 <tr class="separator:ga6ff284154302248f00db269146545443"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga2fd3023819e1aebe089a4a72eb136da3"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga2fd3023819e1aebe089a4a72eb136da3">w25qxx_qspi_read_wrap_length_t</a> { <a class="el" href="group__w25qxx__advance__driver.html#gga2fd3023819e1aebe089a4a72eb136da3a5b8fa1026c564fe83f3f0f0edb89d1dd">W25QXX_QSPI_READ_WRAP_LENGTH_8_BYTE</a> = 0x00
+<tr class="memitem:ga2fd3023819e1aebe089a4a72eb136da3" id="r_ga2fd3023819e1aebe089a4a72eb136da3"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga2fd3023819e1aebe089a4a72eb136da3">w25qxx_qspi_read_wrap_length_t</a> { <a class="el" href="group__w25qxx__advance__driver.html#gga2fd3023819e1aebe089a4a72eb136da3a5b8fa1026c564fe83f3f0f0edb89d1dd">W25QXX_QSPI_READ_WRAP_LENGTH_8_BYTE</a> = 0x00
 , <a class="el" href="group__w25qxx__advance__driver.html#gga2fd3023819e1aebe089a4a72eb136da3ae6bc2fcd2d4fc3af63f22da56a3b393b">W25QXX_QSPI_READ_WRAP_LENGTH_16_BYTE</a> = 0x01
 , <a class="el" href="group__w25qxx__advance__driver.html#gga2fd3023819e1aebe089a4a72eb136da3aa5f2e6b5718a85ab9241125e84181216">W25QXX_QSPI_READ_WRAP_LENGTH_32_BYTE</a> = 0x02
 , <a class="el" href="group__w25qxx__advance__driver.html#gga2fd3023819e1aebe089a4a72eb136da3a736f25eeae36f6a0b62d4cb1666a689f">W25QXX_QSPI_READ_WRAP_LENGTH_64_BYTE</a> = 0x03
  }</td></tr>
 <tr class="memdesc:ga2fd3023819e1aebe089a4a72eb136da3"><td class="mdescLeft">&#160;</td><td class="mdescRight">w25qxx qspi read wrap length enumeration definition  <a href="group__w25qxx__advance__driver.html#ga2fd3023819e1aebe089a4a72eb136da3">More...</a><br /></td></tr>
 <tr class="separator:ga2fd3023819e1aebe089a4a72eb136da3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga81ddc7d4b9f4f124163beea19cc33c7e"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga81ddc7d4b9f4f124163beea19cc33c7e">w25qxx_security_register_t</a> { <a class="el" href="group__w25qxx__advance__driver.html#gga81ddc7d4b9f4f124163beea19cc33c7eaaf27484a497c13915c8acb0161cf137d">W25QXX_SECURITY_REGISTER_1</a> = 0x1000
+<tr class="memitem:ga81ddc7d4b9f4f124163beea19cc33c7e" id="r_ga81ddc7d4b9f4f124163beea19cc33c7e"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga81ddc7d4b9f4f124163beea19cc33c7e">w25qxx_security_register_t</a> { <a class="el" href="group__w25qxx__advance__driver.html#gga81ddc7d4b9f4f124163beea19cc33c7eaaf27484a497c13915c8acb0161cf137d">W25QXX_SECURITY_REGISTER_1</a> = 0x1000
 , <a class="el" href="group__w25qxx__advance__driver.html#gga81ddc7d4b9f4f124163beea19cc33c7ea3353a88090850174ca163d56e4d7089c">W25QXX_SECURITY_REGISTER_2</a> = 0x2000
 , <a class="el" href="group__w25qxx__advance__driver.html#gga81ddc7d4b9f4f124163beea19cc33c7ea65b73162d921075bed8cb8d848948900">W25QXX_SECURITY_REGISTER_3</a> = 0x3000
  }</td></tr>
 <tr class="memdesc:ga81ddc7d4b9f4f124163beea19cc33c7e"><td class="mdescLeft">&#160;</td><td class="mdescRight">w25qxx security register enumeration definition  <a href="group__w25qxx__advance__driver.html#ga81ddc7d4b9f4f124163beea19cc33c7e">More...</a><br /></td></tr>
 <tr class="separator:ga81ddc7d4b9f4f124163beea19cc33c7e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga94bbae2bf8906903e8dc2a28c490723d"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga94bbae2bf8906903e8dc2a28c490723d">w25qxx_burst_wrap_t</a> { <br />
+<tr class="memitem:ga94bbae2bf8906903e8dc2a28c490723d" id="r_ga94bbae2bf8906903e8dc2a28c490723d"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga94bbae2bf8906903e8dc2a28c490723d">w25qxx_burst_wrap_t</a> { <br />
 &#160;&#160;<a class="el" href="group__w25qxx__advance__driver.html#gga94bbae2bf8906903e8dc2a28c490723dae39a7ea65512a56d40aad2990d55815d">W25QXX_BURST_WRAP_NONE</a> = 0x10
 , <a class="el" href="group__w25qxx__advance__driver.html#gga94bbae2bf8906903e8dc2a28c490723da35edf6c31d0fe1771ab79669d13b7af8">W25QXX_BURST_WRAP_8_BYTE</a> = 0x00
 , <a class="el" href="group__w25qxx__advance__driver.html#gga94bbae2bf8906903e8dc2a28c490723dafec1eb230b49fbda6ffcc1eeda64179a">W25QXX_BURST_WRAP_16_BYTE</a> = 0x20
@@ -205,7 +211,7 @@
  }</td></tr>
 <tr class="memdesc:ga94bbae2bf8906903e8dc2a28c490723d"><td class="mdescLeft">&#160;</td><td class="mdescRight">w25qxx burst wrap enumeration definition  <a href="group__w25qxx__advance__driver.html#ga94bbae2bf8906903e8dc2a28c490723d">More...</a><br /></td></tr>
 <tr class="separator:ga94bbae2bf8906903e8dc2a28c490723d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga9e41a72d1e25d39d88ce7108a9b25595"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga9e41a72d1e25d39d88ce7108a9b25595">w25qxx_status1_t</a> { <br />
+<tr class="memitem:ga9e41a72d1e25d39d88ce7108a9b25595" id="r_ga9e41a72d1e25d39d88ce7108a9b25595"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga9e41a72d1e25d39d88ce7108a9b25595">w25qxx_status1_t</a> { <br />
 &#160;&#160;<a class="el" href="group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a00d1d224963ec1f38ac97802480b2129">W25QXX_STATUS1_STATUS_REGISTER_PROTECT_0</a> = (1 &lt;&lt; 7)
 , <a class="el" href="group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a9522040a098337442eff127e1598776d">W25QXX_STATUS1_SECTOR_PROTECT_OR_TOP_BOTTOM_PROTECT</a> = (1 &lt;&lt; 6)
 , <a class="el" href="group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a63bc45b7e0e19de7e58e3494eb4046c5">W25QXX_STATUS1_TOP_BOTTOM_PROTECT_OR_BLOCK_PROTECT_3</a> = (1 &lt;&lt; 5)
@@ -219,7 +225,7 @@
  }</td></tr>
 <tr class="memdesc:ga9e41a72d1e25d39d88ce7108a9b25595"><td class="mdescLeft">&#160;</td><td class="mdescRight">w25qxx status 1 enumeration definition  <a href="group__w25qxx__advance__driver.html#ga9e41a72d1e25d39d88ce7108a9b25595">More...</a><br /></td></tr>
 <tr class="separator:ga9e41a72d1e25d39d88ce7108a9b25595"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga0d28076f6fc7d3ae9dd7f8410069a277"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga0d28076f6fc7d3ae9dd7f8410069a277">w25qxx_status2_t</a> { <br />
+<tr class="memitem:ga0d28076f6fc7d3ae9dd7f8410069a277" id="r_ga0d28076f6fc7d3ae9dd7f8410069a277"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga0d28076f6fc7d3ae9dd7f8410069a277">w25qxx_status2_t</a> { <br />
 &#160;&#160;<a class="el" href="group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277a3fdb54846709f77391e426c626a19152">W25QXX_STATUS2_SUSPEND_STATUS</a> = (1 &lt;&lt; 7)
 , <a class="el" href="group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277a517e9e50ada30462f902d01e8d5579dc">W25QXX_STATUS2_COMPLEMENT_PROTECT</a> = (1 &lt;&lt; 6)
 , <a class="el" href="group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277a0f3e2b3059d56f974724a8284142e69a">W25QXX_STATUS2_SECURITY_REGISTER_3_LOCK_BITS</a> = (1 &lt;&lt; 5)
@@ -232,7 +238,7 @@
  }</td></tr>
 <tr class="memdesc:ga0d28076f6fc7d3ae9dd7f8410069a277"><td class="mdescLeft">&#160;</td><td class="mdescRight">w25qxx status 2 enumeration definition  <a href="group__w25qxx__advance__driver.html#ga0d28076f6fc7d3ae9dd7f8410069a277">More...</a><br /></td></tr>
 <tr class="separator:ga0d28076f6fc7d3ae9dd7f8410069a277"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gace18ebb2eac49cbde44a2935916f44ac"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#gace18ebb2eac49cbde44a2935916f44ac">w25qxx_status3_t</a> { <br />
+<tr class="memitem:gace18ebb2eac49cbde44a2935916f44ac" id="r_gace18ebb2eac49cbde44a2935916f44ac"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#gace18ebb2eac49cbde44a2935916f44ac">w25qxx_status3_t</a> { <br />
 &#160;&#160;<a class="el" href="group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44aca9ab13d5388af0156c4e4de08765ec401">W25QXX_STATUS3_HOLD_RESET_FUNCTION</a> = (1 &lt;&lt; 7)
 , <a class="el" href="group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44acab5b1ce328b88d08f3d55ed776e01fedb">W25QXX_STATUS3_OUTPUT_DRIVER_STRENGTH_100_PERCENTAGE</a> = (0 &lt;&lt; 5)
 , <a class="el" href="group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44aca7ab6ace72a02afc20f92f48e975b60b7">W25QXX_STATUS3_OUTPUT_DRIVER_STRENGTH_75_PERCENTAGE</a> = (1 &lt;&lt; 5)
@@ -247,190 +253,190 @@
 <tr class="memdesc:gace18ebb2eac49cbde44a2935916f44ac"><td class="mdescLeft">&#160;</td><td class="mdescRight">w25qxx status 3 enumeration definition  <a href="group__w25qxx__advance__driver.html#gace18ebb2eac49cbde44a2935916f44ac">More...</a><br /></td></tr>
 <tr class="separator:gace18ebb2eac49cbde44a2935916f44ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
 Functions</h2></td></tr>
-<tr class="memitem:ga996e2d3009432e7f8c1a5175c4438a57"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#ga996e2d3009432e7f8c1a5175c4438a57">w25qxx_info</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga601d841ddd0ff8ad3ab52e07c679ef19">w25qxx_info_t</a> *info)</td></tr>
-<tr class="memdesc:ga996e2d3009432e7f8c1a5175c4438a57"><td class="mdescLeft">&#160;</td><td class="mdescRight">get chip's information  <a href="group__w25qxx__basic__driver.html#ga996e2d3009432e7f8c1a5175c4438a57">More...</a><br /></td></tr>
+<tr class="memitem:ga996e2d3009432e7f8c1a5175c4438a57" id="r_ga996e2d3009432e7f8c1a5175c4438a57"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#ga996e2d3009432e7f8c1a5175c4438a57">w25qxx_info</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga601d841ddd0ff8ad3ab52e07c679ef19">w25qxx_info_t</a> *info)</td></tr>
+<tr class="memdesc:ga996e2d3009432e7f8c1a5175c4438a57"><td class="mdescLeft">&#160;</td><td class="mdescRight">get chip's information  <br /></td></tr>
 <tr class="separator:ga996e2d3009432e7f8c1a5175c4438a57"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga665139209b0abc386474a78d89cce6f2"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#ga665139209b0abc386474a78d89cce6f2">w25qxx_set_dual_quad_spi</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, <a class="el" href="group__w25qxx__basic__driver.html#gafb2690946f5baf4be6f3a63dde5491fb">w25qxx_bool_t</a> enable)</td></tr>
-<tr class="memdesc:ga665139209b0abc386474a78d89cce6f2"><td class="mdescLeft">&#160;</td><td class="mdescRight">enable or disable the dual quad spi  <a href="group__w25qxx__basic__driver.html#ga665139209b0abc386474a78d89cce6f2">More...</a><br /></td></tr>
+<tr class="memitem:ga665139209b0abc386474a78d89cce6f2" id="r_ga665139209b0abc386474a78d89cce6f2"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#ga665139209b0abc386474a78d89cce6f2">w25qxx_set_dual_quad_spi</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, <a class="el" href="group__w25qxx__basic__driver.html#gafb2690946f5baf4be6f3a63dde5491fb">w25qxx_bool_t</a> enable)</td></tr>
+<tr class="memdesc:ga665139209b0abc386474a78d89cce6f2"><td class="mdescLeft">&#160;</td><td class="mdescRight">enable or disable the dual quad spi  <br /></td></tr>
 <tr class="separator:ga665139209b0abc386474a78d89cce6f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad4c9b8b0a2d0916c13567f9d7e494cf8"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#gad4c9b8b0a2d0916c13567f9d7e494cf8">w25qxx_get_dual_quad_spi</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, <a class="el" href="group__w25qxx__basic__driver.html#gafb2690946f5baf4be6f3a63dde5491fb">w25qxx_bool_t</a> *enable)</td></tr>
-<tr class="memdesc:gad4c9b8b0a2d0916c13567f9d7e494cf8"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the dual quad spi status  <a href="group__w25qxx__basic__driver.html#gad4c9b8b0a2d0916c13567f9d7e494cf8">More...</a><br /></td></tr>
+<tr class="memitem:gad4c9b8b0a2d0916c13567f9d7e494cf8" id="r_gad4c9b8b0a2d0916c13567f9d7e494cf8"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#gad4c9b8b0a2d0916c13567f9d7e494cf8">w25qxx_get_dual_quad_spi</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, <a class="el" href="group__w25qxx__basic__driver.html#gafb2690946f5baf4be6f3a63dde5491fb">w25qxx_bool_t</a> *enable)</td></tr>
+<tr class="memdesc:gad4c9b8b0a2d0916c13567f9d7e494cf8"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the dual quad spi status  <br /></td></tr>
 <tr class="separator:gad4c9b8b0a2d0916c13567f9d7e494cf8"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa57189cd4170b73f8b1300ca15e27de6"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#gaa57189cd4170b73f8b1300ca15e27de6">w25qxx_set_type</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, <a class="el" href="group__w25qxx__basic__driver.html#ga6cb4e5164464df549201dd96cb7a58b1">w25qxx_type_t</a> type)</td></tr>
-<tr class="memdesc:gaa57189cd4170b73f8b1300ca15e27de6"><td class="mdescLeft">&#160;</td><td class="mdescRight">set the chip type  <a href="group__w25qxx__basic__driver.html#gaa57189cd4170b73f8b1300ca15e27de6">More...</a><br /></td></tr>
+<tr class="memitem:gaa57189cd4170b73f8b1300ca15e27de6" id="r_gaa57189cd4170b73f8b1300ca15e27de6"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#gaa57189cd4170b73f8b1300ca15e27de6">w25qxx_set_type</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, <a class="el" href="group__w25qxx__basic__driver.html#ga6cb4e5164464df549201dd96cb7a58b1">w25qxx_type_t</a> type)</td></tr>
+<tr class="memdesc:gaa57189cd4170b73f8b1300ca15e27de6"><td class="mdescLeft">&#160;</td><td class="mdescRight">set the chip type  <br /></td></tr>
 <tr class="separator:gaa57189cd4170b73f8b1300ca15e27de6"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga685379998dad173b6d9c0b0da270685c"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#ga685379998dad173b6d9c0b0da270685c">w25qxx_get_type</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, <a class="el" href="group__w25qxx__basic__driver.html#ga6cb4e5164464df549201dd96cb7a58b1">w25qxx_type_t</a> *type)</td></tr>
-<tr class="memdesc:ga685379998dad173b6d9c0b0da270685c"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the chip type  <a href="group__w25qxx__basic__driver.html#ga685379998dad173b6d9c0b0da270685c">More...</a><br /></td></tr>
+<tr class="memitem:ga685379998dad173b6d9c0b0da270685c" id="r_ga685379998dad173b6d9c0b0da270685c"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#ga685379998dad173b6d9c0b0da270685c">w25qxx_get_type</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, <a class="el" href="group__w25qxx__basic__driver.html#ga6cb4e5164464df549201dd96cb7a58b1">w25qxx_type_t</a> *type)</td></tr>
+<tr class="memdesc:ga685379998dad173b6d9c0b0da270685c"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the chip type  <br /></td></tr>
 <tr class="separator:ga685379998dad173b6d9c0b0da270685c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga50a62003d566402d46ada2f272c41eb5"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#ga50a62003d566402d46ada2f272c41eb5">w25qxx_set_interface</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, <a class="el" href="group__w25qxx__basic__driver.html#gacbf327a42336baf10713a1796ff4f2fe">w25qxx_interface_t</a> interface)</td></tr>
-<tr class="memdesc:ga50a62003d566402d46ada2f272c41eb5"><td class="mdescLeft">&#160;</td><td class="mdescRight">set the chip interface  <a href="group__w25qxx__basic__driver.html#ga50a62003d566402d46ada2f272c41eb5">More...</a><br /></td></tr>
+<tr class="memitem:ga50a62003d566402d46ada2f272c41eb5" id="r_ga50a62003d566402d46ada2f272c41eb5"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#ga50a62003d566402d46ada2f272c41eb5">w25qxx_set_interface</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, <a class="el" href="group__w25qxx__basic__driver.html#gacbf327a42336baf10713a1796ff4f2fe">w25qxx_interface_t</a> interface)</td></tr>
+<tr class="memdesc:ga50a62003d566402d46ada2f272c41eb5"><td class="mdescLeft">&#160;</td><td class="mdescRight">set the chip interface  <br /></td></tr>
 <tr class="separator:ga50a62003d566402d46ada2f272c41eb5"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga86ef839d475f3926a0be46bbc18d4b45"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#ga86ef839d475f3926a0be46bbc18d4b45">w25qxx_get_interface</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, <a class="el" href="group__w25qxx__basic__driver.html#gacbf327a42336baf10713a1796ff4f2fe">w25qxx_interface_t</a> *interface)</td></tr>
-<tr class="memdesc:ga86ef839d475f3926a0be46bbc18d4b45"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the chip interface  <a href="group__w25qxx__basic__driver.html#ga86ef839d475f3926a0be46bbc18d4b45">More...</a><br /></td></tr>
+<tr class="memitem:ga86ef839d475f3926a0be46bbc18d4b45" id="r_ga86ef839d475f3926a0be46bbc18d4b45"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#ga86ef839d475f3926a0be46bbc18d4b45">w25qxx_get_interface</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, <a class="el" href="group__w25qxx__basic__driver.html#gacbf327a42336baf10713a1796ff4f2fe">w25qxx_interface_t</a> *interface)</td></tr>
+<tr class="memdesc:ga86ef839d475f3926a0be46bbc18d4b45"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the chip interface  <br /></td></tr>
 <tr class="separator:ga86ef839d475f3926a0be46bbc18d4b45"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad0e125eff304ce66fb3956d2c8c80656"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#gad0e125eff304ce66fb3956d2c8c80656">w25qxx_set_address_mode</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, <a class="el" href="group__w25qxx__basic__driver.html#gaa4c45f146d1ade8a2da8e751818fa4a2">w25qxx_address_mode_t</a> mode)</td></tr>
-<tr class="memdesc:gad0e125eff304ce66fb3956d2c8c80656"><td class="mdescLeft">&#160;</td><td class="mdescRight">set the chip address mode  <a href="group__w25qxx__basic__driver.html#gad0e125eff304ce66fb3956d2c8c80656">More...</a><br /></td></tr>
+<tr class="memitem:gad0e125eff304ce66fb3956d2c8c80656" id="r_gad0e125eff304ce66fb3956d2c8c80656"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#gad0e125eff304ce66fb3956d2c8c80656">w25qxx_set_address_mode</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, <a class="el" href="group__w25qxx__basic__driver.html#gaa4c45f146d1ade8a2da8e751818fa4a2">w25qxx_address_mode_t</a> mode)</td></tr>
+<tr class="memdesc:gad0e125eff304ce66fb3956d2c8c80656"><td class="mdescLeft">&#160;</td><td class="mdescRight">set the chip address mode  <br /></td></tr>
 <tr class="separator:gad0e125eff304ce66fb3956d2c8c80656"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga3a52036a97b12fcbe2280b0901a80b90"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#ga3a52036a97b12fcbe2280b0901a80b90">w25qxx_get_address_mode</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, <a class="el" href="group__w25qxx__basic__driver.html#gaa4c45f146d1ade8a2da8e751818fa4a2">w25qxx_address_mode_t</a> *mode)</td></tr>
-<tr class="memdesc:ga3a52036a97b12fcbe2280b0901a80b90"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the chip address mode  <a href="group__w25qxx__basic__driver.html#ga3a52036a97b12fcbe2280b0901a80b90">More...</a><br /></td></tr>
+<tr class="memitem:ga3a52036a97b12fcbe2280b0901a80b90" id="r_ga3a52036a97b12fcbe2280b0901a80b90"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#ga3a52036a97b12fcbe2280b0901a80b90">w25qxx_get_address_mode</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, <a class="el" href="group__w25qxx__basic__driver.html#gaa4c45f146d1ade8a2da8e751818fa4a2">w25qxx_address_mode_t</a> *mode)</td></tr>
+<tr class="memdesc:ga3a52036a97b12fcbe2280b0901a80b90"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the chip address mode  <br /></td></tr>
 <tr class="separator:ga3a52036a97b12fcbe2280b0901a80b90"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga8e7a163b3d255b8c7fc035d0d60f2491"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#ga8e7a163b3d255b8c7fc035d0d60f2491">w25qxx_init</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle)</td></tr>
-<tr class="memdesc:ga8e7a163b3d255b8c7fc035d0d60f2491"><td class="mdescLeft">&#160;</td><td class="mdescRight">initialize the chip  <a href="group__w25qxx__basic__driver.html#ga8e7a163b3d255b8c7fc035d0d60f2491">More...</a><br /></td></tr>
+<tr class="memitem:ga8e7a163b3d255b8c7fc035d0d60f2491" id="r_ga8e7a163b3d255b8c7fc035d0d60f2491"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#ga8e7a163b3d255b8c7fc035d0d60f2491">w25qxx_init</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle)</td></tr>
+<tr class="memdesc:ga8e7a163b3d255b8c7fc035d0d60f2491"><td class="mdescLeft">&#160;</td><td class="mdescRight">initialize the chip  <br /></td></tr>
 <tr class="separator:ga8e7a163b3d255b8c7fc035d0d60f2491"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa293c3a46c4010a3af597a83e646de0d"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle)</td></tr>
-<tr class="memdesc:gaa293c3a46c4010a3af597a83e646de0d"><td class="mdescLeft">&#160;</td><td class="mdescRight">close the chip  <a href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">More...</a><br /></td></tr>
+<tr class="memitem:gaa293c3a46c4010a3af597a83e646de0d" id="r_gaa293c3a46c4010a3af597a83e646de0d"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle)</td></tr>
+<tr class="memdesc:gaa293c3a46c4010a3af597a83e646de0d"><td class="mdescLeft">&#160;</td><td class="mdescRight">close the chip  <br /></td></tr>
 <tr class="separator:gaa293c3a46c4010a3af597a83e646de0d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae7479fc9ce911a52e3c5b6f1a615b879"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#gae7479fc9ce911a52e3c5b6f1a615b879">w25qxx_read</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
-<tr class="memdesc:gae7479fc9ce911a52e3c5b6f1a615b879"><td class="mdescLeft">&#160;</td><td class="mdescRight">read data  <a href="group__w25qxx__basic__driver.html#gae7479fc9ce911a52e3c5b6f1a615b879">More...</a><br /></td></tr>
+<tr class="memitem:gae7479fc9ce911a52e3c5b6f1a615b879" id="r_gae7479fc9ce911a52e3c5b6f1a615b879"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#gae7479fc9ce911a52e3c5b6f1a615b879">w25qxx_read</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
+<tr class="memdesc:gae7479fc9ce911a52e3c5b6f1a615b879"><td class="mdescLeft">&#160;</td><td class="mdescRight">read data  <br /></td></tr>
 <tr class="separator:gae7479fc9ce911a52e3c5b6f1a615b879"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaaee8264d840e51460821cb6e609338ee"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#gaaee8264d840e51460821cb6e609338ee">w25qxx_write</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
-<tr class="memdesc:gaaee8264d840e51460821cb6e609338ee"><td class="mdescLeft">&#160;</td><td class="mdescRight">write data  <a href="group__w25qxx__basic__driver.html#gaaee8264d840e51460821cb6e609338ee">More...</a><br /></td></tr>
+<tr class="memitem:gaaee8264d840e51460821cb6e609338ee" id="r_gaaee8264d840e51460821cb6e609338ee"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#gaaee8264d840e51460821cb6e609338ee">w25qxx_write</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
+<tr class="memdesc:gaaee8264d840e51460821cb6e609338ee"><td class="mdescLeft">&#160;</td><td class="mdescRight">write data  <br /></td></tr>
 <tr class="separator:gaaee8264d840e51460821cb6e609338ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga1e9ebf198137d23558dbf6470213c472"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#ga1e9ebf198137d23558dbf6470213c472">w25qxx_only_spi_read</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
-<tr class="memdesc:ga1e9ebf198137d23558dbf6470213c472"><td class="mdescLeft">&#160;</td><td class="mdescRight">read only in the spi interface  <a href="group__w25qxx__basic__driver.html#ga1e9ebf198137d23558dbf6470213c472">More...</a><br /></td></tr>
+<tr class="memitem:ga1e9ebf198137d23558dbf6470213c472" id="r_ga1e9ebf198137d23558dbf6470213c472"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#ga1e9ebf198137d23558dbf6470213c472">w25qxx_only_spi_read</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
+<tr class="memdesc:ga1e9ebf198137d23558dbf6470213c472"><td class="mdescLeft">&#160;</td><td class="mdescRight">read only in the spi interface  <br /></td></tr>
 <tr class="separator:ga1e9ebf198137d23558dbf6470213c472"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac345ba10af5ad355578fa97697487123"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#gac345ba10af5ad355578fa97697487123">w25qxx_fast_read</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
-<tr class="memdesc:gac345ba10af5ad355578fa97697487123"><td class="mdescLeft">&#160;</td><td class="mdescRight">read in the fast mode  <a href="group__w25qxx__basic__driver.html#gac345ba10af5ad355578fa97697487123">More...</a><br /></td></tr>
+<tr class="memitem:gac345ba10af5ad355578fa97697487123" id="r_gac345ba10af5ad355578fa97697487123"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#gac345ba10af5ad355578fa97697487123">w25qxx_fast_read</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
+<tr class="memdesc:gac345ba10af5ad355578fa97697487123"><td class="mdescLeft">&#160;</td><td class="mdescRight">read in the fast mode  <br /></td></tr>
 <tr class="separator:gac345ba10af5ad355578fa97697487123"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6280e7e4ab26306436e2c210617a28b3"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#ga6280e7e4ab26306436e2c210617a28b3">w25qxx_page_program</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint16_t len)</td></tr>
-<tr class="memdesc:ga6280e7e4ab26306436e2c210617a28b3"><td class="mdescLeft">&#160;</td><td class="mdescRight">page program  <a href="group__w25qxx__basic__driver.html#ga6280e7e4ab26306436e2c210617a28b3">More...</a><br /></td></tr>
+<tr class="memitem:ga6280e7e4ab26306436e2c210617a28b3" id="r_ga6280e7e4ab26306436e2c210617a28b3"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#ga6280e7e4ab26306436e2c210617a28b3">w25qxx_page_program</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint16_t len)</td></tr>
+<tr class="memdesc:ga6280e7e4ab26306436e2c210617a28b3"><td class="mdescLeft">&#160;</td><td class="mdescRight">page program  <br /></td></tr>
 <tr class="separator:ga6280e7e4ab26306436e2c210617a28b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga9a03c51b4c84655350c15fbfce0a6b40"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#ga9a03c51b4c84655350c15fbfce0a6b40">w25qxx_sector_erase_4k</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint32_t addr)</td></tr>
-<tr class="memdesc:ga9a03c51b4c84655350c15fbfce0a6b40"><td class="mdescLeft">&#160;</td><td class="mdescRight">erase the 4k sector  <a href="group__w25qxx__basic__driver.html#ga9a03c51b4c84655350c15fbfce0a6b40">More...</a><br /></td></tr>
+<tr class="memitem:ga9a03c51b4c84655350c15fbfce0a6b40" id="r_ga9a03c51b4c84655350c15fbfce0a6b40"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#ga9a03c51b4c84655350c15fbfce0a6b40">w25qxx_sector_erase_4k</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint32_t addr)</td></tr>
+<tr class="memdesc:ga9a03c51b4c84655350c15fbfce0a6b40"><td class="mdescLeft">&#160;</td><td class="mdescRight">erase the 4k sector  <br /></td></tr>
 <tr class="separator:ga9a03c51b4c84655350c15fbfce0a6b40"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga39c8fb382e8c3e4d57232dfa79af781c"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#ga39c8fb382e8c3e4d57232dfa79af781c">w25qxx_block_erase_32k</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint32_t addr)</td></tr>
-<tr class="memdesc:ga39c8fb382e8c3e4d57232dfa79af781c"><td class="mdescLeft">&#160;</td><td class="mdescRight">erase the 32k block  <a href="group__w25qxx__basic__driver.html#ga39c8fb382e8c3e4d57232dfa79af781c">More...</a><br /></td></tr>
+<tr class="memitem:ga39c8fb382e8c3e4d57232dfa79af781c" id="r_ga39c8fb382e8c3e4d57232dfa79af781c"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#ga39c8fb382e8c3e4d57232dfa79af781c">w25qxx_block_erase_32k</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint32_t addr)</td></tr>
+<tr class="memdesc:ga39c8fb382e8c3e4d57232dfa79af781c"><td class="mdescLeft">&#160;</td><td class="mdescRight">erase the 32k block  <br /></td></tr>
 <tr class="separator:ga39c8fb382e8c3e4d57232dfa79af781c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf53bc5f6073482b9b74efd417ec7ac83"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#gaf53bc5f6073482b9b74efd417ec7ac83">w25qxx_block_erase_64k</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint32_t addr)</td></tr>
-<tr class="memdesc:gaf53bc5f6073482b9b74efd417ec7ac83"><td class="mdescLeft">&#160;</td><td class="mdescRight">erase the 64k block  <a href="group__w25qxx__basic__driver.html#gaf53bc5f6073482b9b74efd417ec7ac83">More...</a><br /></td></tr>
+<tr class="memitem:gaf53bc5f6073482b9b74efd417ec7ac83" id="r_gaf53bc5f6073482b9b74efd417ec7ac83"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#gaf53bc5f6073482b9b74efd417ec7ac83">w25qxx_block_erase_64k</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint32_t addr)</td></tr>
+<tr class="memdesc:gaf53bc5f6073482b9b74efd417ec7ac83"><td class="mdescLeft">&#160;</td><td class="mdescRight">erase the 64k block  <br /></td></tr>
 <tr class="separator:gaf53bc5f6073482b9b74efd417ec7ac83"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga0862833b36831f92684980b2e21f2e39"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#ga0862833b36831f92684980b2e21f2e39">w25qxx_chip_erase</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle)</td></tr>
-<tr class="memdesc:ga0862833b36831f92684980b2e21f2e39"><td class="mdescLeft">&#160;</td><td class="mdescRight">erase the chip  <a href="group__w25qxx__basic__driver.html#ga0862833b36831f92684980b2e21f2e39">More...</a><br /></td></tr>
+<tr class="memitem:ga0862833b36831f92684980b2e21f2e39" id="r_ga0862833b36831f92684980b2e21f2e39"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#ga0862833b36831f92684980b2e21f2e39">w25qxx_chip_erase</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle)</td></tr>
+<tr class="memdesc:ga0862833b36831f92684980b2e21f2e39"><td class="mdescLeft">&#160;</td><td class="mdescRight">erase the chip  <br /></td></tr>
 <tr class="separator:ga0862833b36831f92684980b2e21f2e39"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae4effce67e36120325e3c7b245b90142"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#gae4effce67e36120325e3c7b245b90142">w25qxx_power_down</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle)</td></tr>
-<tr class="memdesc:gae4effce67e36120325e3c7b245b90142"><td class="mdescLeft">&#160;</td><td class="mdescRight">power down  <a href="group__w25qxx__basic__driver.html#gae4effce67e36120325e3c7b245b90142">More...</a><br /></td></tr>
+<tr class="memitem:gae4effce67e36120325e3c7b245b90142" id="r_gae4effce67e36120325e3c7b245b90142"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#gae4effce67e36120325e3c7b245b90142">w25qxx_power_down</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle)</td></tr>
+<tr class="memdesc:gae4effce67e36120325e3c7b245b90142"><td class="mdescLeft">&#160;</td><td class="mdescRight">power down  <br /></td></tr>
 <tr class="separator:gae4effce67e36120325e3c7b245b90142"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga09c9b52877516a2ee4c080dc249e7331"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#ga09c9b52877516a2ee4c080dc249e7331">w25qxx_release_power_down</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle)</td></tr>
-<tr class="memdesc:ga09c9b52877516a2ee4c080dc249e7331"><td class="mdescLeft">&#160;</td><td class="mdescRight">release power down  <a href="group__w25qxx__basic__driver.html#ga09c9b52877516a2ee4c080dc249e7331">More...</a><br /></td></tr>
+<tr class="memitem:ga09c9b52877516a2ee4c080dc249e7331" id="r_ga09c9b52877516a2ee4c080dc249e7331"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#ga09c9b52877516a2ee4c080dc249e7331">w25qxx_release_power_down</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle)</td></tr>
+<tr class="memdesc:ga09c9b52877516a2ee4c080dc249e7331"><td class="mdescLeft">&#160;</td><td class="mdescRight">release power down  <br /></td></tr>
 <tr class="separator:ga09c9b52877516a2ee4c080dc249e7331"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga921836a777b082ff4d0f322ccfda6b22"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#ga921836a777b082ff4d0f322ccfda6b22">w25qxx_get_manufacturer_device_id</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint8_t *manufacturer, uint8_t *device_id)</td></tr>
-<tr class="memdesc:ga921836a777b082ff4d0f322ccfda6b22"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the manufacturer &amp;&amp; device id information  <a href="group__w25qxx__basic__driver.html#ga921836a777b082ff4d0f322ccfda6b22">More...</a><br /></td></tr>
+<tr class="memitem:ga921836a777b082ff4d0f322ccfda6b22" id="r_ga921836a777b082ff4d0f322ccfda6b22"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#ga921836a777b082ff4d0f322ccfda6b22">w25qxx_get_manufacturer_device_id</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint8_t *manufacturer, uint8_t *device_id)</td></tr>
+<tr class="memdesc:ga921836a777b082ff4d0f322ccfda6b22"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the manufacturer &amp;&amp; device id information  <br /></td></tr>
 <tr class="separator:ga921836a777b082ff4d0f322ccfda6b22"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga7a19230ca3916816ea8fb7421483d293"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga7a19230ca3916816ea8fb7421483d293">w25qxx_fast_read_dual_output</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
-<tr class="memdesc:ga7a19230ca3916816ea8fb7421483d293"><td class="mdescLeft">&#160;</td><td class="mdescRight">read with dual output in the fast mode  <a href="group__w25qxx__advance__driver.html#ga7a19230ca3916816ea8fb7421483d293">More...</a><br /></td></tr>
+<tr class="memitem:ga7a19230ca3916816ea8fb7421483d293" id="r_ga7a19230ca3916816ea8fb7421483d293"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga7a19230ca3916816ea8fb7421483d293">w25qxx_fast_read_dual_output</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
+<tr class="memdesc:ga7a19230ca3916816ea8fb7421483d293"><td class="mdescLeft">&#160;</td><td class="mdescRight">read with dual output in the fast mode  <br /></td></tr>
 <tr class="separator:ga7a19230ca3916816ea8fb7421483d293"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf4bfafd1f80aa0316a4b1a15183dcd50"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#gaf4bfafd1f80aa0316a4b1a15183dcd50">w25qxx_fast_read_quad_output</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
-<tr class="memdesc:gaf4bfafd1f80aa0316a4b1a15183dcd50"><td class="mdescLeft">&#160;</td><td class="mdescRight">read with quad output in the fast mode  <a href="group__w25qxx__advance__driver.html#gaf4bfafd1f80aa0316a4b1a15183dcd50">More...</a><br /></td></tr>
+<tr class="memitem:gaf4bfafd1f80aa0316a4b1a15183dcd50" id="r_gaf4bfafd1f80aa0316a4b1a15183dcd50"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#gaf4bfafd1f80aa0316a4b1a15183dcd50">w25qxx_fast_read_quad_output</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
+<tr class="memdesc:gaf4bfafd1f80aa0316a4b1a15183dcd50"><td class="mdescLeft">&#160;</td><td class="mdescRight">read with quad output in the fast mode  <br /></td></tr>
 <tr class="separator:gaf4bfafd1f80aa0316a4b1a15183dcd50"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac894f4650905cba10dd3a31284de6d5e"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#gac894f4650905cba10dd3a31284de6d5e">w25qxx_fast_read_dual_io</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
-<tr class="memdesc:gac894f4650905cba10dd3a31284de6d5e"><td class="mdescLeft">&#160;</td><td class="mdescRight">read with dual io in the fast mode  <a href="group__w25qxx__advance__driver.html#gac894f4650905cba10dd3a31284de6d5e">More...</a><br /></td></tr>
+<tr class="memitem:gac894f4650905cba10dd3a31284de6d5e" id="r_gac894f4650905cba10dd3a31284de6d5e"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#gac894f4650905cba10dd3a31284de6d5e">w25qxx_fast_read_dual_io</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
+<tr class="memdesc:gac894f4650905cba10dd3a31284de6d5e"><td class="mdescLeft">&#160;</td><td class="mdescRight">read with dual io in the fast mode  <br /></td></tr>
 <tr class="separator:gac894f4650905cba10dd3a31284de6d5e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab97a64bd3776874518f60381d921ae41"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#gab97a64bd3776874518f60381d921ae41">w25qxx_fast_read_quad_io</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
-<tr class="memdesc:gab97a64bd3776874518f60381d921ae41"><td class="mdescLeft">&#160;</td><td class="mdescRight">read with quad io in the fast mode  <a href="group__w25qxx__advance__driver.html#gab97a64bd3776874518f60381d921ae41">More...</a><br /></td></tr>
+<tr class="memitem:gab97a64bd3776874518f60381d921ae41" id="r_gab97a64bd3776874518f60381d921ae41"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#gab97a64bd3776874518f60381d921ae41">w25qxx_fast_read_quad_io</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
+<tr class="memdesc:gab97a64bd3776874518f60381d921ae41"><td class="mdescLeft">&#160;</td><td class="mdescRight">read with quad io in the fast mode  <br /></td></tr>
 <tr class="separator:gab97a64bd3776874518f60381d921ae41"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad97d7e410dd77c49334097a0fd332660"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#gad97d7e410dd77c49334097a0fd332660">w25qxx_word_read_quad_io</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
-<tr class="memdesc:gad97d7e410dd77c49334097a0fd332660"><td class="mdescLeft">&#160;</td><td class="mdescRight">word read with quad io  <a href="group__w25qxx__advance__driver.html#gad97d7e410dd77c49334097a0fd332660">More...</a><br /></td></tr>
+<tr class="memitem:gad97d7e410dd77c49334097a0fd332660" id="r_gad97d7e410dd77c49334097a0fd332660"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#gad97d7e410dd77c49334097a0fd332660">w25qxx_word_read_quad_io</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
+<tr class="memdesc:gad97d7e410dd77c49334097a0fd332660"><td class="mdescLeft">&#160;</td><td class="mdescRight">word read with quad io  <br /></td></tr>
 <tr class="separator:gad97d7e410dd77c49334097a0fd332660"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga88a62ec42e86db821ff3f0d3ab541dbb"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga88a62ec42e86db821ff3f0d3ab541dbb">w25qxx_octal_word_read_quad_io</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
-<tr class="memdesc:ga88a62ec42e86db821ff3f0d3ab541dbb"><td class="mdescLeft">&#160;</td><td class="mdescRight">octal word read with quad io  <a href="group__w25qxx__advance__driver.html#ga88a62ec42e86db821ff3f0d3ab541dbb">More...</a><br /></td></tr>
+<tr class="memitem:ga88a62ec42e86db821ff3f0d3ab541dbb" id="r_ga88a62ec42e86db821ff3f0d3ab541dbb"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga88a62ec42e86db821ff3f0d3ab541dbb">w25qxx_octal_word_read_quad_io</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
+<tr class="memdesc:ga88a62ec42e86db821ff3f0d3ab541dbb"><td class="mdescLeft">&#160;</td><td class="mdescRight">octal word read with quad io  <br /></td></tr>
 <tr class="separator:ga88a62ec42e86db821ff3f0d3ab541dbb"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga1f80bbbaaa852eecfffb87737889363d"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga1f80bbbaaa852eecfffb87737889363d">w25qxx_page_program_quad_input</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint16_t len)</td></tr>
-<tr class="memdesc:ga1f80bbbaaa852eecfffb87737889363d"><td class="mdescLeft">&#160;</td><td class="mdescRight">quad page program with quad input  <a href="group__w25qxx__advance__driver.html#ga1f80bbbaaa852eecfffb87737889363d">More...</a><br /></td></tr>
+<tr class="memitem:ga1f80bbbaaa852eecfffb87737889363d" id="r_ga1f80bbbaaa852eecfffb87737889363d"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga1f80bbbaaa852eecfffb87737889363d">w25qxx_page_program_quad_input</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint16_t len)</td></tr>
+<tr class="memdesc:ga1f80bbbaaa852eecfffb87737889363d"><td class="mdescLeft">&#160;</td><td class="mdescRight">quad page program with quad input  <br /></td></tr>
 <tr class="separator:ga1f80bbbaaa852eecfffb87737889363d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaeb269123feec054eaaf70f2ffb5797a3"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#gaeb269123feec054eaaf70f2ffb5797a3">w25qxx_enable_write</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle)</td></tr>
-<tr class="memdesc:gaeb269123feec054eaaf70f2ffb5797a3"><td class="mdescLeft">&#160;</td><td class="mdescRight">enable writing  <a href="group__w25qxx__advance__driver.html#gaeb269123feec054eaaf70f2ffb5797a3">More...</a><br /></td></tr>
+<tr class="memitem:gaeb269123feec054eaaf70f2ffb5797a3" id="r_gaeb269123feec054eaaf70f2ffb5797a3"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#gaeb269123feec054eaaf70f2ffb5797a3">w25qxx_enable_write</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle)</td></tr>
+<tr class="memdesc:gaeb269123feec054eaaf70f2ffb5797a3"><td class="mdescLeft">&#160;</td><td class="mdescRight">enable writing  <br /></td></tr>
 <tr class="separator:gaeb269123feec054eaaf70f2ffb5797a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga0f8889d6a25c32e150a2ab30753d461d"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga0f8889d6a25c32e150a2ab30753d461d">w25qxx_enable_volatile_sr_write</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle)</td></tr>
-<tr class="memdesc:ga0f8889d6a25c32e150a2ab30753d461d"><td class="mdescLeft">&#160;</td><td class="mdescRight">enable volatile sr writing  <a href="group__w25qxx__advance__driver.html#ga0f8889d6a25c32e150a2ab30753d461d">More...</a><br /></td></tr>
+<tr class="memitem:ga0f8889d6a25c32e150a2ab30753d461d" id="r_ga0f8889d6a25c32e150a2ab30753d461d"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga0f8889d6a25c32e150a2ab30753d461d">w25qxx_enable_volatile_sr_write</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle)</td></tr>
+<tr class="memdesc:ga0f8889d6a25c32e150a2ab30753d461d"><td class="mdescLeft">&#160;</td><td class="mdescRight">enable volatile sr writing  <br /></td></tr>
 <tr class="separator:ga0f8889d6a25c32e150a2ab30753d461d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac16a31269277051baad6c28fe4254b4a"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#gac16a31269277051baad6c28fe4254b4a">w25qxx_disable_write</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle)</td></tr>
-<tr class="memdesc:gac16a31269277051baad6c28fe4254b4a"><td class="mdescLeft">&#160;</td><td class="mdescRight">disable writing  <a href="group__w25qxx__advance__driver.html#gac16a31269277051baad6c28fe4254b4a">More...</a><br /></td></tr>
+<tr class="memitem:gac16a31269277051baad6c28fe4254b4a" id="r_gac16a31269277051baad6c28fe4254b4a"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#gac16a31269277051baad6c28fe4254b4a">w25qxx_disable_write</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle)</td></tr>
+<tr class="memdesc:gac16a31269277051baad6c28fe4254b4a"><td class="mdescLeft">&#160;</td><td class="mdescRight">disable writing  <br /></td></tr>
 <tr class="separator:gac16a31269277051baad6c28fe4254b4a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa77d2b00b4fb9cf586f77ace827ea7c6"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#gaa77d2b00b4fb9cf586f77ace827ea7c6">w25qxx_get_status1</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint8_t *status)</td></tr>
-<tr class="memdesc:gaa77d2b00b4fb9cf586f77ace827ea7c6"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the status 1  <a href="group__w25qxx__advance__driver.html#gaa77d2b00b4fb9cf586f77ace827ea7c6">More...</a><br /></td></tr>
+<tr class="memitem:gaa77d2b00b4fb9cf586f77ace827ea7c6" id="r_gaa77d2b00b4fb9cf586f77ace827ea7c6"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#gaa77d2b00b4fb9cf586f77ace827ea7c6">w25qxx_get_status1</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint8_t *status)</td></tr>
+<tr class="memdesc:gaa77d2b00b4fb9cf586f77ace827ea7c6"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the status 1  <br /></td></tr>
 <tr class="separator:gaa77d2b00b4fb9cf586f77ace827ea7c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa21237ecbd5951b8017799066e7db5d9"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#gaa21237ecbd5951b8017799066e7db5d9">w25qxx_get_status2</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint8_t *status)</td></tr>
-<tr class="memdesc:gaa21237ecbd5951b8017799066e7db5d9"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the status 2  <a href="group__w25qxx__advance__driver.html#gaa21237ecbd5951b8017799066e7db5d9">More...</a><br /></td></tr>
+<tr class="memitem:gaa21237ecbd5951b8017799066e7db5d9" id="r_gaa21237ecbd5951b8017799066e7db5d9"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#gaa21237ecbd5951b8017799066e7db5d9">w25qxx_get_status2</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint8_t *status)</td></tr>
+<tr class="memdesc:gaa21237ecbd5951b8017799066e7db5d9"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the status 2  <br /></td></tr>
 <tr class="separator:gaa21237ecbd5951b8017799066e7db5d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga99cf6a325a00921d4531004f0c1d75b1"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga99cf6a325a00921d4531004f0c1d75b1">w25qxx_get_status3</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint8_t *status)</td></tr>
-<tr class="memdesc:ga99cf6a325a00921d4531004f0c1d75b1"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the status 3  <a href="group__w25qxx__advance__driver.html#ga99cf6a325a00921d4531004f0c1d75b1">More...</a><br /></td></tr>
+<tr class="memitem:ga99cf6a325a00921d4531004f0c1d75b1" id="r_ga99cf6a325a00921d4531004f0c1d75b1"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga99cf6a325a00921d4531004f0c1d75b1">w25qxx_get_status3</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint8_t *status)</td></tr>
+<tr class="memdesc:ga99cf6a325a00921d4531004f0c1d75b1"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the status 3  <br /></td></tr>
 <tr class="separator:ga99cf6a325a00921d4531004f0c1d75b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga246e0bb07c8bbb39731f17906779c012"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga246e0bb07c8bbb39731f17906779c012">w25qxx_set_status1</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint8_t status)</td></tr>
-<tr class="memdesc:ga246e0bb07c8bbb39731f17906779c012"><td class="mdescLeft">&#160;</td><td class="mdescRight">set the status 1  <a href="group__w25qxx__advance__driver.html#ga246e0bb07c8bbb39731f17906779c012">More...</a><br /></td></tr>
+<tr class="memitem:ga246e0bb07c8bbb39731f17906779c012" id="r_ga246e0bb07c8bbb39731f17906779c012"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga246e0bb07c8bbb39731f17906779c012">w25qxx_set_status1</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint8_t status)</td></tr>
+<tr class="memdesc:ga246e0bb07c8bbb39731f17906779c012"><td class="mdescLeft">&#160;</td><td class="mdescRight">set the status 1  <br /></td></tr>
 <tr class="separator:ga246e0bb07c8bbb39731f17906779c012"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaab5f28e8930d50dbc2178e39bc9fa456"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#gaab5f28e8930d50dbc2178e39bc9fa456">w25qxx_set_status2</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint8_t status)</td></tr>
-<tr class="memdesc:gaab5f28e8930d50dbc2178e39bc9fa456"><td class="mdescLeft">&#160;</td><td class="mdescRight">set the status 2  <a href="group__w25qxx__advance__driver.html#gaab5f28e8930d50dbc2178e39bc9fa456">More...</a><br /></td></tr>
+<tr class="memitem:gaab5f28e8930d50dbc2178e39bc9fa456" id="r_gaab5f28e8930d50dbc2178e39bc9fa456"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#gaab5f28e8930d50dbc2178e39bc9fa456">w25qxx_set_status2</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint8_t status)</td></tr>
+<tr class="memdesc:gaab5f28e8930d50dbc2178e39bc9fa456"><td class="mdescLeft">&#160;</td><td class="mdescRight">set the status 2  <br /></td></tr>
 <tr class="separator:gaab5f28e8930d50dbc2178e39bc9fa456"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gada897a6c6d6acb99f4dd4ff9b65ad8ee"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#gada897a6c6d6acb99f4dd4ff9b65ad8ee">w25qxx_set_status3</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint8_t status)</td></tr>
-<tr class="memdesc:gada897a6c6d6acb99f4dd4ff9b65ad8ee"><td class="mdescLeft">&#160;</td><td class="mdescRight">set the status 3  <a href="group__w25qxx__advance__driver.html#gada897a6c6d6acb99f4dd4ff9b65ad8ee">More...</a><br /></td></tr>
+<tr class="memitem:gada897a6c6d6acb99f4dd4ff9b65ad8ee" id="r_gada897a6c6d6acb99f4dd4ff9b65ad8ee"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#gada897a6c6d6acb99f4dd4ff9b65ad8ee">w25qxx_set_status3</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint8_t status)</td></tr>
+<tr class="memdesc:gada897a6c6d6acb99f4dd4ff9b65ad8ee"><td class="mdescLeft">&#160;</td><td class="mdescRight">set the status 3  <br /></td></tr>
 <tr class="separator:gada897a6c6d6acb99f4dd4ff9b65ad8ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac7fbabc574c250eec100be861f5918ff"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#gac7fbabc574c250eec100be861f5918ff">w25qxx_erase_program_suspend</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle)</td></tr>
-<tr class="memdesc:gac7fbabc574c250eec100be861f5918ff"><td class="mdescLeft">&#160;</td><td class="mdescRight">suspend erase or program  <a href="group__w25qxx__advance__driver.html#gac7fbabc574c250eec100be861f5918ff">More...</a><br /></td></tr>
+<tr class="memitem:gac7fbabc574c250eec100be861f5918ff" id="r_gac7fbabc574c250eec100be861f5918ff"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#gac7fbabc574c250eec100be861f5918ff">w25qxx_erase_program_suspend</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle)</td></tr>
+<tr class="memdesc:gac7fbabc574c250eec100be861f5918ff"><td class="mdescLeft">&#160;</td><td class="mdescRight">suspend erase or program  <br /></td></tr>
 <tr class="separator:gac7fbabc574c250eec100be861f5918ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga05c69ac66309544eba4ff38a69f24c00"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga05c69ac66309544eba4ff38a69f24c00">w25qxx_erase_program_resume</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle)</td></tr>
-<tr class="memdesc:ga05c69ac66309544eba4ff38a69f24c00"><td class="mdescLeft">&#160;</td><td class="mdescRight">resume erase or program  <a href="group__w25qxx__advance__driver.html#ga05c69ac66309544eba4ff38a69f24c00">More...</a><br /></td></tr>
+<tr class="memitem:ga05c69ac66309544eba4ff38a69f24c00" id="r_ga05c69ac66309544eba4ff38a69f24c00"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga05c69ac66309544eba4ff38a69f24c00">w25qxx_erase_program_resume</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle)</td></tr>
+<tr class="memdesc:ga05c69ac66309544eba4ff38a69f24c00"><td class="mdescLeft">&#160;</td><td class="mdescRight">resume erase or program  <br /></td></tr>
 <tr class="separator:ga05c69ac66309544eba4ff38a69f24c00"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga1cd3aec1bdeabbaed5f049fbf83ceeb4"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga1cd3aec1bdeabbaed5f049fbf83ceeb4">w25qxx_get_manufacturer_device_id_dual_io</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint8_t *manufacturer, uint8_t *device_id)</td></tr>
-<tr class="memdesc:ga1cd3aec1bdeabbaed5f049fbf83ceeb4"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the manufacturer &amp;&amp; device id information with dual io  <a href="group__w25qxx__advance__driver.html#ga1cd3aec1bdeabbaed5f049fbf83ceeb4">More...</a><br /></td></tr>
+<tr class="memitem:ga1cd3aec1bdeabbaed5f049fbf83ceeb4" id="r_ga1cd3aec1bdeabbaed5f049fbf83ceeb4"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga1cd3aec1bdeabbaed5f049fbf83ceeb4">w25qxx_get_manufacturer_device_id_dual_io</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint8_t *manufacturer, uint8_t *device_id)</td></tr>
+<tr class="memdesc:ga1cd3aec1bdeabbaed5f049fbf83ceeb4"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the manufacturer &amp;&amp; device id information with dual io  <br /></td></tr>
 <tr class="separator:ga1cd3aec1bdeabbaed5f049fbf83ceeb4"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga61bd3ce40b76b6862c6a53e0e37a3455"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga61bd3ce40b76b6862c6a53e0e37a3455">w25qxx_get_manufacturer_device_id_quad_io</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint8_t *manufacturer, uint8_t *device_id)</td></tr>
-<tr class="memdesc:ga61bd3ce40b76b6862c6a53e0e37a3455"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the manufacturer &amp;&amp; device id information with quad io  <a href="group__w25qxx__advance__driver.html#ga61bd3ce40b76b6862c6a53e0e37a3455">More...</a><br /></td></tr>
+<tr class="memitem:ga61bd3ce40b76b6862c6a53e0e37a3455" id="r_ga61bd3ce40b76b6862c6a53e0e37a3455"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga61bd3ce40b76b6862c6a53e0e37a3455">w25qxx_get_manufacturer_device_id_quad_io</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint8_t *manufacturer, uint8_t *device_id)</td></tr>
+<tr class="memdesc:ga61bd3ce40b76b6862c6a53e0e37a3455"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the manufacturer &amp;&amp; device id information with quad io  <br /></td></tr>
 <tr class="separator:ga61bd3ce40b76b6862c6a53e0e37a3455"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga8a93ba14a032e10a27f1495fdcf56058"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga8a93ba14a032e10a27f1495fdcf56058">w25qxx_get_jedec_id</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint8_t *manufacturer, uint8_t device_id[2])</td></tr>
-<tr class="memdesc:ga8a93ba14a032e10a27f1495fdcf56058"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the jedec id information  <a href="group__w25qxx__advance__driver.html#ga8a93ba14a032e10a27f1495fdcf56058">More...</a><br /></td></tr>
+<tr class="memitem:ga8a93ba14a032e10a27f1495fdcf56058" id="r_ga8a93ba14a032e10a27f1495fdcf56058"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga8a93ba14a032e10a27f1495fdcf56058">w25qxx_get_jedec_id</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint8_t *manufacturer, uint8_t device_id[2])</td></tr>
+<tr class="memdesc:ga8a93ba14a032e10a27f1495fdcf56058"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the jedec id information  <br /></td></tr>
 <tr class="separator:ga8a93ba14a032e10a27f1495fdcf56058"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab5579bc42bc07a7657848140888a817c"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#gab5579bc42bc07a7657848140888a817c">w25qxx_global_block_lock</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle)</td></tr>
-<tr class="memdesc:gab5579bc42bc07a7657848140888a817c"><td class="mdescLeft">&#160;</td><td class="mdescRight">lock the whole block  <a href="group__w25qxx__advance__driver.html#gab5579bc42bc07a7657848140888a817c">More...</a><br /></td></tr>
+<tr class="memitem:gab5579bc42bc07a7657848140888a817c" id="r_gab5579bc42bc07a7657848140888a817c"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#gab5579bc42bc07a7657848140888a817c">w25qxx_global_block_lock</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle)</td></tr>
+<tr class="memdesc:gab5579bc42bc07a7657848140888a817c"><td class="mdescLeft">&#160;</td><td class="mdescRight">lock the whole block  <br /></td></tr>
 <tr class="separator:gab5579bc42bc07a7657848140888a817c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6d62f7d14945cfde7cde7a0e9a4e3afb"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga6d62f7d14945cfde7cde7a0e9a4e3afb">w25qxx_global_block_unlock</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle)</td></tr>
-<tr class="memdesc:ga6d62f7d14945cfde7cde7a0e9a4e3afb"><td class="mdescLeft">&#160;</td><td class="mdescRight">unlock the whole block  <a href="group__w25qxx__advance__driver.html#ga6d62f7d14945cfde7cde7a0e9a4e3afb">More...</a><br /></td></tr>
+<tr class="memitem:ga6d62f7d14945cfde7cde7a0e9a4e3afb" id="r_ga6d62f7d14945cfde7cde7a0e9a4e3afb"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga6d62f7d14945cfde7cde7a0e9a4e3afb">w25qxx_global_block_unlock</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle)</td></tr>
+<tr class="memdesc:ga6d62f7d14945cfde7cde7a0e9a4e3afb"><td class="mdescLeft">&#160;</td><td class="mdescRight">unlock the whole block  <br /></td></tr>
 <tr class="separator:ga6d62f7d14945cfde7cde7a0e9a4e3afb"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga9ad10781d888b32b43b9eba45d049624"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga9ad10781d888b32b43b9eba45d049624">w25qxx_set_read_parameters</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, <a class="el" href="group__w25qxx__advance__driver.html#ga6ff284154302248f00db269146545443">w25qxx_qspi_read_dummy_t</a> dummy, <a class="el" href="group__w25qxx__advance__driver.html#ga2fd3023819e1aebe089a4a72eb136da3">w25qxx_qspi_read_wrap_length_t</a> length)</td></tr>
-<tr class="memdesc:ga9ad10781d888b32b43b9eba45d049624"><td class="mdescLeft">&#160;</td><td class="mdescRight">set the read parameters  <a href="group__w25qxx__advance__driver.html#ga9ad10781d888b32b43b9eba45d049624">More...</a><br /></td></tr>
+<tr class="memitem:ga9ad10781d888b32b43b9eba45d049624" id="r_ga9ad10781d888b32b43b9eba45d049624"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga9ad10781d888b32b43b9eba45d049624">w25qxx_set_read_parameters</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, <a class="el" href="group__w25qxx__advance__driver.html#ga6ff284154302248f00db269146545443">w25qxx_qspi_read_dummy_t</a> dummy, <a class="el" href="group__w25qxx__advance__driver.html#ga2fd3023819e1aebe089a4a72eb136da3">w25qxx_qspi_read_wrap_length_t</a> length)</td></tr>
+<tr class="memdesc:ga9ad10781d888b32b43b9eba45d049624"><td class="mdescLeft">&#160;</td><td class="mdescRight">set the read parameters  <br /></td></tr>
 <tr class="separator:ga9ad10781d888b32b43b9eba45d049624"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa5ab3548707a95ded115255432224c5a"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#gaa5ab3548707a95ded115255432224c5a">w25qxx_enter_qspi_mode</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle)</td></tr>
-<tr class="memdesc:gaa5ab3548707a95ded115255432224c5a"><td class="mdescLeft">&#160;</td><td class="mdescRight">enter the qspi mode  <a href="group__w25qxx__advance__driver.html#gaa5ab3548707a95ded115255432224c5a">More...</a><br /></td></tr>
+<tr class="memitem:gaa5ab3548707a95ded115255432224c5a" id="r_gaa5ab3548707a95ded115255432224c5a"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#gaa5ab3548707a95ded115255432224c5a">w25qxx_enter_qspi_mode</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle)</td></tr>
+<tr class="memdesc:gaa5ab3548707a95ded115255432224c5a"><td class="mdescLeft">&#160;</td><td class="mdescRight">enter the qspi mode  <br /></td></tr>
 <tr class="separator:gaa5ab3548707a95ded115255432224c5a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6b9f75f7426a54ffdb1f5a057f8188f4"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga6b9f75f7426a54ffdb1f5a057f8188f4">w25qxx_exit_qspi_mode</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle)</td></tr>
-<tr class="memdesc:ga6b9f75f7426a54ffdb1f5a057f8188f4"><td class="mdescLeft">&#160;</td><td class="mdescRight">exit the qspi mode  <a href="group__w25qxx__advance__driver.html#ga6b9f75f7426a54ffdb1f5a057f8188f4">More...</a><br /></td></tr>
+<tr class="memitem:ga6b9f75f7426a54ffdb1f5a057f8188f4" id="r_ga6b9f75f7426a54ffdb1f5a057f8188f4"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga6b9f75f7426a54ffdb1f5a057f8188f4">w25qxx_exit_qspi_mode</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle)</td></tr>
+<tr class="memdesc:ga6b9f75f7426a54ffdb1f5a057f8188f4"><td class="mdescLeft">&#160;</td><td class="mdescRight">exit the qspi mode  <br /></td></tr>
 <tr class="separator:ga6b9f75f7426a54ffdb1f5a057f8188f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab55b4e071e20feb58584025287949438"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#gab55b4e071e20feb58584025287949438">w25qxx_enable_reset</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle)</td></tr>
-<tr class="memdesc:gab55b4e071e20feb58584025287949438"><td class="mdescLeft">&#160;</td><td class="mdescRight">enable the reset  <a href="group__w25qxx__advance__driver.html#gab55b4e071e20feb58584025287949438">More...</a><br /></td></tr>
+<tr class="memitem:gab55b4e071e20feb58584025287949438" id="r_gab55b4e071e20feb58584025287949438"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#gab55b4e071e20feb58584025287949438">w25qxx_enable_reset</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle)</td></tr>
+<tr class="memdesc:gab55b4e071e20feb58584025287949438"><td class="mdescLeft">&#160;</td><td class="mdescRight">enable the reset  <br /></td></tr>
 <tr class="separator:gab55b4e071e20feb58584025287949438"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga2abebfe2a8d9377eb88448ffca73f222"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga2abebfe2a8d9377eb88448ffca73f222">w25qxx_reset_device</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle)</td></tr>
-<tr class="memdesc:ga2abebfe2a8d9377eb88448ffca73f222"><td class="mdescLeft">&#160;</td><td class="mdescRight">reset the device  <a href="group__w25qxx__advance__driver.html#ga2abebfe2a8d9377eb88448ffca73f222">More...</a><br /></td></tr>
+<tr class="memitem:ga2abebfe2a8d9377eb88448ffca73f222" id="r_ga2abebfe2a8d9377eb88448ffca73f222"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga2abebfe2a8d9377eb88448ffca73f222">w25qxx_reset_device</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle)</td></tr>
+<tr class="memdesc:ga2abebfe2a8d9377eb88448ffca73f222"><td class="mdescLeft">&#160;</td><td class="mdescRight">reset the device  <br /></td></tr>
 <tr class="separator:ga2abebfe2a8d9377eb88448ffca73f222"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga11af244389478de68a6777076ee82d69"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga11af244389478de68a6777076ee82d69">w25qxx_get_unique_id</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint8_t id[8])</td></tr>
-<tr class="memdesc:ga11af244389478de68a6777076ee82d69"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the unique id  <a href="group__w25qxx__advance__driver.html#ga11af244389478de68a6777076ee82d69">More...</a><br /></td></tr>
+<tr class="memitem:ga11af244389478de68a6777076ee82d69" id="r_ga11af244389478de68a6777076ee82d69"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga11af244389478de68a6777076ee82d69">w25qxx_get_unique_id</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint8_t id[8])</td></tr>
+<tr class="memdesc:ga11af244389478de68a6777076ee82d69"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the unique id  <br /></td></tr>
 <tr class="separator:ga11af244389478de68a6777076ee82d69"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga244a91b9c0c32e899ca89e1943045624"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga244a91b9c0c32e899ca89e1943045624">w25qxx_get_sfdp</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint8_t sfdp[256])</td></tr>
-<tr class="memdesc:ga244a91b9c0c32e899ca89e1943045624"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the sfdp  <a href="group__w25qxx__advance__driver.html#ga244a91b9c0c32e899ca89e1943045624">More...</a><br /></td></tr>
+<tr class="memitem:ga244a91b9c0c32e899ca89e1943045624" id="r_ga244a91b9c0c32e899ca89e1943045624"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga244a91b9c0c32e899ca89e1943045624">w25qxx_get_sfdp</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint8_t sfdp[256])</td></tr>
+<tr class="memdesc:ga244a91b9c0c32e899ca89e1943045624"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the sfdp  <br /></td></tr>
 <tr class="separator:ga244a91b9c0c32e899ca89e1943045624"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf297e2c6877c64f8fd10a555f783ddaf"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#gaf297e2c6877c64f8fd10a555f783ddaf">w25qxx_erase_security_register</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, <a class="el" href="group__w25qxx__advance__driver.html#ga81ddc7d4b9f4f124163beea19cc33c7e">w25qxx_security_register_t</a> num)</td></tr>
-<tr class="memdesc:gaf297e2c6877c64f8fd10a555f783ddaf"><td class="mdescLeft">&#160;</td><td class="mdescRight">erase the security register  <a href="group__w25qxx__advance__driver.html#gaf297e2c6877c64f8fd10a555f783ddaf">More...</a><br /></td></tr>
+<tr class="memitem:gaf297e2c6877c64f8fd10a555f783ddaf" id="r_gaf297e2c6877c64f8fd10a555f783ddaf"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#gaf297e2c6877c64f8fd10a555f783ddaf">w25qxx_erase_security_register</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, <a class="el" href="group__w25qxx__advance__driver.html#ga81ddc7d4b9f4f124163beea19cc33c7e">w25qxx_security_register_t</a> num)</td></tr>
+<tr class="memdesc:gaf297e2c6877c64f8fd10a555f783ddaf"><td class="mdescLeft">&#160;</td><td class="mdescRight">erase the security register  <br /></td></tr>
 <tr class="separator:gaf297e2c6877c64f8fd10a555f783ddaf"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga4e9c059ff78866e478e835cb27a92899"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga4e9c059ff78866e478e835cb27a92899">w25qxx_program_security_register</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, <a class="el" href="group__w25qxx__advance__driver.html#ga81ddc7d4b9f4f124163beea19cc33c7e">w25qxx_security_register_t</a> num, uint8_t data[256])</td></tr>
-<tr class="memdesc:ga4e9c059ff78866e478e835cb27a92899"><td class="mdescLeft">&#160;</td><td class="mdescRight">program the security register  <a href="group__w25qxx__advance__driver.html#ga4e9c059ff78866e478e835cb27a92899">More...</a><br /></td></tr>
+<tr class="memitem:ga4e9c059ff78866e478e835cb27a92899" id="r_ga4e9c059ff78866e478e835cb27a92899"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga4e9c059ff78866e478e835cb27a92899">w25qxx_program_security_register</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, <a class="el" href="group__w25qxx__advance__driver.html#ga81ddc7d4b9f4f124163beea19cc33c7e">w25qxx_security_register_t</a> num, uint8_t data[256])</td></tr>
+<tr class="memdesc:ga4e9c059ff78866e478e835cb27a92899"><td class="mdescLeft">&#160;</td><td class="mdescRight">program the security register  <br /></td></tr>
 <tr class="separator:ga4e9c059ff78866e478e835cb27a92899"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga4c65debc4947bd9a61e0073105164b9c"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga4c65debc4947bd9a61e0073105164b9c">w25qxx_read_security_register</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, <a class="el" href="group__w25qxx__advance__driver.html#ga81ddc7d4b9f4f124163beea19cc33c7e">w25qxx_security_register_t</a> num, uint8_t data[256])</td></tr>
-<tr class="memdesc:ga4c65debc4947bd9a61e0073105164b9c"><td class="mdescLeft">&#160;</td><td class="mdescRight">read the security register  <a href="group__w25qxx__advance__driver.html#ga4c65debc4947bd9a61e0073105164b9c">More...</a><br /></td></tr>
+<tr class="memitem:ga4c65debc4947bd9a61e0073105164b9c" id="r_ga4c65debc4947bd9a61e0073105164b9c"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga4c65debc4947bd9a61e0073105164b9c">w25qxx_read_security_register</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, <a class="el" href="group__w25qxx__advance__driver.html#ga81ddc7d4b9f4f124163beea19cc33c7e">w25qxx_security_register_t</a> num, uint8_t data[256])</td></tr>
+<tr class="memdesc:ga4c65debc4947bd9a61e0073105164b9c"><td class="mdescLeft">&#160;</td><td class="mdescRight">read the security register  <br /></td></tr>
 <tr class="separator:ga4c65debc4947bd9a61e0073105164b9c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga4f00c2c169cb7c3084841c6cd795e76b"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga4f00c2c169cb7c3084841c6cd795e76b">w25qxx_individual_block_lock</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint32_t addr)</td></tr>
-<tr class="memdesc:ga4f00c2c169cb7c3084841c6cd795e76b"><td class="mdescLeft">&#160;</td><td class="mdescRight">lock the individual block  <a href="group__w25qxx__advance__driver.html#ga4f00c2c169cb7c3084841c6cd795e76b">More...</a><br /></td></tr>
+<tr class="memitem:ga4f00c2c169cb7c3084841c6cd795e76b" id="r_ga4f00c2c169cb7c3084841c6cd795e76b"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga4f00c2c169cb7c3084841c6cd795e76b">w25qxx_individual_block_lock</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint32_t addr)</td></tr>
+<tr class="memdesc:ga4f00c2c169cb7c3084841c6cd795e76b"><td class="mdescLeft">&#160;</td><td class="mdescRight">lock the individual block  <br /></td></tr>
 <tr class="separator:ga4f00c2c169cb7c3084841c6cd795e76b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga7f88cedf7619071b3235ba094915b2a7"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga7f88cedf7619071b3235ba094915b2a7">w25qxx_individual_block_unlock</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint32_t addr)</td></tr>
-<tr class="memdesc:ga7f88cedf7619071b3235ba094915b2a7"><td class="mdescLeft">&#160;</td><td class="mdescRight">unlock the individual block  <a href="group__w25qxx__advance__driver.html#ga7f88cedf7619071b3235ba094915b2a7">More...</a><br /></td></tr>
+<tr class="memitem:ga7f88cedf7619071b3235ba094915b2a7" id="r_ga7f88cedf7619071b3235ba094915b2a7"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga7f88cedf7619071b3235ba094915b2a7">w25qxx_individual_block_unlock</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint32_t addr)</td></tr>
+<tr class="memdesc:ga7f88cedf7619071b3235ba094915b2a7"><td class="mdescLeft">&#160;</td><td class="mdescRight">unlock the individual block  <br /></td></tr>
 <tr class="separator:ga7f88cedf7619071b3235ba094915b2a7"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga59e655ca78a175037ca810bbc8539a96"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga59e655ca78a175037ca810bbc8539a96">w25qxx_read_block_lock</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *value)</td></tr>
-<tr class="memdesc:ga59e655ca78a175037ca810bbc8539a96"><td class="mdescLeft">&#160;</td><td class="mdescRight">read the block lock  <a href="group__w25qxx__advance__driver.html#ga59e655ca78a175037ca810bbc8539a96">More...</a><br /></td></tr>
+<tr class="memitem:ga59e655ca78a175037ca810bbc8539a96" id="r_ga59e655ca78a175037ca810bbc8539a96"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga59e655ca78a175037ca810bbc8539a96">w25qxx_read_block_lock</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *value)</td></tr>
+<tr class="memdesc:ga59e655ca78a175037ca810bbc8539a96"><td class="mdescLeft">&#160;</td><td class="mdescRight">read the block lock  <br /></td></tr>
 <tr class="separator:ga59e655ca78a175037ca810bbc8539a96"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac19c1d0f3fd48968ea2a93c1dbe3d75d"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#gac19c1d0f3fd48968ea2a93c1dbe3d75d">w25qxx_set_burst_with_wrap</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, <a class="el" href="group__w25qxx__advance__driver.html#ga94bbae2bf8906903e8dc2a28c490723d">w25qxx_burst_wrap_t</a> wrap)</td></tr>
-<tr class="memdesc:gac19c1d0f3fd48968ea2a93c1dbe3d75d"><td class="mdescLeft">&#160;</td><td class="mdescRight">set the burst with wrap  <a href="group__w25qxx__advance__driver.html#gac19c1d0f3fd48968ea2a93c1dbe3d75d">More...</a><br /></td></tr>
+<tr class="memitem:gac19c1d0f3fd48968ea2a93c1dbe3d75d" id="r_gac19c1d0f3fd48968ea2a93c1dbe3d75d"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#gac19c1d0f3fd48968ea2a93c1dbe3d75d">w25qxx_set_burst_with_wrap</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, <a class="el" href="group__w25qxx__advance__driver.html#ga94bbae2bf8906903e8dc2a28c490723d">w25qxx_burst_wrap_t</a> wrap)</td></tr>
+<tr class="memdesc:gac19c1d0f3fd48968ea2a93c1dbe3d75d"><td class="mdescLeft">&#160;</td><td class="mdescRight">set the burst with wrap  <br /></td></tr>
 <tr class="separator:gac19c1d0f3fd48968ea2a93c1dbe3d75d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga9623a3bec148b148498480518a66cb2b"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__extern__driver.html#ga9623a3bec148b148498480518a66cb2b">w25qxx_write_read_reg</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint8_t instruction, uint8_t instruction_line, uint32_t address, uint8_t address_line, uint8_t address_len, uint32_t alternate, uint8_t alternate_line, uint8_t alternate_len, uint8_t dummy, uint8_t *in_buf, uint32_t in_len, uint8_t *out_buf, uint32_t out_len, uint8_t data_line)</td></tr>
-<tr class="memdesc:ga9623a3bec148b148498480518a66cb2b"><td class="mdescLeft">&#160;</td><td class="mdescRight">write and read register  <a href="group__w25qxx__extern__driver.html#ga9623a3bec148b148498480518a66cb2b">More...</a><br /></td></tr>
+<tr class="memitem:ga9623a3bec148b148498480518a66cb2b" id="r_ga9623a3bec148b148498480518a66cb2b"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__extern__driver.html#ga9623a3bec148b148498480518a66cb2b">w25qxx_write_read_reg</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint8_t instruction, uint8_t instruction_line, uint32_t address, uint8_t address_line, uint8_t address_len, uint32_t alternate, uint8_t alternate_line, uint8_t alternate_len, uint8_t dummy, uint8_t *in_buf, uint32_t in_len, uint8_t *out_buf, uint32_t out_len, uint8_t data_line)</td></tr>
+<tr class="memdesc:ga9623a3bec148b148498480518a66cb2b"><td class="mdescLeft">&#160;</td><td class="mdescRight">write and read register  <br /></td></tr>
 <tr class="separator:ga9623a3bec148b148498480518a66cb2b"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
@@ -458,7 +464,7 @@ <h3>history</h3>
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
     <li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="driver__w25qxx_8h.html">driver_w25qxx.h</a></li>
-    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
+    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/driver__w25qxx_8h_source.html b/doc/html/driver__w25qxx_8h_source.html
index 4b72aee..3bd7f43 100644
--- a/doc/html/driver__w25qxx_8h_source.html
+++ b/doc/html/driver__w25qxx_8h_source.html
@@ -1,9 +1,9 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.8"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>LibDriver W25QXX: src/driver_w25qxx.h Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -23,11 +23,10 @@
 <div id="titlearea">
 <table cellspacing="0" cellpadding="0">
  <tbody>
- <tr style="height: 56px;">
+ <tr id="projectrow">
   <td id="projectlogo"><img alt="Logo" src="doxygen.png"/></td>
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">LibDriver W25QXX
-   &#160;<span id="projectnumber">1.0.0</span>
+  <td id="projectalign">
+   <div id="projectname">LibDriver W25QXX<span id="projectnumber">&#160;1.0.0</span>
    </div>
    <div id="projectbrief">W25QXX full function driver</div>
   </td>
@@ -36,22 +35,28 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.8 -->
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search/",'.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
 <script type="text/javascript" src="menu.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(function() {
   initMenu('',true,false,'search.php','Search');
   $(document).ready(function() { init_search(); });
 });
-/* @license-end */</script>
+/* @license-end */
+</script>
 <div id="main-nav"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(document).ready(function() { init_codefold(0); });
+/* @license-end */
+</script>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -64,7 +69,7 @@
   </div>
 </div>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(document).ready(function(){initNavTree('driver__w25qxx_8h_source.html',''); initResizable(); });
 /* @license-end */
 </script>
@@ -78,463 +83,495 @@
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
 </div>
 
 <div class="header">
-  <div class="headertitle">
-<div class="title">driver_w25qxx.h</div>  </div>
+  <div class="headertitle"><div class="title">driver_w25qxx.h</div></div>
 </div><!--header-->
 <div class="contents">
-<a href="driver__w25qxx_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160; </div>
-<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="preprocessor">#ifndef DRIVER_W25QXX_H</span></div>
-<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;<span class="preprocessor">#define DRIVER_W25QXX_H</span></div>
-<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160; </div>
-<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;<span class="preprocessor">#include &lt;stdint.h&gt;</span></div>
-<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;<span class="preprocessor">#include &lt;stdio.h&gt;</span></div>
-<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;<span class="preprocessor">#include &lt;string.h&gt;</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160; </div>
-<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;<span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span>{</div>
-<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160; </div>
-<div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="group__w25qxx__basic__driver.html#ga6cb4e5164464df549201dd96cb7a58b1">   62</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span></div>
-<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;{</div>
-<div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a1ad4f72437de5f26cb7b212d4d91e7c2">   64</a></span>&#160;    <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a1ad4f72437de5f26cb7b212d4d91e7c2">W25Q80</a>  = 0XEF13U,        </div>
-<div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a66acb81a2d520a7d92ce1d37210c6435">   65</a></span>&#160;    <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a66acb81a2d520a7d92ce1d37210c6435">W25Q16</a>  = 0XEF14U,        </div>
-<div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a4fdad551be6485441db5951f196db7cb">   66</a></span>&#160;    <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a4fdad551be6485441db5951f196db7cb">W25Q32</a>  = 0XEF15U,        </div>
-<div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a3ea98b2b3e06afa29441c51548bbb16e">   67</a></span>&#160;    <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a3ea98b2b3e06afa29441c51548bbb16e">W25Q64</a>  = 0XEF16U,        </div>
-<div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a75afcbe71906d3884f4fcc119c1cabd5">   68</a></span>&#160;    <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a75afcbe71906d3884f4fcc119c1cabd5">W25Q128</a> = 0XEF17U,        </div>
-<div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">   69</a></span>&#160;    <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a> = 0XEF18U,        </div>
-<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;} <a class="code" href="group__w25qxx__basic__driver.html#ga6cb4e5164464df549201dd96cb7a58b1">w25qxx_type_t</a>;</div>
-<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160; </div>
-<div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="group__w25qxx__basic__driver.html#gacbf327a42336baf10713a1796ff4f2fe">   75</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span></div>
-<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;{</div>
-<div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">   77</a></span>&#160;    <a class="code" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>  = 0x00,        </div>
-<div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2fea895dcb5c91da89fad1c12161ffd2d5d4">   78</a></span>&#160;    <a class="code" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2fea895dcb5c91da89fad1c12161ffd2d5d4">W25QXX_INTERFACE_QSPI</a> = 0x01,        </div>
-<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;} <a class="code" href="group__w25qxx__basic__driver.html#gacbf327a42336baf10713a1796ff4f2fe">w25qxx_interface_t</a>;</div>
-<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160; </div>
-<div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="group__w25qxx__basic__driver.html#gafb2690946f5baf4be6f3a63dde5491fb">   84</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span></div>
-<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;{</div>
-<div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="group__w25qxx__basic__driver.html#ggafb2690946f5baf4be6f3a63dde5491fba02afbdc2c6c3d761cd31ac39c857ee9a">   86</a></span>&#160;    <a class="code" href="group__w25qxx__basic__driver.html#ggafb2690946f5baf4be6f3a63dde5491fba02afbdc2c6c3d761cd31ac39c857ee9a">W25QXX_BOOL_FALSE</a> = 0x00,        </div>
-<div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="group__w25qxx__basic__driver.html#ggafb2690946f5baf4be6f3a63dde5491fbae2a935d12b0b1bc9fc321246ee0e0df8">   87</a></span>&#160;    <a class="code" href="group__w25qxx__basic__driver.html#ggafb2690946f5baf4be6f3a63dde5491fbae2a935d12b0b1bc9fc321246ee0e0df8">W25QXX_BOOL_TRUE</a>  = 0x01,        </div>
-<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;} <a class="code" href="group__w25qxx__basic__driver.html#gafb2690946f5baf4be6f3a63dde5491fb">w25qxx_bool_t</a>;</div>
-<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160; </div>
-<div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="group__w25qxx__basic__driver.html#gaa4c45f146d1ade8a2da8e751818fa4a2">   93</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span></div>
-<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;{</div>
-<div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">   95</a></span>&#160;    <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a> = 0x00,        </div>
-<div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">   96</a></span>&#160;    <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a> = 0x01,        </div>
-<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;} <a class="code" href="group__w25qxx__basic__driver.html#gaa4c45f146d1ade8a2da8e751818fa4a2">w25qxx_address_mode_t</a>;</div>
-<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160; </div>
-<div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#ga6ff284154302248f00db269146545443">  111</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span></div>
-<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;{</div>
-<div class="line"><a name="l00113"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#gga6ff284154302248f00db269146545443ad73634a0f4534c3ae35d4242b2bc8f13">  113</a></span>&#160;    <a class="code" href="group__w25qxx__advance__driver.html#gga6ff284154302248f00db269146545443ad73634a0f4534c3ae35d4242b2bc8f13">W25QXX_QSPI_READ_DUMMY_2_33MHZ</a> = 0x00,        </div>
-<div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#gga6ff284154302248f00db269146545443a6423b5606e72af6479fe31a6a9883aeb">  114</a></span>&#160;    <a class="code" href="group__w25qxx__advance__driver.html#gga6ff284154302248f00db269146545443a6423b5606e72af6479fe31a6a9883aeb">W25QXX_QSPI_READ_DUMMY_4_55MHZ</a> = 0x01,        </div>
-<div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#gga6ff284154302248f00db269146545443a78393debe12bbb3efb710e38e3c1d550">  115</a></span>&#160;    <a class="code" href="group__w25qxx__advance__driver.html#gga6ff284154302248f00db269146545443a78393debe12bbb3efb710e38e3c1d550">W25QXX_QSPI_READ_DUMMY_6_80MHZ</a> = 0x02,        </div>
-<div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#gga6ff284154302248f00db269146545443ade1d3511f15c7d92de8c5d8967c471c3">  116</a></span>&#160;    <a class="code" href="group__w25qxx__advance__driver.html#gga6ff284154302248f00db269146545443ade1d3511f15c7d92de8c5d8967c471c3">W25QXX_QSPI_READ_DUMMY_8_80MHZ</a> = 0x03,        </div>
-<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;} <a class="code" href="group__w25qxx__advance__driver.html#ga6ff284154302248f00db269146545443">w25qxx_qspi_read_dummy_t</a>;</div>
-<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160; </div>
-<div class="line"><a name="l00122"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#ga2fd3023819e1aebe089a4a72eb136da3">  122</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span></div>
-<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;{</div>
-<div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#gga2fd3023819e1aebe089a4a72eb136da3a5b8fa1026c564fe83f3f0f0edb89d1dd">  124</a></span>&#160;    <a class="code" href="group__w25qxx__advance__driver.html#gga2fd3023819e1aebe089a4a72eb136da3a5b8fa1026c564fe83f3f0f0edb89d1dd">W25QXX_QSPI_READ_WRAP_LENGTH_8_BYTE</a>  = 0x00,        </div>
-<div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#gga2fd3023819e1aebe089a4a72eb136da3ae6bc2fcd2d4fc3af63f22da56a3b393b">  125</a></span>&#160;    <a class="code" href="group__w25qxx__advance__driver.html#gga2fd3023819e1aebe089a4a72eb136da3ae6bc2fcd2d4fc3af63f22da56a3b393b">W25QXX_QSPI_READ_WRAP_LENGTH_16_BYTE</a> = 0x01,        </div>
-<div class="line"><a name="l00126"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#gga2fd3023819e1aebe089a4a72eb136da3aa5f2e6b5718a85ab9241125e84181216">  126</a></span>&#160;    <a class="code" href="group__w25qxx__advance__driver.html#gga2fd3023819e1aebe089a4a72eb136da3aa5f2e6b5718a85ab9241125e84181216">W25QXX_QSPI_READ_WRAP_LENGTH_32_BYTE</a> = 0x02,        </div>
-<div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#gga2fd3023819e1aebe089a4a72eb136da3a736f25eeae36f6a0b62d4cb1666a689f">  127</a></span>&#160;    <a class="code" href="group__w25qxx__advance__driver.html#gga2fd3023819e1aebe089a4a72eb136da3a736f25eeae36f6a0b62d4cb1666a689f">W25QXX_QSPI_READ_WRAP_LENGTH_64_BYTE</a> = 0x03,        </div>
-<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;} <a class="code" href="group__w25qxx__advance__driver.html#ga2fd3023819e1aebe089a4a72eb136da3">w25qxx_qspi_read_wrap_length_t</a>;</div>
-<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160; </div>
-<div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160; </div>
-<div class="line"><a name="l00134"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#ga81ddc7d4b9f4f124163beea19cc33c7e">  134</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span></div>
-<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;{</div>
-<div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#gga81ddc7d4b9f4f124163beea19cc33c7eaaf27484a497c13915c8acb0161cf137d">  136</a></span>&#160;    <a class="code" href="group__w25qxx__advance__driver.html#gga81ddc7d4b9f4f124163beea19cc33c7eaaf27484a497c13915c8acb0161cf137d">W25QXX_SECURITY_REGISTER_1</a> = 0x1000,        </div>
-<div class="line"><a name="l00137"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#gga81ddc7d4b9f4f124163beea19cc33c7ea3353a88090850174ca163d56e4d7089c">  137</a></span>&#160;    <a class="code" href="group__w25qxx__advance__driver.html#gga81ddc7d4b9f4f124163beea19cc33c7ea3353a88090850174ca163d56e4d7089c">W25QXX_SECURITY_REGISTER_2</a> = 0x2000,        </div>
-<div class="line"><a name="l00138"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#gga81ddc7d4b9f4f124163beea19cc33c7ea65b73162d921075bed8cb8d848948900">  138</a></span>&#160;    <a class="code" href="group__w25qxx__advance__driver.html#gga81ddc7d4b9f4f124163beea19cc33c7ea65b73162d921075bed8cb8d848948900">W25QXX_SECURITY_REGISTER_3</a> = 0x3000,        </div>
-<div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;} <a class="code" href="group__w25qxx__advance__driver.html#ga81ddc7d4b9f4f124163beea19cc33c7e">w25qxx_security_register_t</a>;</div>
-<div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160; </div>
-<div class="line"><a name="l00144"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#ga94bbae2bf8906903e8dc2a28c490723d">  144</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span></div>
-<div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;{</div>
-<div class="line"><a name="l00146"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#gga94bbae2bf8906903e8dc2a28c490723dae39a7ea65512a56d40aad2990d55815d">  146</a></span>&#160;    <a class="code" href="group__w25qxx__advance__driver.html#gga94bbae2bf8906903e8dc2a28c490723dae39a7ea65512a56d40aad2990d55815d">W25QXX_BURST_WRAP_NONE</a>    = 0x10,        </div>
-<div class="line"><a name="l00147"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#gga94bbae2bf8906903e8dc2a28c490723da35edf6c31d0fe1771ab79669d13b7af8">  147</a></span>&#160;    <a class="code" href="group__w25qxx__advance__driver.html#gga94bbae2bf8906903e8dc2a28c490723da35edf6c31d0fe1771ab79669d13b7af8">W25QXX_BURST_WRAP_8_BYTE</a>  = 0x00,        </div>
-<div class="line"><a name="l00148"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#gga94bbae2bf8906903e8dc2a28c490723dafec1eb230b49fbda6ffcc1eeda64179a">  148</a></span>&#160;    <a class="code" href="group__w25qxx__advance__driver.html#gga94bbae2bf8906903e8dc2a28c490723dafec1eb230b49fbda6ffcc1eeda64179a">W25QXX_BURST_WRAP_16_BYTE</a> = 0x20,        </div>
-<div class="line"><a name="l00149"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#gga94bbae2bf8906903e8dc2a28c490723dae2ac810153f9515a145773c34409b995">  149</a></span>&#160;    <a class="code" href="group__w25qxx__advance__driver.html#gga94bbae2bf8906903e8dc2a28c490723dae2ac810153f9515a145773c34409b995">W25QXX_BURST_WRAP_32_BYTE</a> = 0x40,        </div>
-<div class="line"><a name="l00150"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#gga94bbae2bf8906903e8dc2a28c490723da2a3afd7924b00cf74abe83f5216c8915">  150</a></span>&#160;    <a class="code" href="group__w25qxx__advance__driver.html#gga94bbae2bf8906903e8dc2a28c490723da2a3afd7924b00cf74abe83f5216c8915">W25QXX_BURST_WRAP_64_BYTE</a> = 0x60,        </div>
-<div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;} <a class="code" href="group__w25qxx__advance__driver.html#ga94bbae2bf8906903e8dc2a28c490723d">w25qxx_burst_wrap_t</a>;</div>
-<div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160; </div>
-<div class="line"><a name="l00156"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#ga9e41a72d1e25d39d88ce7108a9b25595">  156</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span></div>
-<div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;{</div>
-<div class="line"><a name="l00158"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a00d1d224963ec1f38ac97802480b2129">  158</a></span>&#160;    <a class="code" href="group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a00d1d224963ec1f38ac97802480b2129">W25QXX_STATUS1_STATUS_REGISTER_PROTECT_0</a>             = (1 &lt;&lt; 7),        </div>
-<div class="line"><a name="l00159"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a9522040a098337442eff127e1598776d">  159</a></span>&#160;    <a class="code" href="group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a9522040a098337442eff127e1598776d">W25QXX_STATUS1_SECTOR_PROTECT_OR_TOP_BOTTOM_PROTECT</a>  = (1 &lt;&lt; 6),        </div>
-<div class="line"><a name="l00160"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a63bc45b7e0e19de7e58e3494eb4046c5">  160</a></span>&#160;    <a class="code" href="group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a63bc45b7e0e19de7e58e3494eb4046c5">W25QXX_STATUS1_TOP_BOTTOM_PROTECT_OR_BLOCK_PROTECT_3</a> = (1 &lt;&lt; 5),        </div>
-<div class="line"><a name="l00161"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a9a02180228dbb94e9d302b667fda884f">  161</a></span>&#160;    <a class="code" href="group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a9a02180228dbb94e9d302b667fda884f">W25QXX_STATUS1_BLOCK_PROTECT_2</a>                       = (1 &lt;&lt; 4),        </div>
-<div class="line"><a name="l00162"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a3465f02625d38730630b60cd01e92085">  162</a></span>&#160;    <a class="code" href="group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a3465f02625d38730630b60cd01e92085">W25QXX_STATUS1_BLOCK_PROTECT_1</a>                       = (1 &lt;&lt; 3),        </div>
-<div class="line"><a name="l00163"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a7b7e8922009c0d6a88bbfad76a812262">  163</a></span>&#160;    <a class="code" href="group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a7b7e8922009c0d6a88bbfad76a812262">W25QXX_STATUS1_BLOCK_PROTECT_0</a>                       = (1 &lt;&lt; 2),        </div>
-<div class="line"><a name="l00164"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a1438a76d1be1aa02e4f7450a045c02e3">  164</a></span>&#160;    <a class="code" href="group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a1438a76d1be1aa02e4f7450a045c02e3">W25QXX_STATUS1_WRITE_ENABLE_LATCH</a>                    = (1 &lt;&lt; 1),        </div>
-<div class="line"><a name="l00165"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595ae1ce566fc564776e98a5c7edefe8c5ea">  165</a></span>&#160;    <a class="code" href="group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595ae1ce566fc564776e98a5c7edefe8c5ea">W25QXX_STATUS1_ERASE_WRITE_PROGRESS</a>                  = (1 &lt;&lt; 0),        </div>
-<div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;} <a class="code" href="group__w25qxx__advance__driver.html#ga9e41a72d1e25d39d88ce7108a9b25595">w25qxx_status1_t</a>;</div>
-<div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160; </div>
-<div class="line"><a name="l00171"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#ga0d28076f6fc7d3ae9dd7f8410069a277">  171</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span></div>
-<div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;{</div>
-<div class="line"><a name="l00173"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277a3fdb54846709f77391e426c626a19152">  173</a></span>&#160;    <a class="code" href="group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277a3fdb54846709f77391e426c626a19152">W25QXX_STATUS2_SUSPEND_STATUS</a>                = (1 &lt;&lt; 7),        </div>
-<div class="line"><a name="l00174"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277a517e9e50ada30462f902d01e8d5579dc">  174</a></span>&#160;    <a class="code" href="group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277a517e9e50ada30462f902d01e8d5579dc">W25QXX_STATUS2_COMPLEMENT_PROTECT</a>            = (1 &lt;&lt; 6),        </div>
-<div class="line"><a name="l00175"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277a0f3e2b3059d56f974724a8284142e69a">  175</a></span>&#160;    <a class="code" href="group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277a0f3e2b3059d56f974724a8284142e69a">W25QXX_STATUS2_SECURITY_REGISTER_3_LOCK_BITS</a> = (1 &lt;&lt; 5),        </div>
-<div class="line"><a name="l00176"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277a24a99f1a97023ae103c1bec3027bbf26">  176</a></span>&#160;    <a class="code" href="group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277a24a99f1a97023ae103c1bec3027bbf26">W25QXX_STATUS2_SECURITY_REGISTER_2_LOCK_BITS</a> = (1 &lt;&lt; 4),        </div>
-<div class="line"><a name="l00177"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277a7a631c1c153cc099a52883b40007079e">  177</a></span>&#160;    <a class="code" href="group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277a7a631c1c153cc099a52883b40007079e">W25QXX_STATUS2_SECURITY_REGISTER_1_LOCK_BITS</a> = (1 &lt;&lt; 3),        </div>
-<div class="line"><a name="l00178"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277aa920a9c9a590fb8740419d8d2e4230f3">  178</a></span>&#160;    <a class="code" href="group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277aa920a9c9a590fb8740419d8d2e4230f3">W25QXX_STATUS2_QUAD_ENABLE</a>                   = (1 &lt;&lt; 1),        </div>
-<div class="line"><a name="l00179"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277a5a89a885ba2a59eccd0445443e3bbac6">  179</a></span>&#160;    <a class="code" href="group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277a5a89a885ba2a59eccd0445443e3bbac6">W25QXX_STATUS2_STATUS_REGISTER_PROTECT_1</a>     = (1 &lt;&lt; 0),        </div>
-<div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;} <a class="code" href="group__w25qxx__advance__driver.html#ga0d28076f6fc7d3ae9dd7f8410069a277">w25qxx_status2_t</a>;</div>
-<div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160; </div>
-<div class="line"><a name="l00185"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#gace18ebb2eac49cbde44a2935916f44ac">  185</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span></div>
-<div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;{</div>
-<div class="line"><a name="l00187"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44aca9ab13d5388af0156c4e4de08765ec401">  187</a></span>&#160;    <a class="code" href="group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44aca9ab13d5388af0156c4e4de08765ec401">W25QXX_STATUS3_HOLD_RESET_FUNCTION</a>                   = (1 &lt;&lt; 7),        </div>
-<div class="line"><a name="l00188"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44acab5b1ce328b88d08f3d55ed776e01fedb">  188</a></span>&#160;    <a class="code" href="group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44acab5b1ce328b88d08f3d55ed776e01fedb">W25QXX_STATUS3_OUTPUT_DRIVER_STRENGTH_100_PERCENTAGE</a> = (0 &lt;&lt; 5),        </div>
-<div class="line"><a name="l00189"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44aca7ab6ace72a02afc20f92f48e975b60b7">  189</a></span>&#160;    <a class="code" href="group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44aca7ab6ace72a02afc20f92f48e975b60b7">W25QXX_STATUS3_OUTPUT_DRIVER_STRENGTH_75_PERCENTAGE</a>  = (1 &lt;&lt; 5),        </div>
-<div class="line"><a name="l00190"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44aca8abcd821f1f0d02b3d9179c7ab58d0e0">  190</a></span>&#160;    <a class="code" href="group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44aca8abcd821f1f0d02b3d9179c7ab58d0e0">W25QXX_STATUS3_OUTPUT_DRIVER_STRENGTH_50_PERCENTAGE</a>  = (2 &lt;&lt; 5),        </div>
-<div class="line"><a name="l00191"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44acae645c265a6beb76a088352e2f4bfb4e1">  191</a></span>&#160;    <a class="code" href="group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44acae645c265a6beb76a088352e2f4bfb4e1">W25QXX_STATUS3_OUTPUT_DRIVER_STRENGTH_25_PERCENTAGE</a>  = (3 &lt;&lt; 5),        </div>
-<div class="line"><a name="l00192"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44aca7dc507c444fb395a4956bf50d78f1ee3">  192</a></span>&#160;    <a class="code" href="group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44aca7dc507c444fb395a4956bf50d78f1ee3">W25QXX_STATUS3_WRITE_PROTECT_SELECTION</a>               = (1 &lt;&lt; 2),        </div>
-<div class="line"><a name="l00193"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44acadc8d5949eaea0c6ce4e17c6e746f4f65">  193</a></span>&#160;    <a class="code" href="group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44acadc8d5949eaea0c6ce4e17c6e746f4f65">W25QXX_STATUS3_POWER_UP_ADDRESS_MODE</a>                 = (1 &lt;&lt; 1),        </div>
-<div class="line"><a name="l00194"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44aca3c822d6eacd9747ca2173607a09591ac">  194</a></span>&#160;    <a class="code" href="group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44aca3c822d6eacd9747ca2173607a09591ac">W25QXX_STATUS3_CURRENT_ADDRESS_MODE</a>                  = (1 &lt;&lt; 0),        </div>
-<div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;} <a class="code" href="group__w25qxx__advance__driver.html#gace18ebb2eac49cbde44a2935916f44ac">w25qxx_status3_t</a>;</div>
-<div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160; </div>
-<div class="line"><a name="l00209"></a><span class="lineno"><a class="line" href="structw25qxx__handle__s.html">  209</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_s</a></div>
-<div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;{</div>
-<div class="line"><a name="l00211"></a><span class="lineno"><a class="line" href="structw25qxx__handle__s.html#aec834df46e5185868dfdcc6fcec2e801">  211</a></span>&#160;    uint8_t (*<a class="code" href="structw25qxx__handle__s.html#aec834df46e5185868dfdcc6fcec2e801">spi_qspi_init</a>)(void);                                                                    </div>
-<div class="line"><a name="l00212"></a><span class="lineno"><a class="line" href="structw25qxx__handle__s.html#a4568e23228174b7d32678d9a96d2420c">  212</a></span>&#160;    uint8_t (*<a class="code" href="structw25qxx__handle__s.html#a4568e23228174b7d32678d9a96d2420c">spi_qspi_deinit</a>)(void);                                                                  </div>
-<div class="line"><a name="l00213"></a><span class="lineno"><a class="line" href="structw25qxx__handle__s.html#a2d39cde883403779e3da9dd39c32bec5">  213</a></span>&#160;    uint8_t (*<a class="code" href="structw25qxx__handle__s.html#a2d39cde883403779e3da9dd39c32bec5">spi_qspi_write_read</a>)(uint8_t instruction, uint8_t instruction_line,</div>
-<div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;                                   uint32_t address, uint8_t address_line, uint8_t address_len,</div>
-<div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;                                   uint32_t alternate, uint8_t alternate_line, uint8_t alternate_len,</div>
-<div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;                                   uint8_t <a class="code" href="structw25qxx__handle__s.html#aff7b59f569ec689a7580bd6911daafd5">dummy</a>, uint8_t *in_buf, uint32_t in_len,</div>
-<div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;                                   uint8_t *out_buf, uint32_t out_len, uint8_t data_line);             </div>
-<div class="line"><a name="l00218"></a><span class="lineno"><a class="line" href="structw25qxx__handle__s.html#a406c9433252b7366de417b7a60915c81">  218</a></span>&#160;    void (*<a class="code" href="structw25qxx__handle__s.html#a406c9433252b7366de417b7a60915c81">delay_ms</a>)(uint32_t ms);                                                                     </div>
-<div class="line"><a name="l00219"></a><span class="lineno"><a class="line" href="structw25qxx__handle__s.html#a97ffc4fce945527bd6ab25a3596caef7">  219</a></span>&#160;    void (*<a class="code" href="structw25qxx__handle__s.html#a97ffc4fce945527bd6ab25a3596caef7">delay_us</a>)(uint32_t us);                                                                     </div>
-<div class="line"><a name="l00220"></a><span class="lineno"><a class="line" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">  220</a></span>&#160;    void (*<a class="code" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>)(<span class="keyword">const</span> <span class="keywordtype">char</span> *<span class="keyword">const</span> fmt, ...);                                                   </div>
-<div class="line"><a name="l00221"></a><span class="lineno"><a class="line" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">  221</a></span>&#160;    uint8_t <a class="code" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">inited</a>;                                                                                    </div>
-<div class="line"><a name="l00222"></a><span class="lineno"><a class="line" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">  222</a></span>&#160;    uint16_t <a class="code" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a>;                                                                                     </div>
-<div class="line"><a name="l00223"></a><span class="lineno"><a class="line" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">  223</a></span>&#160;    uint8_t <a class="code" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a>;                                                                              </div>
-<div class="line"><a name="l00224"></a><span class="lineno"><a class="line" href="structw25qxx__handle__s.html#a3d28993689552e18d554dc0644efcf16">  224</a></span>&#160;    uint8_t <a class="code" href="structw25qxx__handle__s.html#a3d28993689552e18d554dc0644efcf16">param</a>;                                                                                     </div>
-<div class="line"><a name="l00225"></a><span class="lineno"><a class="line" href="structw25qxx__handle__s.html#aff7b59f569ec689a7580bd6911daafd5">  225</a></span>&#160;    uint8_t <a class="code" href="structw25qxx__handle__s.html#aff7b59f569ec689a7580bd6911daafd5">dummy</a>;                                                                                     </div>
-<div class="line"><a name="l00226"></a><span class="lineno"><a class="line" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">  226</a></span>&#160;    uint8_t <a class="code" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">dual_quad_spi_enable</a>;                                                                      </div>
-<div class="line"><a name="l00227"></a><span class="lineno"><a class="line" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">  227</a></span>&#160;    uint8_t <a class="code" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a>;                                                                                  </div>
-<div class="line"><a name="l00228"></a><span class="lineno"><a class="line" href="structw25qxx__handle__s.html#a2121914a1858618e9216fa2daf0a42a2">  228</a></span>&#160;    uint8_t <a class="code" href="structw25qxx__handle__s.html#a2121914a1858618e9216fa2daf0a42a2">buf</a>[256 + 6];                                                                              </div>
-<div class="line"><a name="l00229"></a><span class="lineno"><a class="line" href="structw25qxx__handle__s.html#ac80aa2927adf500634749513e88c474b">  229</a></span>&#160;    uint8_t <a class="code" href="structw25qxx__handle__s.html#ac80aa2927adf500634749513e88c474b">buf_4k</a>[4096 + 1];                                                                          </div>
-<div class="line"><a name="l00230"></a><span class="lineno"><a class="line" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">  230</a></span>&#160;} <a class="code" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a>;</div>
-<div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160; </div>
-<div class="line"><a name="l00235"></a><span class="lineno"><a class="line" href="structw25qxx__info__s.html">  235</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structw25qxx__info__s.html">w25qxx_info_s</a></div>
-<div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;{</div>
-<div class="line"><a name="l00237"></a><span class="lineno"><a class="line" href="structw25qxx__info__s.html#af890958c72bd715cc6454a10dc846ae6">  237</a></span>&#160;    <span class="keywordtype">char</span> <a class="code" href="structw25qxx__info__s.html#af890958c72bd715cc6454a10dc846ae6">chip_name</a>[32];                </div>
-<div class="line"><a name="l00238"></a><span class="lineno"><a class="line" href="structw25qxx__info__s.html#ad25285dbf810c90f8eaf3fcef6f2b2ea">  238</a></span>&#160;    <span class="keywordtype">char</span> <a class="code" href="structw25qxx__info__s.html#ad25285dbf810c90f8eaf3fcef6f2b2ea">manufacturer_name</a>[32];        </div>
-<div class="line"><a name="l00239"></a><span class="lineno"><a class="line" href="structw25qxx__info__s.html#a5778305279cae46b2ecf862e97f73600">  239</a></span>&#160;    <span class="keywordtype">char</span> <a class="code" href="structw25qxx__info__s.html#a5778305279cae46b2ecf862e97f73600">interface</a>[16];                </div>
-<div class="line"><a name="l00240"></a><span class="lineno"><a class="line" href="structw25qxx__info__s.html#ad8bde6ddadaf43d951e62f3befb9d35a">  240</a></span>&#160;    <span class="keywordtype">float</span> <a class="code" href="structw25qxx__info__s.html#ad8bde6ddadaf43d951e62f3befb9d35a">supply_voltage_min_v</a>;        </div>
-<div class="line"><a name="l00241"></a><span class="lineno"><a class="line" href="structw25qxx__info__s.html#a3d2b12bcac7a85ea8646bff9debe8660">  241</a></span>&#160;    <span class="keywordtype">float</span> <a class="code" href="structw25qxx__info__s.html#a3d2b12bcac7a85ea8646bff9debe8660">supply_voltage_max_v</a>;        </div>
-<div class="line"><a name="l00242"></a><span class="lineno"><a class="line" href="structw25qxx__info__s.html#a9db82802561bf22d799b03a345f1d1dc">  242</a></span>&#160;    <span class="keywordtype">float</span> <a class="code" href="structw25qxx__info__s.html#a9db82802561bf22d799b03a345f1d1dc">max_current_ma</a>;              </div>
-<div class="line"><a name="l00243"></a><span class="lineno"><a class="line" href="structw25qxx__info__s.html#a8f9dbe66ac0b66ebae0a36fcb4ba368e">  243</a></span>&#160;    <span class="keywordtype">float</span> <a class="code" href="structw25qxx__info__s.html#a8f9dbe66ac0b66ebae0a36fcb4ba368e">temperature_min</a>;             </div>
-<div class="line"><a name="l00244"></a><span class="lineno"><a class="line" href="structw25qxx__info__s.html#a3366a5dce9b829e03c3d321c2b4df3f6">  244</a></span>&#160;    <span class="keywordtype">float</span> <a class="code" href="structw25qxx__info__s.html#a3366a5dce9b829e03c3d321c2b4df3f6">temperature_max</a>;             </div>
-<div class="line"><a name="l00245"></a><span class="lineno"><a class="line" href="structw25qxx__info__s.html#a41b0bd442708b70d252c50b92c75265a">  245</a></span>&#160;    uint32_t <a class="code" href="structw25qxx__info__s.html#a41b0bd442708b70d252c50b92c75265a">driver_version</a>;           </div>
-<div class="line"><a name="l00246"></a><span class="lineno"><a class="line" href="group__w25qxx__basic__driver.html#ga601d841ddd0ff8ad3ab52e07c679ef19">  246</a></span>&#160;} <a class="code" href="group__w25qxx__basic__driver.html#ga601d841ddd0ff8ad3ab52e07c679ef19">w25qxx_info_t</a>;</div>
-<div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160; </div>
-<div class="line"><a name="l00265"></a><span class="lineno"><a class="line" href="group__w25qxx__link__driver.html#ga995378489f95bc6bbddbe710557e3384">  265</a></span>&#160;<span class="preprocessor">#define DRIVER_W25QXX_LINK_INIT(HANDLE, STRUCTURE)                memset(HANDLE, 0, sizeof(STRUCTURE))</span></div>
-<div class="line"><a name="l00266"></a><span class="lineno">  266</span>&#160; </div>
-<div class="line"><a name="l00273"></a><span class="lineno"><a class="line" href="group__w25qxx__link__driver.html#gab2587de93f1dba5664eede8cd787a88a">  273</a></span>&#160;<span class="preprocessor">#define DRIVER_W25QXX_LINK_SPI_QSPI_INIT(HANDLE, FUC)             (HANDLE)-&gt;spi_qspi_init = FUC</span></div>
-<div class="line"><a name="l00274"></a><span class="lineno">  274</span>&#160; </div>
-<div class="line"><a name="l00281"></a><span class="lineno"><a class="line" href="group__w25qxx__link__driver.html#gaec8b55e83b46907be1dd9e7c50be550d">  281</a></span>&#160;<span class="preprocessor">#define DRIVER_W25QXX_LINK_SPI_QSPI_DEINIT(HANDLE, FUC)           (HANDLE)-&gt;spi_qspi_deinit = FUC</span></div>
-<div class="line"><a name="l00282"></a><span class="lineno">  282</span>&#160; </div>
-<div class="line"><a name="l00289"></a><span class="lineno"><a class="line" href="group__w25qxx__link__driver.html#gac8f0ca0a725790bace3241d1d616e3d1">  289</a></span>&#160;<span class="preprocessor">#define DRIVER_W25QXX_LINK_SPI_QSPI_WRITE_READ(HANDLE, FUC)       (HANDLE)-&gt;spi_qspi_write_read = FUC</span></div>
-<div class="line"><a name="l00290"></a><span class="lineno">  290</span>&#160; </div>
-<div class="line"><a name="l00297"></a><span class="lineno"><a class="line" href="group__w25qxx__link__driver.html#ga7555618f13d2de0003ae6d9483085180">  297</a></span>&#160;<span class="preprocessor">#define DRIVER_W25QXX_LINK_DELAY_MS(HANDLE, FUC)                  (HANDLE)-&gt;delay_ms = FUC</span></div>
-<div class="line"><a name="l00298"></a><span class="lineno">  298</span>&#160; </div>
-<div class="line"><a name="l00305"></a><span class="lineno"><a class="line" href="group__w25qxx__link__driver.html#gafc81bf850c80dfa316f0c6ab40be6e67">  305</a></span>&#160;<span class="preprocessor">#define DRIVER_W25QXX_LINK_DELAY_US(HANDLE, FUC)                  (HANDLE)-&gt;delay_us = FUC</span></div>
-<div class="line"><a name="l00306"></a><span class="lineno">  306</span>&#160; </div>
-<div class="line"><a name="l00313"></a><span class="lineno"><a class="line" href="group__w25qxx__link__driver.html#gab8d49ef9dca942fe5f37c30dcd7e22a6">  313</a></span>&#160;<span class="preprocessor">#define DRIVER_W25QXX_LINK_DEBUG_PRINT(HANDLE, FUC)               (HANDLE)-&gt;debug_print = FUC</span></div>
-<div class="line"><a name="l00314"></a><span class="lineno">  314</span>&#160; </div>
-<div class="line"><a name="l00334"></a><span class="lineno">  334</span>&#160;uint8_t <a class="code" href="group__w25qxx__basic__driver.html#ga996e2d3009432e7f8c1a5175c4438a57">w25qxx_info</a>(<a class="code" href="structw25qxx__info__s.html">w25qxx_info_t</a> *info);</div>
-<div class="line"><a name="l00335"></a><span class="lineno">  335</span>&#160; </div>
-<div class="line"><a name="l00345"></a><span class="lineno">  345</span>&#160;uint8_t <a class="code" href="group__w25qxx__basic__driver.html#ga665139209b0abc386474a78d89cce6f2">w25qxx_set_dual_quad_spi</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, <a class="code" href="group__w25qxx__basic__driver.html#gafb2690946f5baf4be6f3a63dde5491fb">w25qxx_bool_t</a> enable);</div>
-<div class="line"><a name="l00346"></a><span class="lineno">  346</span>&#160; </div>
-<div class="line"><a name="l00356"></a><span class="lineno">  356</span>&#160;uint8_t <a class="code" href="group__w25qxx__basic__driver.html#gad4c9b8b0a2d0916c13567f9d7e494cf8">w25qxx_get_dual_quad_spi</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, <a class="code" href="group__w25qxx__basic__driver.html#gafb2690946f5baf4be6f3a63dde5491fb">w25qxx_bool_t</a> *enable);</div>
-<div class="line"><a name="l00357"></a><span class="lineno">  357</span>&#160; </div>
-<div class="line"><a name="l00367"></a><span class="lineno">  367</span>&#160;uint8_t <a class="code" href="group__w25qxx__basic__driver.html#gaa57189cd4170b73f8b1300ca15e27de6">w25qxx_set_type</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, <a class="code" href="group__w25qxx__basic__driver.html#ga6cb4e5164464df549201dd96cb7a58b1">w25qxx_type_t</a> type);</div>
-<div class="line"><a name="l00368"></a><span class="lineno">  368</span>&#160; </div>
-<div class="line"><a name="l00378"></a><span class="lineno">  378</span>&#160;uint8_t <a class="code" href="group__w25qxx__basic__driver.html#ga685379998dad173b6d9c0b0da270685c">w25qxx_get_type</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, <a class="code" href="group__w25qxx__basic__driver.html#ga6cb4e5164464df549201dd96cb7a58b1">w25qxx_type_t</a> *type);</div>
-<div class="line"><a name="l00379"></a><span class="lineno">  379</span>&#160; </div>
-<div class="line"><a name="l00389"></a><span class="lineno">  389</span>&#160;uint8_t <a class="code" href="group__w25qxx__basic__driver.html#ga50a62003d566402d46ada2f272c41eb5">w25qxx_set_interface</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, <a class="code" href="group__w25qxx__basic__driver.html#gacbf327a42336baf10713a1796ff4f2fe">w25qxx_interface_t</a> interface);</div>
-<div class="line"><a name="l00390"></a><span class="lineno">  390</span>&#160; </div>
-<div class="line"><a name="l00400"></a><span class="lineno">  400</span>&#160;uint8_t <a class="code" href="group__w25qxx__basic__driver.html#ga86ef839d475f3926a0be46bbc18d4b45">w25qxx_get_interface</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, <a class="code" href="group__w25qxx__basic__driver.html#gacbf327a42336baf10713a1796ff4f2fe">w25qxx_interface_t</a> *interface);</div>
-<div class="line"><a name="l00401"></a><span class="lineno">  401</span>&#160; </div>
-<div class="line"><a name="l00414"></a><span class="lineno">  414</span>&#160;uint8_t <a class="code" href="group__w25qxx__basic__driver.html#gad0e125eff304ce66fb3956d2c8c80656">w25qxx_set_address_mode</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, <a class="code" href="group__w25qxx__basic__driver.html#gaa4c45f146d1ade8a2da8e751818fa4a2">w25qxx_address_mode_t</a> mode);</div>
-<div class="line"><a name="l00415"></a><span class="lineno">  415</span>&#160; </div>
-<div class="line"><a name="l00426"></a><span class="lineno">  426</span>&#160;uint8_t <a class="code" href="group__w25qxx__basic__driver.html#ga3a52036a97b12fcbe2280b0901a80b90">w25qxx_get_address_mode</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, <a class="code" href="group__w25qxx__basic__driver.html#gaa4c45f146d1ade8a2da8e751818fa4a2">w25qxx_address_mode_t</a> *mode);</div>
-<div class="line"><a name="l00427"></a><span class="lineno">  427</span>&#160; </div>
-<div class="line"><a name="l00443"></a><span class="lineno">  443</span>&#160;uint8_t <a class="code" href="group__w25qxx__basic__driver.html#ga8e7a163b3d255b8c7fc035d0d60f2491">w25qxx_init</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle);</div>
-<div class="line"><a name="l00444"></a><span class="lineno">  444</span>&#160; </div>
-<div class="line"><a name="l00456"></a><span class="lineno">  456</span>&#160;uint8_t <a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle);</div>
-<div class="line"><a name="l00457"></a><span class="lineno">  457</span>&#160; </div>
-<div class="line"><a name="l00472"></a><span class="lineno">  472</span>&#160;uint8_t <a class="code" href="group__w25qxx__basic__driver.html#gae7479fc9ce911a52e3c5b6f1a615b879">w25qxx_read</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint32_t len);</div>
-<div class="line"><a name="l00473"></a><span class="lineno">  473</span>&#160; </div>
-<div class="line"><a name="l00489"></a><span class="lineno">  489</span>&#160;uint8_t <a class="code" href="group__w25qxx__basic__driver.html#gaaee8264d840e51460821cb6e609338ee">w25qxx_write</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint32_t len);</div>
-<div class="line"><a name="l00490"></a><span class="lineno">  490</span>&#160; </div>
-<div class="line"><a name="l00506"></a><span class="lineno">  506</span>&#160;uint8_t <a class="code" href="group__w25qxx__basic__driver.html#ga1e9ebf198137d23558dbf6470213c472">w25qxx_only_spi_read</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint32_t len);</div>
-<div class="line"><a name="l00507"></a><span class="lineno">  507</span>&#160; </div>
-<div class="line"><a name="l00522"></a><span class="lineno">  522</span>&#160;uint8_t <a class="code" href="group__w25qxx__basic__driver.html#gac345ba10af5ad355578fa97697487123">w25qxx_fast_read</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint32_t len);</div>
-<div class="line"><a name="l00523"></a><span class="lineno">  523</span>&#160; </div>
-<div class="line"><a name="l00541"></a><span class="lineno">  541</span>&#160;uint8_t <a class="code" href="group__w25qxx__basic__driver.html#ga6280e7e4ab26306436e2c210617a28b3">w25qxx_page_program</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint16_t len);</div>
-<div class="line"><a name="l00542"></a><span class="lineno">  542</span>&#160; </div>
-<div class="line"><a name="l00557"></a><span class="lineno">  557</span>&#160;uint8_t <a class="code" href="group__w25qxx__basic__driver.html#ga9a03c51b4c84655350c15fbfce0a6b40">w25qxx_sector_erase_4k</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint32_t addr);</div>
-<div class="line"><a name="l00558"></a><span class="lineno">  558</span>&#160; </div>
-<div class="line"><a name="l00573"></a><span class="lineno">  573</span>&#160;uint8_t <a class="code" href="group__w25qxx__basic__driver.html#ga39c8fb382e8c3e4d57232dfa79af781c">w25qxx_block_erase_32k</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint32_t addr);</div>
-<div class="line"><a name="l00574"></a><span class="lineno">  574</span>&#160; </div>
-<div class="line"><a name="l00589"></a><span class="lineno">  589</span>&#160;uint8_t <a class="code" href="group__w25qxx__basic__driver.html#gaf53bc5f6073482b9b74efd417ec7ac83">w25qxx_block_erase_64k</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint32_t addr);</div>
-<div class="line"><a name="l00590"></a><span class="lineno">  590</span>&#160; </div>
-<div class="line"><a name="l00602"></a><span class="lineno">  602</span>&#160;uint8_t <a class="code" href="group__w25qxx__basic__driver.html#ga0862833b36831f92684980b2e21f2e39">w25qxx_chip_erase</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle);</div>
-<div class="line"><a name="l00603"></a><span class="lineno">  603</span>&#160; </div>
-<div class="line"><a name="l00614"></a><span class="lineno">  614</span>&#160;uint8_t <a class="code" href="group__w25qxx__basic__driver.html#gae4effce67e36120325e3c7b245b90142">w25qxx_power_down</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle);</div>
-<div class="line"><a name="l00615"></a><span class="lineno">  615</span>&#160; </div>
-<div class="line"><a name="l00626"></a><span class="lineno">  626</span>&#160;uint8_t <a class="code" href="group__w25qxx__basic__driver.html#ga09c9b52877516a2ee4c080dc249e7331">w25qxx_release_power_down</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle);</div>
-<div class="line"><a name="l00627"></a><span class="lineno">  627</span>&#160; </div>
-<div class="line"><a name="l00640"></a><span class="lineno">  640</span>&#160;uint8_t <a class="code" href="group__w25qxx__basic__driver.html#ga921836a777b082ff4d0f322ccfda6b22">w25qxx_get_manufacturer_device_id</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint8_t *manufacturer, uint8_t *device_id);</div>
-<div class="line"><a name="l00641"></a><span class="lineno">  641</span>&#160; </div>
-<div class="line"><a name="l00669"></a><span class="lineno">  669</span>&#160;uint8_t <a class="code" href="group__w25qxx__advance__driver.html#ga7a19230ca3916816ea8fb7421483d293">w25qxx_fast_read_dual_output</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint32_t len);</div>
-<div class="line"><a name="l00670"></a><span class="lineno">  670</span>&#160; </div>
-<div class="line"><a name="l00687"></a><span class="lineno">  687</span>&#160;uint8_t <a class="code" href="group__w25qxx__advance__driver.html#gaf4bfafd1f80aa0316a4b1a15183dcd50">w25qxx_fast_read_quad_output</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint32_t len);</div>
-<div class="line"><a name="l00688"></a><span class="lineno">  688</span>&#160; </div>
-<div class="line"><a name="l00705"></a><span class="lineno">  705</span>&#160;uint8_t <a class="code" href="group__w25qxx__advance__driver.html#gac894f4650905cba10dd3a31284de6d5e">w25qxx_fast_read_dual_io</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint32_t len);</div>
-<div class="line"><a name="l00706"></a><span class="lineno">  706</span>&#160; </div>
-<div class="line"><a name="l00722"></a><span class="lineno">  722</span>&#160;uint8_t <a class="code" href="group__w25qxx__advance__driver.html#gab97a64bd3776874518f60381d921ae41">w25qxx_fast_read_quad_io</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint32_t len);</div>
-<div class="line"><a name="l00723"></a><span class="lineno">  723</span>&#160; </div>
-<div class="line"><a name="l00740"></a><span class="lineno">  740</span>&#160;uint8_t <a class="code" href="group__w25qxx__advance__driver.html#gad97d7e410dd77c49334097a0fd332660">w25qxx_word_read_quad_io</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint32_t len);</div>
-<div class="line"><a name="l00741"></a><span class="lineno">  741</span>&#160; </div>
-<div class="line"><a name="l00758"></a><span class="lineno">  758</span>&#160;uint8_t <a class="code" href="group__w25qxx__advance__driver.html#ga88a62ec42e86db821ff3f0d3ab541dbb">w25qxx_octal_word_read_quad_io</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint32_t len);</div>
-<div class="line"><a name="l00759"></a><span class="lineno">  759</span>&#160; </div>
-<div class="line"><a name="l00778"></a><span class="lineno">  778</span>&#160;uint8_t <a class="code" href="group__w25qxx__advance__driver.html#ga1f80bbbaaa852eecfffb87737889363d">w25qxx_page_program_quad_input</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint16_t len);</div>
-<div class="line"><a name="l00779"></a><span class="lineno">  779</span>&#160; </div>
-<div class="line"><a name="l00790"></a><span class="lineno">  790</span>&#160;uint8_t <a class="code" href="group__w25qxx__advance__driver.html#gaeb269123feec054eaaf70f2ffb5797a3">w25qxx_enable_write</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle);</div>
-<div class="line"><a name="l00791"></a><span class="lineno">  791</span>&#160; </div>
-<div class="line"><a name="l00802"></a><span class="lineno">  802</span>&#160;uint8_t <a class="code" href="group__w25qxx__advance__driver.html#ga0f8889d6a25c32e150a2ab30753d461d">w25qxx_enable_volatile_sr_write</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle);</div>
-<div class="line"><a name="l00803"></a><span class="lineno">  803</span>&#160; </div>
-<div class="line"><a name="l00814"></a><span class="lineno">  814</span>&#160;uint8_t <a class="code" href="group__w25qxx__advance__driver.html#gac16a31269277051baad6c28fe4254b4a">w25qxx_disable_write</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle);</div>
-<div class="line"><a name="l00815"></a><span class="lineno">  815</span>&#160; </div>
-<div class="line"><a name="l00827"></a><span class="lineno">  827</span>&#160;uint8_t <a class="code" href="group__w25qxx__advance__driver.html#gaa77d2b00b4fb9cf586f77ace827ea7c6">w25qxx_get_status1</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint8_t *status);</div>
-<div class="line"><a name="l00828"></a><span class="lineno">  828</span>&#160; </div>
-<div class="line"><a name="l00840"></a><span class="lineno">  840</span>&#160;uint8_t <a class="code" href="group__w25qxx__advance__driver.html#gaa21237ecbd5951b8017799066e7db5d9">w25qxx_get_status2</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint8_t *status);</div>
-<div class="line"><a name="l00841"></a><span class="lineno">  841</span>&#160; </div>
-<div class="line"><a name="l00853"></a><span class="lineno">  853</span>&#160;uint8_t <a class="code" href="group__w25qxx__advance__driver.html#ga99cf6a325a00921d4531004f0c1d75b1">w25qxx_get_status3</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint8_t *status);</div>
-<div class="line"><a name="l00854"></a><span class="lineno">  854</span>&#160; </div>
-<div class="line"><a name="l00867"></a><span class="lineno">  867</span>&#160;uint8_t <a class="code" href="group__w25qxx__advance__driver.html#ga246e0bb07c8bbb39731f17906779c012">w25qxx_set_status1</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint8_t status);</div>
-<div class="line"><a name="l00868"></a><span class="lineno">  868</span>&#160; </div>
-<div class="line"><a name="l00881"></a><span class="lineno">  881</span>&#160;uint8_t <a class="code" href="group__w25qxx__advance__driver.html#gaab5f28e8930d50dbc2178e39bc9fa456">w25qxx_set_status2</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint8_t status);</div>
-<div class="line"><a name="l00882"></a><span class="lineno">  882</span>&#160; </div>
-<div class="line"><a name="l00895"></a><span class="lineno">  895</span>&#160;uint8_t <a class="code" href="group__w25qxx__advance__driver.html#gada897a6c6d6acb99f4dd4ff9b65ad8ee">w25qxx_set_status3</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint8_t status);</div>
-<div class="line"><a name="l00896"></a><span class="lineno">  896</span>&#160; </div>
-<div class="line"><a name="l00907"></a><span class="lineno">  907</span>&#160;uint8_t <a class="code" href="group__w25qxx__advance__driver.html#gac7fbabc574c250eec100be861f5918ff">w25qxx_erase_program_suspend</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle);</div>
-<div class="line"><a name="l00908"></a><span class="lineno">  908</span>&#160; </div>
-<div class="line"><a name="l00919"></a><span class="lineno">  919</span>&#160;uint8_t <a class="code" href="group__w25qxx__advance__driver.html#ga05c69ac66309544eba4ff38a69f24c00">w25qxx_erase_program_resume</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle);</div>
-<div class="line"><a name="l00920"></a><span class="lineno">  920</span>&#160; </div>
-<div class="line"><a name="l00936"></a><span class="lineno">  936</span>&#160;uint8_t <a class="code" href="group__w25qxx__advance__driver.html#ga1cd3aec1bdeabbaed5f049fbf83ceeb4">w25qxx_get_manufacturer_device_id_dual_io</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint8_t *manufacturer, uint8_t *device_id);</div>
-<div class="line"><a name="l00937"></a><span class="lineno">  937</span>&#160; </div>
-<div class="line"><a name="l00953"></a><span class="lineno">  953</span>&#160;uint8_t <a class="code" href="group__w25qxx__advance__driver.html#ga61bd3ce40b76b6862c6a53e0e37a3455">w25qxx_get_manufacturer_device_id_quad_io</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint8_t *manufacturer, uint8_t *device_id);</div>
-<div class="line"><a name="l00954"></a><span class="lineno">  954</span>&#160; </div>
-<div class="line"><a name="l00967"></a><span class="lineno">  967</span>&#160;uint8_t <a class="code" href="group__w25qxx__advance__driver.html#ga8a93ba14a032e10a27f1495fdcf56058">w25qxx_get_jedec_id</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint8_t *manufacturer, uint8_t device_id[2]);</div>
-<div class="line"><a name="l00968"></a><span class="lineno">  968</span>&#160; </div>
-<div class="line"><a name="l00979"></a><span class="lineno">  979</span>&#160;uint8_t <a class="code" href="group__w25qxx__advance__driver.html#gab5579bc42bc07a7657848140888a817c">w25qxx_global_block_lock</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle);</div>
-<div class="line"><a name="l00980"></a><span class="lineno">  980</span>&#160; </div>
-<div class="line"><a name="l00991"></a><span class="lineno">  991</span>&#160;uint8_t <a class="code" href="group__w25qxx__advance__driver.html#ga6d62f7d14945cfde7cde7a0e9a4e3afb">w25qxx_global_block_unlock</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle);</div>
-<div class="line"><a name="l00992"></a><span class="lineno">  992</span>&#160; </div>
-<div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>&#160;uint8_t <a class="code" href="group__w25qxx__advance__driver.html#ga9ad10781d888b32b43b9eba45d049624">w25qxx_set_read_parameters</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, <a class="code" href="group__w25qxx__advance__driver.html#ga6ff284154302248f00db269146545443">w25qxx_qspi_read_dummy_t</a> dummy, <a class="code" href="group__w25qxx__advance__driver.html#ga2fd3023819e1aebe089a4a72eb136da3">w25qxx_qspi_read_wrap_length_t</a> length);</div>
-<div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>&#160; </div>
-<div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>&#160;uint8_t <a class="code" href="group__w25qxx__advance__driver.html#gaa5ab3548707a95ded115255432224c5a">w25qxx_enter_qspi_mode</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle);</div>
-<div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>&#160; </div>
-<div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>&#160;uint8_t <a class="code" href="group__w25qxx__advance__driver.html#ga6b9f75f7426a54ffdb1f5a057f8188f4">w25qxx_exit_qspi_mode</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle);</div>
-<div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>&#160; </div>
-<div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>&#160;uint8_t <a class="code" href="group__w25qxx__advance__driver.html#gab55b4e071e20feb58584025287949438">w25qxx_enable_reset</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle);</div>
-<div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>&#160; </div>
-<div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>&#160;uint8_t <a class="code" href="group__w25qxx__advance__driver.html#ga2abebfe2a8d9377eb88448ffca73f222">w25qxx_reset_device</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle);</div>
-<div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>&#160; </div>
-<div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>&#160;uint8_t <a class="code" href="group__w25qxx__advance__driver.html#ga11af244389478de68a6777076ee82d69">w25qxx_get_unique_id</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint8_t <span class="keywordtype">id</span>[8]);</div>
-<div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>&#160; </div>
-<div class="line"><a name="l01085"></a><span class="lineno"> 1085</span>&#160;uint8_t <a class="code" href="group__w25qxx__advance__driver.html#ga244a91b9c0c32e899ca89e1943045624">w25qxx_get_sfdp</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint8_t sfdp[256]);</div>
-<div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>&#160; </div>
-<div class="line"><a name="l01101"></a><span class="lineno"> 1101</span>&#160;uint8_t <a class="code" href="group__w25qxx__advance__driver.html#gaf297e2c6877c64f8fd10a555f783ddaf">w25qxx_erase_security_register</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, <a class="code" href="group__w25qxx__advance__driver.html#ga81ddc7d4b9f4f124163beea19cc33c7e">w25qxx_security_register_t</a> num);</div>
-<div class="line"><a name="l01102"></a><span class="lineno"> 1102</span>&#160; </div>
-<div class="line"><a name="l01118"></a><span class="lineno"> 1118</span>&#160;uint8_t <a class="code" href="group__w25qxx__advance__driver.html#ga4e9c059ff78866e478e835cb27a92899">w25qxx_program_security_register</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, <a class="code" href="group__w25qxx__advance__driver.html#ga81ddc7d4b9f4f124163beea19cc33c7e">w25qxx_security_register_t</a> num, uint8_t data[256]);</div>
-<div class="line"><a name="l01119"></a><span class="lineno"> 1119</span>&#160; </div>
-<div class="line"><a name="l01135"></a><span class="lineno"> 1135</span>&#160;uint8_t <a class="code" href="group__w25qxx__advance__driver.html#ga4c65debc4947bd9a61e0073105164b9c">w25qxx_read_security_register</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, <a class="code" href="group__w25qxx__advance__driver.html#ga81ddc7d4b9f4f124163beea19cc33c7e">w25qxx_security_register_t</a> num, uint8_t data[256]);</div>
-<div class="line"><a name="l01136"></a><span class="lineno"> 1136</span>&#160; </div>
-<div class="line"><a name="l01149"></a><span class="lineno"> 1149</span>&#160;uint8_t <a class="code" href="group__w25qxx__advance__driver.html#ga4f00c2c169cb7c3084841c6cd795e76b">w25qxx_individual_block_lock</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint32_t addr);</div>
-<div class="line"><a name="l01150"></a><span class="lineno"> 1150</span>&#160; </div>
-<div class="line"><a name="l01163"></a><span class="lineno"> 1163</span>&#160;uint8_t <a class="code" href="group__w25qxx__advance__driver.html#ga7f88cedf7619071b3235ba094915b2a7">w25qxx_individual_block_unlock</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint32_t addr);</div>
-<div class="line"><a name="l01164"></a><span class="lineno"> 1164</span>&#160; </div>
-<div class="line"><a name="l01178"></a><span class="lineno"> 1178</span>&#160;uint8_t <a class="code" href="group__w25qxx__advance__driver.html#ga59e655ca78a175037ca810bbc8539a96">w25qxx_read_block_lock</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *value);</div>
-<div class="line"><a name="l01179"></a><span class="lineno"> 1179</span>&#160; </div>
-<div class="line"><a name="l01192"></a><span class="lineno"> 1192</span>&#160;uint8_t <a class="code" href="group__w25qxx__advance__driver.html#gac19c1d0f3fd48968ea2a93c1dbe3d75d">w25qxx_set_burst_with_wrap</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, <a class="code" href="group__w25qxx__advance__driver.html#ga94bbae2bf8906903e8dc2a28c490723d">w25qxx_burst_wrap_t</a> wrap);</div>
-<div class="line"><a name="l01193"></a><span class="lineno"> 1193</span>&#160; </div>
-<div class="line"><a name="l01229"></a><span class="lineno"> 1229</span>&#160;uint8_t <a class="code" href="group__w25qxx__extern__driver.html#ga9623a3bec148b148498480518a66cb2b">w25qxx_write_read_reg</a>(<a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint8_t instruction, uint8_t instruction_line,</div>
-<div class="line"><a name="l01230"></a><span class="lineno"> 1230</span>&#160;                              uint32_t address, uint8_t address_line, uint8_t address_len,</div>
-<div class="line"><a name="l01231"></a><span class="lineno"> 1231</span>&#160;                              uint32_t alternate, uint8_t alternate_line, uint8_t alternate_len,</div>
-<div class="line"><a name="l01232"></a><span class="lineno"> 1232</span>&#160;                              uint8_t dummy, uint8_t *in_buf, uint32_t in_len,</div>
-<div class="line"><a name="l01233"></a><span class="lineno"> 1233</span>&#160;                              uint8_t *out_buf, uint32_t out_len, uint8_t data_line);</div>
-<div class="line"><a name="l01234"></a><span class="lineno"> 1234</span>&#160; </div>
-<div class="line"><a name="l01243"></a><span class="lineno"> 1243</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a name="l01244"></a><span class="lineno"> 1244</span>&#160;}</div>
-<div class="line"><a name="l01245"></a><span class="lineno"> 1245</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l01246"></a><span class="lineno"> 1246</span>&#160; </div>
-<div class="line"><a name="l01247"></a><span class="lineno"> 1247</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga05c69ac66309544eba4ff38a69f24c00"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga05c69ac66309544eba4ff38a69f24c00">w25qxx_erase_program_resume</a></div><div class="ttdeci">uint8_t w25qxx_erase_program_resume(w25qxx_handle_t *handle)</div><div class="ttdoc">resume erase or program</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l01722">driver_w25qxx.c:1722</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga0d28076f6fc7d3ae9dd7f8410069a277"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga0d28076f6fc7d3ae9dd7f8410069a277">w25qxx_status2_t</a></div><div class="ttdeci">w25qxx_status2_t</div><div class="ttdoc">w25qxx status 2 enumeration definition</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00171">driver_w25qxx.h:172</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga0f8889d6a25c32e150a2ab30753d461d"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga0f8889d6a25c32e150a2ab30753d461d">w25qxx_enable_volatile_sr_write</a></div><div class="ttdeci">uint8_t w25qxx_enable_volatile_sr_write(w25qxx_handle_t *handle)</div><div class="ttdoc">enable volatile sr writing</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l00501">driver_w25qxx.c:501</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga11af244389478de68a6777076ee82d69"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga11af244389478de68a6777076ee82d69">w25qxx_get_unique_id</a></div><div class="ttdeci">uint8_t w25qxx_get_unique_id(w25qxx_handle_t *handle, uint8_t id[8])</div><div class="ttdoc">get the unique id</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l02764">driver_w25qxx.c:2764</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga1cd3aec1bdeabbaed5f049fbf83ceeb4"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga1cd3aec1bdeabbaed5f049fbf83ceeb4">w25qxx_get_manufacturer_device_id_dual_io</a></div><div class="ttdeci">uint8_t w25qxx_get_manufacturer_device_id_dual_io(w25qxx_handle_t *handle, uint8_t *manufacturer, uint8_t *device_id)</div><div class="ttdoc">get the manufacturer &amp;&amp; device id information with dual io</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l02038">driver_w25qxx.c:2038</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga1f80bbbaaa852eecfffb87737889363d"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga1f80bbbaaa852eecfffb87737889363d">w25qxx_page_program_quad_input</a></div><div class="ttdeci">uint8_t w25qxx_page_program_quad_input(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint16_t len)</div><div class="ttdoc">quad page program with quad input</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l04920">driver_w25qxx.c:4920</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga244a91b9c0c32e899ca89e1943045624"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga244a91b9c0c32e899ca89e1943045624">w25qxx_get_sfdp</a></div><div class="ttdeci">uint8_t w25qxx_get_sfdp(w25qxx_handle_t *handle, uint8_t sfdp[256])</div><div class="ttdoc">get the sfdp</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l02880">driver_w25qxx.c:2880</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga246e0bb07c8bbb39731f17906779c012"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga246e0bb07c8bbb39731f17906779c012">w25qxx_set_status1</a></div><div class="ttdeci">uint8_t w25qxx_set_status1(w25qxx_handle_t *handle, uint8_t status)</div><div class="ttdoc">set the status 1</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l00863">driver_w25qxx.c:863</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga2abebfe2a8d9377eb88448ffca73f222"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga2abebfe2a8d9377eb88448ffca73f222">w25qxx_reset_device</a></div><div class="ttdeci">uint8_t w25qxx_reset_device(w25qxx_handle_t *handle)</div><div class="ttdoc">reset the device</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l02690">driver_w25qxx.c:2690</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga2fd3023819e1aebe089a4a72eb136da3"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga2fd3023819e1aebe089a4a72eb136da3">w25qxx_qspi_read_wrap_length_t</a></div><div class="ttdeci">w25qxx_qspi_read_wrap_length_t</div><div class="ttdoc">w25qxx qspi read wrap length enumeration definition</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00122">driver_w25qxx.h:123</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga4c65debc4947bd9a61e0073105164b9c"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga4c65debc4947bd9a61e0073105164b9c">w25qxx_read_security_register</a></div><div class="ttdeci">uint8_t w25qxx_read_security_register(w25qxx_handle_t *handle, w25qxx_security_register_t num, uint8_t data[256])</div><div class="ttdoc">read the security register</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l03344">driver_w25qxx.c:3344</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga4e9c059ff78866e478e835cb27a92899"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga4e9c059ff78866e478e835cb27a92899">w25qxx_program_security_register</a></div><div class="ttdeci">uint8_t w25qxx_program_security_register(w25qxx_handle_t *handle, w25qxx_security_register_t num, uint8_t data[256])</div><div class="ttdoc">program the security register</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l03147">driver_w25qxx.c:3147</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga4f00c2c169cb7c3084841c6cd795e76b"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga4f00c2c169cb7c3084841c6cd795e76b">w25qxx_individual_block_lock</a></div><div class="ttdeci">uint8_t w25qxx_individual_block_lock(w25qxx_handle_t *handle, uint32_t addr)</div><div class="ttdoc">lock the individual block</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l06094">driver_w25qxx.c:6094</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga59e655ca78a175037ca810bbc8539a96"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga59e655ca78a175037ca810bbc8539a96">w25qxx_read_block_lock</a></div><div class="ttdeci">uint8_t w25qxx_read_block_lock(w25qxx_handle_t *handle, uint32_t addr, uint8_t *value)</div><div class="ttdoc">read the block lock</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l06529">driver_w25qxx.c:6529</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga61bd3ce40b76b6862c6a53e0e37a3455"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga61bd3ce40b76b6862c6a53e0e37a3455">w25qxx_get_manufacturer_device_id_quad_io</a></div><div class="ttdeci">uint8_t w25qxx_get_manufacturer_device_id_quad_io(w25qxx_handle_t *handle, uint8_t *manufacturer, uint8_t *device_id)</div><div class="ttdoc">get the manufacturer &amp;&amp; device id information with quad io</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l02122">driver_w25qxx.c:2122</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga6b9f75f7426a54ffdb1f5a057f8188f4"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga6b9f75f7426a54ffdb1f5a057f8188f4">w25qxx_exit_qspi_mode</a></div><div class="ttdeci">uint8_t w25qxx_exit_qspi_mode(w25qxx_handle_t *handle)</div><div class="ttdoc">exit the qspi mode</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l02572">driver_w25qxx.c:2572</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga6d62f7d14945cfde7cde7a0e9a4e3afb"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga6d62f7d14945cfde7cde7a0e9a4e3afb">w25qxx_global_block_unlock</a></div><div class="ttdeci">uint8_t w25qxx_global_block_unlock(w25qxx_handle_t *handle)</div><div class="ttdoc">unlock the whole block</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l02354">driver_w25qxx.c:2354</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga6ff284154302248f00db269146545443"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga6ff284154302248f00db269146545443">w25qxx_qspi_read_dummy_t</a></div><div class="ttdeci">w25qxx_qspi_read_dummy_t</div><div class="ttdoc">w25qxx qspi read dummy enumeration definition</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00111">driver_w25qxx.h:112</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga7a19230ca3916816ea8fb7421483d293"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga7a19230ca3916816ea8fb7421483d293">w25qxx_fast_read_dual_output</a></div><div class="ttdeci">uint8_t w25qxx_fast_read_dual_output(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">read with dual output in the fast mode</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l03858">driver_w25qxx.c:3858</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga7f88cedf7619071b3235ba094915b2a7"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga7f88cedf7619071b3235ba094915b2a7">w25qxx_individual_block_unlock</a></div><div class="ttdeci">uint8_t w25qxx_individual_block_unlock(w25qxx_handle_t *handle, uint32_t addr)</div><div class="ttdoc">unlock the individual block</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l06311">driver_w25qxx.c:6311</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga81ddc7d4b9f4f124163beea19cc33c7e"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga81ddc7d4b9f4f124163beea19cc33c7e">w25qxx_security_register_t</a></div><div class="ttdeci">w25qxx_security_register_t</div><div class="ttdoc">w25qxx security register enumeration definition</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00134">driver_w25qxx.h:135</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga88a62ec42e86db821ff3f0d3ab541dbb"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga88a62ec42e86db821ff3f0d3ab541dbb">w25qxx_octal_word_read_quad_io</a></div><div class="ttdeci">uint8_t w25qxx_octal_word_read_quad_io(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">octal word read with quad io</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l04459">driver_w25qxx.c:4459</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga8a93ba14a032e10a27f1495fdcf56058"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga8a93ba14a032e10a27f1495fdcf56058">w25qxx_get_jedec_id</a></div><div class="ttdeci">uint8_t w25qxx_get_jedec_id(w25qxx_handle_t *handle, uint8_t *manufacturer, uint8_t device_id[2])</div><div class="ttdoc">get the jedec id information</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l02203">driver_w25qxx.c:2203</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga94bbae2bf8906903e8dc2a28c490723d"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga94bbae2bf8906903e8dc2a28c490723d">w25qxx_burst_wrap_t</a></div><div class="ttdeci">w25qxx_burst_wrap_t</div><div class="ttdoc">w25qxx burst wrap enumeration definition</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00144">driver_w25qxx.h:145</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga99cf6a325a00921d4531004f0c1d75b1"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga99cf6a325a00921d4531004f0c1d75b1">w25qxx_get_status3</a></div><div class="ttdeci">uint8_t w25qxx_get_status3(w25qxx_handle_t *handle, uint8_t *status)</div><div class="ttdoc">get the status 3</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l00789">driver_w25qxx.c:789</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga9ad10781d888b32b43b9eba45d049624"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga9ad10781d888b32b43b9eba45d049624">w25qxx_set_read_parameters</a></div><div class="ttdeci">uint8_t w25qxx_set_read_parameters(w25qxx_handle_t *handle, w25qxx_qspi_read_dummy_t dummy, w25qxx_qspi_read_wrap_length_t length)</div><div class="ttdoc">set the read parameters</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l02427">driver_w25qxx.c:2427</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga9e41a72d1e25d39d88ce7108a9b25595"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga9e41a72d1e25d39d88ce7108a9b25595">w25qxx_status1_t</a></div><div class="ttdeci">w25qxx_status1_t</div><div class="ttdoc">w25qxx status 1 enumeration definition</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00156">driver_w25qxx.h:157</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_gaa21237ecbd5951b8017799066e7db5d9"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gaa21237ecbd5951b8017799066e7db5d9">w25qxx_get_status2</a></div><div class="ttdeci">uint8_t w25qxx_get_status2(w25qxx_handle_t *handle, uint8_t *status)</div><div class="ttdoc">get the status 2</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l00716">driver_w25qxx.c:716</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_gaa5ab3548707a95ded115255432224c5a"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gaa5ab3548707a95ded115255432224c5a">w25qxx_enter_qspi_mode</a></div><div class="ttdeci">uint8_t w25qxx_enter_qspi_mode(w25qxx_handle_t *handle)</div><div class="ttdoc">enter the qspi mode</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l02494">driver_w25qxx.c:2494</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_gaa77d2b00b4fb9cf586f77ace827ea7c6"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gaa77d2b00b4fb9cf586f77ace827ea7c6">w25qxx_get_status1</a></div><div class="ttdeci">uint8_t w25qxx_get_status1(w25qxx_handle_t *handle, uint8_t *status)</div><div class="ttdoc">get the status 1</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l00643">driver_w25qxx.c:643</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_gaab5f28e8930d50dbc2178e39bc9fa456"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gaab5f28e8930d50dbc2178e39bc9fa456">w25qxx_set_status2</a></div><div class="ttdeci">uint8_t w25qxx_set_status2(w25qxx_handle_t *handle, uint8_t status)</div><div class="ttdoc">set the status 2</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l01062">driver_w25qxx.c:1062</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_gab5579bc42bc07a7657848140888a817c"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gab5579bc42bc07a7657848140888a817c">w25qxx_global_block_lock</a></div><div class="ttdeci">uint8_t w25qxx_global_block_lock(w25qxx_handle_t *handle)</div><div class="ttdoc">lock the whole block</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l02284">driver_w25qxx.c:2284</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_gab55b4e071e20feb58584025287949438"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gab55b4e071e20feb58584025287949438">w25qxx_enable_reset</a></div><div class="ttdeci">uint8_t w25qxx_enable_reset(w25qxx_handle_t *handle)</div><div class="ttdoc">enable the reset</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l02619">driver_w25qxx.c:2619</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_gab97a64bd3776874518f60381d921ae41"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gab97a64bd3776874518f60381d921ae41">w25qxx_fast_read_quad_io</a></div><div class="ttdeci">uint8_t w25qxx_fast_read_quad_io(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">read with quad io in the fast mode</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l04184">driver_w25qxx.c:4184</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_gac16a31269277051baad6c28fe4254b4a"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gac16a31269277051baad6c28fe4254b4a">w25qxx_disable_write</a></div><div class="ttdeci">uint8_t w25qxx_disable_write(w25qxx_handle_t *handle)</div><div class="ttdoc">disable writing</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l00572">driver_w25qxx.c:572</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_gac19c1d0f3fd48968ea2a93c1dbe3d75d"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gac19c1d0f3fd48968ea2a93c1dbe3d75d">w25qxx_set_burst_with_wrap</a></div><div class="ttdeci">uint8_t w25qxx_set_burst_with_wrap(w25qxx_handle_t *handle, w25qxx_burst_wrap_t wrap)</div><div class="ttdoc">set the burst with wrap</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l06746">driver_w25qxx.c:6746</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_gac7fbabc574c250eec100be861f5918ff"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gac7fbabc574c250eec100be861f5918ff">w25qxx_erase_program_suspend</a></div><div class="ttdeci">uint8_t w25qxx_erase_program_suspend(w25qxx_handle_t *handle)</div><div class="ttdoc">suspend erase or program</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l01650">driver_w25qxx.c:1650</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_gac894f4650905cba10dd3a31284de6d5e"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gac894f4650905cba10dd3a31284de6d5e">w25qxx_fast_read_dual_io</a></div><div class="ttdeci">uint8_t w25qxx_fast_read_dual_io(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">read with dual io in the fast mode</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l04076">driver_w25qxx.c:4076</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_gace18ebb2eac49cbde44a2935916f44ac"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gace18ebb2eac49cbde44a2935916f44ac">w25qxx_status3_t</a></div><div class="ttdeci">w25qxx_status3_t</div><div class="ttdoc">w25qxx status 3 enumeration definition</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00185">driver_w25qxx.h:186</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_gad97d7e410dd77c49334097a0fd332660"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gad97d7e410dd77c49334097a0fd332660">w25qxx_word_read_quad_io</a></div><div class="ttdeci">uint8_t w25qxx_word_read_quad_io(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">word read with quad io</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l04350">driver_w25qxx.c:4350</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_gada897a6c6d6acb99f4dd4ff9b65ad8ee"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gada897a6c6d6acb99f4dd4ff9b65ad8ee">w25qxx_set_status3</a></div><div class="ttdeci">uint8_t w25qxx_set_status3(w25qxx_handle_t *handle, uint8_t status)</div><div class="ttdoc">set the status 3</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l01261">driver_w25qxx.c:1261</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_gaeb269123feec054eaaf70f2ffb5797a3"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gaeb269123feec054eaaf70f2ffb5797a3">w25qxx_enable_write</a></div><div class="ttdeci">uint8_t w25qxx_enable_write(w25qxx_handle_t *handle)</div><div class="ttdoc">enable writing</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l00431">driver_w25qxx.c:431</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_gaf297e2c6877c64f8fd10a555f783ddaf"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gaf297e2c6877c64f8fd10a555f783ddaf">w25qxx_erase_security_register</a></div><div class="ttdeci">uint8_t w25qxx_erase_security_register(w25qxx_handle_t *handle, w25qxx_security_register_t num)</div><div class="ttdoc">erase the security register</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l02952">driver_w25qxx.c:2952</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_gaf4bfafd1f80aa0316a4b1a15183dcd50"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gaf4bfafd1f80aa0316a4b1a15183dcd50">w25qxx_fast_read_quad_output</a></div><div class="ttdeci">uint8_t w25qxx_fast_read_quad_output(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">read with quad output in the fast mode</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l03967">driver_w25qxx.c:3967</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_gga0d28076f6fc7d3ae9dd7f8410069a277a0f3e2b3059d56f974724a8284142e69a"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277a0f3e2b3059d56f974724a8284142e69a">W25QXX_STATUS2_SECURITY_REGISTER_3_LOCK_BITS</a></div><div class="ttdeci">@ W25QXX_STATUS2_SECURITY_REGISTER_3_LOCK_BITS</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00175">driver_w25qxx.h:175</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_gga0d28076f6fc7d3ae9dd7f8410069a277a24a99f1a97023ae103c1bec3027bbf26"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277a24a99f1a97023ae103c1bec3027bbf26">W25QXX_STATUS2_SECURITY_REGISTER_2_LOCK_BITS</a></div><div class="ttdeci">@ W25QXX_STATUS2_SECURITY_REGISTER_2_LOCK_BITS</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00176">driver_w25qxx.h:176</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_gga0d28076f6fc7d3ae9dd7f8410069a277a3fdb54846709f77391e426c626a19152"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277a3fdb54846709f77391e426c626a19152">W25QXX_STATUS2_SUSPEND_STATUS</a></div><div class="ttdeci">@ W25QXX_STATUS2_SUSPEND_STATUS</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00173">driver_w25qxx.h:173</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_gga0d28076f6fc7d3ae9dd7f8410069a277a517e9e50ada30462f902d01e8d5579dc"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277a517e9e50ada30462f902d01e8d5579dc">W25QXX_STATUS2_COMPLEMENT_PROTECT</a></div><div class="ttdeci">@ W25QXX_STATUS2_COMPLEMENT_PROTECT</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00174">driver_w25qxx.h:174</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_gga0d28076f6fc7d3ae9dd7f8410069a277a5a89a885ba2a59eccd0445443e3bbac6"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277a5a89a885ba2a59eccd0445443e3bbac6">W25QXX_STATUS2_STATUS_REGISTER_PROTECT_1</a></div><div class="ttdeci">@ W25QXX_STATUS2_STATUS_REGISTER_PROTECT_1</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00179">driver_w25qxx.h:179</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_gga0d28076f6fc7d3ae9dd7f8410069a277a7a631c1c153cc099a52883b40007079e"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277a7a631c1c153cc099a52883b40007079e">W25QXX_STATUS2_SECURITY_REGISTER_1_LOCK_BITS</a></div><div class="ttdeci">@ W25QXX_STATUS2_SECURITY_REGISTER_1_LOCK_BITS</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00177">driver_w25qxx.h:177</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_gga0d28076f6fc7d3ae9dd7f8410069a277aa920a9c9a590fb8740419d8d2e4230f3"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277aa920a9c9a590fb8740419d8d2e4230f3">W25QXX_STATUS2_QUAD_ENABLE</a></div><div class="ttdeci">@ W25QXX_STATUS2_QUAD_ENABLE</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00178">driver_w25qxx.h:178</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_gga2fd3023819e1aebe089a4a72eb136da3a5b8fa1026c564fe83f3f0f0edb89d1dd"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gga2fd3023819e1aebe089a4a72eb136da3a5b8fa1026c564fe83f3f0f0edb89d1dd">W25QXX_QSPI_READ_WRAP_LENGTH_8_BYTE</a></div><div class="ttdeci">@ W25QXX_QSPI_READ_WRAP_LENGTH_8_BYTE</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00124">driver_w25qxx.h:124</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_gga2fd3023819e1aebe089a4a72eb136da3a736f25eeae36f6a0b62d4cb1666a689f"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gga2fd3023819e1aebe089a4a72eb136da3a736f25eeae36f6a0b62d4cb1666a689f">W25QXX_QSPI_READ_WRAP_LENGTH_64_BYTE</a></div><div class="ttdeci">@ W25QXX_QSPI_READ_WRAP_LENGTH_64_BYTE</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00127">driver_w25qxx.h:127</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_gga2fd3023819e1aebe089a4a72eb136da3aa5f2e6b5718a85ab9241125e84181216"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gga2fd3023819e1aebe089a4a72eb136da3aa5f2e6b5718a85ab9241125e84181216">W25QXX_QSPI_READ_WRAP_LENGTH_32_BYTE</a></div><div class="ttdeci">@ W25QXX_QSPI_READ_WRAP_LENGTH_32_BYTE</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00126">driver_w25qxx.h:126</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_gga2fd3023819e1aebe089a4a72eb136da3ae6bc2fcd2d4fc3af63f22da56a3b393b"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gga2fd3023819e1aebe089a4a72eb136da3ae6bc2fcd2d4fc3af63f22da56a3b393b">W25QXX_QSPI_READ_WRAP_LENGTH_16_BYTE</a></div><div class="ttdeci">@ W25QXX_QSPI_READ_WRAP_LENGTH_16_BYTE</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00125">driver_w25qxx.h:125</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_gga6ff284154302248f00db269146545443a6423b5606e72af6479fe31a6a9883aeb"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gga6ff284154302248f00db269146545443a6423b5606e72af6479fe31a6a9883aeb">W25QXX_QSPI_READ_DUMMY_4_55MHZ</a></div><div class="ttdeci">@ W25QXX_QSPI_READ_DUMMY_4_55MHZ</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00114">driver_w25qxx.h:114</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_gga6ff284154302248f00db269146545443a78393debe12bbb3efb710e38e3c1d550"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gga6ff284154302248f00db269146545443a78393debe12bbb3efb710e38e3c1d550">W25QXX_QSPI_READ_DUMMY_6_80MHZ</a></div><div class="ttdeci">@ W25QXX_QSPI_READ_DUMMY_6_80MHZ</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00115">driver_w25qxx.h:115</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_gga6ff284154302248f00db269146545443ad73634a0f4534c3ae35d4242b2bc8f13"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gga6ff284154302248f00db269146545443ad73634a0f4534c3ae35d4242b2bc8f13">W25QXX_QSPI_READ_DUMMY_2_33MHZ</a></div><div class="ttdeci">@ W25QXX_QSPI_READ_DUMMY_2_33MHZ</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00113">driver_w25qxx.h:113</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_gga6ff284154302248f00db269146545443ade1d3511f15c7d92de8c5d8967c471c3"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gga6ff284154302248f00db269146545443ade1d3511f15c7d92de8c5d8967c471c3">W25QXX_QSPI_READ_DUMMY_8_80MHZ</a></div><div class="ttdeci">@ W25QXX_QSPI_READ_DUMMY_8_80MHZ</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00116">driver_w25qxx.h:116</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_gga81ddc7d4b9f4f124163beea19cc33c7ea3353a88090850174ca163d56e4d7089c"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gga81ddc7d4b9f4f124163beea19cc33c7ea3353a88090850174ca163d56e4d7089c">W25QXX_SECURITY_REGISTER_2</a></div><div class="ttdeci">@ W25QXX_SECURITY_REGISTER_2</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00137">driver_w25qxx.h:137</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_gga81ddc7d4b9f4f124163beea19cc33c7ea65b73162d921075bed8cb8d848948900"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gga81ddc7d4b9f4f124163beea19cc33c7ea65b73162d921075bed8cb8d848948900">W25QXX_SECURITY_REGISTER_3</a></div><div class="ttdeci">@ W25QXX_SECURITY_REGISTER_3</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00138">driver_w25qxx.h:138</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_gga81ddc7d4b9f4f124163beea19cc33c7eaaf27484a497c13915c8acb0161cf137d"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gga81ddc7d4b9f4f124163beea19cc33c7eaaf27484a497c13915c8acb0161cf137d">W25QXX_SECURITY_REGISTER_1</a></div><div class="ttdeci">@ W25QXX_SECURITY_REGISTER_1</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00136">driver_w25qxx.h:136</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_gga94bbae2bf8906903e8dc2a28c490723da2a3afd7924b00cf74abe83f5216c8915"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gga94bbae2bf8906903e8dc2a28c490723da2a3afd7924b00cf74abe83f5216c8915">W25QXX_BURST_WRAP_64_BYTE</a></div><div class="ttdeci">@ W25QXX_BURST_WRAP_64_BYTE</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00150">driver_w25qxx.h:150</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_gga94bbae2bf8906903e8dc2a28c490723da35edf6c31d0fe1771ab79669d13b7af8"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gga94bbae2bf8906903e8dc2a28c490723da35edf6c31d0fe1771ab79669d13b7af8">W25QXX_BURST_WRAP_8_BYTE</a></div><div class="ttdeci">@ W25QXX_BURST_WRAP_8_BYTE</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00147">driver_w25qxx.h:147</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_gga94bbae2bf8906903e8dc2a28c490723dae2ac810153f9515a145773c34409b995"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gga94bbae2bf8906903e8dc2a28c490723dae2ac810153f9515a145773c34409b995">W25QXX_BURST_WRAP_32_BYTE</a></div><div class="ttdeci">@ W25QXX_BURST_WRAP_32_BYTE</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00149">driver_w25qxx.h:149</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_gga94bbae2bf8906903e8dc2a28c490723dae39a7ea65512a56d40aad2990d55815d"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gga94bbae2bf8906903e8dc2a28c490723dae39a7ea65512a56d40aad2990d55815d">W25QXX_BURST_WRAP_NONE</a></div><div class="ttdeci">@ W25QXX_BURST_WRAP_NONE</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00146">driver_w25qxx.h:146</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_gga94bbae2bf8906903e8dc2a28c490723dafec1eb230b49fbda6ffcc1eeda64179a"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gga94bbae2bf8906903e8dc2a28c490723dafec1eb230b49fbda6ffcc1eeda64179a">W25QXX_BURST_WRAP_16_BYTE</a></div><div class="ttdeci">@ W25QXX_BURST_WRAP_16_BYTE</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00148">driver_w25qxx.h:148</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_gga9e41a72d1e25d39d88ce7108a9b25595a00d1d224963ec1f38ac97802480b2129"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a00d1d224963ec1f38ac97802480b2129">W25QXX_STATUS1_STATUS_REGISTER_PROTECT_0</a></div><div class="ttdeci">@ W25QXX_STATUS1_STATUS_REGISTER_PROTECT_0</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00158">driver_w25qxx.h:158</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_gga9e41a72d1e25d39d88ce7108a9b25595a1438a76d1be1aa02e4f7450a045c02e3"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a1438a76d1be1aa02e4f7450a045c02e3">W25QXX_STATUS1_WRITE_ENABLE_LATCH</a></div><div class="ttdeci">@ W25QXX_STATUS1_WRITE_ENABLE_LATCH</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00164">driver_w25qxx.h:164</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_gga9e41a72d1e25d39d88ce7108a9b25595a3465f02625d38730630b60cd01e92085"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a3465f02625d38730630b60cd01e92085">W25QXX_STATUS1_BLOCK_PROTECT_1</a></div><div class="ttdeci">@ W25QXX_STATUS1_BLOCK_PROTECT_1</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00162">driver_w25qxx.h:162</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_gga9e41a72d1e25d39d88ce7108a9b25595a63bc45b7e0e19de7e58e3494eb4046c5"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a63bc45b7e0e19de7e58e3494eb4046c5">W25QXX_STATUS1_TOP_BOTTOM_PROTECT_OR_BLOCK_PROTECT_3</a></div><div class="ttdeci">@ W25QXX_STATUS1_TOP_BOTTOM_PROTECT_OR_BLOCK_PROTECT_3</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00160">driver_w25qxx.h:160</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_gga9e41a72d1e25d39d88ce7108a9b25595a7b7e8922009c0d6a88bbfad76a812262"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a7b7e8922009c0d6a88bbfad76a812262">W25QXX_STATUS1_BLOCK_PROTECT_0</a></div><div class="ttdeci">@ W25QXX_STATUS1_BLOCK_PROTECT_0</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00163">driver_w25qxx.h:163</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_gga9e41a72d1e25d39d88ce7108a9b25595a9522040a098337442eff127e1598776d"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a9522040a098337442eff127e1598776d">W25QXX_STATUS1_SECTOR_PROTECT_OR_TOP_BOTTOM_PROTECT</a></div><div class="ttdeci">@ W25QXX_STATUS1_SECTOR_PROTECT_OR_TOP_BOTTOM_PROTECT</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00159">driver_w25qxx.h:159</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_gga9e41a72d1e25d39d88ce7108a9b25595a9a02180228dbb94e9d302b667fda884f"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a9a02180228dbb94e9d302b667fda884f">W25QXX_STATUS1_BLOCK_PROTECT_2</a></div><div class="ttdeci">@ W25QXX_STATUS1_BLOCK_PROTECT_2</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00161">driver_w25qxx.h:161</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_gga9e41a72d1e25d39d88ce7108a9b25595ae1ce566fc564776e98a5c7edefe8c5ea"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595ae1ce566fc564776e98a5c7edefe8c5ea">W25QXX_STATUS1_ERASE_WRITE_PROGRESS</a></div><div class="ttdeci">@ W25QXX_STATUS1_ERASE_WRITE_PROGRESS</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00165">driver_w25qxx.h:165</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_ggace18ebb2eac49cbde44a2935916f44aca3c822d6eacd9747ca2173607a09591ac"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44aca3c822d6eacd9747ca2173607a09591ac">W25QXX_STATUS3_CURRENT_ADDRESS_MODE</a></div><div class="ttdeci">@ W25QXX_STATUS3_CURRENT_ADDRESS_MODE</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00194">driver_w25qxx.h:194</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_ggace18ebb2eac49cbde44a2935916f44aca7ab6ace72a02afc20f92f48e975b60b7"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44aca7ab6ace72a02afc20f92f48e975b60b7">W25QXX_STATUS3_OUTPUT_DRIVER_STRENGTH_75_PERCENTAGE</a></div><div class="ttdeci">@ W25QXX_STATUS3_OUTPUT_DRIVER_STRENGTH_75_PERCENTAGE</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00189">driver_w25qxx.h:189</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_ggace18ebb2eac49cbde44a2935916f44aca7dc507c444fb395a4956bf50d78f1ee3"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44aca7dc507c444fb395a4956bf50d78f1ee3">W25QXX_STATUS3_WRITE_PROTECT_SELECTION</a></div><div class="ttdeci">@ W25QXX_STATUS3_WRITE_PROTECT_SELECTION</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00192">driver_w25qxx.h:192</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_ggace18ebb2eac49cbde44a2935916f44aca8abcd821f1f0d02b3d9179c7ab58d0e0"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44aca8abcd821f1f0d02b3d9179c7ab58d0e0">W25QXX_STATUS3_OUTPUT_DRIVER_STRENGTH_50_PERCENTAGE</a></div><div class="ttdeci">@ W25QXX_STATUS3_OUTPUT_DRIVER_STRENGTH_50_PERCENTAGE</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00190">driver_w25qxx.h:190</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_ggace18ebb2eac49cbde44a2935916f44aca9ab13d5388af0156c4e4de08765ec401"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44aca9ab13d5388af0156c4e4de08765ec401">W25QXX_STATUS3_HOLD_RESET_FUNCTION</a></div><div class="ttdeci">@ W25QXX_STATUS3_HOLD_RESET_FUNCTION</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00187">driver_w25qxx.h:187</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_ggace18ebb2eac49cbde44a2935916f44acab5b1ce328b88d08f3d55ed776e01fedb"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44acab5b1ce328b88d08f3d55ed776e01fedb">W25QXX_STATUS3_OUTPUT_DRIVER_STRENGTH_100_PERCENTAGE</a></div><div class="ttdeci">@ W25QXX_STATUS3_OUTPUT_DRIVER_STRENGTH_100_PERCENTAGE</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00188">driver_w25qxx.h:188</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_ggace18ebb2eac49cbde44a2935916f44acadc8d5949eaea0c6ce4e17c6e746f4f65"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44acadc8d5949eaea0c6ce4e17c6e746f4f65">W25QXX_STATUS3_POWER_UP_ADDRESS_MODE</a></div><div class="ttdeci">@ W25QXX_STATUS3_POWER_UP_ADDRESS_MODE</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00193">driver_w25qxx.h:193</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_ggace18ebb2eac49cbde44a2935916f44acae645c265a6beb76a088352e2f4bfb4e1"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44acae645c265a6beb76a088352e2f4bfb4e1">W25QXX_STATUS3_OUTPUT_DRIVER_STRENGTH_25_PERCENTAGE</a></div><div class="ttdeci">@ W25QXX_STATUS3_OUTPUT_DRIVER_STRENGTH_25_PERCENTAGE</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00191">driver_w25qxx.h:191</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga0862833b36831f92684980b2e21f2e39"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga0862833b36831f92684980b2e21f2e39">w25qxx_chip_erase</a></div><div class="ttdeci">uint8_t w25qxx_chip_erase(w25qxx_handle_t *handle)</div><div class="ttdoc">erase the chip</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l01459">driver_w25qxx.c:1459</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga09c9b52877516a2ee4c080dc249e7331"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga09c9b52877516a2ee4c080dc249e7331">w25qxx_release_power_down</a></div><div class="ttdeci">uint8_t w25qxx_release_power_down(w25qxx_handle_t *handle)</div><div class="ttdoc">release power down</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l01875">driver_w25qxx.c:1875</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga1e9ebf198137d23558dbf6470213c472"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga1e9ebf198137d23558dbf6470213c472">w25qxx_only_spi_read</a></div><div class="ttdeci">uint8_t w25qxx_only_spi_read(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">read only in the spi interface</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l03465">driver_w25qxx.c:3465</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga39c8fb382e8c3e4d57232dfa79af781c"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga39c8fb382e8c3e4d57232dfa79af781c">w25qxx_block_erase_32k</a></div><div class="ttdeci">uint8_t w25qxx_block_erase_32k(w25qxx_handle_t *handle, uint32_t addr)</div><div class="ttdoc">erase the 32k block</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l05419">driver_w25qxx.c:5419</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga3a52036a97b12fcbe2280b0901a80b90"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga3a52036a97b12fcbe2280b0901a80b90">w25qxx_get_address_mode</a></div><div class="ttdeci">uint8_t w25qxx_get_address_mode(w25qxx_handle_t *handle, w25qxx_address_mode_t *mode)</div><div class="ttdoc">get the chip address mode</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l00405">driver_w25qxx.c:405</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga50a62003d566402d46ada2f272c41eb5"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga50a62003d566402d46ada2f272c41eb5">w25qxx_set_interface</a></div><div class="ttdeci">uint8_t w25qxx_set_interface(w25qxx_handle_t *handle, w25qxx_interface_t interface)</div><div class="ttdoc">set the chip interface</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l00259">driver_w25qxx.c:259</a></div></div>
+<a href="driver__w25qxx_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno">    1</span> </div>
+<div class="line"><a id="l00037" name="l00037"></a><span class="lineno">   37</span><span class="preprocessor">#ifndef DRIVER_W25QXX_H</span></div>
+<div class="line"><a id="l00038" name="l00038"></a><span class="lineno">   38</span><span class="preprocessor">#define DRIVER_W25QXX_H</span></div>
+<div class="line"><a id="l00039" name="l00039"></a><span class="lineno">   39</span> </div>
+<div class="line"><a id="l00040" name="l00040"></a><span class="lineno">   40</span><span class="preprocessor">#include &lt;stdint.h&gt;</span></div>
+<div class="line"><a id="l00041" name="l00041"></a><span class="lineno">   41</span><span class="preprocessor">#include &lt;stdio.h&gt;</span></div>
+<div class="line"><a id="l00042" name="l00042"></a><span class="lineno">   42</span><span class="preprocessor">#include &lt;string.h&gt;</span></div>
+<div class="line"><a id="l00043" name="l00043"></a><span class="lineno">   43</span> </div>
+<div class="line"><a id="l00044" name="l00044"></a><span class="lineno">   44</span><span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a id="l00045" name="l00045"></a><span class="lineno">   45</span><span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span>{</div>
+<div class="line"><a id="l00046" name="l00046"></a><span class="lineno">   46</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l00047" name="l00047"></a><span class="lineno">   47</span> </div>
+<div class="foldopen" id="foldopen00062" data-start="{" data-end="};">
+<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"><a class="line" href="group__w25qxx__basic__driver.html#ga6cb4e5164464df549201dd96cb7a58b1">   62</a></span><span class="keyword">typedef</span> <span class="keyword">enum</span></div>
+<div class="line"><a id="l00063" name="l00063"></a><span class="lineno">   63</span>{</div>
+<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"><a class="line" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a1ad4f72437de5f26cb7b212d4d91e7c2">   64</a></span>    <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a1ad4f72437de5f26cb7b212d4d91e7c2">W25Q80</a>  = 0XEF13U,        </div>
+<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"><a class="line" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a66acb81a2d520a7d92ce1d37210c6435">   65</a></span>    <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a66acb81a2d520a7d92ce1d37210c6435">W25Q16</a>  = 0XEF14U,        </div>
+<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"><a class="line" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a4fdad551be6485441db5951f196db7cb">   66</a></span>    <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a4fdad551be6485441db5951f196db7cb">W25Q32</a>  = 0XEF15U,        </div>
+<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"><a class="line" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a3ea98b2b3e06afa29441c51548bbb16e">   67</a></span>    <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a3ea98b2b3e06afa29441c51548bbb16e">W25Q64</a>  = 0XEF16U,        </div>
+<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"><a class="line" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a75afcbe71906d3884f4fcc119c1cabd5">   68</a></span>    <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a75afcbe71906d3884f4fcc119c1cabd5">W25Q128</a> = 0XEF17U,        </div>
+<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"><a class="line" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">   69</a></span>    <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a> = 0XEF18U,        </div>
+<div class="line"><a id="l00070" name="l00070"></a><span class="lineno">   70</span>} <a class="code hl_enumeration" href="group__w25qxx__basic__driver.html#ga6cb4e5164464df549201dd96cb7a58b1">w25qxx_type_t</a>;</div>
+</div>
+<div class="line"><a id="l00071" name="l00071"></a><span class="lineno">   71</span> </div>
+<div class="foldopen" id="foldopen00075" data-start="{" data-end="};">
+<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"><a class="line" href="group__w25qxx__basic__driver.html#gacbf327a42336baf10713a1796ff4f2fe">   75</a></span><span class="keyword">typedef</span> <span class="keyword">enum</span></div>
+<div class="line"><a id="l00076" name="l00076"></a><span class="lineno">   76</span>{</div>
+<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"><a class="line" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">   77</a></span>    <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>  = 0x00,        </div>
+<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"><a class="line" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2fea895dcb5c91da89fad1c12161ffd2d5d4">   78</a></span>    <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2fea895dcb5c91da89fad1c12161ffd2d5d4">W25QXX_INTERFACE_QSPI</a> = 0x01,        </div>
+<div class="line"><a id="l00079" name="l00079"></a><span class="lineno">   79</span>} <a class="code hl_enumeration" href="group__w25qxx__basic__driver.html#gacbf327a42336baf10713a1796ff4f2fe">w25qxx_interface_t</a>;</div>
+</div>
+<div class="line"><a id="l00080" name="l00080"></a><span class="lineno">   80</span> </div>
+<div class="foldopen" id="foldopen00084" data-start="{" data-end="};">
+<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"><a class="line" href="group__w25qxx__basic__driver.html#gafb2690946f5baf4be6f3a63dde5491fb">   84</a></span><span class="keyword">typedef</span> <span class="keyword">enum</span></div>
+<div class="line"><a id="l00085" name="l00085"></a><span class="lineno">   85</span>{</div>
+<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"><a class="line" href="group__w25qxx__basic__driver.html#ggafb2690946f5baf4be6f3a63dde5491fba02afbdc2c6c3d761cd31ac39c857ee9a">   86</a></span>    <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggafb2690946f5baf4be6f3a63dde5491fba02afbdc2c6c3d761cd31ac39c857ee9a">W25QXX_BOOL_FALSE</a> = 0x00,        </div>
+<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"><a class="line" href="group__w25qxx__basic__driver.html#ggafb2690946f5baf4be6f3a63dde5491fbae2a935d12b0b1bc9fc321246ee0e0df8">   87</a></span>    <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggafb2690946f5baf4be6f3a63dde5491fbae2a935d12b0b1bc9fc321246ee0e0df8">W25QXX_BOOL_TRUE</a>  = 0x01,        </div>
+<div class="line"><a id="l00088" name="l00088"></a><span class="lineno">   88</span>} <a class="code hl_enumeration" href="group__w25qxx__basic__driver.html#gafb2690946f5baf4be6f3a63dde5491fb">w25qxx_bool_t</a>;</div>
+</div>
+<div class="line"><a id="l00089" name="l00089"></a><span class="lineno">   89</span> </div>
+<div class="foldopen" id="foldopen00093" data-start="{" data-end="};">
+<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"><a class="line" href="group__w25qxx__basic__driver.html#gaa4c45f146d1ade8a2da8e751818fa4a2">   93</a></span><span class="keyword">typedef</span> <span class="keyword">enum</span></div>
+<div class="line"><a id="l00094" name="l00094"></a><span class="lineno">   94</span>{</div>
+<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"><a class="line" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">   95</a></span>    <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a> = 0x00,        </div>
+<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"><a class="line" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">   96</a></span>    <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a> = 0x01,        </div>
+<div class="line"><a id="l00097" name="l00097"></a><span class="lineno">   97</span>} <a class="code hl_enumeration" href="group__w25qxx__basic__driver.html#gaa4c45f146d1ade8a2da8e751818fa4a2">w25qxx_address_mode_t</a>;</div>
+</div>
+<div class="line"><a id="l00098" name="l00098"></a><span class="lineno">   98</span> </div>
+<div class="foldopen" id="foldopen00111" data-start="{" data-end="};">
+<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#ga6ff284154302248f00db269146545443">  111</a></span><span class="keyword">typedef</span> <span class="keyword">enum</span></div>
+<div class="line"><a id="l00112" name="l00112"></a><span class="lineno">  112</span>{</div>
+<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#gga6ff284154302248f00db269146545443ad73634a0f4534c3ae35d4242b2bc8f13">  113</a></span>    <a class="code hl_enumvalue" href="group__w25qxx__advance__driver.html#gga6ff284154302248f00db269146545443ad73634a0f4534c3ae35d4242b2bc8f13">W25QXX_QSPI_READ_DUMMY_2_33MHZ</a> = 0x00,        </div>
+<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#gga6ff284154302248f00db269146545443a6423b5606e72af6479fe31a6a9883aeb">  114</a></span>    <a class="code hl_enumvalue" href="group__w25qxx__advance__driver.html#gga6ff284154302248f00db269146545443a6423b5606e72af6479fe31a6a9883aeb">W25QXX_QSPI_READ_DUMMY_4_55MHZ</a> = 0x01,        </div>
+<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#gga6ff284154302248f00db269146545443a78393debe12bbb3efb710e38e3c1d550">  115</a></span>    <a class="code hl_enumvalue" href="group__w25qxx__advance__driver.html#gga6ff284154302248f00db269146545443a78393debe12bbb3efb710e38e3c1d550">W25QXX_QSPI_READ_DUMMY_6_80MHZ</a> = 0x02,        </div>
+<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#gga6ff284154302248f00db269146545443ade1d3511f15c7d92de8c5d8967c471c3">  116</a></span>    <a class="code hl_enumvalue" href="group__w25qxx__advance__driver.html#gga6ff284154302248f00db269146545443ade1d3511f15c7d92de8c5d8967c471c3">W25QXX_QSPI_READ_DUMMY_8_80MHZ</a> = 0x03,        </div>
+<div class="line"><a id="l00117" name="l00117"></a><span class="lineno">  117</span>} <a class="code hl_enumeration" href="group__w25qxx__advance__driver.html#ga6ff284154302248f00db269146545443">w25qxx_qspi_read_dummy_t</a>;</div>
+</div>
+<div class="line"><a id="l00118" name="l00118"></a><span class="lineno">  118</span> </div>
+<div class="foldopen" id="foldopen00122" data-start="{" data-end="};">
+<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#ga2fd3023819e1aebe089a4a72eb136da3">  122</a></span><span class="keyword">typedef</span> <span class="keyword">enum</span></div>
+<div class="line"><a id="l00123" name="l00123"></a><span class="lineno">  123</span>{</div>
+<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#gga2fd3023819e1aebe089a4a72eb136da3a5b8fa1026c564fe83f3f0f0edb89d1dd">  124</a></span>    <a class="code hl_enumvalue" href="group__w25qxx__advance__driver.html#gga2fd3023819e1aebe089a4a72eb136da3a5b8fa1026c564fe83f3f0f0edb89d1dd">W25QXX_QSPI_READ_WRAP_LENGTH_8_BYTE</a>  = 0x00,        </div>
+<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#gga2fd3023819e1aebe089a4a72eb136da3ae6bc2fcd2d4fc3af63f22da56a3b393b">  125</a></span>    <a class="code hl_enumvalue" href="group__w25qxx__advance__driver.html#gga2fd3023819e1aebe089a4a72eb136da3ae6bc2fcd2d4fc3af63f22da56a3b393b">W25QXX_QSPI_READ_WRAP_LENGTH_16_BYTE</a> = 0x01,        </div>
+<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#gga2fd3023819e1aebe089a4a72eb136da3aa5f2e6b5718a85ab9241125e84181216">  126</a></span>    <a class="code hl_enumvalue" href="group__w25qxx__advance__driver.html#gga2fd3023819e1aebe089a4a72eb136da3aa5f2e6b5718a85ab9241125e84181216">W25QXX_QSPI_READ_WRAP_LENGTH_32_BYTE</a> = 0x02,        </div>
+<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#gga2fd3023819e1aebe089a4a72eb136da3a736f25eeae36f6a0b62d4cb1666a689f">  127</a></span>    <a class="code hl_enumvalue" href="group__w25qxx__advance__driver.html#gga2fd3023819e1aebe089a4a72eb136da3a736f25eeae36f6a0b62d4cb1666a689f">W25QXX_QSPI_READ_WRAP_LENGTH_64_BYTE</a> = 0x03,        </div>
+<div class="line"><a id="l00128" name="l00128"></a><span class="lineno">  128</span>} <a class="code hl_enumeration" href="group__w25qxx__advance__driver.html#ga2fd3023819e1aebe089a4a72eb136da3">w25qxx_qspi_read_wrap_length_t</a>;</div>
+</div>
+<div class="line"><a id="l00129" name="l00129"></a><span class="lineno">  129</span> </div>
+<div class="line"><a id="l00130" name="l00130"></a><span class="lineno">  130</span> </div>
+<div class="foldopen" id="foldopen00134" data-start="{" data-end="};">
+<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#ga81ddc7d4b9f4f124163beea19cc33c7e">  134</a></span><span class="keyword">typedef</span> <span class="keyword">enum</span></div>
+<div class="line"><a id="l00135" name="l00135"></a><span class="lineno">  135</span>{</div>
+<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#gga81ddc7d4b9f4f124163beea19cc33c7eaaf27484a497c13915c8acb0161cf137d">  136</a></span>    <a class="code hl_enumvalue" href="group__w25qxx__advance__driver.html#gga81ddc7d4b9f4f124163beea19cc33c7eaaf27484a497c13915c8acb0161cf137d">W25QXX_SECURITY_REGISTER_1</a> = 0x1000,        </div>
+<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#gga81ddc7d4b9f4f124163beea19cc33c7ea3353a88090850174ca163d56e4d7089c">  137</a></span>    <a class="code hl_enumvalue" href="group__w25qxx__advance__driver.html#gga81ddc7d4b9f4f124163beea19cc33c7ea3353a88090850174ca163d56e4d7089c">W25QXX_SECURITY_REGISTER_2</a> = 0x2000,        </div>
+<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#gga81ddc7d4b9f4f124163beea19cc33c7ea65b73162d921075bed8cb8d848948900">  138</a></span>    <a class="code hl_enumvalue" href="group__w25qxx__advance__driver.html#gga81ddc7d4b9f4f124163beea19cc33c7ea65b73162d921075bed8cb8d848948900">W25QXX_SECURITY_REGISTER_3</a> = 0x3000,        </div>
+<div class="line"><a id="l00139" name="l00139"></a><span class="lineno">  139</span>} <a class="code hl_enumeration" href="group__w25qxx__advance__driver.html#ga81ddc7d4b9f4f124163beea19cc33c7e">w25qxx_security_register_t</a>;</div>
+</div>
+<div class="line"><a id="l00140" name="l00140"></a><span class="lineno">  140</span> </div>
+<div class="foldopen" id="foldopen00144" data-start="{" data-end="};">
+<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#ga94bbae2bf8906903e8dc2a28c490723d">  144</a></span><span class="keyword">typedef</span> <span class="keyword">enum</span></div>
+<div class="line"><a id="l00145" name="l00145"></a><span class="lineno">  145</span>{</div>
+<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#gga94bbae2bf8906903e8dc2a28c490723dae39a7ea65512a56d40aad2990d55815d">  146</a></span>    <a class="code hl_enumvalue" href="group__w25qxx__advance__driver.html#gga94bbae2bf8906903e8dc2a28c490723dae39a7ea65512a56d40aad2990d55815d">W25QXX_BURST_WRAP_NONE</a>    = 0x10,        </div>
+<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#gga94bbae2bf8906903e8dc2a28c490723da35edf6c31d0fe1771ab79669d13b7af8">  147</a></span>    <a class="code hl_enumvalue" href="group__w25qxx__advance__driver.html#gga94bbae2bf8906903e8dc2a28c490723da35edf6c31d0fe1771ab79669d13b7af8">W25QXX_BURST_WRAP_8_BYTE</a>  = 0x00,        </div>
+<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#gga94bbae2bf8906903e8dc2a28c490723dafec1eb230b49fbda6ffcc1eeda64179a">  148</a></span>    <a class="code hl_enumvalue" href="group__w25qxx__advance__driver.html#gga94bbae2bf8906903e8dc2a28c490723dafec1eb230b49fbda6ffcc1eeda64179a">W25QXX_BURST_WRAP_16_BYTE</a> = 0x20,        </div>
+<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#gga94bbae2bf8906903e8dc2a28c490723dae2ac810153f9515a145773c34409b995">  149</a></span>    <a class="code hl_enumvalue" href="group__w25qxx__advance__driver.html#gga94bbae2bf8906903e8dc2a28c490723dae2ac810153f9515a145773c34409b995">W25QXX_BURST_WRAP_32_BYTE</a> = 0x40,        </div>
+<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#gga94bbae2bf8906903e8dc2a28c490723da2a3afd7924b00cf74abe83f5216c8915">  150</a></span>    <a class="code hl_enumvalue" href="group__w25qxx__advance__driver.html#gga94bbae2bf8906903e8dc2a28c490723da2a3afd7924b00cf74abe83f5216c8915">W25QXX_BURST_WRAP_64_BYTE</a> = 0x60,        </div>
+<div class="line"><a id="l00151" name="l00151"></a><span class="lineno">  151</span>} <a class="code hl_enumeration" href="group__w25qxx__advance__driver.html#ga94bbae2bf8906903e8dc2a28c490723d">w25qxx_burst_wrap_t</a>;</div>
+</div>
+<div class="line"><a id="l00152" name="l00152"></a><span class="lineno">  152</span> </div>
+<div class="foldopen" id="foldopen00156" data-start="{" data-end="};">
+<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#ga9e41a72d1e25d39d88ce7108a9b25595">  156</a></span><span class="keyword">typedef</span> <span class="keyword">enum</span></div>
+<div class="line"><a id="l00157" name="l00157"></a><span class="lineno">  157</span>{</div>
+<div class="line"><a id="l00158" name="l00158"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a00d1d224963ec1f38ac97802480b2129">  158</a></span>    <a class="code hl_enumvalue" href="group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a00d1d224963ec1f38ac97802480b2129">W25QXX_STATUS1_STATUS_REGISTER_PROTECT_0</a>             = (1 &lt;&lt; 7),        </div>
+<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a9522040a098337442eff127e1598776d">  159</a></span>    <a class="code hl_enumvalue" href="group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a9522040a098337442eff127e1598776d">W25QXX_STATUS1_SECTOR_PROTECT_OR_TOP_BOTTOM_PROTECT</a>  = (1 &lt;&lt; 6),        </div>
+<div class="line"><a id="l00160" name="l00160"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a63bc45b7e0e19de7e58e3494eb4046c5">  160</a></span>    <a class="code hl_enumvalue" href="group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a63bc45b7e0e19de7e58e3494eb4046c5">W25QXX_STATUS1_TOP_BOTTOM_PROTECT_OR_BLOCK_PROTECT_3</a> = (1 &lt;&lt; 5),        </div>
+<div class="line"><a id="l00161" name="l00161"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a9a02180228dbb94e9d302b667fda884f">  161</a></span>    <a class="code hl_enumvalue" href="group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a9a02180228dbb94e9d302b667fda884f">W25QXX_STATUS1_BLOCK_PROTECT_2</a>                       = (1 &lt;&lt; 4),        </div>
+<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a3465f02625d38730630b60cd01e92085">  162</a></span>    <a class="code hl_enumvalue" href="group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a3465f02625d38730630b60cd01e92085">W25QXX_STATUS1_BLOCK_PROTECT_1</a>                       = (1 &lt;&lt; 3),        </div>
+<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a7b7e8922009c0d6a88bbfad76a812262">  163</a></span>    <a class="code hl_enumvalue" href="group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a7b7e8922009c0d6a88bbfad76a812262">W25QXX_STATUS1_BLOCK_PROTECT_0</a>                       = (1 &lt;&lt; 2),        </div>
+<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a1438a76d1be1aa02e4f7450a045c02e3">  164</a></span>    <a class="code hl_enumvalue" href="group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a1438a76d1be1aa02e4f7450a045c02e3">W25QXX_STATUS1_WRITE_ENABLE_LATCH</a>                    = (1 &lt;&lt; 1),        </div>
+<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595ae1ce566fc564776e98a5c7edefe8c5ea">  165</a></span>    <a class="code hl_enumvalue" href="group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595ae1ce566fc564776e98a5c7edefe8c5ea">W25QXX_STATUS1_ERASE_WRITE_PROGRESS</a>                  = (1 &lt;&lt; 0),        </div>
+<div class="line"><a id="l00166" name="l00166"></a><span class="lineno">  166</span>} <a class="code hl_enumeration" href="group__w25qxx__advance__driver.html#ga9e41a72d1e25d39d88ce7108a9b25595">w25qxx_status1_t</a>;</div>
+</div>
+<div class="line"><a id="l00167" name="l00167"></a><span class="lineno">  167</span> </div>
+<div class="foldopen" id="foldopen00171" data-start="{" data-end="};">
+<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#ga0d28076f6fc7d3ae9dd7f8410069a277">  171</a></span><span class="keyword">typedef</span> <span class="keyword">enum</span></div>
+<div class="line"><a id="l00172" name="l00172"></a><span class="lineno">  172</span>{</div>
+<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277a3fdb54846709f77391e426c626a19152">  173</a></span>    <a class="code hl_enumvalue" href="group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277a3fdb54846709f77391e426c626a19152">W25QXX_STATUS2_SUSPEND_STATUS</a>                = (1 &lt;&lt; 7),        </div>
+<div class="line"><a id="l00174" name="l00174"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277a517e9e50ada30462f902d01e8d5579dc">  174</a></span>    <a class="code hl_enumvalue" href="group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277a517e9e50ada30462f902d01e8d5579dc">W25QXX_STATUS2_COMPLEMENT_PROTECT</a>            = (1 &lt;&lt; 6),        </div>
+<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277a0f3e2b3059d56f974724a8284142e69a">  175</a></span>    <a class="code hl_enumvalue" href="group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277a0f3e2b3059d56f974724a8284142e69a">W25QXX_STATUS2_SECURITY_REGISTER_3_LOCK_BITS</a> = (1 &lt;&lt; 5),        </div>
+<div class="line"><a id="l00176" name="l00176"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277a24a99f1a97023ae103c1bec3027bbf26">  176</a></span>    <a class="code hl_enumvalue" href="group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277a24a99f1a97023ae103c1bec3027bbf26">W25QXX_STATUS2_SECURITY_REGISTER_2_LOCK_BITS</a> = (1 &lt;&lt; 4),        </div>
+<div class="line"><a id="l00177" name="l00177"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277a7a631c1c153cc099a52883b40007079e">  177</a></span>    <a class="code hl_enumvalue" href="group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277a7a631c1c153cc099a52883b40007079e">W25QXX_STATUS2_SECURITY_REGISTER_1_LOCK_BITS</a> = (1 &lt;&lt; 3),        </div>
+<div class="line"><a id="l00178" name="l00178"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277aa920a9c9a590fb8740419d8d2e4230f3">  178</a></span>    <a class="code hl_enumvalue" href="group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277aa920a9c9a590fb8740419d8d2e4230f3">W25QXX_STATUS2_QUAD_ENABLE</a>                   = (1 &lt;&lt; 1),        </div>
+<div class="line"><a id="l00179" name="l00179"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277a5a89a885ba2a59eccd0445443e3bbac6">  179</a></span>    <a class="code hl_enumvalue" href="group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277a5a89a885ba2a59eccd0445443e3bbac6">W25QXX_STATUS2_STATUS_REGISTER_PROTECT_1</a>     = (1 &lt;&lt; 0),        </div>
+<div class="line"><a id="l00180" name="l00180"></a><span class="lineno">  180</span>} <a class="code hl_enumeration" href="group__w25qxx__advance__driver.html#ga0d28076f6fc7d3ae9dd7f8410069a277">w25qxx_status2_t</a>;</div>
+</div>
+<div class="line"><a id="l00181" name="l00181"></a><span class="lineno">  181</span> </div>
+<div class="foldopen" id="foldopen00185" data-start="{" data-end="};">
+<div class="line"><a id="l00185" name="l00185"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#gace18ebb2eac49cbde44a2935916f44ac">  185</a></span><span class="keyword">typedef</span> <span class="keyword">enum</span></div>
+<div class="line"><a id="l00186" name="l00186"></a><span class="lineno">  186</span>{</div>
+<div class="line"><a id="l00187" name="l00187"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44aca9ab13d5388af0156c4e4de08765ec401">  187</a></span>    <a class="code hl_enumvalue" href="group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44aca9ab13d5388af0156c4e4de08765ec401">W25QXX_STATUS3_HOLD_RESET_FUNCTION</a>                   = (1 &lt;&lt; 7),        </div>
+<div class="line"><a id="l00188" name="l00188"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44acab5b1ce328b88d08f3d55ed776e01fedb">  188</a></span>    <a class="code hl_enumvalue" href="group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44acab5b1ce328b88d08f3d55ed776e01fedb">W25QXX_STATUS3_OUTPUT_DRIVER_STRENGTH_100_PERCENTAGE</a> = (0 &lt;&lt; 5),        </div>
+<div class="line"><a id="l00189" name="l00189"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44aca7ab6ace72a02afc20f92f48e975b60b7">  189</a></span>    <a class="code hl_enumvalue" href="group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44aca7ab6ace72a02afc20f92f48e975b60b7">W25QXX_STATUS3_OUTPUT_DRIVER_STRENGTH_75_PERCENTAGE</a>  = (1 &lt;&lt; 5),        </div>
+<div class="line"><a id="l00190" name="l00190"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44aca8abcd821f1f0d02b3d9179c7ab58d0e0">  190</a></span>    <a class="code hl_enumvalue" href="group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44aca8abcd821f1f0d02b3d9179c7ab58d0e0">W25QXX_STATUS3_OUTPUT_DRIVER_STRENGTH_50_PERCENTAGE</a>  = (2 &lt;&lt; 5),        </div>
+<div class="line"><a id="l00191" name="l00191"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44acae645c265a6beb76a088352e2f4bfb4e1">  191</a></span>    <a class="code hl_enumvalue" href="group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44acae645c265a6beb76a088352e2f4bfb4e1">W25QXX_STATUS3_OUTPUT_DRIVER_STRENGTH_25_PERCENTAGE</a>  = (3 &lt;&lt; 5),        </div>
+<div class="line"><a id="l00192" name="l00192"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44aca7dc507c444fb395a4956bf50d78f1ee3">  192</a></span>    <a class="code hl_enumvalue" href="group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44aca7dc507c444fb395a4956bf50d78f1ee3">W25QXX_STATUS3_WRITE_PROTECT_SELECTION</a>               = (1 &lt;&lt; 2),        </div>
+<div class="line"><a id="l00193" name="l00193"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44acadc8d5949eaea0c6ce4e17c6e746f4f65">  193</a></span>    <a class="code hl_enumvalue" href="group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44acadc8d5949eaea0c6ce4e17c6e746f4f65">W25QXX_STATUS3_POWER_UP_ADDRESS_MODE</a>                 = (1 &lt;&lt; 1),        </div>
+<div class="line"><a id="l00194" name="l00194"></a><span class="lineno"><a class="line" href="group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44aca3c822d6eacd9747ca2173607a09591ac">  194</a></span>    <a class="code hl_enumvalue" href="group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44aca3c822d6eacd9747ca2173607a09591ac">W25QXX_STATUS3_CURRENT_ADDRESS_MODE</a>                  = (1 &lt;&lt; 0),        </div>
+<div class="line"><a id="l00195" name="l00195"></a><span class="lineno">  195</span>} <a class="code hl_enumeration" href="group__w25qxx__advance__driver.html#gace18ebb2eac49cbde44a2935916f44ac">w25qxx_status3_t</a>;</div>
+</div>
+<div class="line"><a id="l00196" name="l00196"></a><span class="lineno">  196</span> </div>
+<div class="foldopen" id="foldopen00209" data-start="{" data-end="};">
+<div class="line"><a id="l00209" name="l00209"></a><span class="lineno"><a class="line" href="structw25qxx__handle__s.html">  209</a></span><span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_s</a></div>
+<div class="line"><a id="l00210" name="l00210"></a><span class="lineno">  210</span>{</div>
+<div class="line"><a id="l00211" name="l00211"></a><span class="lineno"><a class="line" href="structw25qxx__handle__s.html#aec834df46e5185868dfdcc6fcec2e801">  211</a></span>    uint8_t (*<a class="code hl_variable" href="structw25qxx__handle__s.html#aec834df46e5185868dfdcc6fcec2e801">spi_qspi_init</a>)(void);                                                                    </div>
+<div class="line"><a id="l00212" name="l00212"></a><span class="lineno"><a class="line" href="structw25qxx__handle__s.html#a4568e23228174b7d32678d9a96d2420c">  212</a></span>    uint8_t (*<a class="code hl_variable" href="structw25qxx__handle__s.html#a4568e23228174b7d32678d9a96d2420c">spi_qspi_deinit</a>)(void);                                                                  </div>
+<div class="line"><a id="l00213" name="l00213"></a><span class="lineno"><a class="line" href="structw25qxx__handle__s.html#a2d39cde883403779e3da9dd39c32bec5">  213</a></span>    uint8_t (*<a class="code hl_variable" href="structw25qxx__handle__s.html#a2d39cde883403779e3da9dd39c32bec5">spi_qspi_write_read</a>)(uint8_t instruction, uint8_t instruction_line,</div>
+<div class="line"><a id="l00214" name="l00214"></a><span class="lineno">  214</span>                                   uint32_t address, uint8_t address_line, uint8_t address_len,</div>
+<div class="line"><a id="l00215" name="l00215"></a><span class="lineno">  215</span>                                   uint32_t alternate, uint8_t alternate_line, uint8_t alternate_len,</div>
+<div class="line"><a id="l00216" name="l00216"></a><span class="lineno">  216</span>                                   uint8_t <a class="code hl_variable" href="structw25qxx__handle__s.html#aff7b59f569ec689a7580bd6911daafd5">dummy</a>, uint8_t *in_buf, uint32_t in_len,</div>
+<div class="line"><a id="l00217" name="l00217"></a><span class="lineno">  217</span>                                   uint8_t *out_buf, uint32_t out_len, uint8_t data_line);             </div>
+<div class="line"><a id="l00218" name="l00218"></a><span class="lineno"><a class="line" href="structw25qxx__handle__s.html#a406c9433252b7366de417b7a60915c81">  218</a></span>    void (*<a class="code hl_variable" href="structw25qxx__handle__s.html#a406c9433252b7366de417b7a60915c81">delay_ms</a>)(uint32_t ms);                                                                     </div>
+<div class="line"><a id="l00219" name="l00219"></a><span class="lineno"><a class="line" href="structw25qxx__handle__s.html#a97ffc4fce945527bd6ab25a3596caef7">  219</a></span>    void (*<a class="code hl_variable" href="structw25qxx__handle__s.html#a97ffc4fce945527bd6ab25a3596caef7">delay_us</a>)(uint32_t us);                                                                     </div>
+<div class="line"><a id="l00220" name="l00220"></a><span class="lineno"><a class="line" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">  220</a></span>    void (*<a class="code hl_variable" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a>)(<span class="keyword">const</span> <span class="keywordtype">char</span> *<span class="keyword">const</span> fmt, ...);                                                   </div>
+<div class="line"><a id="l00221" name="l00221"></a><span class="lineno"><a class="line" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">  221</a></span>    uint8_t <a class="code hl_variable" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">inited</a>;                                                                                    </div>
+<div class="line"><a id="l00222" name="l00222"></a><span class="lineno"><a class="line" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">  222</a></span>    uint16_t <a class="code hl_variable" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a>;                                                                                     </div>
+<div class="line"><a id="l00223" name="l00223"></a><span class="lineno"><a class="line" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">  223</a></span>    uint8_t <a class="code hl_variable" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a>;                                                                              </div>
+<div class="line"><a id="l00224" name="l00224"></a><span class="lineno"><a class="line" href="structw25qxx__handle__s.html#a3d28993689552e18d554dc0644efcf16">  224</a></span>    uint8_t <a class="code hl_variable" href="structw25qxx__handle__s.html#a3d28993689552e18d554dc0644efcf16">param</a>;                                                                                     </div>
+<div class="line"><a id="l00225" name="l00225"></a><span class="lineno"><a class="line" href="structw25qxx__handle__s.html#aff7b59f569ec689a7580bd6911daafd5">  225</a></span>    uint8_t <a class="code hl_variable" href="structw25qxx__handle__s.html#aff7b59f569ec689a7580bd6911daafd5">dummy</a>;                                                                                     </div>
+<div class="line"><a id="l00226" name="l00226"></a><span class="lineno"><a class="line" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">  226</a></span>    uint8_t <a class="code hl_variable" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">dual_quad_spi_enable</a>;                                                                      </div>
+<div class="line"><a id="l00227" name="l00227"></a><span class="lineno"><a class="line" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">  227</a></span>    uint8_t <a class="code hl_variable" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a>;                                                                                  </div>
+<div class="line"><a id="l00228" name="l00228"></a><span class="lineno"><a class="line" href="structw25qxx__handle__s.html#a2121914a1858618e9216fa2daf0a42a2">  228</a></span>    uint8_t <a class="code hl_variable" href="structw25qxx__handle__s.html#a2121914a1858618e9216fa2daf0a42a2">buf</a>[256 + 6];                                                                              </div>
+<div class="line"><a id="l00229" name="l00229"></a><span class="lineno"><a class="line" href="structw25qxx__handle__s.html#ac80aa2927adf500634749513e88c474b">  229</a></span>    uint8_t <a class="code hl_variable" href="structw25qxx__handle__s.html#ac80aa2927adf500634749513e88c474b">buf_4k</a>[4096 + 1];                                                                          </div>
+<div class="line"><a id="l00230" name="l00230"></a><span class="lineno"><a class="line" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">  230</a></span>} <a class="code hl_typedef" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a>;</div>
+</div>
+<div class="line"><a id="l00231" name="l00231"></a><span class="lineno">  231</span> </div>
+<div class="foldopen" id="foldopen00235" data-start="{" data-end="};">
+<div class="line"><a id="l00235" name="l00235"></a><span class="lineno"><a class="line" href="structw25qxx__info__s.html">  235</a></span><span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code hl_struct" href="structw25qxx__info__s.html">w25qxx_info_s</a></div>
+<div class="line"><a id="l00236" name="l00236"></a><span class="lineno">  236</span>{</div>
+<div class="line"><a id="l00237" name="l00237"></a><span class="lineno"><a class="line" href="structw25qxx__info__s.html#af890958c72bd715cc6454a10dc846ae6">  237</a></span>    <span class="keywordtype">char</span> <a class="code hl_variable" href="structw25qxx__info__s.html#af890958c72bd715cc6454a10dc846ae6">chip_name</a>[32];                </div>
+<div class="line"><a id="l00238" name="l00238"></a><span class="lineno"><a class="line" href="structw25qxx__info__s.html#ad25285dbf810c90f8eaf3fcef6f2b2ea">  238</a></span>    <span class="keywordtype">char</span> <a class="code hl_variable" href="structw25qxx__info__s.html#ad25285dbf810c90f8eaf3fcef6f2b2ea">manufacturer_name</a>[32];        </div>
+<div class="line"><a id="l00239" name="l00239"></a><span class="lineno"><a class="line" href="structw25qxx__info__s.html#a5778305279cae46b2ecf862e97f73600">  239</a></span>    <span class="keywordtype">char</span> <a class="code hl_variable" href="structw25qxx__info__s.html#a5778305279cae46b2ecf862e97f73600">interface</a>[16];                </div>
+<div class="line"><a id="l00240" name="l00240"></a><span class="lineno"><a class="line" href="structw25qxx__info__s.html#ad8bde6ddadaf43d951e62f3befb9d35a">  240</a></span>    <span class="keywordtype">float</span> <a class="code hl_variable" href="structw25qxx__info__s.html#ad8bde6ddadaf43d951e62f3befb9d35a">supply_voltage_min_v</a>;        </div>
+<div class="line"><a id="l00241" name="l00241"></a><span class="lineno"><a class="line" href="structw25qxx__info__s.html#a3d2b12bcac7a85ea8646bff9debe8660">  241</a></span>    <span class="keywordtype">float</span> <a class="code hl_variable" href="structw25qxx__info__s.html#a3d2b12bcac7a85ea8646bff9debe8660">supply_voltage_max_v</a>;        </div>
+<div class="line"><a id="l00242" name="l00242"></a><span class="lineno"><a class="line" href="structw25qxx__info__s.html#a9db82802561bf22d799b03a345f1d1dc">  242</a></span>    <span class="keywordtype">float</span> <a class="code hl_variable" href="structw25qxx__info__s.html#a9db82802561bf22d799b03a345f1d1dc">max_current_ma</a>;              </div>
+<div class="line"><a id="l00243" name="l00243"></a><span class="lineno"><a class="line" href="structw25qxx__info__s.html#a8f9dbe66ac0b66ebae0a36fcb4ba368e">  243</a></span>    <span class="keywordtype">float</span> <a class="code hl_variable" href="structw25qxx__info__s.html#a8f9dbe66ac0b66ebae0a36fcb4ba368e">temperature_min</a>;             </div>
+<div class="line"><a id="l00244" name="l00244"></a><span class="lineno"><a class="line" href="structw25qxx__info__s.html#a3366a5dce9b829e03c3d321c2b4df3f6">  244</a></span>    <span class="keywordtype">float</span> <a class="code hl_variable" href="structw25qxx__info__s.html#a3366a5dce9b829e03c3d321c2b4df3f6">temperature_max</a>;             </div>
+<div class="line"><a id="l00245" name="l00245"></a><span class="lineno"><a class="line" href="structw25qxx__info__s.html#a41b0bd442708b70d252c50b92c75265a">  245</a></span>    uint32_t <a class="code hl_variable" href="structw25qxx__info__s.html#a41b0bd442708b70d252c50b92c75265a">driver_version</a>;           </div>
+<div class="line"><a id="l00246" name="l00246"></a><span class="lineno"><a class="line" href="group__w25qxx__basic__driver.html#ga601d841ddd0ff8ad3ab52e07c679ef19">  246</a></span>} <a class="code hl_typedef" href="group__w25qxx__basic__driver.html#ga601d841ddd0ff8ad3ab52e07c679ef19">w25qxx_info_t</a>;</div>
+</div>
+<div class="line"><a id="l00247" name="l00247"></a><span class="lineno">  247</span> </div>
+<div class="line"><a id="l00265" name="l00265"></a><span class="lineno"><a class="line" href="group__w25qxx__link__driver.html#ga995378489f95bc6bbddbe710557e3384">  265</a></span><span class="preprocessor">#define DRIVER_W25QXX_LINK_INIT(HANDLE, STRUCTURE)                memset(HANDLE, 0, sizeof(STRUCTURE))</span></div>
+<div class="line"><a id="l00266" name="l00266"></a><span class="lineno">  266</span> </div>
+<div class="line"><a id="l00273" name="l00273"></a><span class="lineno"><a class="line" href="group__w25qxx__link__driver.html#gab2587de93f1dba5664eede8cd787a88a">  273</a></span><span class="preprocessor">#define DRIVER_W25QXX_LINK_SPI_QSPI_INIT(HANDLE, FUC)             (HANDLE)-&gt;spi_qspi_init = FUC</span></div>
+<div class="line"><a id="l00274" name="l00274"></a><span class="lineno">  274</span> </div>
+<div class="line"><a id="l00281" name="l00281"></a><span class="lineno"><a class="line" href="group__w25qxx__link__driver.html#gaec8b55e83b46907be1dd9e7c50be550d">  281</a></span><span class="preprocessor">#define DRIVER_W25QXX_LINK_SPI_QSPI_DEINIT(HANDLE, FUC)           (HANDLE)-&gt;spi_qspi_deinit = FUC</span></div>
+<div class="line"><a id="l00282" name="l00282"></a><span class="lineno">  282</span> </div>
+<div class="line"><a id="l00289" name="l00289"></a><span class="lineno"><a class="line" href="group__w25qxx__link__driver.html#gac8f0ca0a725790bace3241d1d616e3d1">  289</a></span><span class="preprocessor">#define DRIVER_W25QXX_LINK_SPI_QSPI_WRITE_READ(HANDLE, FUC)       (HANDLE)-&gt;spi_qspi_write_read = FUC</span></div>
+<div class="line"><a id="l00290" name="l00290"></a><span class="lineno">  290</span> </div>
+<div class="line"><a id="l00297" name="l00297"></a><span class="lineno"><a class="line" href="group__w25qxx__link__driver.html#ga7555618f13d2de0003ae6d9483085180">  297</a></span><span class="preprocessor">#define DRIVER_W25QXX_LINK_DELAY_MS(HANDLE, FUC)                  (HANDLE)-&gt;delay_ms = FUC</span></div>
+<div class="line"><a id="l00298" name="l00298"></a><span class="lineno">  298</span> </div>
+<div class="line"><a id="l00305" name="l00305"></a><span class="lineno"><a class="line" href="group__w25qxx__link__driver.html#gafc81bf850c80dfa316f0c6ab40be6e67">  305</a></span><span class="preprocessor">#define DRIVER_W25QXX_LINK_DELAY_US(HANDLE, FUC)                  (HANDLE)-&gt;delay_us = FUC</span></div>
+<div class="line"><a id="l00306" name="l00306"></a><span class="lineno">  306</span> </div>
+<div class="line"><a id="l00313" name="l00313"></a><span class="lineno"><a class="line" href="group__w25qxx__link__driver.html#gab8d49ef9dca942fe5f37c30dcd7e22a6">  313</a></span><span class="preprocessor">#define DRIVER_W25QXX_LINK_DEBUG_PRINT(HANDLE, FUC)               (HANDLE)-&gt;debug_print = FUC</span></div>
+<div class="line"><a id="l00314" name="l00314"></a><span class="lineno">  314</span> </div>
+<div class="line"><a id="l00334" name="l00334"></a><span class="lineno">  334</span>uint8_t <a class="code hl_function" href="group__w25qxx__basic__driver.html#ga996e2d3009432e7f8c1a5175c4438a57">w25qxx_info</a>(<a class="code hl_struct" href="structw25qxx__info__s.html">w25qxx_info_t</a> *info);</div>
+<div class="line"><a id="l00335" name="l00335"></a><span class="lineno">  335</span> </div>
+<div class="line"><a id="l00345" name="l00345"></a><span class="lineno">  345</span>uint8_t <a class="code hl_function" href="group__w25qxx__basic__driver.html#ga665139209b0abc386474a78d89cce6f2">w25qxx_set_dual_quad_spi</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, <a class="code hl_enumeration" href="group__w25qxx__basic__driver.html#gafb2690946f5baf4be6f3a63dde5491fb">w25qxx_bool_t</a> enable);</div>
+<div class="line"><a id="l00346" name="l00346"></a><span class="lineno">  346</span> </div>
+<div class="line"><a id="l00356" name="l00356"></a><span class="lineno">  356</span>uint8_t <a class="code hl_function" href="group__w25qxx__basic__driver.html#gad4c9b8b0a2d0916c13567f9d7e494cf8">w25qxx_get_dual_quad_spi</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, <a class="code hl_enumeration" href="group__w25qxx__basic__driver.html#gafb2690946f5baf4be6f3a63dde5491fb">w25qxx_bool_t</a> *enable);</div>
+<div class="line"><a id="l00357" name="l00357"></a><span class="lineno">  357</span> </div>
+<div class="line"><a id="l00367" name="l00367"></a><span class="lineno">  367</span>uint8_t <a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa57189cd4170b73f8b1300ca15e27de6">w25qxx_set_type</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, <a class="code hl_enumeration" href="group__w25qxx__basic__driver.html#ga6cb4e5164464df549201dd96cb7a58b1">w25qxx_type_t</a> type);</div>
+<div class="line"><a id="l00368" name="l00368"></a><span class="lineno">  368</span> </div>
+<div class="line"><a id="l00378" name="l00378"></a><span class="lineno">  378</span>uint8_t <a class="code hl_function" href="group__w25qxx__basic__driver.html#ga685379998dad173b6d9c0b0da270685c">w25qxx_get_type</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, <a class="code hl_enumeration" href="group__w25qxx__basic__driver.html#ga6cb4e5164464df549201dd96cb7a58b1">w25qxx_type_t</a> *type);</div>
+<div class="line"><a id="l00379" name="l00379"></a><span class="lineno">  379</span> </div>
+<div class="line"><a id="l00389" name="l00389"></a><span class="lineno">  389</span>uint8_t <a class="code hl_function" href="group__w25qxx__basic__driver.html#ga50a62003d566402d46ada2f272c41eb5">w25qxx_set_interface</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, <a class="code hl_enumeration" href="group__w25qxx__basic__driver.html#gacbf327a42336baf10713a1796ff4f2fe">w25qxx_interface_t</a> interface);</div>
+<div class="line"><a id="l00390" name="l00390"></a><span class="lineno">  390</span> </div>
+<div class="line"><a id="l00400" name="l00400"></a><span class="lineno">  400</span>uint8_t <a class="code hl_function" href="group__w25qxx__basic__driver.html#ga86ef839d475f3926a0be46bbc18d4b45">w25qxx_get_interface</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, <a class="code hl_enumeration" href="group__w25qxx__basic__driver.html#gacbf327a42336baf10713a1796ff4f2fe">w25qxx_interface_t</a> *interface);</div>
+<div class="line"><a id="l00401" name="l00401"></a><span class="lineno">  401</span> </div>
+<div class="line"><a id="l00414" name="l00414"></a><span class="lineno">  414</span>uint8_t <a class="code hl_function" href="group__w25qxx__basic__driver.html#gad0e125eff304ce66fb3956d2c8c80656">w25qxx_set_address_mode</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, <a class="code hl_enumeration" href="group__w25qxx__basic__driver.html#gaa4c45f146d1ade8a2da8e751818fa4a2">w25qxx_address_mode_t</a> mode);</div>
+<div class="line"><a id="l00415" name="l00415"></a><span class="lineno">  415</span> </div>
+<div class="line"><a id="l00426" name="l00426"></a><span class="lineno">  426</span>uint8_t <a class="code hl_function" href="group__w25qxx__basic__driver.html#ga3a52036a97b12fcbe2280b0901a80b90">w25qxx_get_address_mode</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, <a class="code hl_enumeration" href="group__w25qxx__basic__driver.html#gaa4c45f146d1ade8a2da8e751818fa4a2">w25qxx_address_mode_t</a> *mode);</div>
+<div class="line"><a id="l00427" name="l00427"></a><span class="lineno">  427</span> </div>
+<div class="line"><a id="l00443" name="l00443"></a><span class="lineno">  443</span>uint8_t <a class="code hl_function" href="group__w25qxx__basic__driver.html#ga8e7a163b3d255b8c7fc035d0d60f2491">w25qxx_init</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle);</div>
+<div class="line"><a id="l00444" name="l00444"></a><span class="lineno">  444</span> </div>
+<div class="line"><a id="l00456" name="l00456"></a><span class="lineno">  456</span>uint8_t <a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle);</div>
+<div class="line"><a id="l00457" name="l00457"></a><span class="lineno">  457</span> </div>
+<div class="line"><a id="l00472" name="l00472"></a><span class="lineno">  472</span>uint8_t <a class="code hl_function" href="group__w25qxx__basic__driver.html#gae7479fc9ce911a52e3c5b6f1a615b879">w25qxx_read</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint32_t len);</div>
+<div class="line"><a id="l00473" name="l00473"></a><span class="lineno">  473</span> </div>
+<div class="line"><a id="l00489" name="l00489"></a><span class="lineno">  489</span>uint8_t <a class="code hl_function" href="group__w25qxx__basic__driver.html#gaaee8264d840e51460821cb6e609338ee">w25qxx_write</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint32_t len);</div>
+<div class="line"><a id="l00490" name="l00490"></a><span class="lineno">  490</span> </div>
+<div class="line"><a id="l00506" name="l00506"></a><span class="lineno">  506</span>uint8_t <a class="code hl_function" href="group__w25qxx__basic__driver.html#ga1e9ebf198137d23558dbf6470213c472">w25qxx_only_spi_read</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint32_t len);</div>
+<div class="line"><a id="l00507" name="l00507"></a><span class="lineno">  507</span> </div>
+<div class="line"><a id="l00522" name="l00522"></a><span class="lineno">  522</span>uint8_t <a class="code hl_function" href="group__w25qxx__basic__driver.html#gac345ba10af5ad355578fa97697487123">w25qxx_fast_read</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint32_t len);</div>
+<div class="line"><a id="l00523" name="l00523"></a><span class="lineno">  523</span> </div>
+<div class="line"><a id="l00541" name="l00541"></a><span class="lineno">  541</span>uint8_t <a class="code hl_function" href="group__w25qxx__basic__driver.html#ga6280e7e4ab26306436e2c210617a28b3">w25qxx_page_program</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint16_t len);</div>
+<div class="line"><a id="l00542" name="l00542"></a><span class="lineno">  542</span> </div>
+<div class="line"><a id="l00557" name="l00557"></a><span class="lineno">  557</span>uint8_t <a class="code hl_function" href="group__w25qxx__basic__driver.html#ga9a03c51b4c84655350c15fbfce0a6b40">w25qxx_sector_erase_4k</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint32_t addr);</div>
+<div class="line"><a id="l00558" name="l00558"></a><span class="lineno">  558</span> </div>
+<div class="line"><a id="l00573" name="l00573"></a><span class="lineno">  573</span>uint8_t <a class="code hl_function" href="group__w25qxx__basic__driver.html#ga39c8fb382e8c3e4d57232dfa79af781c">w25qxx_block_erase_32k</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint32_t addr);</div>
+<div class="line"><a id="l00574" name="l00574"></a><span class="lineno">  574</span> </div>
+<div class="line"><a id="l00589" name="l00589"></a><span class="lineno">  589</span>uint8_t <a class="code hl_function" href="group__w25qxx__basic__driver.html#gaf53bc5f6073482b9b74efd417ec7ac83">w25qxx_block_erase_64k</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint32_t addr);</div>
+<div class="line"><a id="l00590" name="l00590"></a><span class="lineno">  590</span> </div>
+<div class="line"><a id="l00602" name="l00602"></a><span class="lineno">  602</span>uint8_t <a class="code hl_function" href="group__w25qxx__basic__driver.html#ga0862833b36831f92684980b2e21f2e39">w25qxx_chip_erase</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle);</div>
+<div class="line"><a id="l00603" name="l00603"></a><span class="lineno">  603</span> </div>
+<div class="line"><a id="l00614" name="l00614"></a><span class="lineno">  614</span>uint8_t <a class="code hl_function" href="group__w25qxx__basic__driver.html#gae4effce67e36120325e3c7b245b90142">w25qxx_power_down</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle);</div>
+<div class="line"><a id="l00615" name="l00615"></a><span class="lineno">  615</span> </div>
+<div class="line"><a id="l00626" name="l00626"></a><span class="lineno">  626</span>uint8_t <a class="code hl_function" href="group__w25qxx__basic__driver.html#ga09c9b52877516a2ee4c080dc249e7331">w25qxx_release_power_down</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle);</div>
+<div class="line"><a id="l00627" name="l00627"></a><span class="lineno">  627</span> </div>
+<div class="line"><a id="l00640" name="l00640"></a><span class="lineno">  640</span>uint8_t <a class="code hl_function" href="group__w25qxx__basic__driver.html#ga921836a777b082ff4d0f322ccfda6b22">w25qxx_get_manufacturer_device_id</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint8_t *manufacturer, uint8_t *device_id);</div>
+<div class="line"><a id="l00641" name="l00641"></a><span class="lineno">  641</span> </div>
+<div class="line"><a id="l00669" name="l00669"></a><span class="lineno">  669</span>uint8_t <a class="code hl_function" href="group__w25qxx__advance__driver.html#ga7a19230ca3916816ea8fb7421483d293">w25qxx_fast_read_dual_output</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint32_t len);</div>
+<div class="line"><a id="l00670" name="l00670"></a><span class="lineno">  670</span> </div>
+<div class="line"><a id="l00687" name="l00687"></a><span class="lineno">  687</span>uint8_t <a class="code hl_function" href="group__w25qxx__advance__driver.html#gaf4bfafd1f80aa0316a4b1a15183dcd50">w25qxx_fast_read_quad_output</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint32_t len);</div>
+<div class="line"><a id="l00688" name="l00688"></a><span class="lineno">  688</span> </div>
+<div class="line"><a id="l00705" name="l00705"></a><span class="lineno">  705</span>uint8_t <a class="code hl_function" href="group__w25qxx__advance__driver.html#gac894f4650905cba10dd3a31284de6d5e">w25qxx_fast_read_dual_io</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint32_t len);</div>
+<div class="line"><a id="l00706" name="l00706"></a><span class="lineno">  706</span> </div>
+<div class="line"><a id="l00722" name="l00722"></a><span class="lineno">  722</span>uint8_t <a class="code hl_function" href="group__w25qxx__advance__driver.html#gab97a64bd3776874518f60381d921ae41">w25qxx_fast_read_quad_io</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint32_t len);</div>
+<div class="line"><a id="l00723" name="l00723"></a><span class="lineno">  723</span> </div>
+<div class="line"><a id="l00740" name="l00740"></a><span class="lineno">  740</span>uint8_t <a class="code hl_function" href="group__w25qxx__advance__driver.html#gad97d7e410dd77c49334097a0fd332660">w25qxx_word_read_quad_io</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint32_t len);</div>
+<div class="line"><a id="l00741" name="l00741"></a><span class="lineno">  741</span> </div>
+<div class="line"><a id="l00758" name="l00758"></a><span class="lineno">  758</span>uint8_t <a class="code hl_function" href="group__w25qxx__advance__driver.html#ga88a62ec42e86db821ff3f0d3ab541dbb">w25qxx_octal_word_read_quad_io</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint32_t len);</div>
+<div class="line"><a id="l00759" name="l00759"></a><span class="lineno">  759</span> </div>
+<div class="line"><a id="l00778" name="l00778"></a><span class="lineno">  778</span>uint8_t <a class="code hl_function" href="group__w25qxx__advance__driver.html#ga1f80bbbaaa852eecfffb87737889363d">w25qxx_page_program_quad_input</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint16_t len);</div>
+<div class="line"><a id="l00779" name="l00779"></a><span class="lineno">  779</span> </div>
+<div class="line"><a id="l00790" name="l00790"></a><span class="lineno">  790</span>uint8_t <a class="code hl_function" href="group__w25qxx__advance__driver.html#gaeb269123feec054eaaf70f2ffb5797a3">w25qxx_enable_write</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle);</div>
+<div class="line"><a id="l00791" name="l00791"></a><span class="lineno">  791</span> </div>
+<div class="line"><a id="l00802" name="l00802"></a><span class="lineno">  802</span>uint8_t <a class="code hl_function" href="group__w25qxx__advance__driver.html#ga0f8889d6a25c32e150a2ab30753d461d">w25qxx_enable_volatile_sr_write</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle);</div>
+<div class="line"><a id="l00803" name="l00803"></a><span class="lineno">  803</span> </div>
+<div class="line"><a id="l00814" name="l00814"></a><span class="lineno">  814</span>uint8_t <a class="code hl_function" href="group__w25qxx__advance__driver.html#gac16a31269277051baad6c28fe4254b4a">w25qxx_disable_write</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle);</div>
+<div class="line"><a id="l00815" name="l00815"></a><span class="lineno">  815</span> </div>
+<div class="line"><a id="l00827" name="l00827"></a><span class="lineno">  827</span>uint8_t <a class="code hl_function" href="group__w25qxx__advance__driver.html#gaa77d2b00b4fb9cf586f77ace827ea7c6">w25qxx_get_status1</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint8_t *status);</div>
+<div class="line"><a id="l00828" name="l00828"></a><span class="lineno">  828</span> </div>
+<div class="line"><a id="l00840" name="l00840"></a><span class="lineno">  840</span>uint8_t <a class="code hl_function" href="group__w25qxx__advance__driver.html#gaa21237ecbd5951b8017799066e7db5d9">w25qxx_get_status2</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint8_t *status);</div>
+<div class="line"><a id="l00841" name="l00841"></a><span class="lineno">  841</span> </div>
+<div class="line"><a id="l00853" name="l00853"></a><span class="lineno">  853</span>uint8_t <a class="code hl_function" href="group__w25qxx__advance__driver.html#ga99cf6a325a00921d4531004f0c1d75b1">w25qxx_get_status3</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint8_t *status);</div>
+<div class="line"><a id="l00854" name="l00854"></a><span class="lineno">  854</span> </div>
+<div class="line"><a id="l00867" name="l00867"></a><span class="lineno">  867</span>uint8_t <a class="code hl_function" href="group__w25qxx__advance__driver.html#ga246e0bb07c8bbb39731f17906779c012">w25qxx_set_status1</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint8_t status);</div>
+<div class="line"><a id="l00868" name="l00868"></a><span class="lineno">  868</span> </div>
+<div class="line"><a id="l00881" name="l00881"></a><span class="lineno">  881</span>uint8_t <a class="code hl_function" href="group__w25qxx__advance__driver.html#gaab5f28e8930d50dbc2178e39bc9fa456">w25qxx_set_status2</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint8_t status);</div>
+<div class="line"><a id="l00882" name="l00882"></a><span class="lineno">  882</span> </div>
+<div class="line"><a id="l00895" name="l00895"></a><span class="lineno">  895</span>uint8_t <a class="code hl_function" href="group__w25qxx__advance__driver.html#gada897a6c6d6acb99f4dd4ff9b65ad8ee">w25qxx_set_status3</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint8_t status);</div>
+<div class="line"><a id="l00896" name="l00896"></a><span class="lineno">  896</span> </div>
+<div class="line"><a id="l00907" name="l00907"></a><span class="lineno">  907</span>uint8_t <a class="code hl_function" href="group__w25qxx__advance__driver.html#gac7fbabc574c250eec100be861f5918ff">w25qxx_erase_program_suspend</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle);</div>
+<div class="line"><a id="l00908" name="l00908"></a><span class="lineno">  908</span> </div>
+<div class="line"><a id="l00919" name="l00919"></a><span class="lineno">  919</span>uint8_t <a class="code hl_function" href="group__w25qxx__advance__driver.html#ga05c69ac66309544eba4ff38a69f24c00">w25qxx_erase_program_resume</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle);</div>
+<div class="line"><a id="l00920" name="l00920"></a><span class="lineno">  920</span> </div>
+<div class="line"><a id="l00936" name="l00936"></a><span class="lineno">  936</span>uint8_t <a class="code hl_function" href="group__w25qxx__advance__driver.html#ga1cd3aec1bdeabbaed5f049fbf83ceeb4">w25qxx_get_manufacturer_device_id_dual_io</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint8_t *manufacturer, uint8_t *device_id);</div>
+<div class="line"><a id="l00937" name="l00937"></a><span class="lineno">  937</span> </div>
+<div class="line"><a id="l00953" name="l00953"></a><span class="lineno">  953</span>uint8_t <a class="code hl_function" href="group__w25qxx__advance__driver.html#ga61bd3ce40b76b6862c6a53e0e37a3455">w25qxx_get_manufacturer_device_id_quad_io</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint8_t *manufacturer, uint8_t *device_id);</div>
+<div class="line"><a id="l00954" name="l00954"></a><span class="lineno">  954</span> </div>
+<div class="line"><a id="l00967" name="l00967"></a><span class="lineno">  967</span>uint8_t <a class="code hl_function" href="group__w25qxx__advance__driver.html#ga8a93ba14a032e10a27f1495fdcf56058">w25qxx_get_jedec_id</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint8_t *manufacturer, uint8_t device_id[2]);</div>
+<div class="line"><a id="l00968" name="l00968"></a><span class="lineno">  968</span> </div>
+<div class="line"><a id="l00979" name="l00979"></a><span class="lineno">  979</span>uint8_t <a class="code hl_function" href="group__w25qxx__advance__driver.html#gab5579bc42bc07a7657848140888a817c">w25qxx_global_block_lock</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle);</div>
+<div class="line"><a id="l00980" name="l00980"></a><span class="lineno">  980</span> </div>
+<div class="line"><a id="l00991" name="l00991"></a><span class="lineno">  991</span>uint8_t <a class="code hl_function" href="group__w25qxx__advance__driver.html#ga6d62f7d14945cfde7cde7a0e9a4e3afb">w25qxx_global_block_unlock</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle);</div>
+<div class="line"><a id="l00992" name="l00992"></a><span class="lineno">  992</span> </div>
+<div class="line"><a id="l01006" name="l01006"></a><span class="lineno"> 1006</span>uint8_t <a class="code hl_function" href="group__w25qxx__advance__driver.html#ga9ad10781d888b32b43b9eba45d049624">w25qxx_set_read_parameters</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, <a class="code hl_enumeration" href="group__w25qxx__advance__driver.html#ga6ff284154302248f00db269146545443">w25qxx_qspi_read_dummy_t</a> dummy, <a class="code hl_enumeration" href="group__w25qxx__advance__driver.html#ga2fd3023819e1aebe089a4a72eb136da3">w25qxx_qspi_read_wrap_length_t</a> length);</div>
+<div class="line"><a id="l01007" name="l01007"></a><span class="lineno"> 1007</span> </div>
+<div class="line"><a id="l01019" name="l01019"></a><span class="lineno"> 1019</span>uint8_t <a class="code hl_function" href="group__w25qxx__advance__driver.html#gaa5ab3548707a95ded115255432224c5a">w25qxx_enter_qspi_mode</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle);</div>
+<div class="line"><a id="l01020" name="l01020"></a><span class="lineno"> 1020</span> </div>
+<div class="line"><a id="l01032" name="l01032"></a><span class="lineno"> 1032</span>uint8_t <a class="code hl_function" href="group__w25qxx__advance__driver.html#ga6b9f75f7426a54ffdb1f5a057f8188f4">w25qxx_exit_qspi_mode</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle);</div>
+<div class="line"><a id="l01033" name="l01033"></a><span class="lineno"> 1033</span> </div>
+<div class="line"><a id="l01044" name="l01044"></a><span class="lineno"> 1044</span>uint8_t <a class="code hl_function" href="group__w25qxx__advance__driver.html#gab55b4e071e20feb58584025287949438">w25qxx_enable_reset</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle);</div>
+<div class="line"><a id="l01045" name="l01045"></a><span class="lineno"> 1045</span> </div>
+<div class="line"><a id="l01056" name="l01056"></a><span class="lineno"> 1056</span>uint8_t <a class="code hl_function" href="group__w25qxx__advance__driver.html#ga2abebfe2a8d9377eb88448ffca73f222">w25qxx_reset_device</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle);</div>
+<div class="line"><a id="l01057" name="l01057"></a><span class="lineno"> 1057</span> </div>
+<div class="line"><a id="l01071" name="l01071"></a><span class="lineno"> 1071</span>uint8_t <a class="code hl_function" href="group__w25qxx__advance__driver.html#ga11af244389478de68a6777076ee82d69">w25qxx_get_unique_id</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint8_t <span class="keywordtype">id</span>[8]);</div>
+<div class="line"><a id="l01072" name="l01072"></a><span class="lineno"> 1072</span> </div>
+<div class="line"><a id="l01085" name="l01085"></a><span class="lineno"> 1085</span>uint8_t <a class="code hl_function" href="group__w25qxx__advance__driver.html#ga244a91b9c0c32e899ca89e1943045624">w25qxx_get_sfdp</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint8_t sfdp[256]);</div>
+<div class="line"><a id="l01086" name="l01086"></a><span class="lineno"> 1086</span> </div>
+<div class="line"><a id="l01101" name="l01101"></a><span class="lineno"> 1101</span>uint8_t <a class="code hl_function" href="group__w25qxx__advance__driver.html#gaf297e2c6877c64f8fd10a555f783ddaf">w25qxx_erase_security_register</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, <a class="code hl_enumeration" href="group__w25qxx__advance__driver.html#ga81ddc7d4b9f4f124163beea19cc33c7e">w25qxx_security_register_t</a> num);</div>
+<div class="line"><a id="l01102" name="l01102"></a><span class="lineno"> 1102</span> </div>
+<div class="line"><a id="l01118" name="l01118"></a><span class="lineno"> 1118</span>uint8_t <a class="code hl_function" href="group__w25qxx__advance__driver.html#ga4e9c059ff78866e478e835cb27a92899">w25qxx_program_security_register</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, <a class="code hl_enumeration" href="group__w25qxx__advance__driver.html#ga81ddc7d4b9f4f124163beea19cc33c7e">w25qxx_security_register_t</a> num, uint8_t data[256]);</div>
+<div class="line"><a id="l01119" name="l01119"></a><span class="lineno"> 1119</span> </div>
+<div class="line"><a id="l01135" name="l01135"></a><span class="lineno"> 1135</span>uint8_t <a class="code hl_function" href="group__w25qxx__advance__driver.html#ga4c65debc4947bd9a61e0073105164b9c">w25qxx_read_security_register</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, <a class="code hl_enumeration" href="group__w25qxx__advance__driver.html#ga81ddc7d4b9f4f124163beea19cc33c7e">w25qxx_security_register_t</a> num, uint8_t data[256]);</div>
+<div class="line"><a id="l01136" name="l01136"></a><span class="lineno"> 1136</span> </div>
+<div class="line"><a id="l01149" name="l01149"></a><span class="lineno"> 1149</span>uint8_t <a class="code hl_function" href="group__w25qxx__advance__driver.html#ga4f00c2c169cb7c3084841c6cd795e76b">w25qxx_individual_block_lock</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint32_t addr);</div>
+<div class="line"><a id="l01150" name="l01150"></a><span class="lineno"> 1150</span> </div>
+<div class="line"><a id="l01163" name="l01163"></a><span class="lineno"> 1163</span>uint8_t <a class="code hl_function" href="group__w25qxx__advance__driver.html#ga7f88cedf7619071b3235ba094915b2a7">w25qxx_individual_block_unlock</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint32_t addr);</div>
+<div class="line"><a id="l01164" name="l01164"></a><span class="lineno"> 1164</span> </div>
+<div class="line"><a id="l01178" name="l01178"></a><span class="lineno"> 1178</span>uint8_t <a class="code hl_function" href="group__w25qxx__advance__driver.html#ga59e655ca78a175037ca810bbc8539a96">w25qxx_read_block_lock</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *value);</div>
+<div class="line"><a id="l01179" name="l01179"></a><span class="lineno"> 1179</span> </div>
+<div class="line"><a id="l01192" name="l01192"></a><span class="lineno"> 1192</span>uint8_t <a class="code hl_function" href="group__w25qxx__advance__driver.html#gac19c1d0f3fd48968ea2a93c1dbe3d75d">w25qxx_set_burst_with_wrap</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, <a class="code hl_enumeration" href="group__w25qxx__advance__driver.html#ga94bbae2bf8906903e8dc2a28c490723d">w25qxx_burst_wrap_t</a> wrap);</div>
+<div class="line"><a id="l01193" name="l01193"></a><span class="lineno"> 1193</span> </div>
+<div class="line"><a id="l01229" name="l01229"></a><span class="lineno"> 1229</span>uint8_t <a class="code hl_function" href="group__w25qxx__extern__driver.html#ga9623a3bec148b148498480518a66cb2b">w25qxx_write_read_reg</a>(<a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> *handle, uint8_t instruction, uint8_t instruction_line,</div>
+<div class="line"><a id="l01230" name="l01230"></a><span class="lineno"> 1230</span>                              uint32_t address, uint8_t address_line, uint8_t address_len,</div>
+<div class="line"><a id="l01231" name="l01231"></a><span class="lineno"> 1231</span>                              uint32_t alternate, uint8_t alternate_line, uint8_t alternate_len,</div>
+<div class="line"><a id="l01232" name="l01232"></a><span class="lineno"> 1232</span>                              uint8_t dummy, uint8_t *in_buf, uint32_t in_len,</div>
+<div class="line"><a id="l01233" name="l01233"></a><span class="lineno"> 1233</span>                              uint8_t *out_buf, uint32_t out_len, uint8_t data_line);</div>
+<div class="line"><a id="l01234" name="l01234"></a><span class="lineno"> 1234</span> </div>
+<div class="line"><a id="l01243" name="l01243"></a><span class="lineno"> 1243</span><span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a id="l01244" name="l01244"></a><span class="lineno"> 1244</span>}</div>
+<div class="line"><a id="l01245" name="l01245"></a><span class="lineno"> 1245</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l01246" name="l01246"></a><span class="lineno"> 1246</span> </div>
+<div class="line"><a id="l01247" name="l01247"></a><span class="lineno"> 1247</span><span class="preprocessor">#endif</span></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga05c69ac66309544eba4ff38a69f24c00"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga05c69ac66309544eba4ff38a69f24c00">w25qxx_erase_program_resume</a></div><div class="ttdeci">uint8_t w25qxx_erase_program_resume(w25qxx_handle_t *handle)</div><div class="ttdoc">resume erase or program</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l01722">driver_w25qxx.c:1722</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga0d28076f6fc7d3ae9dd7f8410069a277"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga0d28076f6fc7d3ae9dd7f8410069a277">w25qxx_status2_t</a></div><div class="ttdeci">w25qxx_status2_t</div><div class="ttdoc">w25qxx status 2 enumeration definition</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00171">driver_w25qxx.h:172</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga0f8889d6a25c32e150a2ab30753d461d"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga0f8889d6a25c32e150a2ab30753d461d">w25qxx_enable_volatile_sr_write</a></div><div class="ttdeci">uint8_t w25qxx_enable_volatile_sr_write(w25qxx_handle_t *handle)</div><div class="ttdoc">enable volatile sr writing</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l00501">driver_w25qxx.c:501</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga11af244389478de68a6777076ee82d69"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga11af244389478de68a6777076ee82d69">w25qxx_get_unique_id</a></div><div class="ttdeci">uint8_t w25qxx_get_unique_id(w25qxx_handle_t *handle, uint8_t id[8])</div><div class="ttdoc">get the unique id</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l02764">driver_w25qxx.c:2764</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga1cd3aec1bdeabbaed5f049fbf83ceeb4"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga1cd3aec1bdeabbaed5f049fbf83ceeb4">w25qxx_get_manufacturer_device_id_dual_io</a></div><div class="ttdeci">uint8_t w25qxx_get_manufacturer_device_id_dual_io(w25qxx_handle_t *handle, uint8_t *manufacturer, uint8_t *device_id)</div><div class="ttdoc">get the manufacturer &amp;&amp; device id information with dual io</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l02038">driver_w25qxx.c:2038</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga1f80bbbaaa852eecfffb87737889363d"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga1f80bbbaaa852eecfffb87737889363d">w25qxx_page_program_quad_input</a></div><div class="ttdeci">uint8_t w25qxx_page_program_quad_input(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint16_t len)</div><div class="ttdoc">quad page program with quad input</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l04920">driver_w25qxx.c:4920</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga244a91b9c0c32e899ca89e1943045624"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga244a91b9c0c32e899ca89e1943045624">w25qxx_get_sfdp</a></div><div class="ttdeci">uint8_t w25qxx_get_sfdp(w25qxx_handle_t *handle, uint8_t sfdp[256])</div><div class="ttdoc">get the sfdp</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l02880">driver_w25qxx.c:2880</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga246e0bb07c8bbb39731f17906779c012"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga246e0bb07c8bbb39731f17906779c012">w25qxx_set_status1</a></div><div class="ttdeci">uint8_t w25qxx_set_status1(w25qxx_handle_t *handle, uint8_t status)</div><div class="ttdoc">set the status 1</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l00863">driver_w25qxx.c:863</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga2abebfe2a8d9377eb88448ffca73f222"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga2abebfe2a8d9377eb88448ffca73f222">w25qxx_reset_device</a></div><div class="ttdeci">uint8_t w25qxx_reset_device(w25qxx_handle_t *handle)</div><div class="ttdoc">reset the device</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l02690">driver_w25qxx.c:2690</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga2fd3023819e1aebe089a4a72eb136da3"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga2fd3023819e1aebe089a4a72eb136da3">w25qxx_qspi_read_wrap_length_t</a></div><div class="ttdeci">w25qxx_qspi_read_wrap_length_t</div><div class="ttdoc">w25qxx qspi read wrap length enumeration definition</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00122">driver_w25qxx.h:123</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga4c65debc4947bd9a61e0073105164b9c"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga4c65debc4947bd9a61e0073105164b9c">w25qxx_read_security_register</a></div><div class="ttdeci">uint8_t w25qxx_read_security_register(w25qxx_handle_t *handle, w25qxx_security_register_t num, uint8_t data[256])</div><div class="ttdoc">read the security register</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l03344">driver_w25qxx.c:3344</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga4e9c059ff78866e478e835cb27a92899"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga4e9c059ff78866e478e835cb27a92899">w25qxx_program_security_register</a></div><div class="ttdeci">uint8_t w25qxx_program_security_register(w25qxx_handle_t *handle, w25qxx_security_register_t num, uint8_t data[256])</div><div class="ttdoc">program the security register</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l03147">driver_w25qxx.c:3147</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga4f00c2c169cb7c3084841c6cd795e76b"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga4f00c2c169cb7c3084841c6cd795e76b">w25qxx_individual_block_lock</a></div><div class="ttdeci">uint8_t w25qxx_individual_block_lock(w25qxx_handle_t *handle, uint32_t addr)</div><div class="ttdoc">lock the individual block</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l06094">driver_w25qxx.c:6094</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga59e655ca78a175037ca810bbc8539a96"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga59e655ca78a175037ca810bbc8539a96">w25qxx_read_block_lock</a></div><div class="ttdeci">uint8_t w25qxx_read_block_lock(w25qxx_handle_t *handle, uint32_t addr, uint8_t *value)</div><div class="ttdoc">read the block lock</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l06529">driver_w25qxx.c:6529</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga61bd3ce40b76b6862c6a53e0e37a3455"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga61bd3ce40b76b6862c6a53e0e37a3455">w25qxx_get_manufacturer_device_id_quad_io</a></div><div class="ttdeci">uint8_t w25qxx_get_manufacturer_device_id_quad_io(w25qxx_handle_t *handle, uint8_t *manufacturer, uint8_t *device_id)</div><div class="ttdoc">get the manufacturer &amp;&amp; device id information with quad io</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l02122">driver_w25qxx.c:2122</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga6b9f75f7426a54ffdb1f5a057f8188f4"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga6b9f75f7426a54ffdb1f5a057f8188f4">w25qxx_exit_qspi_mode</a></div><div class="ttdeci">uint8_t w25qxx_exit_qspi_mode(w25qxx_handle_t *handle)</div><div class="ttdoc">exit the qspi mode</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l02572">driver_w25qxx.c:2572</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga6d62f7d14945cfde7cde7a0e9a4e3afb"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga6d62f7d14945cfde7cde7a0e9a4e3afb">w25qxx_global_block_unlock</a></div><div class="ttdeci">uint8_t w25qxx_global_block_unlock(w25qxx_handle_t *handle)</div><div class="ttdoc">unlock the whole block</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l02354">driver_w25qxx.c:2354</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga6ff284154302248f00db269146545443"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga6ff284154302248f00db269146545443">w25qxx_qspi_read_dummy_t</a></div><div class="ttdeci">w25qxx_qspi_read_dummy_t</div><div class="ttdoc">w25qxx qspi read dummy enumeration definition</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00111">driver_w25qxx.h:112</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga7a19230ca3916816ea8fb7421483d293"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga7a19230ca3916816ea8fb7421483d293">w25qxx_fast_read_dual_output</a></div><div class="ttdeci">uint8_t w25qxx_fast_read_dual_output(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">read with dual output in the fast mode</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l03858">driver_w25qxx.c:3858</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga7f88cedf7619071b3235ba094915b2a7"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga7f88cedf7619071b3235ba094915b2a7">w25qxx_individual_block_unlock</a></div><div class="ttdeci">uint8_t w25qxx_individual_block_unlock(w25qxx_handle_t *handle, uint32_t addr)</div><div class="ttdoc">unlock the individual block</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l06311">driver_w25qxx.c:6311</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga81ddc7d4b9f4f124163beea19cc33c7e"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga81ddc7d4b9f4f124163beea19cc33c7e">w25qxx_security_register_t</a></div><div class="ttdeci">w25qxx_security_register_t</div><div class="ttdoc">w25qxx security register enumeration definition</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00134">driver_w25qxx.h:135</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga88a62ec42e86db821ff3f0d3ab541dbb"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga88a62ec42e86db821ff3f0d3ab541dbb">w25qxx_octal_word_read_quad_io</a></div><div class="ttdeci">uint8_t w25qxx_octal_word_read_quad_io(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">octal word read with quad io</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l04459">driver_w25qxx.c:4459</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga8a93ba14a032e10a27f1495fdcf56058"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga8a93ba14a032e10a27f1495fdcf56058">w25qxx_get_jedec_id</a></div><div class="ttdeci">uint8_t w25qxx_get_jedec_id(w25qxx_handle_t *handle, uint8_t *manufacturer, uint8_t device_id[2])</div><div class="ttdoc">get the jedec id information</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l02203">driver_w25qxx.c:2203</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga94bbae2bf8906903e8dc2a28c490723d"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga94bbae2bf8906903e8dc2a28c490723d">w25qxx_burst_wrap_t</a></div><div class="ttdeci">w25qxx_burst_wrap_t</div><div class="ttdoc">w25qxx burst wrap enumeration definition</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00144">driver_w25qxx.h:145</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga99cf6a325a00921d4531004f0c1d75b1"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga99cf6a325a00921d4531004f0c1d75b1">w25qxx_get_status3</a></div><div class="ttdeci">uint8_t w25qxx_get_status3(w25qxx_handle_t *handle, uint8_t *status)</div><div class="ttdoc">get the status 3</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l00789">driver_w25qxx.c:789</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga9ad10781d888b32b43b9eba45d049624"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga9ad10781d888b32b43b9eba45d049624">w25qxx_set_read_parameters</a></div><div class="ttdeci">uint8_t w25qxx_set_read_parameters(w25qxx_handle_t *handle, w25qxx_qspi_read_dummy_t dummy, w25qxx_qspi_read_wrap_length_t length)</div><div class="ttdoc">set the read parameters</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l02427">driver_w25qxx.c:2427</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga9e41a72d1e25d39d88ce7108a9b25595"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga9e41a72d1e25d39d88ce7108a9b25595">w25qxx_status1_t</a></div><div class="ttdeci">w25qxx_status1_t</div><div class="ttdoc">w25qxx status 1 enumeration definition</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00156">driver_w25qxx.h:157</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_gaa21237ecbd5951b8017799066e7db5d9"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gaa21237ecbd5951b8017799066e7db5d9">w25qxx_get_status2</a></div><div class="ttdeci">uint8_t w25qxx_get_status2(w25qxx_handle_t *handle, uint8_t *status)</div><div class="ttdoc">get the status 2</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l00716">driver_w25qxx.c:716</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_gaa5ab3548707a95ded115255432224c5a"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gaa5ab3548707a95ded115255432224c5a">w25qxx_enter_qspi_mode</a></div><div class="ttdeci">uint8_t w25qxx_enter_qspi_mode(w25qxx_handle_t *handle)</div><div class="ttdoc">enter the qspi mode</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l02494">driver_w25qxx.c:2494</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_gaa77d2b00b4fb9cf586f77ace827ea7c6"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gaa77d2b00b4fb9cf586f77ace827ea7c6">w25qxx_get_status1</a></div><div class="ttdeci">uint8_t w25qxx_get_status1(w25qxx_handle_t *handle, uint8_t *status)</div><div class="ttdoc">get the status 1</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l00643">driver_w25qxx.c:643</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_gaab5f28e8930d50dbc2178e39bc9fa456"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gaab5f28e8930d50dbc2178e39bc9fa456">w25qxx_set_status2</a></div><div class="ttdeci">uint8_t w25qxx_set_status2(w25qxx_handle_t *handle, uint8_t status)</div><div class="ttdoc">set the status 2</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l01062">driver_w25qxx.c:1062</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_gab5579bc42bc07a7657848140888a817c"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gab5579bc42bc07a7657848140888a817c">w25qxx_global_block_lock</a></div><div class="ttdeci">uint8_t w25qxx_global_block_lock(w25qxx_handle_t *handle)</div><div class="ttdoc">lock the whole block</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l02284">driver_w25qxx.c:2284</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_gab55b4e071e20feb58584025287949438"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gab55b4e071e20feb58584025287949438">w25qxx_enable_reset</a></div><div class="ttdeci">uint8_t w25qxx_enable_reset(w25qxx_handle_t *handle)</div><div class="ttdoc">enable the reset</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l02619">driver_w25qxx.c:2619</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_gab97a64bd3776874518f60381d921ae41"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gab97a64bd3776874518f60381d921ae41">w25qxx_fast_read_quad_io</a></div><div class="ttdeci">uint8_t w25qxx_fast_read_quad_io(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">read with quad io in the fast mode</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l04184">driver_w25qxx.c:4184</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_gac16a31269277051baad6c28fe4254b4a"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gac16a31269277051baad6c28fe4254b4a">w25qxx_disable_write</a></div><div class="ttdeci">uint8_t w25qxx_disable_write(w25qxx_handle_t *handle)</div><div class="ttdoc">disable writing</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l00572">driver_w25qxx.c:572</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_gac19c1d0f3fd48968ea2a93c1dbe3d75d"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gac19c1d0f3fd48968ea2a93c1dbe3d75d">w25qxx_set_burst_with_wrap</a></div><div class="ttdeci">uint8_t w25qxx_set_burst_with_wrap(w25qxx_handle_t *handle, w25qxx_burst_wrap_t wrap)</div><div class="ttdoc">set the burst with wrap</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l06746">driver_w25qxx.c:6746</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_gac7fbabc574c250eec100be861f5918ff"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gac7fbabc574c250eec100be861f5918ff">w25qxx_erase_program_suspend</a></div><div class="ttdeci">uint8_t w25qxx_erase_program_suspend(w25qxx_handle_t *handle)</div><div class="ttdoc">suspend erase or program</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l01650">driver_w25qxx.c:1650</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_gac894f4650905cba10dd3a31284de6d5e"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gac894f4650905cba10dd3a31284de6d5e">w25qxx_fast_read_dual_io</a></div><div class="ttdeci">uint8_t w25qxx_fast_read_dual_io(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">read with dual io in the fast mode</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l04076">driver_w25qxx.c:4076</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_gace18ebb2eac49cbde44a2935916f44ac"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gace18ebb2eac49cbde44a2935916f44ac">w25qxx_status3_t</a></div><div class="ttdeci">w25qxx_status3_t</div><div class="ttdoc">w25qxx status 3 enumeration definition</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00185">driver_w25qxx.h:186</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_gad97d7e410dd77c49334097a0fd332660"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gad97d7e410dd77c49334097a0fd332660">w25qxx_word_read_quad_io</a></div><div class="ttdeci">uint8_t w25qxx_word_read_quad_io(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">word read with quad io</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l04350">driver_w25qxx.c:4350</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_gada897a6c6d6acb99f4dd4ff9b65ad8ee"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gada897a6c6d6acb99f4dd4ff9b65ad8ee">w25qxx_set_status3</a></div><div class="ttdeci">uint8_t w25qxx_set_status3(w25qxx_handle_t *handle, uint8_t status)</div><div class="ttdoc">set the status 3</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l01261">driver_w25qxx.c:1261</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_gaeb269123feec054eaaf70f2ffb5797a3"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gaeb269123feec054eaaf70f2ffb5797a3">w25qxx_enable_write</a></div><div class="ttdeci">uint8_t w25qxx_enable_write(w25qxx_handle_t *handle)</div><div class="ttdoc">enable writing</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l00431">driver_w25qxx.c:431</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_gaf297e2c6877c64f8fd10a555f783ddaf"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gaf297e2c6877c64f8fd10a555f783ddaf">w25qxx_erase_security_register</a></div><div class="ttdeci">uint8_t w25qxx_erase_security_register(w25qxx_handle_t *handle, w25qxx_security_register_t num)</div><div class="ttdoc">erase the security register</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l02952">driver_w25qxx.c:2952</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_gaf4bfafd1f80aa0316a4b1a15183dcd50"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gaf4bfafd1f80aa0316a4b1a15183dcd50">w25qxx_fast_read_quad_output</a></div><div class="ttdeci">uint8_t w25qxx_fast_read_quad_output(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">read with quad output in the fast mode</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l03967">driver_w25qxx.c:3967</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_gga0d28076f6fc7d3ae9dd7f8410069a277a0f3e2b3059d56f974724a8284142e69a"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277a0f3e2b3059d56f974724a8284142e69a">W25QXX_STATUS2_SECURITY_REGISTER_3_LOCK_BITS</a></div><div class="ttdeci">@ W25QXX_STATUS2_SECURITY_REGISTER_3_LOCK_BITS</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00175">driver_w25qxx.h:175</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_gga0d28076f6fc7d3ae9dd7f8410069a277a24a99f1a97023ae103c1bec3027bbf26"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277a24a99f1a97023ae103c1bec3027bbf26">W25QXX_STATUS2_SECURITY_REGISTER_2_LOCK_BITS</a></div><div class="ttdeci">@ W25QXX_STATUS2_SECURITY_REGISTER_2_LOCK_BITS</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00176">driver_w25qxx.h:176</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_gga0d28076f6fc7d3ae9dd7f8410069a277a3fdb54846709f77391e426c626a19152"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277a3fdb54846709f77391e426c626a19152">W25QXX_STATUS2_SUSPEND_STATUS</a></div><div class="ttdeci">@ W25QXX_STATUS2_SUSPEND_STATUS</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00173">driver_w25qxx.h:173</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_gga0d28076f6fc7d3ae9dd7f8410069a277a517e9e50ada30462f902d01e8d5579dc"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277a517e9e50ada30462f902d01e8d5579dc">W25QXX_STATUS2_COMPLEMENT_PROTECT</a></div><div class="ttdeci">@ W25QXX_STATUS2_COMPLEMENT_PROTECT</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00174">driver_w25qxx.h:174</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_gga0d28076f6fc7d3ae9dd7f8410069a277a5a89a885ba2a59eccd0445443e3bbac6"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277a5a89a885ba2a59eccd0445443e3bbac6">W25QXX_STATUS2_STATUS_REGISTER_PROTECT_1</a></div><div class="ttdeci">@ W25QXX_STATUS2_STATUS_REGISTER_PROTECT_1</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00179">driver_w25qxx.h:179</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_gga0d28076f6fc7d3ae9dd7f8410069a277a7a631c1c153cc099a52883b40007079e"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277a7a631c1c153cc099a52883b40007079e">W25QXX_STATUS2_SECURITY_REGISTER_1_LOCK_BITS</a></div><div class="ttdeci">@ W25QXX_STATUS2_SECURITY_REGISTER_1_LOCK_BITS</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00177">driver_w25qxx.h:177</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_gga0d28076f6fc7d3ae9dd7f8410069a277aa920a9c9a590fb8740419d8d2e4230f3"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277aa920a9c9a590fb8740419d8d2e4230f3">W25QXX_STATUS2_QUAD_ENABLE</a></div><div class="ttdeci">@ W25QXX_STATUS2_QUAD_ENABLE</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00178">driver_w25qxx.h:178</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_gga2fd3023819e1aebe089a4a72eb136da3a5b8fa1026c564fe83f3f0f0edb89d1dd"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gga2fd3023819e1aebe089a4a72eb136da3a5b8fa1026c564fe83f3f0f0edb89d1dd">W25QXX_QSPI_READ_WRAP_LENGTH_8_BYTE</a></div><div class="ttdeci">@ W25QXX_QSPI_READ_WRAP_LENGTH_8_BYTE</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00124">driver_w25qxx.h:124</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_gga2fd3023819e1aebe089a4a72eb136da3a736f25eeae36f6a0b62d4cb1666a689f"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gga2fd3023819e1aebe089a4a72eb136da3a736f25eeae36f6a0b62d4cb1666a689f">W25QXX_QSPI_READ_WRAP_LENGTH_64_BYTE</a></div><div class="ttdeci">@ W25QXX_QSPI_READ_WRAP_LENGTH_64_BYTE</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00127">driver_w25qxx.h:127</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_gga2fd3023819e1aebe089a4a72eb136da3aa5f2e6b5718a85ab9241125e84181216"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gga2fd3023819e1aebe089a4a72eb136da3aa5f2e6b5718a85ab9241125e84181216">W25QXX_QSPI_READ_WRAP_LENGTH_32_BYTE</a></div><div class="ttdeci">@ W25QXX_QSPI_READ_WRAP_LENGTH_32_BYTE</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00126">driver_w25qxx.h:126</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_gga2fd3023819e1aebe089a4a72eb136da3ae6bc2fcd2d4fc3af63f22da56a3b393b"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gga2fd3023819e1aebe089a4a72eb136da3ae6bc2fcd2d4fc3af63f22da56a3b393b">W25QXX_QSPI_READ_WRAP_LENGTH_16_BYTE</a></div><div class="ttdeci">@ W25QXX_QSPI_READ_WRAP_LENGTH_16_BYTE</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00125">driver_w25qxx.h:125</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_gga6ff284154302248f00db269146545443a6423b5606e72af6479fe31a6a9883aeb"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gga6ff284154302248f00db269146545443a6423b5606e72af6479fe31a6a9883aeb">W25QXX_QSPI_READ_DUMMY_4_55MHZ</a></div><div class="ttdeci">@ W25QXX_QSPI_READ_DUMMY_4_55MHZ</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00114">driver_w25qxx.h:114</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_gga6ff284154302248f00db269146545443a78393debe12bbb3efb710e38e3c1d550"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gga6ff284154302248f00db269146545443a78393debe12bbb3efb710e38e3c1d550">W25QXX_QSPI_READ_DUMMY_6_80MHZ</a></div><div class="ttdeci">@ W25QXX_QSPI_READ_DUMMY_6_80MHZ</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00115">driver_w25qxx.h:115</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_gga6ff284154302248f00db269146545443ad73634a0f4534c3ae35d4242b2bc8f13"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gga6ff284154302248f00db269146545443ad73634a0f4534c3ae35d4242b2bc8f13">W25QXX_QSPI_READ_DUMMY_2_33MHZ</a></div><div class="ttdeci">@ W25QXX_QSPI_READ_DUMMY_2_33MHZ</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00113">driver_w25qxx.h:113</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_gga6ff284154302248f00db269146545443ade1d3511f15c7d92de8c5d8967c471c3"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gga6ff284154302248f00db269146545443ade1d3511f15c7d92de8c5d8967c471c3">W25QXX_QSPI_READ_DUMMY_8_80MHZ</a></div><div class="ttdeci">@ W25QXX_QSPI_READ_DUMMY_8_80MHZ</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00116">driver_w25qxx.h:116</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_gga81ddc7d4b9f4f124163beea19cc33c7ea3353a88090850174ca163d56e4d7089c"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gga81ddc7d4b9f4f124163beea19cc33c7ea3353a88090850174ca163d56e4d7089c">W25QXX_SECURITY_REGISTER_2</a></div><div class="ttdeci">@ W25QXX_SECURITY_REGISTER_2</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00137">driver_w25qxx.h:137</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_gga81ddc7d4b9f4f124163beea19cc33c7ea65b73162d921075bed8cb8d848948900"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gga81ddc7d4b9f4f124163beea19cc33c7ea65b73162d921075bed8cb8d848948900">W25QXX_SECURITY_REGISTER_3</a></div><div class="ttdeci">@ W25QXX_SECURITY_REGISTER_3</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00138">driver_w25qxx.h:138</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_gga81ddc7d4b9f4f124163beea19cc33c7eaaf27484a497c13915c8acb0161cf137d"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gga81ddc7d4b9f4f124163beea19cc33c7eaaf27484a497c13915c8acb0161cf137d">W25QXX_SECURITY_REGISTER_1</a></div><div class="ttdeci">@ W25QXX_SECURITY_REGISTER_1</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00136">driver_w25qxx.h:136</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_gga94bbae2bf8906903e8dc2a28c490723da2a3afd7924b00cf74abe83f5216c8915"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gga94bbae2bf8906903e8dc2a28c490723da2a3afd7924b00cf74abe83f5216c8915">W25QXX_BURST_WRAP_64_BYTE</a></div><div class="ttdeci">@ W25QXX_BURST_WRAP_64_BYTE</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00150">driver_w25qxx.h:150</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_gga94bbae2bf8906903e8dc2a28c490723da35edf6c31d0fe1771ab79669d13b7af8"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gga94bbae2bf8906903e8dc2a28c490723da35edf6c31d0fe1771ab79669d13b7af8">W25QXX_BURST_WRAP_8_BYTE</a></div><div class="ttdeci">@ W25QXX_BURST_WRAP_8_BYTE</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00147">driver_w25qxx.h:147</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_gga94bbae2bf8906903e8dc2a28c490723dae2ac810153f9515a145773c34409b995"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gga94bbae2bf8906903e8dc2a28c490723dae2ac810153f9515a145773c34409b995">W25QXX_BURST_WRAP_32_BYTE</a></div><div class="ttdeci">@ W25QXX_BURST_WRAP_32_BYTE</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00149">driver_w25qxx.h:149</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_gga94bbae2bf8906903e8dc2a28c490723dae39a7ea65512a56d40aad2990d55815d"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gga94bbae2bf8906903e8dc2a28c490723dae39a7ea65512a56d40aad2990d55815d">W25QXX_BURST_WRAP_NONE</a></div><div class="ttdeci">@ W25QXX_BURST_WRAP_NONE</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00146">driver_w25qxx.h:146</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_gga94bbae2bf8906903e8dc2a28c490723dafec1eb230b49fbda6ffcc1eeda64179a"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gga94bbae2bf8906903e8dc2a28c490723dafec1eb230b49fbda6ffcc1eeda64179a">W25QXX_BURST_WRAP_16_BYTE</a></div><div class="ttdeci">@ W25QXX_BURST_WRAP_16_BYTE</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00148">driver_w25qxx.h:148</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_gga9e41a72d1e25d39d88ce7108a9b25595a00d1d224963ec1f38ac97802480b2129"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a00d1d224963ec1f38ac97802480b2129">W25QXX_STATUS1_STATUS_REGISTER_PROTECT_0</a></div><div class="ttdeci">@ W25QXX_STATUS1_STATUS_REGISTER_PROTECT_0</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00158">driver_w25qxx.h:158</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_gga9e41a72d1e25d39d88ce7108a9b25595a1438a76d1be1aa02e4f7450a045c02e3"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a1438a76d1be1aa02e4f7450a045c02e3">W25QXX_STATUS1_WRITE_ENABLE_LATCH</a></div><div class="ttdeci">@ W25QXX_STATUS1_WRITE_ENABLE_LATCH</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00164">driver_w25qxx.h:164</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_gga9e41a72d1e25d39d88ce7108a9b25595a3465f02625d38730630b60cd01e92085"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a3465f02625d38730630b60cd01e92085">W25QXX_STATUS1_BLOCK_PROTECT_1</a></div><div class="ttdeci">@ W25QXX_STATUS1_BLOCK_PROTECT_1</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00162">driver_w25qxx.h:162</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_gga9e41a72d1e25d39d88ce7108a9b25595a63bc45b7e0e19de7e58e3494eb4046c5"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a63bc45b7e0e19de7e58e3494eb4046c5">W25QXX_STATUS1_TOP_BOTTOM_PROTECT_OR_BLOCK_PROTECT_3</a></div><div class="ttdeci">@ W25QXX_STATUS1_TOP_BOTTOM_PROTECT_OR_BLOCK_PROTECT_3</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00160">driver_w25qxx.h:160</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_gga9e41a72d1e25d39d88ce7108a9b25595a7b7e8922009c0d6a88bbfad76a812262"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a7b7e8922009c0d6a88bbfad76a812262">W25QXX_STATUS1_BLOCK_PROTECT_0</a></div><div class="ttdeci">@ W25QXX_STATUS1_BLOCK_PROTECT_0</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00163">driver_w25qxx.h:163</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_gga9e41a72d1e25d39d88ce7108a9b25595a9522040a098337442eff127e1598776d"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a9522040a098337442eff127e1598776d">W25QXX_STATUS1_SECTOR_PROTECT_OR_TOP_BOTTOM_PROTECT</a></div><div class="ttdeci">@ W25QXX_STATUS1_SECTOR_PROTECT_OR_TOP_BOTTOM_PROTECT</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00159">driver_w25qxx.h:159</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_gga9e41a72d1e25d39d88ce7108a9b25595a9a02180228dbb94e9d302b667fda884f"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a9a02180228dbb94e9d302b667fda884f">W25QXX_STATUS1_BLOCK_PROTECT_2</a></div><div class="ttdeci">@ W25QXX_STATUS1_BLOCK_PROTECT_2</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00161">driver_w25qxx.h:161</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_gga9e41a72d1e25d39d88ce7108a9b25595ae1ce566fc564776e98a5c7edefe8c5ea"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595ae1ce566fc564776e98a5c7edefe8c5ea">W25QXX_STATUS1_ERASE_WRITE_PROGRESS</a></div><div class="ttdeci">@ W25QXX_STATUS1_ERASE_WRITE_PROGRESS</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00165">driver_w25qxx.h:165</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_ggace18ebb2eac49cbde44a2935916f44aca3c822d6eacd9747ca2173607a09591ac"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44aca3c822d6eacd9747ca2173607a09591ac">W25QXX_STATUS3_CURRENT_ADDRESS_MODE</a></div><div class="ttdeci">@ W25QXX_STATUS3_CURRENT_ADDRESS_MODE</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00194">driver_w25qxx.h:194</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_ggace18ebb2eac49cbde44a2935916f44aca7ab6ace72a02afc20f92f48e975b60b7"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44aca7ab6ace72a02afc20f92f48e975b60b7">W25QXX_STATUS3_OUTPUT_DRIVER_STRENGTH_75_PERCENTAGE</a></div><div class="ttdeci">@ W25QXX_STATUS3_OUTPUT_DRIVER_STRENGTH_75_PERCENTAGE</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00189">driver_w25qxx.h:189</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_ggace18ebb2eac49cbde44a2935916f44aca7dc507c444fb395a4956bf50d78f1ee3"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44aca7dc507c444fb395a4956bf50d78f1ee3">W25QXX_STATUS3_WRITE_PROTECT_SELECTION</a></div><div class="ttdeci">@ W25QXX_STATUS3_WRITE_PROTECT_SELECTION</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00192">driver_w25qxx.h:192</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_ggace18ebb2eac49cbde44a2935916f44aca8abcd821f1f0d02b3d9179c7ab58d0e0"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44aca8abcd821f1f0d02b3d9179c7ab58d0e0">W25QXX_STATUS3_OUTPUT_DRIVER_STRENGTH_50_PERCENTAGE</a></div><div class="ttdeci">@ W25QXX_STATUS3_OUTPUT_DRIVER_STRENGTH_50_PERCENTAGE</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00190">driver_w25qxx.h:190</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_ggace18ebb2eac49cbde44a2935916f44aca9ab13d5388af0156c4e4de08765ec401"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44aca9ab13d5388af0156c4e4de08765ec401">W25QXX_STATUS3_HOLD_RESET_FUNCTION</a></div><div class="ttdeci">@ W25QXX_STATUS3_HOLD_RESET_FUNCTION</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00187">driver_w25qxx.h:187</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_ggace18ebb2eac49cbde44a2935916f44acab5b1ce328b88d08f3d55ed776e01fedb"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44acab5b1ce328b88d08f3d55ed776e01fedb">W25QXX_STATUS3_OUTPUT_DRIVER_STRENGTH_100_PERCENTAGE</a></div><div class="ttdeci">@ W25QXX_STATUS3_OUTPUT_DRIVER_STRENGTH_100_PERCENTAGE</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00188">driver_w25qxx.h:188</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_ggace18ebb2eac49cbde44a2935916f44acadc8d5949eaea0c6ce4e17c6e746f4f65"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44acadc8d5949eaea0c6ce4e17c6e746f4f65">W25QXX_STATUS3_POWER_UP_ADDRESS_MODE</a></div><div class="ttdeci">@ W25QXX_STATUS3_POWER_UP_ADDRESS_MODE</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00193">driver_w25qxx.h:193</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_ggace18ebb2eac49cbde44a2935916f44acae645c265a6beb76a088352e2f4bfb4e1"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44acae645c265a6beb76a088352e2f4bfb4e1">W25QXX_STATUS3_OUTPUT_DRIVER_STRENGTH_25_PERCENTAGE</a></div><div class="ttdeci">@ W25QXX_STATUS3_OUTPUT_DRIVER_STRENGTH_25_PERCENTAGE</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00191">driver_w25qxx.h:191</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga0862833b36831f92684980b2e21f2e39"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga0862833b36831f92684980b2e21f2e39">w25qxx_chip_erase</a></div><div class="ttdeci">uint8_t w25qxx_chip_erase(w25qxx_handle_t *handle)</div><div class="ttdoc">erase the chip</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l01459">driver_w25qxx.c:1459</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga09c9b52877516a2ee4c080dc249e7331"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga09c9b52877516a2ee4c080dc249e7331">w25qxx_release_power_down</a></div><div class="ttdeci">uint8_t w25qxx_release_power_down(w25qxx_handle_t *handle)</div><div class="ttdoc">release power down</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l01875">driver_w25qxx.c:1875</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga1e9ebf198137d23558dbf6470213c472"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga1e9ebf198137d23558dbf6470213c472">w25qxx_only_spi_read</a></div><div class="ttdeci">uint8_t w25qxx_only_spi_read(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">read only in the spi interface</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l03465">driver_w25qxx.c:3465</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga39c8fb382e8c3e4d57232dfa79af781c"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga39c8fb382e8c3e4d57232dfa79af781c">w25qxx_block_erase_32k</a></div><div class="ttdeci">uint8_t w25qxx_block_erase_32k(w25qxx_handle_t *handle, uint32_t addr)</div><div class="ttdoc">erase the 32k block</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l05419">driver_w25qxx.c:5419</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga3a52036a97b12fcbe2280b0901a80b90"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga3a52036a97b12fcbe2280b0901a80b90">w25qxx_get_address_mode</a></div><div class="ttdeci">uint8_t w25qxx_get_address_mode(w25qxx_handle_t *handle, w25qxx_address_mode_t *mode)</div><div class="ttdoc">get the chip address mode</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l00405">driver_w25qxx.c:405</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga50a62003d566402d46ada2f272c41eb5"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga50a62003d566402d46ada2f272c41eb5">w25qxx_set_interface</a></div><div class="ttdeci">uint8_t w25qxx_set_interface(w25qxx_handle_t *handle, w25qxx_interface_t interface)</div><div class="ttdoc">set the chip interface</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l00259">driver_w25qxx.c:259</a></div></div>
 <div class="ttc" id="agroup__w25qxx__basic__driver_html_ga56d8a7b5f8b7eaed8df0b6dc90c266be"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a></div><div class="ttdeci">struct w25qxx_handle_s w25qxx_handle_t</div><div class="ttdoc">w25qxx handle structure definition</div></div>
 <div class="ttc" id="agroup__w25qxx__basic__driver_html_ga601d841ddd0ff8ad3ab52e07c679ef19"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga601d841ddd0ff8ad3ab52e07c679ef19">w25qxx_info_t</a></div><div class="ttdeci">struct w25qxx_info_s w25qxx_info_t</div><div class="ttdoc">w25qxx information structure definition</div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga6280e7e4ab26306436e2c210617a28b3"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga6280e7e4ab26306436e2c210617a28b3">w25qxx_page_program</a></div><div class="ttdeci">uint8_t w25qxx_page_program(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint16_t len)</div><div class="ttdoc">page program</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l04569">driver_w25qxx.c:4569</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga665139209b0abc386474a78d89cce6f2"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga665139209b0abc386474a78d89cce6f2">w25qxx_set_dual_quad_spi</a></div><div class="ttdeci">uint8_t w25qxx_set_dual_quad_spi(w25qxx_handle_t *handle, w25qxx_bool_t enable)</div><div class="ttdoc">enable or disable the dual quad spi</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l00175">driver_w25qxx.c:175</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga685379998dad173b6d9c0b0da270685c"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga685379998dad173b6d9c0b0da270685c">w25qxx_get_type</a></div><div class="ttdeci">uint8_t w25qxx_get_type(w25qxx_handle_t *handle, w25qxx_type_t *type)</div><div class="ttdoc">get the chip type</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l00238">driver_w25qxx.c:238</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga6cb4e5164464df549201dd96cb7a58b1"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga6cb4e5164464df549201dd96cb7a58b1">w25qxx_type_t</a></div><div class="ttdeci">w25qxx_type_t</div><div class="ttdoc">w25qxx type enumeration definition</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00062">driver_w25qxx.h:63</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga86ef839d475f3926a0be46bbc18d4b45"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga86ef839d475f3926a0be46bbc18d4b45">w25qxx_get_interface</a></div><div class="ttdeci">uint8_t w25qxx_get_interface(w25qxx_handle_t *handle, w25qxx_interface_t *interface)</div><div class="ttdoc">get the chip interface</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l00280">driver_w25qxx.c:280</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga8e7a163b3d255b8c7fc035d0d60f2491"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga8e7a163b3d255b8c7fc035d0d60f2491">w25qxx_init</a></div><div class="ttdeci">uint8_t w25qxx_init(w25qxx_handle_t *handle)</div><div class="ttdoc">initialize the chip</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l06819">driver_w25qxx.c:6819</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga921836a777b082ff4d0f322ccfda6b22"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga921836a777b082ff4d0f322ccfda6b22">w25qxx_get_manufacturer_device_id</a></div><div class="ttdeci">uint8_t w25qxx_get_manufacturer_device_id(w25qxx_handle_t *handle, uint8_t *manufacturer, uint8_t *device_id)</div><div class="ttdoc">get the manufacturer &amp;&amp; device id information</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l01952">driver_w25qxx.c:1952</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga996e2d3009432e7f8c1a5175c4438a57"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga996e2d3009432e7f8c1a5175c4438a57">w25qxx_info</a></div><div class="ttdeci">uint8_t w25qxx_info(w25qxx_info_t *info)</div><div class="ttdoc">get chip's information</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l08566">driver_w25qxx.c:8566</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga9a03c51b4c84655350c15fbfce0a6b40"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga9a03c51b4c84655350c15fbfce0a6b40">w25qxx_sector_erase_4k</a></div><div class="ttdeci">uint8_t w25qxx_sector_erase_4k(w25qxx_handle_t *handle, uint32_t addr)</div><div class="ttdoc">erase the 4k sector</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l05080">driver_w25qxx.c:5080</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_gaa293c3a46c4010a3af597a83e646de0d"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a></div><div class="ttdeci">uint8_t w25qxx_deinit(w25qxx_handle_t *handle)</div><div class="ttdoc">close the chip</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l07195">driver_w25qxx.c:7195</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_gaa4c45f146d1ade8a2da8e751818fa4a2"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gaa4c45f146d1ade8a2da8e751818fa4a2">w25qxx_address_mode_t</a></div><div class="ttdeci">w25qxx_address_mode_t</div><div class="ttdoc">w25qxx address mode enumeration definition</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00093">driver_w25qxx.h:94</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_gaa57189cd4170b73f8b1300ca15e27de6"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gaa57189cd4170b73f8b1300ca15e27de6">w25qxx_set_type</a></div><div class="ttdeci">uint8_t w25qxx_set_type(w25qxx_handle_t *handle, w25qxx_type_t type)</div><div class="ttdoc">set the chip type</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l00217">driver_w25qxx.c:217</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_gaaee8264d840e51460821cb6e609338ee"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gaaee8264d840e51460821cb6e609338ee">w25qxx_write</a></div><div class="ttdeci">uint8_t w25qxx_write(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">write data</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l08415">driver_w25qxx.c:8415</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_gac345ba10af5ad355578fa97697487123"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gac345ba10af5ad355578fa97697487123">w25qxx_fast_read</a></div><div class="ttdeci">uint8_t w25qxx_fast_read(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">read in the fast mode</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l03634">driver_w25qxx.c:3634</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_gacbf327a42336baf10713a1796ff4f2fe"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gacbf327a42336baf10713a1796ff4f2fe">w25qxx_interface_t</a></div><div class="ttdeci">w25qxx_interface_t</div><div class="ttdoc">w25qxx interface enumeration definition</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00075">driver_w25qxx.h:76</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_gad0e125eff304ce66fb3956d2c8c80656"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gad0e125eff304ce66fb3956d2c8c80656">w25qxx_set_address_mode</a></div><div class="ttdeci">uint8_t w25qxx_set_address_mode(w25qxx_handle_t *handle, w25qxx_address_mode_t mode)</div><div class="ttdoc">set the chip address mode</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l00304">driver_w25qxx.c:304</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_gad4c9b8b0a2d0916c13567f9d7e494cf8"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gad4c9b8b0a2d0916c13567f9d7e494cf8">w25qxx_get_dual_quad_spi</a></div><div class="ttdeci">uint8_t w25qxx_get_dual_quad_spi(w25qxx_handle_t *handle, w25qxx_bool_t *enable)</div><div class="ttdoc">get the dual quad spi status</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l00196">driver_w25qxx.c:196</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_gae4effce67e36120325e3c7b245b90142"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gae4effce67e36120325e3c7b245b90142">w25qxx_power_down</a></div><div class="ttdeci">uint8_t w25qxx_power_down(w25qxx_handle_t *handle)</div><div class="ttdoc">power down</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l01792">driver_w25qxx.c:1792</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_gae7479fc9ce911a52e3c5b6f1a615b879"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gae7479fc9ce911a52e3c5b6f1a615b879">w25qxx_read</a></div><div class="ttdeci">uint8_t w25qxx_read(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">read data</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l07289">driver_w25qxx.c:7289</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_gaf53bc5f6073482b9b74efd417ec7ac83"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gaf53bc5f6073482b9b74efd417ec7ac83">w25qxx_block_erase_64k</a></div><div class="ttdeci">uint8_t w25qxx_block_erase_64k(w25qxx_handle_t *handle, uint32_t addr)</div><div class="ttdoc">erase the 64k block</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l05758">driver_w25qxx.c:5758</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_gafb2690946f5baf4be6f3a63dde5491fb"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gafb2690946f5baf4be6f3a63dde5491fb">w25qxx_bool_t</a></div><div class="ttdeci">w25qxx_bool_t</div><div class="ttdoc">w25qxx bool enumeration definition</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00084">driver_w25qxx.h:85</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_gga6cb4e5164464df549201dd96cb7a58b1a1ad4f72437de5f26cb7b212d4d91e7c2"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a1ad4f72437de5f26cb7b212d4d91e7c2">W25Q80</a></div><div class="ttdeci">@ W25Q80</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00064">driver_w25qxx.h:64</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_gga6cb4e5164464df549201dd96cb7a58b1a3ea98b2b3e06afa29441c51548bbb16e"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a3ea98b2b3e06afa29441c51548bbb16e">W25Q64</a></div><div class="ttdeci">@ W25Q64</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00067">driver_w25qxx.h:67</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_gga6cb4e5164464df549201dd96cb7a58b1a4fdad551be6485441db5951f196db7cb"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a4fdad551be6485441db5951f196db7cb">W25Q32</a></div><div class="ttdeci">@ W25Q32</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00066">driver_w25qxx.h:66</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_gga6cb4e5164464df549201dd96cb7a58b1a66acb81a2d520a7d92ce1d37210c6435"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a66acb81a2d520a7d92ce1d37210c6435">W25Q16</a></div><div class="ttdeci">@ W25Q16</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00065">driver_w25qxx.h:65</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_gga6cb4e5164464df549201dd96cb7a58b1a75afcbe71906d3884f4fcc119c1cabd5"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a75afcbe71906d3884f4fcc119c1cabd5">W25Q128</a></div><div class="ttdeci">@ W25Q128</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00068">driver_w25qxx.h:68</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a></div><div class="ttdeci">@ W25Q256</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00069">driver_w25qxx.h:69</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a></div><div class="ttdeci">@ W25QXX_ADDRESS_MODE_3_BYTE</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00095">driver_w25qxx.h:95</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a></div><div class="ttdeci">@ W25QXX_ADDRESS_MODE_4_BYTE</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00096">driver_w25qxx.h:96</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_ggacbf327a42336baf10713a1796ff4f2fea895dcb5c91da89fad1c12161ffd2d5d4"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2fea895dcb5c91da89fad1c12161ffd2d5d4">W25QXX_INTERFACE_QSPI</a></div><div class="ttdeci">@ W25QXX_INTERFACE_QSPI</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00078">driver_w25qxx.h:78</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a></div><div class="ttdeci">@ W25QXX_INTERFACE_SPI</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00077">driver_w25qxx.h:77</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_ggafb2690946f5baf4be6f3a63dde5491fba02afbdc2c6c3d761cd31ac39c857ee9a"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ggafb2690946f5baf4be6f3a63dde5491fba02afbdc2c6c3d761cd31ac39c857ee9a">W25QXX_BOOL_FALSE</a></div><div class="ttdeci">@ W25QXX_BOOL_FALSE</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00086">driver_w25qxx.h:86</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_ggafb2690946f5baf4be6f3a63dde5491fbae2a935d12b0b1bc9fc321246ee0e0df8"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ggafb2690946f5baf4be6f3a63dde5491fbae2a935d12b0b1bc9fc321246ee0e0df8">W25QXX_BOOL_TRUE</a></div><div class="ttdeci">@ W25QXX_BOOL_TRUE</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00087">driver_w25qxx.h:87</a></div></div>
-<div class="ttc" id="agroup__w25qxx__extern__driver_html_ga9623a3bec148b148498480518a66cb2b"><div class="ttname"><a href="group__w25qxx__extern__driver.html#ga9623a3bec148b148498480518a66cb2b">w25qxx_write_read_reg</a></div><div class="ttdeci">uint8_t w25qxx_write_read_reg(w25qxx_handle_t *handle, uint8_t instruction, uint8_t instruction_line, uint32_t address, uint8_t address_line, uint8_t address_len, uint32_t alternate, uint8_t alternate_line, uint8_t alternate_len, uint8_t dummy, uint8_t *in_buf, uint32_t in_len, uint8_t *out_buf, uint32_t out_len, uint8_t data_line)</div><div class="ttdoc">write and read register</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l08535">driver_w25qxx.c:8535</a></div></div>
-<div class="ttc" id="astructw25qxx__handle__s_html"><div class="ttname"><a href="structw25qxx__handle__s.html">w25qxx_handle_s</a></div><div class="ttdoc">w25qxx handle structure definition</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00209">driver_w25qxx.h:210</a></div></div>
-<div class="ttc" id="astructw25qxx__handle__s_html_a19bedf28d2b9748f6a62d9ae93f4e68f"><div class="ttname"><a href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">w25qxx_handle_s::inited</a></div><div class="ttdeci">uint8_t inited</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00221">driver_w25qxx.h:221</a></div></div>
-<div class="ttc" id="astructw25qxx__handle__s_html_a2121914a1858618e9216fa2daf0a42a2"><div class="ttname"><a href="structw25qxx__handle__s.html#a2121914a1858618e9216fa2daf0a42a2">w25qxx_handle_s::buf</a></div><div class="ttdeci">uint8_t buf[256+6]</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00228">driver_w25qxx.h:228</a></div></div>
-<div class="ttc" id="astructw25qxx__handle__s_html_a2d39cde883403779e3da9dd39c32bec5"><div class="ttname"><a href="structw25qxx__handle__s.html#a2d39cde883403779e3da9dd39c32bec5">w25qxx_handle_s::spi_qspi_write_read</a></div><div class="ttdeci">uint8_t(* spi_qspi_write_read)(uint8_t instruction, uint8_t instruction_line, uint32_t address, uint8_t address_line, uint8_t address_len, uint32_t alternate, uint8_t alternate_line, uint8_t alternate_len, uint8_t dummy, uint8_t *in_buf, uint32_t in_len, uint8_t *out_buf, uint32_t out_len, uint8_t data_line)</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00213">driver_w25qxx.h:213</a></div></div>
-<div class="ttc" id="astructw25qxx__handle__s_html_a3d28993689552e18d554dc0644efcf16"><div class="ttname"><a href="structw25qxx__handle__s.html#a3d28993689552e18d554dc0644efcf16">w25qxx_handle_s::param</a></div><div class="ttdeci">uint8_t param</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00224">driver_w25qxx.h:224</a></div></div>
-<div class="ttc" id="astructw25qxx__handle__s_html_a406c9433252b7366de417b7a60915c81"><div class="ttname"><a href="structw25qxx__handle__s.html#a406c9433252b7366de417b7a60915c81">w25qxx_handle_s::delay_ms</a></div><div class="ttdeci">void(* delay_ms)(uint32_t ms)</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00218">driver_w25qxx.h:218</a></div></div>
-<div class="ttc" id="astructw25qxx__handle__s_html_a4568e23228174b7d32678d9a96d2420c"><div class="ttname"><a href="structw25qxx__handle__s.html#a4568e23228174b7d32678d9a96d2420c">w25qxx_handle_s::spi_qspi_deinit</a></div><div class="ttdeci">uint8_t(* spi_qspi_deinit)(void)</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00212">driver_w25qxx.h:212</a></div></div>
-<div class="ttc" id="astructw25qxx__handle__s_html_a5aafa09a37ea9bdb7d3788ff5d39c729"><div class="ttname"><a href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">w25qxx_handle_s::address_mode</a></div><div class="ttdeci">uint8_t address_mode</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00223">driver_w25qxx.h:223</a></div></div>
-<div class="ttc" id="astructw25qxx__handle__s_html_a769d5b3a6c14790a0e126e8fe70b384b"><div class="ttname"><a href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">w25qxx_handle_s::debug_print</a></div><div class="ttdeci">void(* debug_print)(const char *const fmt,...)</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00220">driver_w25qxx.h:220</a></div></div>
-<div class="ttc" id="astructw25qxx__handle__s_html_a97ffc4fce945527bd6ab25a3596caef7"><div class="ttname"><a href="structw25qxx__handle__s.html#a97ffc4fce945527bd6ab25a3596caef7">w25qxx_handle_s::delay_us</a></div><div class="ttdeci">void(* delay_us)(uint32_t us)</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00219">driver_w25qxx.h:219</a></div></div>
-<div class="ttc" id="astructw25qxx__handle__s_html_a9bdb5522ed967c80572351dd53dafe70"><div class="ttname"><a href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">w25qxx_handle_s::spi_qspi</a></div><div class="ttdeci">uint8_t spi_qspi</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00227">driver_w25qxx.h:227</a></div></div>
-<div class="ttc" id="astructw25qxx__handle__s_html_ac2bd5f4f7f52f548fd421c9eedbce1c7"><div class="ttname"><a href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">w25qxx_handle_s::dual_quad_spi_enable</a></div><div class="ttdeci">uint8_t dual_quad_spi_enable</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00226">driver_w25qxx.h:226</a></div></div>
-<div class="ttc" id="astructw25qxx__handle__s_html_ac80aa2927adf500634749513e88c474b"><div class="ttname"><a href="structw25qxx__handle__s.html#ac80aa2927adf500634749513e88c474b">w25qxx_handle_s::buf_4k</a></div><div class="ttdeci">uint8_t buf_4k[4096+1]</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00229">driver_w25qxx.h:229</a></div></div>
-<div class="ttc" id="astructw25qxx__handle__s_html_acb5cfd209ba75c853d03f701e7f91679"><div class="ttname"><a href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">w25qxx_handle_s::type</a></div><div class="ttdeci">uint16_t type</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00222">driver_w25qxx.h:222</a></div></div>
-<div class="ttc" id="astructw25qxx__handle__s_html_aec834df46e5185868dfdcc6fcec2e801"><div class="ttname"><a href="structw25qxx__handle__s.html#aec834df46e5185868dfdcc6fcec2e801">w25qxx_handle_s::spi_qspi_init</a></div><div class="ttdeci">uint8_t(* spi_qspi_init)(void)</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00211">driver_w25qxx.h:211</a></div></div>
-<div class="ttc" id="astructw25qxx__handle__s_html_aff7b59f569ec689a7580bd6911daafd5"><div class="ttname"><a href="structw25qxx__handle__s.html#aff7b59f569ec689a7580bd6911daafd5">w25qxx_handle_s::dummy</a></div><div class="ttdeci">uint8_t dummy</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00225">driver_w25qxx.h:225</a></div></div>
-<div class="ttc" id="astructw25qxx__info__s_html"><div class="ttname"><a href="structw25qxx__info__s.html">w25qxx_info_s</a></div><div class="ttdoc">w25qxx information structure definition</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00235">driver_w25qxx.h:236</a></div></div>
-<div class="ttc" id="astructw25qxx__info__s_html_a3366a5dce9b829e03c3d321c2b4df3f6"><div class="ttname"><a href="structw25qxx__info__s.html#a3366a5dce9b829e03c3d321c2b4df3f6">w25qxx_info_s::temperature_max</a></div><div class="ttdeci">float temperature_max</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00244">driver_w25qxx.h:244</a></div></div>
-<div class="ttc" id="astructw25qxx__info__s_html_a3d2b12bcac7a85ea8646bff9debe8660"><div class="ttname"><a href="structw25qxx__info__s.html#a3d2b12bcac7a85ea8646bff9debe8660">w25qxx_info_s::supply_voltage_max_v</a></div><div class="ttdeci">float supply_voltage_max_v</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00241">driver_w25qxx.h:241</a></div></div>
-<div class="ttc" id="astructw25qxx__info__s_html_a41b0bd442708b70d252c50b92c75265a"><div class="ttname"><a href="structw25qxx__info__s.html#a41b0bd442708b70d252c50b92c75265a">w25qxx_info_s::driver_version</a></div><div class="ttdeci">uint32_t driver_version</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00245">driver_w25qxx.h:245</a></div></div>
-<div class="ttc" id="astructw25qxx__info__s_html_a5778305279cae46b2ecf862e97f73600"><div class="ttname"><a href="structw25qxx__info__s.html#a5778305279cae46b2ecf862e97f73600">w25qxx_info_s::interface</a></div><div class="ttdeci">char interface[16]</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00239">driver_w25qxx.h:239</a></div></div>
-<div class="ttc" id="astructw25qxx__info__s_html_a8f9dbe66ac0b66ebae0a36fcb4ba368e"><div class="ttname"><a href="structw25qxx__info__s.html#a8f9dbe66ac0b66ebae0a36fcb4ba368e">w25qxx_info_s::temperature_min</a></div><div class="ttdeci">float temperature_min</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00243">driver_w25qxx.h:243</a></div></div>
-<div class="ttc" id="astructw25qxx__info__s_html_a9db82802561bf22d799b03a345f1d1dc"><div class="ttname"><a href="structw25qxx__info__s.html#a9db82802561bf22d799b03a345f1d1dc">w25qxx_info_s::max_current_ma</a></div><div class="ttdeci">float max_current_ma</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00242">driver_w25qxx.h:242</a></div></div>
-<div class="ttc" id="astructw25qxx__info__s_html_ad25285dbf810c90f8eaf3fcef6f2b2ea"><div class="ttname"><a href="structw25qxx__info__s.html#ad25285dbf810c90f8eaf3fcef6f2b2ea">w25qxx_info_s::manufacturer_name</a></div><div class="ttdeci">char manufacturer_name[32]</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00238">driver_w25qxx.h:238</a></div></div>
-<div class="ttc" id="astructw25qxx__info__s_html_ad8bde6ddadaf43d951e62f3befb9d35a"><div class="ttname"><a href="structw25qxx__info__s.html#ad8bde6ddadaf43d951e62f3befb9d35a">w25qxx_info_s::supply_voltage_min_v</a></div><div class="ttdeci">float supply_voltage_min_v</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00240">driver_w25qxx.h:240</a></div></div>
-<div class="ttc" id="astructw25qxx__info__s_html_af890958c72bd715cc6454a10dc846ae6"><div class="ttname"><a href="structw25qxx__info__s.html#af890958c72bd715cc6454a10dc846ae6">w25qxx_info_s::chip_name</a></div><div class="ttdeci">char chip_name[32]</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00237">driver_w25qxx.h:237</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga6280e7e4ab26306436e2c210617a28b3"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga6280e7e4ab26306436e2c210617a28b3">w25qxx_page_program</a></div><div class="ttdeci">uint8_t w25qxx_page_program(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint16_t len)</div><div class="ttdoc">page program</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l04569">driver_w25qxx.c:4569</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga665139209b0abc386474a78d89cce6f2"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga665139209b0abc386474a78d89cce6f2">w25qxx_set_dual_quad_spi</a></div><div class="ttdeci">uint8_t w25qxx_set_dual_quad_spi(w25qxx_handle_t *handle, w25qxx_bool_t enable)</div><div class="ttdoc">enable or disable the dual quad spi</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l00175">driver_w25qxx.c:175</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga685379998dad173b6d9c0b0da270685c"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga685379998dad173b6d9c0b0da270685c">w25qxx_get_type</a></div><div class="ttdeci">uint8_t w25qxx_get_type(w25qxx_handle_t *handle, w25qxx_type_t *type)</div><div class="ttdoc">get the chip type</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l00238">driver_w25qxx.c:238</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga6cb4e5164464df549201dd96cb7a58b1"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga6cb4e5164464df549201dd96cb7a58b1">w25qxx_type_t</a></div><div class="ttdeci">w25qxx_type_t</div><div class="ttdoc">w25qxx type enumeration definition</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00062">driver_w25qxx.h:63</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga86ef839d475f3926a0be46bbc18d4b45"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga86ef839d475f3926a0be46bbc18d4b45">w25qxx_get_interface</a></div><div class="ttdeci">uint8_t w25qxx_get_interface(w25qxx_handle_t *handle, w25qxx_interface_t *interface)</div><div class="ttdoc">get the chip interface</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l00280">driver_w25qxx.c:280</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga8e7a163b3d255b8c7fc035d0d60f2491"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga8e7a163b3d255b8c7fc035d0d60f2491">w25qxx_init</a></div><div class="ttdeci">uint8_t w25qxx_init(w25qxx_handle_t *handle)</div><div class="ttdoc">initialize the chip</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l06819">driver_w25qxx.c:6819</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga921836a777b082ff4d0f322ccfda6b22"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga921836a777b082ff4d0f322ccfda6b22">w25qxx_get_manufacturer_device_id</a></div><div class="ttdeci">uint8_t w25qxx_get_manufacturer_device_id(w25qxx_handle_t *handle, uint8_t *manufacturer, uint8_t *device_id)</div><div class="ttdoc">get the manufacturer &amp;&amp; device id information</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l01952">driver_w25qxx.c:1952</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga996e2d3009432e7f8c1a5175c4438a57"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga996e2d3009432e7f8c1a5175c4438a57">w25qxx_info</a></div><div class="ttdeci">uint8_t w25qxx_info(w25qxx_info_t *info)</div><div class="ttdoc">get chip's information</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l08566">driver_w25qxx.c:8566</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga9a03c51b4c84655350c15fbfce0a6b40"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga9a03c51b4c84655350c15fbfce0a6b40">w25qxx_sector_erase_4k</a></div><div class="ttdeci">uint8_t w25qxx_sector_erase_4k(w25qxx_handle_t *handle, uint32_t addr)</div><div class="ttdoc">erase the 4k sector</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l05080">driver_w25qxx.c:5080</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_gaa293c3a46c4010a3af597a83e646de0d"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a></div><div class="ttdeci">uint8_t w25qxx_deinit(w25qxx_handle_t *handle)</div><div class="ttdoc">close the chip</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l07195">driver_w25qxx.c:7195</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_gaa4c45f146d1ade8a2da8e751818fa4a2"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gaa4c45f146d1ade8a2da8e751818fa4a2">w25qxx_address_mode_t</a></div><div class="ttdeci">w25qxx_address_mode_t</div><div class="ttdoc">w25qxx address mode enumeration definition</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00093">driver_w25qxx.h:94</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_gaa57189cd4170b73f8b1300ca15e27de6"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gaa57189cd4170b73f8b1300ca15e27de6">w25qxx_set_type</a></div><div class="ttdeci">uint8_t w25qxx_set_type(w25qxx_handle_t *handle, w25qxx_type_t type)</div><div class="ttdoc">set the chip type</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l00217">driver_w25qxx.c:217</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_gaaee8264d840e51460821cb6e609338ee"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gaaee8264d840e51460821cb6e609338ee">w25qxx_write</a></div><div class="ttdeci">uint8_t w25qxx_write(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">write data</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l08415">driver_w25qxx.c:8415</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_gac345ba10af5ad355578fa97697487123"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gac345ba10af5ad355578fa97697487123">w25qxx_fast_read</a></div><div class="ttdeci">uint8_t w25qxx_fast_read(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">read in the fast mode</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l03634">driver_w25qxx.c:3634</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_gacbf327a42336baf10713a1796ff4f2fe"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gacbf327a42336baf10713a1796ff4f2fe">w25qxx_interface_t</a></div><div class="ttdeci">w25qxx_interface_t</div><div class="ttdoc">w25qxx interface enumeration definition</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00075">driver_w25qxx.h:76</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_gad0e125eff304ce66fb3956d2c8c80656"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gad0e125eff304ce66fb3956d2c8c80656">w25qxx_set_address_mode</a></div><div class="ttdeci">uint8_t w25qxx_set_address_mode(w25qxx_handle_t *handle, w25qxx_address_mode_t mode)</div><div class="ttdoc">set the chip address mode</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l00304">driver_w25qxx.c:304</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_gad4c9b8b0a2d0916c13567f9d7e494cf8"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gad4c9b8b0a2d0916c13567f9d7e494cf8">w25qxx_get_dual_quad_spi</a></div><div class="ttdeci">uint8_t w25qxx_get_dual_quad_spi(w25qxx_handle_t *handle, w25qxx_bool_t *enable)</div><div class="ttdoc">get the dual quad spi status</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l00196">driver_w25qxx.c:196</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_gae4effce67e36120325e3c7b245b90142"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gae4effce67e36120325e3c7b245b90142">w25qxx_power_down</a></div><div class="ttdeci">uint8_t w25qxx_power_down(w25qxx_handle_t *handle)</div><div class="ttdoc">power down</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l01792">driver_w25qxx.c:1792</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_gae7479fc9ce911a52e3c5b6f1a615b879"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gae7479fc9ce911a52e3c5b6f1a615b879">w25qxx_read</a></div><div class="ttdeci">uint8_t w25qxx_read(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">read data</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l07289">driver_w25qxx.c:7289</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_gaf53bc5f6073482b9b74efd417ec7ac83"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gaf53bc5f6073482b9b74efd417ec7ac83">w25qxx_block_erase_64k</a></div><div class="ttdeci">uint8_t w25qxx_block_erase_64k(w25qxx_handle_t *handle, uint32_t addr)</div><div class="ttdoc">erase the 64k block</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l05758">driver_w25qxx.c:5758</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_gafb2690946f5baf4be6f3a63dde5491fb"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gafb2690946f5baf4be6f3a63dde5491fb">w25qxx_bool_t</a></div><div class="ttdeci">w25qxx_bool_t</div><div class="ttdoc">w25qxx bool enumeration definition</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00084">driver_w25qxx.h:85</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_gga6cb4e5164464df549201dd96cb7a58b1a1ad4f72437de5f26cb7b212d4d91e7c2"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a1ad4f72437de5f26cb7b212d4d91e7c2">W25Q80</a></div><div class="ttdeci">@ W25Q80</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00064">driver_w25qxx.h:64</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_gga6cb4e5164464df549201dd96cb7a58b1a3ea98b2b3e06afa29441c51548bbb16e"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a3ea98b2b3e06afa29441c51548bbb16e">W25Q64</a></div><div class="ttdeci">@ W25Q64</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00067">driver_w25qxx.h:67</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_gga6cb4e5164464df549201dd96cb7a58b1a4fdad551be6485441db5951f196db7cb"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a4fdad551be6485441db5951f196db7cb">W25Q32</a></div><div class="ttdeci">@ W25Q32</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00066">driver_w25qxx.h:66</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_gga6cb4e5164464df549201dd96cb7a58b1a66acb81a2d520a7d92ce1d37210c6435"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a66acb81a2d520a7d92ce1d37210c6435">W25Q16</a></div><div class="ttdeci">@ W25Q16</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00065">driver_w25qxx.h:65</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_gga6cb4e5164464df549201dd96cb7a58b1a75afcbe71906d3884f4fcc119c1cabd5"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a75afcbe71906d3884f4fcc119c1cabd5">W25Q128</a></div><div class="ttdeci">@ W25Q128</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00068">driver_w25qxx.h:68</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a></div><div class="ttdeci">@ W25Q256</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00069">driver_w25qxx.h:69</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a></div><div class="ttdeci">@ W25QXX_ADDRESS_MODE_3_BYTE</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00095">driver_w25qxx.h:95</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a></div><div class="ttdeci">@ W25QXX_ADDRESS_MODE_4_BYTE</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00096">driver_w25qxx.h:96</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_ggacbf327a42336baf10713a1796ff4f2fea895dcb5c91da89fad1c12161ffd2d5d4"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2fea895dcb5c91da89fad1c12161ffd2d5d4">W25QXX_INTERFACE_QSPI</a></div><div class="ttdeci">@ W25QXX_INTERFACE_QSPI</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00078">driver_w25qxx.h:78</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a></div><div class="ttdeci">@ W25QXX_INTERFACE_SPI</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00077">driver_w25qxx.h:77</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_ggafb2690946f5baf4be6f3a63dde5491fba02afbdc2c6c3d761cd31ac39c857ee9a"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ggafb2690946f5baf4be6f3a63dde5491fba02afbdc2c6c3d761cd31ac39c857ee9a">W25QXX_BOOL_FALSE</a></div><div class="ttdeci">@ W25QXX_BOOL_FALSE</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00086">driver_w25qxx.h:86</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_ggafb2690946f5baf4be6f3a63dde5491fbae2a935d12b0b1bc9fc321246ee0e0df8"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ggafb2690946f5baf4be6f3a63dde5491fbae2a935d12b0b1bc9fc321246ee0e0df8">W25QXX_BOOL_TRUE</a></div><div class="ttdeci">@ W25QXX_BOOL_TRUE</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00087">driver_w25qxx.h:87</a></div></div>
+<div class="ttc" id="agroup__w25qxx__extern__driver_html_ga9623a3bec148b148498480518a66cb2b"><div class="ttname"><a href="group__w25qxx__extern__driver.html#ga9623a3bec148b148498480518a66cb2b">w25qxx_write_read_reg</a></div><div class="ttdeci">uint8_t w25qxx_write_read_reg(w25qxx_handle_t *handle, uint8_t instruction, uint8_t instruction_line, uint32_t address, uint8_t address_line, uint8_t address_len, uint32_t alternate, uint8_t alternate_line, uint8_t alternate_len, uint8_t dummy, uint8_t *in_buf, uint32_t in_len, uint8_t *out_buf, uint32_t out_len, uint8_t data_line)</div><div class="ttdoc">write and read register</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l08535">driver_w25qxx.c:8535</a></div></div>
+<div class="ttc" id="astructw25qxx__handle__s_html"><div class="ttname"><a href="structw25qxx__handle__s.html">w25qxx_handle_s</a></div><div class="ttdoc">w25qxx handle structure definition</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00209">driver_w25qxx.h:210</a></div></div>
+<div class="ttc" id="astructw25qxx__handle__s_html_a19bedf28d2b9748f6a62d9ae93f4e68f"><div class="ttname"><a href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">w25qxx_handle_s::inited</a></div><div class="ttdeci">uint8_t inited</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00221">driver_w25qxx.h:221</a></div></div>
+<div class="ttc" id="astructw25qxx__handle__s_html_a2121914a1858618e9216fa2daf0a42a2"><div class="ttname"><a href="structw25qxx__handle__s.html#a2121914a1858618e9216fa2daf0a42a2">w25qxx_handle_s::buf</a></div><div class="ttdeci">uint8_t buf[256+6]</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00228">driver_w25qxx.h:228</a></div></div>
+<div class="ttc" id="astructw25qxx__handle__s_html_a2d39cde883403779e3da9dd39c32bec5"><div class="ttname"><a href="structw25qxx__handle__s.html#a2d39cde883403779e3da9dd39c32bec5">w25qxx_handle_s::spi_qspi_write_read</a></div><div class="ttdeci">uint8_t(* spi_qspi_write_read)(uint8_t instruction, uint8_t instruction_line, uint32_t address, uint8_t address_line, uint8_t address_len, uint32_t alternate, uint8_t alternate_line, uint8_t alternate_len, uint8_t dummy, uint8_t *in_buf, uint32_t in_len, uint8_t *out_buf, uint32_t out_len, uint8_t data_line)</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00213">driver_w25qxx.h:213</a></div></div>
+<div class="ttc" id="astructw25qxx__handle__s_html_a3d28993689552e18d554dc0644efcf16"><div class="ttname"><a href="structw25qxx__handle__s.html#a3d28993689552e18d554dc0644efcf16">w25qxx_handle_s::param</a></div><div class="ttdeci">uint8_t param</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00224">driver_w25qxx.h:224</a></div></div>
+<div class="ttc" id="astructw25qxx__handle__s_html_a406c9433252b7366de417b7a60915c81"><div class="ttname"><a href="structw25qxx__handle__s.html#a406c9433252b7366de417b7a60915c81">w25qxx_handle_s::delay_ms</a></div><div class="ttdeci">void(* delay_ms)(uint32_t ms)</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00218">driver_w25qxx.h:218</a></div></div>
+<div class="ttc" id="astructw25qxx__handle__s_html_a4568e23228174b7d32678d9a96d2420c"><div class="ttname"><a href="structw25qxx__handle__s.html#a4568e23228174b7d32678d9a96d2420c">w25qxx_handle_s::spi_qspi_deinit</a></div><div class="ttdeci">uint8_t(* spi_qspi_deinit)(void)</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00212">driver_w25qxx.h:212</a></div></div>
+<div class="ttc" id="astructw25qxx__handle__s_html_a5aafa09a37ea9bdb7d3788ff5d39c729"><div class="ttname"><a href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">w25qxx_handle_s::address_mode</a></div><div class="ttdeci">uint8_t address_mode</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00223">driver_w25qxx.h:223</a></div></div>
+<div class="ttc" id="astructw25qxx__handle__s_html_a769d5b3a6c14790a0e126e8fe70b384b"><div class="ttname"><a href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">w25qxx_handle_s::debug_print</a></div><div class="ttdeci">void(* debug_print)(const char *const fmt,...)</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00220">driver_w25qxx.h:220</a></div></div>
+<div class="ttc" id="astructw25qxx__handle__s_html_a97ffc4fce945527bd6ab25a3596caef7"><div class="ttname"><a href="structw25qxx__handle__s.html#a97ffc4fce945527bd6ab25a3596caef7">w25qxx_handle_s::delay_us</a></div><div class="ttdeci">void(* delay_us)(uint32_t us)</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00219">driver_w25qxx.h:219</a></div></div>
+<div class="ttc" id="astructw25qxx__handle__s_html_a9bdb5522ed967c80572351dd53dafe70"><div class="ttname"><a href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">w25qxx_handle_s::spi_qspi</a></div><div class="ttdeci">uint8_t spi_qspi</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00227">driver_w25qxx.h:227</a></div></div>
+<div class="ttc" id="astructw25qxx__handle__s_html_ac2bd5f4f7f52f548fd421c9eedbce1c7"><div class="ttname"><a href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">w25qxx_handle_s::dual_quad_spi_enable</a></div><div class="ttdeci">uint8_t dual_quad_spi_enable</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00226">driver_w25qxx.h:226</a></div></div>
+<div class="ttc" id="astructw25qxx__handle__s_html_ac80aa2927adf500634749513e88c474b"><div class="ttname"><a href="structw25qxx__handle__s.html#ac80aa2927adf500634749513e88c474b">w25qxx_handle_s::buf_4k</a></div><div class="ttdeci">uint8_t buf_4k[4096+1]</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00229">driver_w25qxx.h:229</a></div></div>
+<div class="ttc" id="astructw25qxx__handle__s_html_acb5cfd209ba75c853d03f701e7f91679"><div class="ttname"><a href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">w25qxx_handle_s::type</a></div><div class="ttdeci">uint16_t type</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00222">driver_w25qxx.h:222</a></div></div>
+<div class="ttc" id="astructw25qxx__handle__s_html_aec834df46e5185868dfdcc6fcec2e801"><div class="ttname"><a href="structw25qxx__handle__s.html#aec834df46e5185868dfdcc6fcec2e801">w25qxx_handle_s::spi_qspi_init</a></div><div class="ttdeci">uint8_t(* spi_qspi_init)(void)</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00211">driver_w25qxx.h:211</a></div></div>
+<div class="ttc" id="astructw25qxx__handle__s_html_aff7b59f569ec689a7580bd6911daafd5"><div class="ttname"><a href="structw25qxx__handle__s.html#aff7b59f569ec689a7580bd6911daafd5">w25qxx_handle_s::dummy</a></div><div class="ttdeci">uint8_t dummy</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00225">driver_w25qxx.h:225</a></div></div>
+<div class="ttc" id="astructw25qxx__info__s_html"><div class="ttname"><a href="structw25qxx__info__s.html">w25qxx_info_s</a></div><div class="ttdoc">w25qxx information structure definition</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00235">driver_w25qxx.h:236</a></div></div>
+<div class="ttc" id="astructw25qxx__info__s_html_a3366a5dce9b829e03c3d321c2b4df3f6"><div class="ttname"><a href="structw25qxx__info__s.html#a3366a5dce9b829e03c3d321c2b4df3f6">w25qxx_info_s::temperature_max</a></div><div class="ttdeci">float temperature_max</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00244">driver_w25qxx.h:244</a></div></div>
+<div class="ttc" id="astructw25qxx__info__s_html_a3d2b12bcac7a85ea8646bff9debe8660"><div class="ttname"><a href="structw25qxx__info__s.html#a3d2b12bcac7a85ea8646bff9debe8660">w25qxx_info_s::supply_voltage_max_v</a></div><div class="ttdeci">float supply_voltage_max_v</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00241">driver_w25qxx.h:241</a></div></div>
+<div class="ttc" id="astructw25qxx__info__s_html_a41b0bd442708b70d252c50b92c75265a"><div class="ttname"><a href="structw25qxx__info__s.html#a41b0bd442708b70d252c50b92c75265a">w25qxx_info_s::driver_version</a></div><div class="ttdeci">uint32_t driver_version</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00245">driver_w25qxx.h:245</a></div></div>
+<div class="ttc" id="astructw25qxx__info__s_html_a5778305279cae46b2ecf862e97f73600"><div class="ttname"><a href="structw25qxx__info__s.html#a5778305279cae46b2ecf862e97f73600">w25qxx_info_s::interface</a></div><div class="ttdeci">char interface[16]</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00239">driver_w25qxx.h:239</a></div></div>
+<div class="ttc" id="astructw25qxx__info__s_html_a8f9dbe66ac0b66ebae0a36fcb4ba368e"><div class="ttname"><a href="structw25qxx__info__s.html#a8f9dbe66ac0b66ebae0a36fcb4ba368e">w25qxx_info_s::temperature_min</a></div><div class="ttdeci">float temperature_min</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00243">driver_w25qxx.h:243</a></div></div>
+<div class="ttc" id="astructw25qxx__info__s_html_a9db82802561bf22d799b03a345f1d1dc"><div class="ttname"><a href="structw25qxx__info__s.html#a9db82802561bf22d799b03a345f1d1dc">w25qxx_info_s::max_current_ma</a></div><div class="ttdeci">float max_current_ma</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00242">driver_w25qxx.h:242</a></div></div>
+<div class="ttc" id="astructw25qxx__info__s_html_ad25285dbf810c90f8eaf3fcef6f2b2ea"><div class="ttname"><a href="structw25qxx__info__s.html#ad25285dbf810c90f8eaf3fcef6f2b2ea">w25qxx_info_s::manufacturer_name</a></div><div class="ttdeci">char manufacturer_name[32]</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00238">driver_w25qxx.h:238</a></div></div>
+<div class="ttc" id="astructw25qxx__info__s_html_ad8bde6ddadaf43d951e62f3befb9d35a"><div class="ttname"><a href="structw25qxx__info__s.html#ad8bde6ddadaf43d951e62f3befb9d35a">w25qxx_info_s::supply_voltage_min_v</a></div><div class="ttdeci">float supply_voltage_min_v</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00240">driver_w25qxx.h:240</a></div></div>
+<div class="ttc" id="astructw25qxx__info__s_html_af890958c72bd715cc6454a10dc846ae6"><div class="ttname"><a href="structw25qxx__info__s.html#af890958c72bd715cc6454a10dc846ae6">w25qxx_info_s::chip_name</a></div><div class="ttdeci">char chip_name[32]</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00237">driver_w25qxx.h:237</a></div></div>
 </div><!-- fragment --></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
     <li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="driver__w25qxx_8h.html">driver_w25qxx.h</a></li>
-    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
+    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/driver__w25qxx__advance_8c.html b/doc/html/driver__w25qxx__advance_8c.html
index f3e6536..f997ab0 100644
--- a/doc/html/driver__w25qxx__advance_8c.html
+++ b/doc/html/driver__w25qxx__advance_8c.html
@@ -1,9 +1,9 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.8"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>LibDriver W25QXX: example/driver_w25qxx_advance.c File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -23,11 +23,10 @@
 <div id="titlearea">
 <table cellspacing="0" cellpadding="0">
  <tbody>
- <tr style="height: 56px;">
+ <tr id="projectrow">
   <td id="projectlogo"><img alt="Logo" src="doxygen.png"/></td>
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">LibDriver W25QXX
-   &#160;<span id="projectnumber">1.0.0</span>
+  <td id="projectalign">
+   <div id="projectname">LibDriver W25QXX<span id="projectnumber">&#160;1.0.0</span>
    </div>
    <div id="projectbrief">W25QXX full function driver</div>
   </td>
@@ -36,21 +35,22 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.8 -->
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search/",'.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
 <script type="text/javascript" src="menu.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(function() {
   initMenu('',true,false,'search.php','Search');
   $(document).ready(function() { init_search(); });
 });
-/* @license-end */</script>
+/* @license-end */
+</script>
 <div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
@@ -64,7 +64,7 @@
   </div>
 </div>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(document).ready(function(){initNavTree('driver__w25qxx__advance_8c.html',''); initResizable(); });
 /* @license-end */
 </script>
@@ -78,16 +78,22 @@
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
 </div>
 
 <div class="header">
   <div class="summary">
 <a href="#func-members">Functions</a>  </div>
-  <div class="headertitle">
-<div class="title">driver_w25qxx_advance.c File Reference</div>  </div>
+  <div class="headertitle"><div class="title">driver_w25qxx_advance.c File Reference</div></div>
 </div><!--header-->
 <div class="contents">
 
@@ -97,133 +103,133 @@
 </div>
 <p><a href="driver__w25qxx__advance_8c_source.html">Go to the source code of this file.</a></p>
 <table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
 Functions</h2></td></tr>
-<tr class="memitem:ga413b420bc199d09ce5cafee4a4debb28"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga413b420bc199d09ce5cafee4a4debb28">w25qxx_advance_init</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga6cb4e5164464df549201dd96cb7a58b1">w25qxx_type_t</a> type, <a class="el" href="group__w25qxx__basic__driver.html#gacbf327a42336baf10713a1796ff4f2fe">w25qxx_interface_t</a> interface, <a class="el" href="group__w25qxx__basic__driver.html#gafb2690946f5baf4be6f3a63dde5491fb">w25qxx_bool_t</a> dual_quad_spi_enable)</td></tr>
-<tr class="memdesc:ga413b420bc199d09ce5cafee4a4debb28"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example init  <a href="group__w25qxx__example__driver.html#ga413b420bc199d09ce5cafee4a4debb28">More...</a><br /></td></tr>
+<tr class="memitem:ga413b420bc199d09ce5cafee4a4debb28" id="r_ga413b420bc199d09ce5cafee4a4debb28"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga413b420bc199d09ce5cafee4a4debb28">w25qxx_advance_init</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga6cb4e5164464df549201dd96cb7a58b1">w25qxx_type_t</a> type, <a class="el" href="group__w25qxx__basic__driver.html#gacbf327a42336baf10713a1796ff4f2fe">w25qxx_interface_t</a> interface, <a class="el" href="group__w25qxx__basic__driver.html#gafb2690946f5baf4be6f3a63dde5491fb">w25qxx_bool_t</a> dual_quad_spi_enable)</td></tr>
+<tr class="memdesc:ga413b420bc199d09ce5cafee4a4debb28"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example init  <br /></td></tr>
 <tr class="separator:ga413b420bc199d09ce5cafee4a4debb28"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf390bbb2c4140f49d25822d963ead722"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#gaf390bbb2c4140f49d25822d963ead722">w25qxx_advance_deinit</a> (void)</td></tr>
-<tr class="memdesc:gaf390bbb2c4140f49d25822d963ead722"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example deinit  <a href="group__w25qxx__example__driver.html#gaf390bbb2c4140f49d25822d963ead722">More...</a><br /></td></tr>
+<tr class="memitem:gaf390bbb2c4140f49d25822d963ead722" id="r_gaf390bbb2c4140f49d25822d963ead722"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#gaf390bbb2c4140f49d25822d963ead722">w25qxx_advance_deinit</a> (void)</td></tr>
+<tr class="memdesc:gaf390bbb2c4140f49d25822d963ead722"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example deinit  <br /></td></tr>
 <tr class="separator:gaf390bbb2c4140f49d25822d963ead722"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga63f4e1dce2ef7c7de56461524fd22d04"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga63f4e1dce2ef7c7de56461524fd22d04">w25qxx_advance_write</a> (uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
-<tr class="memdesc:ga63f4e1dce2ef7c7de56461524fd22d04"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example write  <a href="group__w25qxx__example__driver.html#ga63f4e1dce2ef7c7de56461524fd22d04">More...</a><br /></td></tr>
+<tr class="memitem:ga63f4e1dce2ef7c7de56461524fd22d04" id="r_ga63f4e1dce2ef7c7de56461524fd22d04"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga63f4e1dce2ef7c7de56461524fd22d04">w25qxx_advance_write</a> (uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
+<tr class="memdesc:ga63f4e1dce2ef7c7de56461524fd22d04"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example write  <br /></td></tr>
 <tr class="separator:ga63f4e1dce2ef7c7de56461524fd22d04"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga013a389763200b54daaa345adf9329dc"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga013a389763200b54daaa345adf9329dc">w25qxx_advance_read</a> (uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
-<tr class="memdesc:ga013a389763200b54daaa345adf9329dc"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example read  <a href="group__w25qxx__example__driver.html#ga013a389763200b54daaa345adf9329dc">More...</a><br /></td></tr>
+<tr class="memitem:ga013a389763200b54daaa345adf9329dc" id="r_ga013a389763200b54daaa345adf9329dc"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga013a389763200b54daaa345adf9329dc">w25qxx_advance_read</a> (uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
+<tr class="memdesc:ga013a389763200b54daaa345adf9329dc"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example read  <br /></td></tr>
 <tr class="separator:ga013a389763200b54daaa345adf9329dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga5599de31797633ae75a63bcd5a8f4736"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga5599de31797633ae75a63bcd5a8f4736">w25qxx_advance_power_down</a> (void)</td></tr>
-<tr class="memdesc:ga5599de31797633ae75a63bcd5a8f4736"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example power down  <a href="group__w25qxx__example__driver.html#ga5599de31797633ae75a63bcd5a8f4736">More...</a><br /></td></tr>
+<tr class="memitem:ga5599de31797633ae75a63bcd5a8f4736" id="r_ga5599de31797633ae75a63bcd5a8f4736"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga5599de31797633ae75a63bcd5a8f4736">w25qxx_advance_power_down</a> (void)</td></tr>
+<tr class="memdesc:ga5599de31797633ae75a63bcd5a8f4736"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example power down  <br /></td></tr>
 <tr class="separator:ga5599de31797633ae75a63bcd5a8f4736"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga8a57e2d056d452abc14b0a08d4223251"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga8a57e2d056d452abc14b0a08d4223251">w25qxx_advance_wake_up</a> (void)</td></tr>
-<tr class="memdesc:ga8a57e2d056d452abc14b0a08d4223251"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example wake up  <a href="group__w25qxx__example__driver.html#ga8a57e2d056d452abc14b0a08d4223251">More...</a><br /></td></tr>
+<tr class="memitem:ga8a57e2d056d452abc14b0a08d4223251" id="r_ga8a57e2d056d452abc14b0a08d4223251"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga8a57e2d056d452abc14b0a08d4223251">w25qxx_advance_wake_up</a> (void)</td></tr>
+<tr class="memdesc:ga8a57e2d056d452abc14b0a08d4223251"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example wake up  <br /></td></tr>
 <tr class="separator:ga8a57e2d056d452abc14b0a08d4223251"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga15cb243f227ef8d897ef3208b622bded"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga15cb243f227ef8d897ef3208b622bded">w25qxx_advance_chip_erase</a> (void)</td></tr>
-<tr class="memdesc:ga15cb243f227ef8d897ef3208b622bded"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example chip erase  <a href="group__w25qxx__example__driver.html#ga15cb243f227ef8d897ef3208b622bded">More...</a><br /></td></tr>
+<tr class="memitem:ga15cb243f227ef8d897ef3208b622bded" id="r_ga15cb243f227ef8d897ef3208b622bded"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga15cb243f227ef8d897ef3208b622bded">w25qxx_advance_chip_erase</a> (void)</td></tr>
+<tr class="memdesc:ga15cb243f227ef8d897ef3208b622bded"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example chip erase  <br /></td></tr>
 <tr class="separator:ga15cb243f227ef8d897ef3208b622bded"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga0f49d960f8b6c6498ab293b369ffc389"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga0f49d960f8b6c6498ab293b369ffc389">w25qxx_advance_get_id</a> (uint8_t *manufacturer, uint8_t *device_id)</td></tr>
-<tr class="memdesc:ga0f49d960f8b6c6498ab293b369ffc389"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example get the manufacturer &amp;&amp; device id information  <a href="group__w25qxx__example__driver.html#ga0f49d960f8b6c6498ab293b369ffc389">More...</a><br /></td></tr>
+<tr class="memitem:ga0f49d960f8b6c6498ab293b369ffc389" id="r_ga0f49d960f8b6c6498ab293b369ffc389"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga0f49d960f8b6c6498ab293b369ffc389">w25qxx_advance_get_id</a> (uint8_t *manufacturer, uint8_t *device_id)</td></tr>
+<tr class="memdesc:ga0f49d960f8b6c6498ab293b369ffc389"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example get the manufacturer &amp;&amp; device id information  <br /></td></tr>
 <tr class="separator:ga0f49d960f8b6c6498ab293b369ffc389"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga39ff13988a3d451231cec3260c13a4cd"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga39ff13988a3d451231cec3260c13a4cd">w25qxx_advance_page_program</a> (uint32_t addr, uint8_t *data, uint16_t len)</td></tr>
-<tr class="memdesc:ga39ff13988a3d451231cec3260c13a4cd"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example page program  <a href="group__w25qxx__example__driver.html#ga39ff13988a3d451231cec3260c13a4cd">More...</a><br /></td></tr>
+<tr class="memitem:ga39ff13988a3d451231cec3260c13a4cd" id="r_ga39ff13988a3d451231cec3260c13a4cd"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga39ff13988a3d451231cec3260c13a4cd">w25qxx_advance_page_program</a> (uint32_t addr, uint8_t *data, uint16_t len)</td></tr>
+<tr class="memdesc:ga39ff13988a3d451231cec3260c13a4cd"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example page program  <br /></td></tr>
 <tr class="separator:ga39ff13988a3d451231cec3260c13a4cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga9325acc424c95624f15e11631082201d"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga9325acc424c95624f15e11631082201d">w25qxx_advance_sector_erase_4k</a> (uint32_t addr)</td></tr>
-<tr class="memdesc:ga9325acc424c95624f15e11631082201d"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example erase the 4k sector  <a href="group__w25qxx__example__driver.html#ga9325acc424c95624f15e11631082201d">More...</a><br /></td></tr>
+<tr class="memitem:ga9325acc424c95624f15e11631082201d" id="r_ga9325acc424c95624f15e11631082201d"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga9325acc424c95624f15e11631082201d">w25qxx_advance_sector_erase_4k</a> (uint32_t addr)</td></tr>
+<tr class="memdesc:ga9325acc424c95624f15e11631082201d"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example erase the 4k sector  <br /></td></tr>
 <tr class="separator:ga9325acc424c95624f15e11631082201d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaee04edb9e97785e423dffe14a1cad780"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#gaee04edb9e97785e423dffe14a1cad780">w25qxx_advance_block_erase_32k</a> (uint32_t addr)</td></tr>
-<tr class="memdesc:gaee04edb9e97785e423dffe14a1cad780"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example erase the 32k block  <a href="group__w25qxx__example__driver.html#gaee04edb9e97785e423dffe14a1cad780">More...</a><br /></td></tr>
+<tr class="memitem:gaee04edb9e97785e423dffe14a1cad780" id="r_gaee04edb9e97785e423dffe14a1cad780"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#gaee04edb9e97785e423dffe14a1cad780">w25qxx_advance_block_erase_32k</a> (uint32_t addr)</td></tr>
+<tr class="memdesc:gaee04edb9e97785e423dffe14a1cad780"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example erase the 32k block  <br /></td></tr>
 <tr class="separator:gaee04edb9e97785e423dffe14a1cad780"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae7cba4e0b22a1043fe304e46148fa13c"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#gae7cba4e0b22a1043fe304e46148fa13c">w25qxx_advance_block_erase_64k</a> (uint32_t addr)</td></tr>
-<tr class="memdesc:gae7cba4e0b22a1043fe304e46148fa13c"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example erase the 64k block  <a href="group__w25qxx__example__driver.html#gae7cba4e0b22a1043fe304e46148fa13c">More...</a><br /></td></tr>
+<tr class="memitem:gae7cba4e0b22a1043fe304e46148fa13c" id="r_gae7cba4e0b22a1043fe304e46148fa13c"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#gae7cba4e0b22a1043fe304e46148fa13c">w25qxx_advance_block_erase_64k</a> (uint32_t addr)</td></tr>
+<tr class="memdesc:gae7cba4e0b22a1043fe304e46148fa13c"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example erase the 64k block  <br /></td></tr>
 <tr class="separator:gae7cba4e0b22a1043fe304e46148fa13c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga7ade25a387b9d03ddecefd86fb328389"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga7ade25a387b9d03ddecefd86fb328389">w25qxx_advance_fast_read</a> (uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
-<tr class="memdesc:ga7ade25a387b9d03ddecefd86fb328389"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example read in the fast mode  <a href="group__w25qxx__example__driver.html#ga7ade25a387b9d03ddecefd86fb328389">More...</a><br /></td></tr>
+<tr class="memitem:ga7ade25a387b9d03ddecefd86fb328389" id="r_ga7ade25a387b9d03ddecefd86fb328389"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga7ade25a387b9d03ddecefd86fb328389">w25qxx_advance_fast_read</a> (uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
+<tr class="memdesc:ga7ade25a387b9d03ddecefd86fb328389"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example read in the fast mode  <br /></td></tr>
 <tr class="separator:ga7ade25a387b9d03ddecefd86fb328389"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac1c7f320706dd6d6d937da75b8a4da93"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#gac1c7f320706dd6d6d937da75b8a4da93">w25qxx_advance_only_spi_read</a> (uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
-<tr class="memdesc:gac1c7f320706dd6d6d937da75b8a4da93"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example read only in the spi interface  <a href="group__w25qxx__example__driver.html#gac1c7f320706dd6d6d937da75b8a4da93">More...</a><br /></td></tr>
+<tr class="memitem:gac1c7f320706dd6d6d937da75b8a4da93" id="r_gac1c7f320706dd6d6d937da75b8a4da93"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#gac1c7f320706dd6d6d937da75b8a4da93">w25qxx_advance_only_spi_read</a> (uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
+<tr class="memdesc:gac1c7f320706dd6d6d937da75b8a4da93"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example read only in the spi interface  <br /></td></tr>
 <tr class="separator:gac1c7f320706dd6d6d937da75b8a4da93"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga364d891407cf323d3686d36ad6357604"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga364d891407cf323d3686d36ad6357604">w25qxx_advance_only_spi_fast_read_dual_output</a> (uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
-<tr class="memdesc:ga364d891407cf323d3686d36ad6357604"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example fast read only in the spi dual output interface  <a href="group__w25qxx__example__driver.html#ga364d891407cf323d3686d36ad6357604">More...</a><br /></td></tr>
+<tr class="memitem:ga364d891407cf323d3686d36ad6357604" id="r_ga364d891407cf323d3686d36ad6357604"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga364d891407cf323d3686d36ad6357604">w25qxx_advance_only_spi_fast_read_dual_output</a> (uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
+<tr class="memdesc:ga364d891407cf323d3686d36ad6357604"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example fast read only in the spi dual output interface  <br /></td></tr>
 <tr class="separator:ga364d891407cf323d3686d36ad6357604"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf5f978c432de7d6adaf41cd256724a01"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#gaf5f978c432de7d6adaf41cd256724a01">w25qxx_advance_only_spi_fast_read_quad_output</a> (uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
-<tr class="memdesc:gaf5f978c432de7d6adaf41cd256724a01"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example fast read only in the spi quad output interface  <a href="group__w25qxx__example__driver.html#gaf5f978c432de7d6adaf41cd256724a01">More...</a><br /></td></tr>
+<tr class="memitem:gaf5f978c432de7d6adaf41cd256724a01" id="r_gaf5f978c432de7d6adaf41cd256724a01"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#gaf5f978c432de7d6adaf41cd256724a01">w25qxx_advance_only_spi_fast_read_quad_output</a> (uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
+<tr class="memdesc:gaf5f978c432de7d6adaf41cd256724a01"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example fast read only in the spi quad output interface  <br /></td></tr>
 <tr class="separator:gaf5f978c432de7d6adaf41cd256724a01"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga4bbaf1a989fae25d16d07edb1e38ca4f"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga4bbaf1a989fae25d16d07edb1e38ca4f">w25qxx_advance_only_spi_fast_read_dual_io</a> (uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
-<tr class="memdesc:ga4bbaf1a989fae25d16d07edb1e38ca4f"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example fast read only in the spi dual io interface  <a href="group__w25qxx__example__driver.html#ga4bbaf1a989fae25d16d07edb1e38ca4f">More...</a><br /></td></tr>
+<tr class="memitem:ga4bbaf1a989fae25d16d07edb1e38ca4f" id="r_ga4bbaf1a989fae25d16d07edb1e38ca4f"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga4bbaf1a989fae25d16d07edb1e38ca4f">w25qxx_advance_only_spi_fast_read_dual_io</a> (uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
+<tr class="memdesc:ga4bbaf1a989fae25d16d07edb1e38ca4f"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example fast read only in the spi dual io interface  <br /></td></tr>
 <tr class="separator:ga4bbaf1a989fae25d16d07edb1e38ca4f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga395add1fa33f4f70d0ba52b38842dbdb"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga395add1fa33f4f70d0ba52b38842dbdb">w25qxx_advance_only_spi_fast_read_quad_io</a> (uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
-<tr class="memdesc:ga395add1fa33f4f70d0ba52b38842dbdb"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example fast read only in the spi quad io interface  <a href="group__w25qxx__example__driver.html#ga395add1fa33f4f70d0ba52b38842dbdb">More...</a><br /></td></tr>
+<tr class="memitem:ga395add1fa33f4f70d0ba52b38842dbdb" id="r_ga395add1fa33f4f70d0ba52b38842dbdb"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga395add1fa33f4f70d0ba52b38842dbdb">w25qxx_advance_only_spi_fast_read_quad_io</a> (uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
+<tr class="memdesc:ga395add1fa33f4f70d0ba52b38842dbdb"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example fast read only in the spi quad io interface  <br /></td></tr>
 <tr class="separator:ga395add1fa33f4f70d0ba52b38842dbdb"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaca6b4c6ea32dd96a4ae8714e2862d67a"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#gaca6b4c6ea32dd96a4ae8714e2862d67a">w25qxx_advance_only_spi_word_read_quad_io</a> (uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
-<tr class="memdesc:gaca6b4c6ea32dd96a4ae8714e2862d67a"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example word read only in the spi quad io interface  <a href="group__w25qxx__example__driver.html#gaca6b4c6ea32dd96a4ae8714e2862d67a">More...</a><br /></td></tr>
+<tr class="memitem:gaca6b4c6ea32dd96a4ae8714e2862d67a" id="r_gaca6b4c6ea32dd96a4ae8714e2862d67a"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#gaca6b4c6ea32dd96a4ae8714e2862d67a">w25qxx_advance_only_spi_word_read_quad_io</a> (uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
+<tr class="memdesc:gaca6b4c6ea32dd96a4ae8714e2862d67a"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example word read only in the spi quad io interface  <br /></td></tr>
 <tr class="separator:gaca6b4c6ea32dd96a4ae8714e2862d67a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga825a567c535236d7d18ffccf07df59e9"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga825a567c535236d7d18ffccf07df59e9">w25qxx_advance_only_spi_octal_word_read_quad_io</a> (uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
-<tr class="memdesc:ga825a567c535236d7d18ffccf07df59e9"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example octal word read only in the spi quad io interface  <a href="group__w25qxx__example__driver.html#ga825a567c535236d7d18ffccf07df59e9">More...</a><br /></td></tr>
+<tr class="memitem:ga825a567c535236d7d18ffccf07df59e9" id="r_ga825a567c535236d7d18ffccf07df59e9"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga825a567c535236d7d18ffccf07df59e9">w25qxx_advance_only_spi_octal_word_read_quad_io</a> (uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
+<tr class="memdesc:ga825a567c535236d7d18ffccf07df59e9"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example octal word read only in the spi quad io interface  <br /></td></tr>
 <tr class="separator:ga825a567c535236d7d18ffccf07df59e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad243655eb738e44c50e6079c983fd782"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#gad243655eb738e44c50e6079c983fd782">w25qxx_advance_only_spi_page_program_quad_input</a> (uint32_t addr, uint8_t *data, uint16_t len)</td></tr>
-<tr class="memdesc:gad243655eb738e44c50e6079c983fd782"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example quad page program only in the spi quad input interface  <a href="group__w25qxx__example__driver.html#gad243655eb738e44c50e6079c983fd782">More...</a><br /></td></tr>
+<tr class="memitem:gad243655eb738e44c50e6079c983fd782" id="r_gad243655eb738e44c50e6079c983fd782"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#gad243655eb738e44c50e6079c983fd782">w25qxx_advance_only_spi_page_program_quad_input</a> (uint32_t addr, uint8_t *data, uint16_t len)</td></tr>
+<tr class="memdesc:gad243655eb738e44c50e6079c983fd782"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example quad page program only in the spi quad input interface  <br /></td></tr>
 <tr class="separator:gad243655eb738e44c50e6079c983fd782"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga4c1be6979b4dc878d07ec86b8624c9d2"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga4c1be6979b4dc878d07ec86b8624c9d2">w25qxx_advance_get_status1</a> (uint8_t *status)</td></tr>
-<tr class="memdesc:ga4c1be6979b4dc878d07ec86b8624c9d2"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example get the status 1  <a href="group__w25qxx__example__driver.html#ga4c1be6979b4dc878d07ec86b8624c9d2">More...</a><br /></td></tr>
+<tr class="memitem:ga4c1be6979b4dc878d07ec86b8624c9d2" id="r_ga4c1be6979b4dc878d07ec86b8624c9d2"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga4c1be6979b4dc878d07ec86b8624c9d2">w25qxx_advance_get_status1</a> (uint8_t *status)</td></tr>
+<tr class="memdesc:ga4c1be6979b4dc878d07ec86b8624c9d2"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example get the status 1  <br /></td></tr>
 <tr class="separator:ga4c1be6979b4dc878d07ec86b8624c9d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf4736fff906c2f0c1dbed26b20847052"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#gaf4736fff906c2f0c1dbed26b20847052">w25qxx_advance_get_status2</a> (uint8_t *status)</td></tr>
-<tr class="memdesc:gaf4736fff906c2f0c1dbed26b20847052"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example get the status 2  <a href="group__w25qxx__example__driver.html#gaf4736fff906c2f0c1dbed26b20847052">More...</a><br /></td></tr>
+<tr class="memitem:gaf4736fff906c2f0c1dbed26b20847052" id="r_gaf4736fff906c2f0c1dbed26b20847052"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#gaf4736fff906c2f0c1dbed26b20847052">w25qxx_advance_get_status2</a> (uint8_t *status)</td></tr>
+<tr class="memdesc:gaf4736fff906c2f0c1dbed26b20847052"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example get the status 2  <br /></td></tr>
 <tr class="separator:gaf4736fff906c2f0c1dbed26b20847052"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga31bcd3d2cc68d2fc589685b5087bd8b3"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga31bcd3d2cc68d2fc589685b5087bd8b3">w25qxx_advance_get_status3</a> (uint8_t *status)</td></tr>
-<tr class="memdesc:ga31bcd3d2cc68d2fc589685b5087bd8b3"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example get the status 3  <a href="group__w25qxx__example__driver.html#ga31bcd3d2cc68d2fc589685b5087bd8b3">More...</a><br /></td></tr>
+<tr class="memitem:ga31bcd3d2cc68d2fc589685b5087bd8b3" id="r_ga31bcd3d2cc68d2fc589685b5087bd8b3"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga31bcd3d2cc68d2fc589685b5087bd8b3">w25qxx_advance_get_status3</a> (uint8_t *status)</td></tr>
+<tr class="memdesc:ga31bcd3d2cc68d2fc589685b5087bd8b3"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example get the status 3  <br /></td></tr>
 <tr class="separator:ga31bcd3d2cc68d2fc589685b5087bd8b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga5e4938b4575c417ae22fa82079459b1a"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga5e4938b4575c417ae22fa82079459b1a">w25qxx_advance_set_status1</a> (uint8_t status)</td></tr>
-<tr class="memdesc:ga5e4938b4575c417ae22fa82079459b1a"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example set the status 1  <a href="group__w25qxx__example__driver.html#ga5e4938b4575c417ae22fa82079459b1a">More...</a><br /></td></tr>
+<tr class="memitem:ga5e4938b4575c417ae22fa82079459b1a" id="r_ga5e4938b4575c417ae22fa82079459b1a"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga5e4938b4575c417ae22fa82079459b1a">w25qxx_advance_set_status1</a> (uint8_t status)</td></tr>
+<tr class="memdesc:ga5e4938b4575c417ae22fa82079459b1a"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example set the status 1  <br /></td></tr>
 <tr class="separator:ga5e4938b4575c417ae22fa82079459b1a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga9bc0e696b700d66f15b3605e10d33718"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga9bc0e696b700d66f15b3605e10d33718">w25qxx_advance_set_status2</a> (uint8_t status)</td></tr>
-<tr class="memdesc:ga9bc0e696b700d66f15b3605e10d33718"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example set the status 2  <a href="group__w25qxx__example__driver.html#ga9bc0e696b700d66f15b3605e10d33718">More...</a><br /></td></tr>
+<tr class="memitem:ga9bc0e696b700d66f15b3605e10d33718" id="r_ga9bc0e696b700d66f15b3605e10d33718"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga9bc0e696b700d66f15b3605e10d33718">w25qxx_advance_set_status2</a> (uint8_t status)</td></tr>
+<tr class="memdesc:ga9bc0e696b700d66f15b3605e10d33718"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example set the status 2  <br /></td></tr>
 <tr class="separator:ga9bc0e696b700d66f15b3605e10d33718"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab5c990ebd4874137b7d23f2b896d4601"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#gab5c990ebd4874137b7d23f2b896d4601">w25qxx_advance_set_status3</a> (uint8_t status)</td></tr>
-<tr class="memdesc:gab5c990ebd4874137b7d23f2b896d4601"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example set the status 3  <a href="group__w25qxx__example__driver.html#gab5c990ebd4874137b7d23f2b896d4601">More...</a><br /></td></tr>
+<tr class="memitem:gab5c990ebd4874137b7d23f2b896d4601" id="r_gab5c990ebd4874137b7d23f2b896d4601"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#gab5c990ebd4874137b7d23f2b896d4601">w25qxx_advance_set_status3</a> (uint8_t status)</td></tr>
+<tr class="memdesc:gab5c990ebd4874137b7d23f2b896d4601"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example set the status 3  <br /></td></tr>
 <tr class="separator:gab5c990ebd4874137b7d23f2b896d4601"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac0d9e08a37ee37563c8dbb501608a668"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#gac0d9e08a37ee37563c8dbb501608a668">w25qxx_advance_only_spi_get_manufacturer_device_id_dual_io</a> (uint8_t *manufacturer, uint8_t *device_id)</td></tr>
-<tr class="memdesc:gac0d9e08a37ee37563c8dbb501608a668"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example get the manufacturer &amp;&amp; device id information only in the spi dual io interface  <a href="group__w25qxx__example__driver.html#gac0d9e08a37ee37563c8dbb501608a668">More...</a><br /></td></tr>
+<tr class="memitem:gac0d9e08a37ee37563c8dbb501608a668" id="r_gac0d9e08a37ee37563c8dbb501608a668"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#gac0d9e08a37ee37563c8dbb501608a668">w25qxx_advance_only_spi_get_manufacturer_device_id_dual_io</a> (uint8_t *manufacturer, uint8_t *device_id)</td></tr>
+<tr class="memdesc:gac0d9e08a37ee37563c8dbb501608a668"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example get the manufacturer &amp;&amp; device id information only in the spi dual io interface  <br /></td></tr>
 <tr class="separator:gac0d9e08a37ee37563c8dbb501608a668"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6142b5a1e8602e2990dec34015812615"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga6142b5a1e8602e2990dec34015812615">w25qxx_advance_only_spi_get_manufacturer_device_id_quad_io</a> (uint8_t *manufacturer, uint8_t *device_id)</td></tr>
-<tr class="memdesc:ga6142b5a1e8602e2990dec34015812615"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example get the manufacturer &amp;&amp; device id information only in the spi quad io interface  <a href="group__w25qxx__example__driver.html#ga6142b5a1e8602e2990dec34015812615">More...</a><br /></td></tr>
+<tr class="memitem:ga6142b5a1e8602e2990dec34015812615" id="r_ga6142b5a1e8602e2990dec34015812615"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga6142b5a1e8602e2990dec34015812615">w25qxx_advance_only_spi_get_manufacturer_device_id_quad_io</a> (uint8_t *manufacturer, uint8_t *device_id)</td></tr>
+<tr class="memdesc:ga6142b5a1e8602e2990dec34015812615"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example get the manufacturer &amp;&amp; device id information only in the spi quad io interface  <br /></td></tr>
 <tr class="separator:ga6142b5a1e8602e2990dec34015812615"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gacc7435a39b61c44f0ce16690d5da896b"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#gacc7435a39b61c44f0ce16690d5da896b">w25qxx_advance_get_get_jedec_id</a> (uint8_t *manufacturer, uint8_t device_id[2])</td></tr>
-<tr class="memdesc:gacc7435a39b61c44f0ce16690d5da896b"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example get the jedec id information  <a href="group__w25qxx__example__driver.html#gacc7435a39b61c44f0ce16690d5da896b">More...</a><br /></td></tr>
+<tr class="memitem:gacc7435a39b61c44f0ce16690d5da896b" id="r_gacc7435a39b61c44f0ce16690d5da896b"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#gacc7435a39b61c44f0ce16690d5da896b">w25qxx_advance_get_get_jedec_id</a> (uint8_t *manufacturer, uint8_t device_id[2])</td></tr>
+<tr class="memdesc:gacc7435a39b61c44f0ce16690d5da896b"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example get the jedec id information  <br /></td></tr>
 <tr class="separator:gacc7435a39b61c44f0ce16690d5da896b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga2cbcc018dc11a870d2e0fc3a8946b1d8"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga2cbcc018dc11a870d2e0fc3a8946b1d8">w25qxx_advance_global_block_lock</a> (void)</td></tr>
-<tr class="memdesc:ga2cbcc018dc11a870d2e0fc3a8946b1d8"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example global block lock  <a href="group__w25qxx__example__driver.html#ga2cbcc018dc11a870d2e0fc3a8946b1d8">More...</a><br /></td></tr>
+<tr class="memitem:ga2cbcc018dc11a870d2e0fc3a8946b1d8" id="r_ga2cbcc018dc11a870d2e0fc3a8946b1d8"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga2cbcc018dc11a870d2e0fc3a8946b1d8">w25qxx_advance_global_block_lock</a> (void)</td></tr>
+<tr class="memdesc:ga2cbcc018dc11a870d2e0fc3a8946b1d8"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example global block lock  <br /></td></tr>
 <tr class="separator:ga2cbcc018dc11a870d2e0fc3a8946b1d8"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga67c70da103511d1cff9274e61a08ce56"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga67c70da103511d1cff9274e61a08ce56">w25qxx_advance_global_block_unlock</a> (void)</td></tr>
-<tr class="memdesc:ga67c70da103511d1cff9274e61a08ce56"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example global block unlock  <a href="group__w25qxx__example__driver.html#ga67c70da103511d1cff9274e61a08ce56">More...</a><br /></td></tr>
+<tr class="memitem:ga67c70da103511d1cff9274e61a08ce56" id="r_ga67c70da103511d1cff9274e61a08ce56"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga67c70da103511d1cff9274e61a08ce56">w25qxx_advance_global_block_unlock</a> (void)</td></tr>
+<tr class="memdesc:ga67c70da103511d1cff9274e61a08ce56"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example global block unlock  <br /></td></tr>
 <tr class="separator:ga67c70da103511d1cff9274e61a08ce56"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa7af99e92b3e81f5b202575b55dc3a7c"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#gaa7af99e92b3e81f5b202575b55dc3a7c">w25qxx_advance_individual_block_lock</a> (uint32_t addr)</td></tr>
-<tr class="memdesc:gaa7af99e92b3e81f5b202575b55dc3a7c"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example lock the individual block  <a href="group__w25qxx__example__driver.html#gaa7af99e92b3e81f5b202575b55dc3a7c">More...</a><br /></td></tr>
+<tr class="memitem:gaa7af99e92b3e81f5b202575b55dc3a7c" id="r_gaa7af99e92b3e81f5b202575b55dc3a7c"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#gaa7af99e92b3e81f5b202575b55dc3a7c">w25qxx_advance_individual_block_lock</a> (uint32_t addr)</td></tr>
+<tr class="memdesc:gaa7af99e92b3e81f5b202575b55dc3a7c"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example lock the individual block  <br /></td></tr>
 <tr class="separator:gaa7af99e92b3e81f5b202575b55dc3a7c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga66726fc451c7804e8fec6eb46a6a77d6"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga66726fc451c7804e8fec6eb46a6a77d6">w25qxx_advance_individual_block_unlock</a> (uint32_t addr)</td></tr>
-<tr class="memdesc:ga66726fc451c7804e8fec6eb46a6a77d6"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example unlock the individual block  <a href="group__w25qxx__example__driver.html#ga66726fc451c7804e8fec6eb46a6a77d6">More...</a><br /></td></tr>
+<tr class="memitem:ga66726fc451c7804e8fec6eb46a6a77d6" id="r_ga66726fc451c7804e8fec6eb46a6a77d6"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga66726fc451c7804e8fec6eb46a6a77d6">w25qxx_advance_individual_block_unlock</a> (uint32_t addr)</td></tr>
+<tr class="memdesc:ga66726fc451c7804e8fec6eb46a6a77d6"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example unlock the individual block  <br /></td></tr>
 <tr class="separator:ga66726fc451c7804e8fec6eb46a6a77d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac1773fe914a01825ca28346205601036"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#gac1773fe914a01825ca28346205601036">w25qxx_advance_read_block_lock</a> (uint32_t addr, uint8_t *value)</td></tr>
-<tr class="memdesc:gac1773fe914a01825ca28346205601036"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example read the block lock  <a href="group__w25qxx__example__driver.html#gac1773fe914a01825ca28346205601036">More...</a><br /></td></tr>
+<tr class="memitem:gac1773fe914a01825ca28346205601036" id="r_gac1773fe914a01825ca28346205601036"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#gac1773fe914a01825ca28346205601036">w25qxx_advance_read_block_lock</a> (uint32_t addr, uint8_t *value)</td></tr>
+<tr class="memdesc:gac1773fe914a01825ca28346205601036"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example read the block lock  <br /></td></tr>
 <tr class="separator:gac1773fe914a01825ca28346205601036"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga0f65053ad28443f19ed73dbc3412b5b2"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga0f65053ad28443f19ed73dbc3412b5b2">w25qxx_advance_reset</a> (void)</td></tr>
-<tr class="memdesc:ga0f65053ad28443f19ed73dbc3412b5b2"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example reset  <a href="group__w25qxx__example__driver.html#ga0f65053ad28443f19ed73dbc3412b5b2">More...</a><br /></td></tr>
+<tr class="memitem:ga0f65053ad28443f19ed73dbc3412b5b2" id="r_ga0f65053ad28443f19ed73dbc3412b5b2"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga0f65053ad28443f19ed73dbc3412b5b2">w25qxx_advance_reset</a> (void)</td></tr>
+<tr class="memdesc:ga0f65053ad28443f19ed73dbc3412b5b2"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example reset  <br /></td></tr>
 <tr class="separator:ga0f65053ad28443f19ed73dbc3412b5b2"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gace2a5b7acd9798cfcaa2b5eb2f18e1d1"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#gace2a5b7acd9798cfcaa2b5eb2f18e1d1">w25qxx_advance_only_qspi_set_read_parameters</a> (<a class="el" href="group__w25qxx__advance__driver.html#ga6ff284154302248f00db269146545443">w25qxx_qspi_read_dummy_t</a> dummy, <a class="el" href="group__w25qxx__advance__driver.html#ga2fd3023819e1aebe089a4a72eb136da3">w25qxx_qspi_read_wrap_length_t</a> length)</td></tr>
-<tr class="memdesc:gace2a5b7acd9798cfcaa2b5eb2f18e1d1"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example set the read parameters only in the qspi interface  <a href="group__w25qxx__example__driver.html#gace2a5b7acd9798cfcaa2b5eb2f18e1d1">More...</a><br /></td></tr>
+<tr class="memitem:gace2a5b7acd9798cfcaa2b5eb2f18e1d1" id="r_gace2a5b7acd9798cfcaa2b5eb2f18e1d1"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#gace2a5b7acd9798cfcaa2b5eb2f18e1d1">w25qxx_advance_only_qspi_set_read_parameters</a> (<a class="el" href="group__w25qxx__advance__driver.html#ga6ff284154302248f00db269146545443">w25qxx_qspi_read_dummy_t</a> dummy, <a class="el" href="group__w25qxx__advance__driver.html#ga2fd3023819e1aebe089a4a72eb136da3">w25qxx_qspi_read_wrap_length_t</a> length)</td></tr>
+<tr class="memdesc:gace2a5b7acd9798cfcaa2b5eb2f18e1d1"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example set the read parameters only in the qspi interface  <br /></td></tr>
 <tr class="separator:gace2a5b7acd9798cfcaa2b5eb2f18e1d1"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga374d35b73fa61d5f7464c3effdae1d57"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga374d35b73fa61d5f7464c3effdae1d57">w25qxx_advance_only_spi_get_unique_id</a> (uint8_t id[8])</td></tr>
-<tr class="memdesc:ga374d35b73fa61d5f7464c3effdae1d57"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example get the unique id only in the spi interface  <a href="group__w25qxx__example__driver.html#ga374d35b73fa61d5f7464c3effdae1d57">More...</a><br /></td></tr>
+<tr class="memitem:ga374d35b73fa61d5f7464c3effdae1d57" id="r_ga374d35b73fa61d5f7464c3effdae1d57"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga374d35b73fa61d5f7464c3effdae1d57">w25qxx_advance_only_spi_get_unique_id</a> (uint8_t id[8])</td></tr>
+<tr class="memdesc:ga374d35b73fa61d5f7464c3effdae1d57"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example get the unique id only in the spi interface  <br /></td></tr>
 <tr class="separator:ga374d35b73fa61d5f7464c3effdae1d57"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga9b1854e0ae52f57523bc2fa7cc0656df"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga9b1854e0ae52f57523bc2fa7cc0656df">w25qxx_advance_only_spi_get_sfdp</a> (uint8_t sfdp[256])</td></tr>
-<tr class="memdesc:ga9b1854e0ae52f57523bc2fa7cc0656df"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example get the sfdp only in the spi interface  <a href="group__w25qxx__example__driver.html#ga9b1854e0ae52f57523bc2fa7cc0656df">More...</a><br /></td></tr>
+<tr class="memitem:ga9b1854e0ae52f57523bc2fa7cc0656df" id="r_ga9b1854e0ae52f57523bc2fa7cc0656df"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga9b1854e0ae52f57523bc2fa7cc0656df">w25qxx_advance_only_spi_get_sfdp</a> (uint8_t sfdp[256])</td></tr>
+<tr class="memdesc:ga9b1854e0ae52f57523bc2fa7cc0656df"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example get the sfdp only in the spi interface  <br /></td></tr>
 <tr class="separator:ga9b1854e0ae52f57523bc2fa7cc0656df"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa6c5f97106e769ba071973cc2e782ad4"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#gaa6c5f97106e769ba071973cc2e782ad4">w25qxx_advance_only_spi_write_security_register</a> (<a class="el" href="group__w25qxx__advance__driver.html#ga81ddc7d4b9f4f124163beea19cc33c7e">w25qxx_security_register_t</a> num, uint8_t data[256])</td></tr>
-<tr class="memdesc:gaa6c5f97106e769ba071973cc2e782ad4"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example write the security register only in the spi interface  <a href="group__w25qxx__example__driver.html#gaa6c5f97106e769ba071973cc2e782ad4">More...</a><br /></td></tr>
+<tr class="memitem:gaa6c5f97106e769ba071973cc2e782ad4" id="r_gaa6c5f97106e769ba071973cc2e782ad4"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#gaa6c5f97106e769ba071973cc2e782ad4">w25qxx_advance_only_spi_write_security_register</a> (<a class="el" href="group__w25qxx__advance__driver.html#ga81ddc7d4b9f4f124163beea19cc33c7e">w25qxx_security_register_t</a> num, uint8_t data[256])</td></tr>
+<tr class="memdesc:gaa6c5f97106e769ba071973cc2e782ad4"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example write the security register only in the spi interface  <br /></td></tr>
 <tr class="separator:gaa6c5f97106e769ba071973cc2e782ad4"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga02652a58ee418b432cf77505809d7d42"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga02652a58ee418b432cf77505809d7d42">w25qxx_advance_only_spi_read_security_register</a> (<a class="el" href="group__w25qxx__advance__driver.html#ga81ddc7d4b9f4f124163beea19cc33c7e">w25qxx_security_register_t</a> num, uint8_t data[256])</td></tr>
-<tr class="memdesc:ga02652a58ee418b432cf77505809d7d42"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example read the security register only in the spi interface  <a href="group__w25qxx__example__driver.html#ga02652a58ee418b432cf77505809d7d42">More...</a><br /></td></tr>
+<tr class="memitem:ga02652a58ee418b432cf77505809d7d42" id="r_ga02652a58ee418b432cf77505809d7d42"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga02652a58ee418b432cf77505809d7d42">w25qxx_advance_only_spi_read_security_register</a> (<a class="el" href="group__w25qxx__advance__driver.html#ga81ddc7d4b9f4f124163beea19cc33c7e">w25qxx_security_register_t</a> num, uint8_t data[256])</td></tr>
+<tr class="memdesc:ga02652a58ee418b432cf77505809d7d42"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example read the security register only in the spi interface  <br /></td></tr>
 <tr class="separator:ga02652a58ee418b432cf77505809d7d42"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga16411577fcb794f7485912f5db1bdde9"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga16411577fcb794f7485912f5db1bdde9">w25qxx_advance_only_spi_set_burst_with_wrap</a> (<a class="el" href="group__w25qxx__advance__driver.html#ga94bbae2bf8906903e8dc2a28c490723d">w25qxx_burst_wrap_t</a> wrap)</td></tr>
-<tr class="memdesc:ga16411577fcb794f7485912f5db1bdde9"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example set the burst with wrap only in the spi interface  <a href="group__w25qxx__example__driver.html#ga16411577fcb794f7485912f5db1bdde9">More...</a><br /></td></tr>
+<tr class="memitem:ga16411577fcb794f7485912f5db1bdde9" id="r_ga16411577fcb794f7485912f5db1bdde9"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga16411577fcb794f7485912f5db1bdde9">w25qxx_advance_only_spi_set_burst_with_wrap</a> (<a class="el" href="group__w25qxx__advance__driver.html#ga94bbae2bf8906903e8dc2a28c490723d">w25qxx_burst_wrap_t</a> wrap)</td></tr>
+<tr class="memdesc:ga16411577fcb794f7485912f5db1bdde9"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example set the burst with wrap only in the spi interface  <br /></td></tr>
 <tr class="separator:ga16411577fcb794f7485912f5db1bdde9"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
@@ -251,7 +257,7 @@ <h3>history</h3>
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
     <li class="navelem"><a class="el" href="dir_cfafba98a580ce4b62f8a6fa96d7cbb0.html">example</a></li><li class="navelem"><a class="el" href="driver__w25qxx__advance_8c.html">driver_w25qxx_advance.c</a></li>
-    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
+    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/driver__w25qxx__advance_8c_source.html b/doc/html/driver__w25qxx__advance_8c_source.html
index e177ed2..448f091 100644
--- a/doc/html/driver__w25qxx__advance_8c_source.html
+++ b/doc/html/driver__w25qxx__advance_8c_source.html
@@ -1,9 +1,9 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.8"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>LibDriver W25QXX: example/driver_w25qxx_advance.c Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -23,11 +23,10 @@
 <div id="titlearea">
 <table cellspacing="0" cellpadding="0">
  <tbody>
- <tr style="height: 56px;">
+ <tr id="projectrow">
   <td id="projectlogo"><img alt="Logo" src="doxygen.png"/></td>
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">LibDriver W25QXX
-   &#160;<span id="projectnumber">1.0.0</span>
+  <td id="projectalign">
+   <div id="projectname">LibDriver W25QXX<span id="projectnumber">&#160;1.0.0</span>
    </div>
    <div id="projectbrief">W25QXX full function driver</div>
   </td>
@@ -36,22 +35,28 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.8 -->
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search/",'.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
 <script type="text/javascript" src="menu.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(function() {
   initMenu('',true,false,'search.php','Search');
   $(document).ready(function() { init_search(); });
 });
-/* @license-end */</script>
+/* @license-end */
+</script>
 <div id="main-nav"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(document).ready(function() { init_codefold(0); });
+/* @license-end */
+</script>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -64,7 +69,7 @@
   </div>
 </div>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(document).ready(function(){initNavTree('driver__w25qxx__advance_8c_source.html',''); initResizable(); });
 /* @license-end */
 </script>
@@ -78,707 +83,797 @@
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
 </div>
 
 <div class="header">
-  <div class="headertitle">
-<div class="title">driver_w25qxx_advance.c</div>  </div>
+  <div class="headertitle"><div class="title">driver_w25qxx_advance.c</div></div>
 </div><!--header-->
 <div class="contents">
-<a href="driver__w25qxx__advance_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160; </div>
-<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="driver__w25qxx__advance_8h.html">driver_w25qxx_advance.h</a>&quot;</span></div>
-<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160; </div>
-<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="keyword">static</span> <a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> gs_handle;        </div>
-<div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="group__w25qxx__example__driver.html#ga413b420bc199d09ce5cafee4a4debb28">   51</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__example__driver.html#ga413b420bc199d09ce5cafee4a4debb28">w25qxx_advance_init</a>(<a class="code" href="group__w25qxx__basic__driver.html#ga6cb4e5164464df549201dd96cb7a58b1">w25qxx_type_t</a> type, <a class="code" href="group__w25qxx__basic__driver.html#gacbf327a42336baf10713a1796ff4f2fe">w25qxx_interface_t</a> interface, <a class="code" href="group__w25qxx__basic__driver.html#gafb2690946f5baf4be6f3a63dde5491fb">w25qxx_bool_t</a> dual_quad_spi_enable)</div>
-<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;{</div>
-<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;    uint8_t res;</div>
-<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;    </div>
-<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;    <span class="comment">/* link interface function */</span></div>
-<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;    <a class="code" href="group__w25qxx__link__driver.html#ga995378489f95bc6bbddbe710557e3384">DRIVER_W25QXX_LINK_INIT</a>(&amp;gs_handle, <a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a>);</div>
-<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;    <a class="code" href="group__w25qxx__link__driver.html#gab2587de93f1dba5664eede8cd787a88a">DRIVER_W25QXX_LINK_SPI_QSPI_INIT</a>(&amp;gs_handle, <a class="code" href="group__w25qxx__interface__driver.html#ga2bdc17a556f1c801a38656331f3bb7b6">w25qxx_interface_spi_qspi_init</a>);</div>
-<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;    <a class="code" href="group__w25qxx__link__driver.html#gaec8b55e83b46907be1dd9e7c50be550d">DRIVER_W25QXX_LINK_SPI_QSPI_DEINIT</a>(&amp;gs_handle, <a class="code" href="group__w25qxx__interface__driver.html#ga091f3607fcdd47f9e5f94cf1397bd46a">w25qxx_interface_spi_qspi_deinit</a>);</div>
-<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;    <a class="code" href="group__w25qxx__link__driver.html#gac8f0ca0a725790bace3241d1d616e3d1">DRIVER_W25QXX_LINK_SPI_QSPI_WRITE_READ</a>(&amp;gs_handle, <a class="code" href="group__w25qxx__interface__driver.html#ga3d76ea1f431978f6b55edfd0628c94cd">w25qxx_interface_spi_qspi_write_read</a>);</div>
-<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;    <a class="code" href="group__w25qxx__link__driver.html#ga7555618f13d2de0003ae6d9483085180">DRIVER_W25QXX_LINK_DELAY_MS</a>(&amp;gs_handle, <a class="code" href="group__w25qxx__interface__driver.html#ga964fa232abf98737cb98458eebfff82c">w25qxx_interface_delay_ms</a>);</div>
-<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;    <a class="code" href="group__w25qxx__link__driver.html#gafc81bf850c80dfa316f0c6ab40be6e67">DRIVER_W25QXX_LINK_DELAY_US</a>(&amp;gs_handle, <a class="code" href="group__w25qxx__interface__driver.html#ga38e79039b913154c9dd1036ff52bb420">w25qxx_interface_delay_us</a>);</div>
-<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;    <a class="code" href="group__w25qxx__link__driver.html#gab8d49ef9dca942fe5f37c30dcd7e22a6">DRIVER_W25QXX_LINK_DEBUG_PRINT</a>(&amp;gs_handle, <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>);</div>
-<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;    </div>
-<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;    <span class="comment">/* set chip type */</span></div>
-<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;    res = <a class="code" href="group__w25qxx__basic__driver.html#gaa57189cd4170b73f8b1300ca15e27de6">w25qxx_set_type</a>(&amp;gs_handle, type);</div>
-<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;    <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;    {</div>
-<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set type failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;       </div>
-<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;        <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;    }</div>
-<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;    </div>
-<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;    <span class="comment">/* set chip interface */</span></div>
-<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;    res = <a class="code" href="group__w25qxx__basic__driver.html#ga50a62003d566402d46ada2f272c41eb5">w25qxx_set_interface</a>(&amp;gs_handle, interface);</div>
-<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;    <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;    {</div>
-<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set interface failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;       </div>
-<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;        <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;    }</div>
-<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;    </div>
-<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;    <span class="comment">/* set dual quad spi */</span></div>
-<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;    res = <a class="code" href="group__w25qxx__basic__driver.html#ga665139209b0abc386474a78d89cce6f2">w25qxx_set_dual_quad_spi</a>(&amp;gs_handle, dual_quad_spi_enable);</div>
-<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;    <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;    {</div>
-<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set dual quad spi failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;        (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;       </div>
-<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;        <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;    }</div>
-<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;    </div>
-<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;    <span class="comment">/* chip init */</span></div>
-<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;    res = <a class="code" href="group__w25qxx__basic__driver.html#ga8e7a163b3d255b8c7fc035d0d60f2491">w25qxx_init</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;    <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;    {</div>
-<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: init failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;       </div>
-<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;        <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;    }</div>
-<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;    <span class="keywordflow">else</span></div>
-<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;    {</div>
-<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;        <span class="keywordflow">if</span> (type &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)</div>
-<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;        {</div>
-<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;            res = <a class="code" href="group__w25qxx__basic__driver.html#gad0e125eff304ce66fb3956d2c8c80656">w25qxx_set_address_mode</a>(&amp;gs_handle, <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>);</div>
-<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;            <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;            {</div>
-<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set address mode failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;                (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;               </div>
-<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;                <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;            }</div>
-<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;        }</div>
-<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;        </div>
-<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;        <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;    }</div>
-<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;}</div>
-<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160; </div>
-<div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="group__w25qxx__example__driver.html#gaf390bbb2c4140f49d25822d963ead722">  125</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__example__driver.html#gaf390bbb2c4140f49d25822d963ead722">w25qxx_advance_deinit</a>(<span class="keywordtype">void</span>)</div>
-<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;{</div>
-<div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle) != 0)</div>
-<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;    {</div>
-<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;        <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;    }</div>
-<div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;    <span class="keywordflow">else</span></div>
-<div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;    {</div>
-<div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;        <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;    }</div>
-<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;}</div>
-<div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160; </div>
-<div class="line"><a name="l00147"></a><span class="lineno"><a class="line" href="group__w25qxx__example__driver.html#ga63f4e1dce2ef7c7de56461524fd22d04">  147</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__example__driver.html#ga63f4e1dce2ef7c7de56461524fd22d04">w25qxx_advance_write</a>(uint32_t addr, uint8_t *data, uint32_t len)</div>
-<div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;{</div>
-<div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="group__w25qxx__basic__driver.html#gaaee8264d840e51460821cb6e609338ee">w25qxx_write</a>(&amp;gs_handle, addr, data, len) != 0)</div>
-<div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;    {</div>
-<div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;        <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;    }</div>
-<div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;    <span class="keywordflow">else</span></div>
-<div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;    {</div>
-<div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;        <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;    }</div>
-<div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;}</div>
-<div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160; </div>
-<div class="line"><a name="l00169"></a><span class="lineno"><a class="line" href="group__w25qxx__example__driver.html#ga013a389763200b54daaa345adf9329dc">  169</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__example__driver.html#ga013a389763200b54daaa345adf9329dc">w25qxx_advance_read</a>(uint32_t addr, uint8_t *data, uint32_t len)</div>
-<div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;{</div>
-<div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="group__w25qxx__basic__driver.html#gae7479fc9ce911a52e3c5b6f1a615b879">w25qxx_read</a>(&amp;gs_handle, addr, data, len) != 0)</div>
-<div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;    {</div>
-<div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;        <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;    }</div>
-<div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;    <span class="keywordflow">else</span></div>
-<div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;    {</div>
-<div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;        <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;    }</div>
-<div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;}</div>
-<div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160; </div>
-<div class="line"><a name="l00188"></a><span class="lineno"><a class="line" href="group__w25qxx__example__driver.html#ga5599de31797633ae75a63bcd5a8f4736">  188</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__example__driver.html#ga5599de31797633ae75a63bcd5a8f4736">w25qxx_advance_power_down</a>(<span class="keywordtype">void</span>)</div>
-<div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;{</div>
-<div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="group__w25qxx__basic__driver.html#gae4effce67e36120325e3c7b245b90142">w25qxx_power_down</a>(&amp;gs_handle) != 0)</div>
-<div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;    {</div>
-<div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;        <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;    }</div>
-<div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;    <span class="keywordflow">else</span></div>
-<div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;    {</div>
-<div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;        <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;    }</div>
-<div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;}</div>
-<div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160; </div>
-<div class="line"><a name="l00207"></a><span class="lineno"><a class="line" href="group__w25qxx__example__driver.html#ga8a57e2d056d452abc14b0a08d4223251">  207</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__example__driver.html#ga8a57e2d056d452abc14b0a08d4223251">w25qxx_advance_wake_up</a>(<span class="keywordtype">void</span>)</div>
-<div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;{</div>
-<div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="group__w25qxx__basic__driver.html#ga09c9b52877516a2ee4c080dc249e7331">w25qxx_release_power_down</a>(&amp;gs_handle) != 0)</div>
-<div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;    {</div>
-<div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;        <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;    }</div>
-<div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;    <span class="keywordflow">else</span></div>
-<div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;    {</div>
-<div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;        <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;    }</div>
-<div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;}</div>
-<div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160; </div>
-<div class="line"><a name="l00226"></a><span class="lineno"><a class="line" href="group__w25qxx__example__driver.html#ga15cb243f227ef8d897ef3208b622bded">  226</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__example__driver.html#ga15cb243f227ef8d897ef3208b622bded">w25qxx_advance_chip_erase</a>(<span class="keywordtype">void</span>)</div>
-<div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;{</div>
-<div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="group__w25qxx__basic__driver.html#ga0862833b36831f92684980b2e21f2e39">w25qxx_chip_erase</a>(&amp;gs_handle) != 0)</div>
-<div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;    {</div>
-<div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160;        <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160;    }</div>
-<div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;    <span class="keywordflow">else</span></div>
-<div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;    {</div>
-<div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;        <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;    }</div>
-<div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;}</div>
-<div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160; </div>
-<div class="line"><a name="l00247"></a><span class="lineno"><a class="line" href="group__w25qxx__example__driver.html#ga0f49d960f8b6c6498ab293b369ffc389">  247</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__example__driver.html#ga0f49d960f8b6c6498ab293b369ffc389">w25qxx_advance_get_id</a>(uint8_t *manufacturer, uint8_t *device_id)</div>
-<div class="line"><a name="l00248"></a><span class="lineno">  248</span>&#160;{</div>
-<div class="line"><a name="l00249"></a><span class="lineno">  249</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="group__w25qxx__basic__driver.html#ga921836a777b082ff4d0f322ccfda6b22">w25qxx_get_manufacturer_device_id</a>(&amp;gs_handle, manufacturer, device_id) != 0)</div>
-<div class="line"><a name="l00250"></a><span class="lineno">  250</span>&#160;    {</div>
-<div class="line"><a name="l00251"></a><span class="lineno">  251</span>&#160;        <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00252"></a><span class="lineno">  252</span>&#160;    }</div>
-<div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160;    <span class="keywordflow">else</span></div>
-<div class="line"><a name="l00254"></a><span class="lineno">  254</span>&#160;    {</div>
-<div class="line"><a name="l00255"></a><span class="lineno">  255</span>&#160;        <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l00256"></a><span class="lineno">  256</span>&#160;    }</div>
-<div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160;}</div>
-<div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160; </div>
-<div class="line"><a name="l00269"></a><span class="lineno"><a class="line" href="group__w25qxx__example__driver.html#ga39ff13988a3d451231cec3260c13a4cd">  269</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__example__driver.html#ga39ff13988a3d451231cec3260c13a4cd">w25qxx_advance_page_program</a>(uint32_t addr, uint8_t *data, uint16_t len)</div>
-<div class="line"><a name="l00270"></a><span class="lineno">  270</span>&#160;{</div>
-<div class="line"><a name="l00271"></a><span class="lineno">  271</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="group__w25qxx__basic__driver.html#ga6280e7e4ab26306436e2c210617a28b3">w25qxx_page_program</a>(&amp;gs_handle, addr, data, len) != 0)</div>
-<div class="line"><a name="l00272"></a><span class="lineno">  272</span>&#160;    {</div>
-<div class="line"><a name="l00273"></a><span class="lineno">  273</span>&#160;        <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00274"></a><span class="lineno">  274</span>&#160;    }</div>
-<div class="line"><a name="l00275"></a><span class="lineno">  275</span>&#160;    <span class="keywordflow">else</span></div>
-<div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160;    {</div>
-<div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160;        <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160;    }</div>
-<div class="line"><a name="l00279"></a><span class="lineno">  279</span>&#160;}</div>
-<div class="line"><a name="l00280"></a><span class="lineno">  280</span>&#160; </div>
-<div class="line"><a name="l00289"></a><span class="lineno"><a class="line" href="group__w25qxx__example__driver.html#ga9325acc424c95624f15e11631082201d">  289</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__example__driver.html#ga9325acc424c95624f15e11631082201d">w25qxx_advance_sector_erase_4k</a>(uint32_t addr)</div>
-<div class="line"><a name="l00290"></a><span class="lineno">  290</span>&#160;{</div>
-<div class="line"><a name="l00291"></a><span class="lineno">  291</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="group__w25qxx__basic__driver.html#ga9a03c51b4c84655350c15fbfce0a6b40">w25qxx_sector_erase_4k</a>(&amp;gs_handle, addr) != 0)</div>
-<div class="line"><a name="l00292"></a><span class="lineno">  292</span>&#160;    {</div>
-<div class="line"><a name="l00293"></a><span class="lineno">  293</span>&#160;        <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00294"></a><span class="lineno">  294</span>&#160;    }</div>
-<div class="line"><a name="l00295"></a><span class="lineno">  295</span>&#160;    <span class="keywordflow">else</span></div>
-<div class="line"><a name="l00296"></a><span class="lineno">  296</span>&#160;    {</div>
-<div class="line"><a name="l00297"></a><span class="lineno">  297</span>&#160;        <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l00298"></a><span class="lineno">  298</span>&#160;    }</div>
-<div class="line"><a name="l00299"></a><span class="lineno">  299</span>&#160;}</div>
-<div class="line"><a name="l00300"></a><span class="lineno">  300</span>&#160; </div>
-<div class="line"><a name="l00309"></a><span class="lineno"><a class="line" href="group__w25qxx__example__driver.html#gaee04edb9e97785e423dffe14a1cad780">  309</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__example__driver.html#gaee04edb9e97785e423dffe14a1cad780">w25qxx_advance_block_erase_32k</a>(uint32_t addr)</div>
-<div class="line"><a name="l00310"></a><span class="lineno">  310</span>&#160;{</div>
-<div class="line"><a name="l00311"></a><span class="lineno">  311</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="group__w25qxx__basic__driver.html#ga39c8fb382e8c3e4d57232dfa79af781c">w25qxx_block_erase_32k</a>(&amp;gs_handle, addr) != 0)</div>
-<div class="line"><a name="l00312"></a><span class="lineno">  312</span>&#160;    {</div>
-<div class="line"><a name="l00313"></a><span class="lineno">  313</span>&#160;        <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00314"></a><span class="lineno">  314</span>&#160;    }</div>
-<div class="line"><a name="l00315"></a><span class="lineno">  315</span>&#160;    <span class="keywordflow">else</span></div>
-<div class="line"><a name="l00316"></a><span class="lineno">  316</span>&#160;    {</div>
-<div class="line"><a name="l00317"></a><span class="lineno">  317</span>&#160;        <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l00318"></a><span class="lineno">  318</span>&#160;    }</div>
-<div class="line"><a name="l00319"></a><span class="lineno">  319</span>&#160;}</div>
-<div class="line"><a name="l00320"></a><span class="lineno">  320</span>&#160; </div>
-<div class="line"><a name="l00329"></a><span class="lineno"><a class="line" href="group__w25qxx__example__driver.html#gae7cba4e0b22a1043fe304e46148fa13c">  329</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__example__driver.html#gae7cba4e0b22a1043fe304e46148fa13c">w25qxx_advance_block_erase_64k</a>(uint32_t addr)</div>
-<div class="line"><a name="l00330"></a><span class="lineno">  330</span>&#160;{</div>
-<div class="line"><a name="l00331"></a><span class="lineno">  331</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="group__w25qxx__basic__driver.html#gaf53bc5f6073482b9b74efd417ec7ac83">w25qxx_block_erase_64k</a>(&amp;gs_handle, addr) != 0)</div>
-<div class="line"><a name="l00332"></a><span class="lineno">  332</span>&#160;    {</div>
-<div class="line"><a name="l00333"></a><span class="lineno">  333</span>&#160;        <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00334"></a><span class="lineno">  334</span>&#160;    }</div>
-<div class="line"><a name="l00335"></a><span class="lineno">  335</span>&#160;    <span class="keywordflow">else</span></div>
-<div class="line"><a name="l00336"></a><span class="lineno">  336</span>&#160;    {</div>
-<div class="line"><a name="l00337"></a><span class="lineno">  337</span>&#160;        <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l00338"></a><span class="lineno">  338</span>&#160;    }</div>
-<div class="line"><a name="l00339"></a><span class="lineno">  339</span>&#160;}</div>
-<div class="line"><a name="l00340"></a><span class="lineno">  340</span>&#160; </div>
-<div class="line"><a name="l00351"></a><span class="lineno"><a class="line" href="group__w25qxx__example__driver.html#ga7ade25a387b9d03ddecefd86fb328389">  351</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__example__driver.html#ga7ade25a387b9d03ddecefd86fb328389">w25qxx_advance_fast_read</a>(uint32_t addr, uint8_t *data, uint32_t len)</div>
-<div class="line"><a name="l00352"></a><span class="lineno">  352</span>&#160;{</div>
-<div class="line"><a name="l00353"></a><span class="lineno">  353</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="group__w25qxx__basic__driver.html#gac345ba10af5ad355578fa97697487123">w25qxx_fast_read</a>(&amp;gs_handle, addr, data, len) != 0)</div>
-<div class="line"><a name="l00354"></a><span class="lineno">  354</span>&#160;    {</div>
-<div class="line"><a name="l00355"></a><span class="lineno">  355</span>&#160;        <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00356"></a><span class="lineno">  356</span>&#160;    }</div>
-<div class="line"><a name="l00357"></a><span class="lineno">  357</span>&#160;    <span class="keywordflow">else</span></div>
-<div class="line"><a name="l00358"></a><span class="lineno">  358</span>&#160;    {</div>
-<div class="line"><a name="l00359"></a><span class="lineno">  359</span>&#160;        <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l00360"></a><span class="lineno">  360</span>&#160;    }</div>
-<div class="line"><a name="l00361"></a><span class="lineno">  361</span>&#160;}</div>
-<div class="line"><a name="l00362"></a><span class="lineno">  362</span>&#160; </div>
-<div class="line"><a name="l00373"></a><span class="lineno"><a class="line" href="group__w25qxx__example__driver.html#gac1c7f320706dd6d6d937da75b8a4da93">  373</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__example__driver.html#gac1c7f320706dd6d6d937da75b8a4da93">w25qxx_advance_only_spi_read</a>(uint32_t addr, uint8_t *data, uint32_t len)</div>
-<div class="line"><a name="l00374"></a><span class="lineno">  374</span>&#160;{</div>
-<div class="line"><a name="l00375"></a><span class="lineno">  375</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="group__w25qxx__basic__driver.html#ga1e9ebf198137d23558dbf6470213c472">w25qxx_only_spi_read</a>(&amp;gs_handle, addr, data, len) != 0)</div>
-<div class="line"><a name="l00376"></a><span class="lineno">  376</span>&#160;    {</div>
-<div class="line"><a name="l00377"></a><span class="lineno">  377</span>&#160;        <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00378"></a><span class="lineno">  378</span>&#160;    }</div>
-<div class="line"><a name="l00379"></a><span class="lineno">  379</span>&#160;    <span class="keywordflow">else</span></div>
-<div class="line"><a name="l00380"></a><span class="lineno">  380</span>&#160;    {</div>
-<div class="line"><a name="l00381"></a><span class="lineno">  381</span>&#160;        <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l00382"></a><span class="lineno">  382</span>&#160;    }</div>
-<div class="line"><a name="l00383"></a><span class="lineno">  383</span>&#160;}</div>
-<div class="line"><a name="l00384"></a><span class="lineno">  384</span>&#160; </div>
-<div class="line"><a name="l00395"></a><span class="lineno"><a class="line" href="group__w25qxx__example__driver.html#ga364d891407cf323d3686d36ad6357604">  395</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__example__driver.html#ga364d891407cf323d3686d36ad6357604">w25qxx_advance_only_spi_fast_read_dual_output</a>(uint32_t addr, uint8_t *data, uint32_t len)</div>
-<div class="line"><a name="l00396"></a><span class="lineno">  396</span>&#160;{</div>
-<div class="line"><a name="l00397"></a><span class="lineno">  397</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="group__w25qxx__advance__driver.html#ga7a19230ca3916816ea8fb7421483d293">w25qxx_fast_read_dual_output</a>(&amp;gs_handle, addr, data, len) != 0)</div>
-<div class="line"><a name="l00398"></a><span class="lineno">  398</span>&#160;    {</div>
-<div class="line"><a name="l00399"></a><span class="lineno">  399</span>&#160;        <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00400"></a><span class="lineno">  400</span>&#160;    }</div>
-<div class="line"><a name="l00401"></a><span class="lineno">  401</span>&#160;    <span class="keywordflow">else</span></div>
-<div class="line"><a name="l00402"></a><span class="lineno">  402</span>&#160;    {</div>
-<div class="line"><a name="l00403"></a><span class="lineno">  403</span>&#160;        <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l00404"></a><span class="lineno">  404</span>&#160;    }</div>
-<div class="line"><a name="l00405"></a><span class="lineno">  405</span>&#160;}</div>
-<div class="line"><a name="l00406"></a><span class="lineno">  406</span>&#160; </div>
-<div class="line"><a name="l00417"></a><span class="lineno"><a class="line" href="group__w25qxx__example__driver.html#gaf5f978c432de7d6adaf41cd256724a01">  417</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__example__driver.html#gaf5f978c432de7d6adaf41cd256724a01">w25qxx_advance_only_spi_fast_read_quad_output</a>(uint32_t addr, uint8_t *data, uint32_t len)</div>
-<div class="line"><a name="l00418"></a><span class="lineno">  418</span>&#160;{</div>
-<div class="line"><a name="l00419"></a><span class="lineno">  419</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="group__w25qxx__advance__driver.html#gaf4bfafd1f80aa0316a4b1a15183dcd50">w25qxx_fast_read_quad_output</a>(&amp;gs_handle, addr, data, len) != 0)</div>
-<div class="line"><a name="l00420"></a><span class="lineno">  420</span>&#160;    {</div>
-<div class="line"><a name="l00421"></a><span class="lineno">  421</span>&#160;        <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00422"></a><span class="lineno">  422</span>&#160;    }</div>
-<div class="line"><a name="l00423"></a><span class="lineno">  423</span>&#160;    <span class="keywordflow">else</span></div>
-<div class="line"><a name="l00424"></a><span class="lineno">  424</span>&#160;    {</div>
-<div class="line"><a name="l00425"></a><span class="lineno">  425</span>&#160;        <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l00426"></a><span class="lineno">  426</span>&#160;    }</div>
-<div class="line"><a name="l00427"></a><span class="lineno">  427</span>&#160;}</div>
-<div class="line"><a name="l00428"></a><span class="lineno">  428</span>&#160; </div>
-<div class="line"><a name="l00439"></a><span class="lineno"><a class="line" href="group__w25qxx__example__driver.html#ga4bbaf1a989fae25d16d07edb1e38ca4f">  439</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__example__driver.html#ga4bbaf1a989fae25d16d07edb1e38ca4f">w25qxx_advance_only_spi_fast_read_dual_io</a>(uint32_t addr, uint8_t *data, uint32_t len)</div>
-<div class="line"><a name="l00440"></a><span class="lineno">  440</span>&#160;{</div>
-<div class="line"><a name="l00441"></a><span class="lineno">  441</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="group__w25qxx__advance__driver.html#gac894f4650905cba10dd3a31284de6d5e">w25qxx_fast_read_dual_io</a>(&amp;gs_handle, addr, data, len) != 0)</div>
-<div class="line"><a name="l00442"></a><span class="lineno">  442</span>&#160;    {</div>
-<div class="line"><a name="l00443"></a><span class="lineno">  443</span>&#160;        <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00444"></a><span class="lineno">  444</span>&#160;    }</div>
-<div class="line"><a name="l00445"></a><span class="lineno">  445</span>&#160;    <span class="keywordflow">else</span></div>
-<div class="line"><a name="l00446"></a><span class="lineno">  446</span>&#160;    {</div>
-<div class="line"><a name="l00447"></a><span class="lineno">  447</span>&#160;        <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l00448"></a><span class="lineno">  448</span>&#160;    }</div>
-<div class="line"><a name="l00449"></a><span class="lineno">  449</span>&#160;}</div>
-<div class="line"><a name="l00450"></a><span class="lineno">  450</span>&#160; </div>
-<div class="line"><a name="l00461"></a><span class="lineno"><a class="line" href="group__w25qxx__example__driver.html#ga395add1fa33f4f70d0ba52b38842dbdb">  461</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__example__driver.html#ga395add1fa33f4f70d0ba52b38842dbdb">w25qxx_advance_only_spi_fast_read_quad_io</a>(uint32_t addr, uint8_t *data, uint32_t len)</div>
-<div class="line"><a name="l00462"></a><span class="lineno">  462</span>&#160;{</div>
-<div class="line"><a name="l00463"></a><span class="lineno">  463</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="group__w25qxx__advance__driver.html#gab97a64bd3776874518f60381d921ae41">w25qxx_fast_read_quad_io</a>(&amp;gs_handle, addr, data, len) != 0)</div>
-<div class="line"><a name="l00464"></a><span class="lineno">  464</span>&#160;    {</div>
-<div class="line"><a name="l00465"></a><span class="lineno">  465</span>&#160;        <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00466"></a><span class="lineno">  466</span>&#160;    }</div>
-<div class="line"><a name="l00467"></a><span class="lineno">  467</span>&#160;    <span class="keywordflow">else</span></div>
-<div class="line"><a name="l00468"></a><span class="lineno">  468</span>&#160;    {</div>
-<div class="line"><a name="l00469"></a><span class="lineno">  469</span>&#160;        <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l00470"></a><span class="lineno">  470</span>&#160;    }</div>
-<div class="line"><a name="l00471"></a><span class="lineno">  471</span>&#160;}</div>
-<div class="line"><a name="l00472"></a><span class="lineno">  472</span>&#160; </div>
-<div class="line"><a name="l00483"></a><span class="lineno"><a class="line" href="group__w25qxx__example__driver.html#gaca6b4c6ea32dd96a4ae8714e2862d67a">  483</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__example__driver.html#gaca6b4c6ea32dd96a4ae8714e2862d67a">w25qxx_advance_only_spi_word_read_quad_io</a>(uint32_t addr, uint8_t *data, uint32_t len)</div>
-<div class="line"><a name="l00484"></a><span class="lineno">  484</span>&#160;{</div>
-<div class="line"><a name="l00485"></a><span class="lineno">  485</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="group__w25qxx__advance__driver.html#gad97d7e410dd77c49334097a0fd332660">w25qxx_word_read_quad_io</a>(&amp;gs_handle, addr, data, len) != 0)</div>
-<div class="line"><a name="l00486"></a><span class="lineno">  486</span>&#160;    {</div>
-<div class="line"><a name="l00487"></a><span class="lineno">  487</span>&#160;        <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00488"></a><span class="lineno">  488</span>&#160;    }</div>
-<div class="line"><a name="l00489"></a><span class="lineno">  489</span>&#160;    <span class="keywordflow">else</span></div>
-<div class="line"><a name="l00490"></a><span class="lineno">  490</span>&#160;    {</div>
-<div class="line"><a name="l00491"></a><span class="lineno">  491</span>&#160;        <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l00492"></a><span class="lineno">  492</span>&#160;    }</div>
-<div class="line"><a name="l00493"></a><span class="lineno">  493</span>&#160;}</div>
-<div class="line"><a name="l00494"></a><span class="lineno">  494</span>&#160; </div>
-<div class="line"><a name="l00505"></a><span class="lineno"><a class="line" href="group__w25qxx__example__driver.html#ga825a567c535236d7d18ffccf07df59e9">  505</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__example__driver.html#ga825a567c535236d7d18ffccf07df59e9">w25qxx_advance_only_spi_octal_word_read_quad_io</a>(uint32_t addr, uint8_t *data, uint32_t len)</div>
-<div class="line"><a name="l00506"></a><span class="lineno">  506</span>&#160;{</div>
-<div class="line"><a name="l00507"></a><span class="lineno">  507</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="group__w25qxx__advance__driver.html#ga88a62ec42e86db821ff3f0d3ab541dbb">w25qxx_octal_word_read_quad_io</a>(&amp;gs_handle, addr, data, len) != 0)</div>
-<div class="line"><a name="l00508"></a><span class="lineno">  508</span>&#160;    {</div>
-<div class="line"><a name="l00509"></a><span class="lineno">  509</span>&#160;        <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00510"></a><span class="lineno">  510</span>&#160;    }</div>
-<div class="line"><a name="l00511"></a><span class="lineno">  511</span>&#160;    <span class="keywordflow">else</span></div>
-<div class="line"><a name="l00512"></a><span class="lineno">  512</span>&#160;    {</div>
-<div class="line"><a name="l00513"></a><span class="lineno">  513</span>&#160;        <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l00514"></a><span class="lineno">  514</span>&#160;    }</div>
-<div class="line"><a name="l00515"></a><span class="lineno">  515</span>&#160;}</div>
-<div class="line"><a name="l00516"></a><span class="lineno">  516</span>&#160; </div>
-<div class="line"><a name="l00527"></a><span class="lineno"><a class="line" href="group__w25qxx__example__driver.html#gad243655eb738e44c50e6079c983fd782">  527</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__example__driver.html#gad243655eb738e44c50e6079c983fd782">w25qxx_advance_only_spi_page_program_quad_input</a>(uint32_t addr, uint8_t *data, uint16_t len)</div>
-<div class="line"><a name="l00528"></a><span class="lineno">  528</span>&#160;{</div>
-<div class="line"><a name="l00529"></a><span class="lineno">  529</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="group__w25qxx__advance__driver.html#ga1f80bbbaaa852eecfffb87737889363d">w25qxx_page_program_quad_input</a>(&amp;gs_handle, addr, data, len) != 0)</div>
-<div class="line"><a name="l00530"></a><span class="lineno">  530</span>&#160;    {</div>
-<div class="line"><a name="l00531"></a><span class="lineno">  531</span>&#160;        <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00532"></a><span class="lineno">  532</span>&#160;    }</div>
-<div class="line"><a name="l00533"></a><span class="lineno">  533</span>&#160;    <span class="keywordflow">else</span></div>
-<div class="line"><a name="l00534"></a><span class="lineno">  534</span>&#160;    {</div>
-<div class="line"><a name="l00535"></a><span class="lineno">  535</span>&#160;        <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l00536"></a><span class="lineno">  536</span>&#160;    }</div>
-<div class="line"><a name="l00537"></a><span class="lineno">  537</span>&#160;}</div>
-<div class="line"><a name="l00538"></a><span class="lineno">  538</span>&#160; </div>
-<div class="line"><a name="l00547"></a><span class="lineno"><a class="line" href="group__w25qxx__example__driver.html#ga4c1be6979b4dc878d07ec86b8624c9d2">  547</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__example__driver.html#ga4c1be6979b4dc878d07ec86b8624c9d2">w25qxx_advance_get_status1</a>(uint8_t *status)</div>
-<div class="line"><a name="l00548"></a><span class="lineno">  548</span>&#160;{</div>
-<div class="line"><a name="l00549"></a><span class="lineno">  549</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="group__w25qxx__advance__driver.html#gaa77d2b00b4fb9cf586f77ace827ea7c6">w25qxx_get_status1</a>(&amp;gs_handle, status) != 0)</div>
-<div class="line"><a name="l00550"></a><span class="lineno">  550</span>&#160;    {</div>
-<div class="line"><a name="l00551"></a><span class="lineno">  551</span>&#160;        <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00552"></a><span class="lineno">  552</span>&#160;    }</div>
-<div class="line"><a name="l00553"></a><span class="lineno">  553</span>&#160;    <span class="keywordflow">else</span></div>
-<div class="line"><a name="l00554"></a><span class="lineno">  554</span>&#160;    {</div>
-<div class="line"><a name="l00555"></a><span class="lineno">  555</span>&#160;        <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l00556"></a><span class="lineno">  556</span>&#160;    }</div>
-<div class="line"><a name="l00557"></a><span class="lineno">  557</span>&#160;}</div>
-<div class="line"><a name="l00558"></a><span class="lineno">  558</span>&#160; </div>
-<div class="line"><a name="l00567"></a><span class="lineno"><a class="line" href="group__w25qxx__example__driver.html#gaf4736fff906c2f0c1dbed26b20847052">  567</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__example__driver.html#gaf4736fff906c2f0c1dbed26b20847052">w25qxx_advance_get_status2</a>(uint8_t *status)</div>
-<div class="line"><a name="l00568"></a><span class="lineno">  568</span>&#160;{</div>
-<div class="line"><a name="l00569"></a><span class="lineno">  569</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="group__w25qxx__advance__driver.html#gaa21237ecbd5951b8017799066e7db5d9">w25qxx_get_status2</a>(&amp;gs_handle, status) != 0)</div>
-<div class="line"><a name="l00570"></a><span class="lineno">  570</span>&#160;    {</div>
-<div class="line"><a name="l00571"></a><span class="lineno">  571</span>&#160;        <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00572"></a><span class="lineno">  572</span>&#160;    }</div>
-<div class="line"><a name="l00573"></a><span class="lineno">  573</span>&#160;    <span class="keywordflow">else</span></div>
-<div class="line"><a name="l00574"></a><span class="lineno">  574</span>&#160;    {</div>
-<div class="line"><a name="l00575"></a><span class="lineno">  575</span>&#160;        <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l00576"></a><span class="lineno">  576</span>&#160;    }</div>
-<div class="line"><a name="l00577"></a><span class="lineno">  577</span>&#160;}</div>
-<div class="line"><a name="l00578"></a><span class="lineno">  578</span>&#160; </div>
-<div class="line"><a name="l00587"></a><span class="lineno"><a class="line" href="group__w25qxx__example__driver.html#ga31bcd3d2cc68d2fc589685b5087bd8b3">  587</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__example__driver.html#ga31bcd3d2cc68d2fc589685b5087bd8b3">w25qxx_advance_get_status3</a>(uint8_t *status)</div>
-<div class="line"><a name="l00588"></a><span class="lineno">  588</span>&#160;{</div>
-<div class="line"><a name="l00589"></a><span class="lineno">  589</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="group__w25qxx__advance__driver.html#ga99cf6a325a00921d4531004f0c1d75b1">w25qxx_get_status3</a>(&amp;gs_handle, status) != 0)</div>
-<div class="line"><a name="l00590"></a><span class="lineno">  590</span>&#160;    {</div>
-<div class="line"><a name="l00591"></a><span class="lineno">  591</span>&#160;        <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00592"></a><span class="lineno">  592</span>&#160;    }</div>
-<div class="line"><a name="l00593"></a><span class="lineno">  593</span>&#160;    <span class="keywordflow">else</span></div>
-<div class="line"><a name="l00594"></a><span class="lineno">  594</span>&#160;    {</div>
-<div class="line"><a name="l00595"></a><span class="lineno">  595</span>&#160;        <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l00596"></a><span class="lineno">  596</span>&#160;    }</div>
-<div class="line"><a name="l00597"></a><span class="lineno">  597</span>&#160;}</div>
-<div class="line"><a name="l00598"></a><span class="lineno">  598</span>&#160; </div>
-<div class="line"><a name="l00607"></a><span class="lineno"><a class="line" href="group__w25qxx__example__driver.html#ga5e4938b4575c417ae22fa82079459b1a">  607</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__example__driver.html#ga5e4938b4575c417ae22fa82079459b1a">w25qxx_advance_set_status1</a>(uint8_t status)</div>
-<div class="line"><a name="l00608"></a><span class="lineno">  608</span>&#160;{</div>
-<div class="line"><a name="l00609"></a><span class="lineno">  609</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="group__w25qxx__advance__driver.html#ga246e0bb07c8bbb39731f17906779c012">w25qxx_set_status1</a>(&amp;gs_handle, status) != 0)</div>
-<div class="line"><a name="l00610"></a><span class="lineno">  610</span>&#160;    {</div>
-<div class="line"><a name="l00611"></a><span class="lineno">  611</span>&#160;        <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00612"></a><span class="lineno">  612</span>&#160;    }</div>
-<div class="line"><a name="l00613"></a><span class="lineno">  613</span>&#160;    <span class="keywordflow">else</span></div>
-<div class="line"><a name="l00614"></a><span class="lineno">  614</span>&#160;    {</div>
-<div class="line"><a name="l00615"></a><span class="lineno">  615</span>&#160;        <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l00616"></a><span class="lineno">  616</span>&#160;    }</div>
-<div class="line"><a name="l00617"></a><span class="lineno">  617</span>&#160;}</div>
-<div class="line"><a name="l00618"></a><span class="lineno">  618</span>&#160; </div>
-<div class="line"><a name="l00627"></a><span class="lineno"><a class="line" href="group__w25qxx__example__driver.html#ga9bc0e696b700d66f15b3605e10d33718">  627</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__example__driver.html#ga9bc0e696b700d66f15b3605e10d33718">w25qxx_advance_set_status2</a>(uint8_t status)</div>
-<div class="line"><a name="l00628"></a><span class="lineno">  628</span>&#160;{</div>
-<div class="line"><a name="l00629"></a><span class="lineno">  629</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="group__w25qxx__advance__driver.html#gaab5f28e8930d50dbc2178e39bc9fa456">w25qxx_set_status2</a>(&amp;gs_handle, status) != 0)</div>
-<div class="line"><a name="l00630"></a><span class="lineno">  630</span>&#160;    {</div>
-<div class="line"><a name="l00631"></a><span class="lineno">  631</span>&#160;        <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00632"></a><span class="lineno">  632</span>&#160;    }</div>
-<div class="line"><a name="l00633"></a><span class="lineno">  633</span>&#160;    <span class="keywordflow">else</span></div>
-<div class="line"><a name="l00634"></a><span class="lineno">  634</span>&#160;    {</div>
-<div class="line"><a name="l00635"></a><span class="lineno">  635</span>&#160;        <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l00636"></a><span class="lineno">  636</span>&#160;    }</div>
-<div class="line"><a name="l00637"></a><span class="lineno">  637</span>&#160;}</div>
-<div class="line"><a name="l00638"></a><span class="lineno">  638</span>&#160; </div>
-<div class="line"><a name="l00647"></a><span class="lineno"><a class="line" href="group__w25qxx__example__driver.html#gab5c990ebd4874137b7d23f2b896d4601">  647</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__example__driver.html#gab5c990ebd4874137b7d23f2b896d4601">w25qxx_advance_set_status3</a>(uint8_t status)</div>
-<div class="line"><a name="l00648"></a><span class="lineno">  648</span>&#160;{</div>
-<div class="line"><a name="l00649"></a><span class="lineno">  649</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="group__w25qxx__advance__driver.html#gada897a6c6d6acb99f4dd4ff9b65ad8ee">w25qxx_set_status3</a>(&amp;gs_handle, status) != 0)</div>
-<div class="line"><a name="l00650"></a><span class="lineno">  650</span>&#160;    {</div>
-<div class="line"><a name="l00651"></a><span class="lineno">  651</span>&#160;        <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00652"></a><span class="lineno">  652</span>&#160;    }</div>
-<div class="line"><a name="l00653"></a><span class="lineno">  653</span>&#160;    <span class="keywordflow">else</span></div>
-<div class="line"><a name="l00654"></a><span class="lineno">  654</span>&#160;    {</div>
-<div class="line"><a name="l00655"></a><span class="lineno">  655</span>&#160;        <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l00656"></a><span class="lineno">  656</span>&#160;    }</div>
-<div class="line"><a name="l00657"></a><span class="lineno">  657</span>&#160;}</div>
-<div class="line"><a name="l00658"></a><span class="lineno">  658</span>&#160; </div>
-<div class="line"><a name="l00668"></a><span class="lineno"><a class="line" href="group__w25qxx__example__driver.html#gac0d9e08a37ee37563c8dbb501608a668">  668</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__example__driver.html#gac0d9e08a37ee37563c8dbb501608a668">w25qxx_advance_only_spi_get_manufacturer_device_id_dual_io</a>(uint8_t *manufacturer, uint8_t *device_id)</div>
-<div class="line"><a name="l00669"></a><span class="lineno">  669</span>&#160;{</div>
-<div class="line"><a name="l00670"></a><span class="lineno">  670</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="group__w25qxx__advance__driver.html#ga1cd3aec1bdeabbaed5f049fbf83ceeb4">w25qxx_get_manufacturer_device_id_dual_io</a>(&amp;gs_handle, manufacturer, device_id) != 0)</div>
-<div class="line"><a name="l00671"></a><span class="lineno">  671</span>&#160;    {</div>
-<div class="line"><a name="l00672"></a><span class="lineno">  672</span>&#160;        <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00673"></a><span class="lineno">  673</span>&#160;    }</div>
-<div class="line"><a name="l00674"></a><span class="lineno">  674</span>&#160;    <span class="keywordflow">else</span></div>
-<div class="line"><a name="l00675"></a><span class="lineno">  675</span>&#160;    {</div>
-<div class="line"><a name="l00676"></a><span class="lineno">  676</span>&#160;        <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l00677"></a><span class="lineno">  677</span>&#160;    }</div>
-<div class="line"><a name="l00678"></a><span class="lineno">  678</span>&#160;}</div>
-<div class="line"><a name="l00679"></a><span class="lineno">  679</span>&#160; </div>
-<div class="line"><a name="l00689"></a><span class="lineno"><a class="line" href="group__w25qxx__example__driver.html#ga6142b5a1e8602e2990dec34015812615">  689</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__example__driver.html#ga6142b5a1e8602e2990dec34015812615">w25qxx_advance_only_spi_get_manufacturer_device_id_quad_io</a>(uint8_t *manufacturer, uint8_t *device_id)</div>
-<div class="line"><a name="l00690"></a><span class="lineno">  690</span>&#160;{</div>
-<div class="line"><a name="l00691"></a><span class="lineno">  691</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="group__w25qxx__advance__driver.html#ga61bd3ce40b76b6862c6a53e0e37a3455">w25qxx_get_manufacturer_device_id_quad_io</a>(&amp;gs_handle, manufacturer, device_id) != 0)</div>
-<div class="line"><a name="l00692"></a><span class="lineno">  692</span>&#160;    {</div>
-<div class="line"><a name="l00693"></a><span class="lineno">  693</span>&#160;        <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00694"></a><span class="lineno">  694</span>&#160;    }</div>
-<div class="line"><a name="l00695"></a><span class="lineno">  695</span>&#160;    <span class="keywordflow">else</span></div>
-<div class="line"><a name="l00696"></a><span class="lineno">  696</span>&#160;    {</div>
-<div class="line"><a name="l00697"></a><span class="lineno">  697</span>&#160;        <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l00698"></a><span class="lineno">  698</span>&#160;    }</div>
-<div class="line"><a name="l00699"></a><span class="lineno">  699</span>&#160;}</div>
-<div class="line"><a name="l00700"></a><span class="lineno">  700</span>&#160; </div>
-<div class="line"><a name="l00710"></a><span class="lineno"><a class="line" href="group__w25qxx__example__driver.html#gacc7435a39b61c44f0ce16690d5da896b">  710</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__example__driver.html#gacc7435a39b61c44f0ce16690d5da896b">w25qxx_advance_get_get_jedec_id</a>(uint8_t *manufacturer, uint8_t device_id[2])</div>
-<div class="line"><a name="l00711"></a><span class="lineno">  711</span>&#160;{</div>
-<div class="line"><a name="l00712"></a><span class="lineno">  712</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="group__w25qxx__advance__driver.html#ga8a93ba14a032e10a27f1495fdcf56058">w25qxx_get_jedec_id</a>(&amp;gs_handle, manufacturer, device_id) != 0)</div>
-<div class="line"><a name="l00713"></a><span class="lineno">  713</span>&#160;    {</div>
-<div class="line"><a name="l00714"></a><span class="lineno">  714</span>&#160;        <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00715"></a><span class="lineno">  715</span>&#160;    }</div>
-<div class="line"><a name="l00716"></a><span class="lineno">  716</span>&#160;    <span class="keywordflow">else</span></div>
-<div class="line"><a name="l00717"></a><span class="lineno">  717</span>&#160;    {</div>
-<div class="line"><a name="l00718"></a><span class="lineno">  718</span>&#160;        <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l00719"></a><span class="lineno">  719</span>&#160;    }</div>
-<div class="line"><a name="l00720"></a><span class="lineno">  720</span>&#160;}</div>
-<div class="line"><a name="l00721"></a><span class="lineno">  721</span>&#160; </div>
-<div class="line"><a name="l00729"></a><span class="lineno"><a class="line" href="group__w25qxx__example__driver.html#ga2cbcc018dc11a870d2e0fc3a8946b1d8">  729</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__example__driver.html#ga2cbcc018dc11a870d2e0fc3a8946b1d8">w25qxx_advance_global_block_lock</a>(<span class="keywordtype">void</span>)</div>
-<div class="line"><a name="l00730"></a><span class="lineno">  730</span>&#160;{</div>
-<div class="line"><a name="l00731"></a><span class="lineno">  731</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="group__w25qxx__advance__driver.html#gab5579bc42bc07a7657848140888a817c">w25qxx_global_block_lock</a>(&amp;gs_handle) != 0)</div>
-<div class="line"><a name="l00732"></a><span class="lineno">  732</span>&#160;    {</div>
-<div class="line"><a name="l00733"></a><span class="lineno">  733</span>&#160;        <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00734"></a><span class="lineno">  734</span>&#160;    }</div>
-<div class="line"><a name="l00735"></a><span class="lineno">  735</span>&#160;    <span class="keywordflow">else</span></div>
-<div class="line"><a name="l00736"></a><span class="lineno">  736</span>&#160;    {</div>
-<div class="line"><a name="l00737"></a><span class="lineno">  737</span>&#160;        <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l00738"></a><span class="lineno">  738</span>&#160;    }</div>
-<div class="line"><a name="l00739"></a><span class="lineno">  739</span>&#160;}</div>
-<div class="line"><a name="l00740"></a><span class="lineno">  740</span>&#160; </div>
-<div class="line"><a name="l00748"></a><span class="lineno"><a class="line" href="group__w25qxx__example__driver.html#ga67c70da103511d1cff9274e61a08ce56">  748</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__example__driver.html#ga67c70da103511d1cff9274e61a08ce56">w25qxx_advance_global_block_unlock</a>(<span class="keywordtype">void</span>)</div>
-<div class="line"><a name="l00749"></a><span class="lineno">  749</span>&#160;{</div>
-<div class="line"><a name="l00750"></a><span class="lineno">  750</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="group__w25qxx__advance__driver.html#ga6d62f7d14945cfde7cde7a0e9a4e3afb">w25qxx_global_block_unlock</a>(&amp;gs_handle) != 0)</div>
-<div class="line"><a name="l00751"></a><span class="lineno">  751</span>&#160;    {</div>
-<div class="line"><a name="l00752"></a><span class="lineno">  752</span>&#160;        <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00753"></a><span class="lineno">  753</span>&#160;    }</div>
-<div class="line"><a name="l00754"></a><span class="lineno">  754</span>&#160;    <span class="keywordflow">else</span></div>
-<div class="line"><a name="l00755"></a><span class="lineno">  755</span>&#160;    {</div>
-<div class="line"><a name="l00756"></a><span class="lineno">  756</span>&#160;        <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l00757"></a><span class="lineno">  757</span>&#160;    }</div>
-<div class="line"><a name="l00758"></a><span class="lineno">  758</span>&#160;}</div>
-<div class="line"><a name="l00759"></a><span class="lineno">  759</span>&#160; </div>
-<div class="line"><a name="l00768"></a><span class="lineno"><a class="line" href="group__w25qxx__example__driver.html#gaa7af99e92b3e81f5b202575b55dc3a7c">  768</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__example__driver.html#gaa7af99e92b3e81f5b202575b55dc3a7c">w25qxx_advance_individual_block_lock</a>(uint32_t addr)</div>
-<div class="line"><a name="l00769"></a><span class="lineno">  769</span>&#160;{</div>
-<div class="line"><a name="l00770"></a><span class="lineno">  770</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="group__w25qxx__advance__driver.html#ga4f00c2c169cb7c3084841c6cd795e76b">w25qxx_individual_block_lock</a>(&amp;gs_handle, addr) != 0)</div>
-<div class="line"><a name="l00771"></a><span class="lineno">  771</span>&#160;    {</div>
-<div class="line"><a name="l00772"></a><span class="lineno">  772</span>&#160;        <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00773"></a><span class="lineno">  773</span>&#160;    }</div>
-<div class="line"><a name="l00774"></a><span class="lineno">  774</span>&#160;    <span class="keywordflow">else</span></div>
-<div class="line"><a name="l00775"></a><span class="lineno">  775</span>&#160;    {</div>
-<div class="line"><a name="l00776"></a><span class="lineno">  776</span>&#160;        <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l00777"></a><span class="lineno">  777</span>&#160;    }</div>
-<div class="line"><a name="l00778"></a><span class="lineno">  778</span>&#160;}</div>
-<div class="line"><a name="l00779"></a><span class="lineno">  779</span>&#160; </div>
-<div class="line"><a name="l00788"></a><span class="lineno"><a class="line" href="group__w25qxx__example__driver.html#ga66726fc451c7804e8fec6eb46a6a77d6">  788</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__example__driver.html#ga66726fc451c7804e8fec6eb46a6a77d6">w25qxx_advance_individual_block_unlock</a>(uint32_t addr)</div>
-<div class="line"><a name="l00789"></a><span class="lineno">  789</span>&#160;{</div>
-<div class="line"><a name="l00790"></a><span class="lineno">  790</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="group__w25qxx__advance__driver.html#ga7f88cedf7619071b3235ba094915b2a7">w25qxx_individual_block_unlock</a>(&amp;gs_handle, addr) != 0)</div>
-<div class="line"><a name="l00791"></a><span class="lineno">  791</span>&#160;    {</div>
-<div class="line"><a name="l00792"></a><span class="lineno">  792</span>&#160;        <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00793"></a><span class="lineno">  793</span>&#160;    }</div>
-<div class="line"><a name="l00794"></a><span class="lineno">  794</span>&#160;    <span class="keywordflow">else</span></div>
-<div class="line"><a name="l00795"></a><span class="lineno">  795</span>&#160;    {</div>
-<div class="line"><a name="l00796"></a><span class="lineno">  796</span>&#160;        <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l00797"></a><span class="lineno">  797</span>&#160;    }</div>
-<div class="line"><a name="l00798"></a><span class="lineno">  798</span>&#160;}</div>
-<div class="line"><a name="l00799"></a><span class="lineno">  799</span>&#160; </div>
-<div class="line"><a name="l00809"></a><span class="lineno"><a class="line" href="group__w25qxx__example__driver.html#gac1773fe914a01825ca28346205601036">  809</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__example__driver.html#gac1773fe914a01825ca28346205601036">w25qxx_advance_read_block_lock</a>(uint32_t addr, uint8_t *value)</div>
-<div class="line"><a name="l00810"></a><span class="lineno">  810</span>&#160;{</div>
-<div class="line"><a name="l00811"></a><span class="lineno">  811</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="group__w25qxx__advance__driver.html#ga59e655ca78a175037ca810bbc8539a96">w25qxx_read_block_lock</a>(&amp;gs_handle, addr, value) != 0)</div>
-<div class="line"><a name="l00812"></a><span class="lineno">  812</span>&#160;    {</div>
-<div class="line"><a name="l00813"></a><span class="lineno">  813</span>&#160;        <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00814"></a><span class="lineno">  814</span>&#160;    }</div>
-<div class="line"><a name="l00815"></a><span class="lineno">  815</span>&#160;    <span class="keywordflow">else</span></div>
-<div class="line"><a name="l00816"></a><span class="lineno">  816</span>&#160;    {</div>
-<div class="line"><a name="l00817"></a><span class="lineno">  817</span>&#160;        <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l00818"></a><span class="lineno">  818</span>&#160;    }</div>
-<div class="line"><a name="l00819"></a><span class="lineno">  819</span>&#160;}</div>
-<div class="line"><a name="l00820"></a><span class="lineno">  820</span>&#160; </div>
-<div class="line"><a name="l00828"></a><span class="lineno"><a class="line" href="group__w25qxx__example__driver.html#ga0f65053ad28443f19ed73dbc3412b5b2">  828</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__example__driver.html#ga0f65053ad28443f19ed73dbc3412b5b2">w25qxx_advance_reset</a>(<span class="keywordtype">void</span>)</div>
-<div class="line"><a name="l00829"></a><span class="lineno">  829</span>&#160;{</div>
-<div class="line"><a name="l00830"></a><span class="lineno">  830</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="group__w25qxx__advance__driver.html#gab55b4e071e20feb58584025287949438">w25qxx_enable_reset</a>(&amp;gs_handle) != 0)</div>
-<div class="line"><a name="l00831"></a><span class="lineno">  831</span>&#160;    {</div>
-<div class="line"><a name="l00832"></a><span class="lineno">  832</span>&#160;        <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00833"></a><span class="lineno">  833</span>&#160;    }</div>
-<div class="line"><a name="l00834"></a><span class="lineno">  834</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="group__w25qxx__advance__driver.html#ga2abebfe2a8d9377eb88448ffca73f222">w25qxx_reset_device</a>(&amp;gs_handle) != 0)</div>
-<div class="line"><a name="l00835"></a><span class="lineno">  835</span>&#160;    {</div>
-<div class="line"><a name="l00836"></a><span class="lineno">  836</span>&#160;        <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00837"></a><span class="lineno">  837</span>&#160;    }</div>
-<div class="line"><a name="l00838"></a><span class="lineno">  838</span>&#160;    <span class="keywordflow">else</span></div>
-<div class="line"><a name="l00839"></a><span class="lineno">  839</span>&#160;    {</div>
-<div class="line"><a name="l00840"></a><span class="lineno">  840</span>&#160;        <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l00841"></a><span class="lineno">  841</span>&#160;    }</div>
-<div class="line"><a name="l00842"></a><span class="lineno">  842</span>&#160;}</div>
-<div class="line"><a name="l00843"></a><span class="lineno">  843</span>&#160; </div>
-<div class="line"><a name="l00853"></a><span class="lineno"><a class="line" href="group__w25qxx__example__driver.html#gace2a5b7acd9798cfcaa2b5eb2f18e1d1">  853</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__example__driver.html#gace2a5b7acd9798cfcaa2b5eb2f18e1d1">w25qxx_advance_only_qspi_set_read_parameters</a>(<a class="code" href="group__w25qxx__advance__driver.html#ga6ff284154302248f00db269146545443">w25qxx_qspi_read_dummy_t</a> dummy, <a class="code" href="group__w25qxx__advance__driver.html#ga2fd3023819e1aebe089a4a72eb136da3">w25qxx_qspi_read_wrap_length_t</a> length)</div>
-<div class="line"><a name="l00854"></a><span class="lineno">  854</span>&#160;{</div>
-<div class="line"><a name="l00855"></a><span class="lineno">  855</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="group__w25qxx__advance__driver.html#ga9ad10781d888b32b43b9eba45d049624">w25qxx_set_read_parameters</a>(&amp;gs_handle, dummy, length) != 0)</div>
-<div class="line"><a name="l00856"></a><span class="lineno">  856</span>&#160;    {</div>
-<div class="line"><a name="l00857"></a><span class="lineno">  857</span>&#160;        <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00858"></a><span class="lineno">  858</span>&#160;    }</div>
-<div class="line"><a name="l00859"></a><span class="lineno">  859</span>&#160;    <span class="keywordflow">else</span></div>
-<div class="line"><a name="l00860"></a><span class="lineno">  860</span>&#160;    {</div>
-<div class="line"><a name="l00861"></a><span class="lineno">  861</span>&#160;        <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l00862"></a><span class="lineno">  862</span>&#160;    }</div>
-<div class="line"><a name="l00863"></a><span class="lineno">  863</span>&#160;}</div>
-<div class="line"><a name="l00864"></a><span class="lineno">  864</span>&#160; </div>
-<div class="line"><a name="l00873"></a><span class="lineno"><a class="line" href="group__w25qxx__example__driver.html#ga374d35b73fa61d5f7464c3effdae1d57">  873</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__example__driver.html#ga374d35b73fa61d5f7464c3effdae1d57">w25qxx_advance_only_spi_get_unique_id</a>(uint8_t <span class="keywordtype">id</span>[8])</div>
-<div class="line"><a name="l00874"></a><span class="lineno">  874</span>&#160;{</div>
-<div class="line"><a name="l00875"></a><span class="lineno">  875</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="group__w25qxx__advance__driver.html#ga11af244389478de68a6777076ee82d69">w25qxx_get_unique_id</a>(&amp;gs_handle, <span class="keywordtype">id</span>) != 0)</div>
-<div class="line"><a name="l00876"></a><span class="lineno">  876</span>&#160;    {</div>
-<div class="line"><a name="l00877"></a><span class="lineno">  877</span>&#160;        <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00878"></a><span class="lineno">  878</span>&#160;    }</div>
-<div class="line"><a name="l00879"></a><span class="lineno">  879</span>&#160;    <span class="keywordflow">else</span></div>
-<div class="line"><a name="l00880"></a><span class="lineno">  880</span>&#160;    {</div>
-<div class="line"><a name="l00881"></a><span class="lineno">  881</span>&#160;        <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l00882"></a><span class="lineno">  882</span>&#160;    }</div>
-<div class="line"><a name="l00883"></a><span class="lineno">  883</span>&#160;}</div>
-<div class="line"><a name="l00884"></a><span class="lineno">  884</span>&#160; </div>
-<div class="line"><a name="l00893"></a><span class="lineno"><a class="line" href="group__w25qxx__example__driver.html#ga9b1854e0ae52f57523bc2fa7cc0656df">  893</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__example__driver.html#ga9b1854e0ae52f57523bc2fa7cc0656df">w25qxx_advance_only_spi_get_sfdp</a>(uint8_t sfdp[256])</div>
-<div class="line"><a name="l00894"></a><span class="lineno">  894</span>&#160;{</div>
-<div class="line"><a name="l00895"></a><span class="lineno">  895</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="group__w25qxx__advance__driver.html#ga244a91b9c0c32e899ca89e1943045624">w25qxx_get_sfdp</a>(&amp;gs_handle, sfdp) != 0)</div>
-<div class="line"><a name="l00896"></a><span class="lineno">  896</span>&#160;    {</div>
-<div class="line"><a name="l00897"></a><span class="lineno">  897</span>&#160;        <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00898"></a><span class="lineno">  898</span>&#160;    }</div>
-<div class="line"><a name="l00899"></a><span class="lineno">  899</span>&#160;    <span class="keywordflow">else</span></div>
-<div class="line"><a name="l00900"></a><span class="lineno">  900</span>&#160;    {</div>
-<div class="line"><a name="l00901"></a><span class="lineno">  901</span>&#160;        <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l00902"></a><span class="lineno">  902</span>&#160;    }</div>
-<div class="line"><a name="l00903"></a><span class="lineno">  903</span>&#160;}</div>
-<div class="line"><a name="l00904"></a><span class="lineno">  904</span>&#160; </div>
-<div class="line"><a name="l00914"></a><span class="lineno"><a class="line" href="group__w25qxx__example__driver.html#gaa6c5f97106e769ba071973cc2e782ad4">  914</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__example__driver.html#gaa6c5f97106e769ba071973cc2e782ad4">w25qxx_advance_only_spi_write_security_register</a>(<a class="code" href="group__w25qxx__advance__driver.html#ga81ddc7d4b9f4f124163beea19cc33c7e">w25qxx_security_register_t</a> num, uint8_t data[256])</div>
-<div class="line"><a name="l00915"></a><span class="lineno">  915</span>&#160;{</div>
-<div class="line"><a name="l00916"></a><span class="lineno">  916</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="group__w25qxx__advance__driver.html#gaf297e2c6877c64f8fd10a555f783ddaf">w25qxx_erase_security_register</a>(&amp;gs_handle, num) != 0)</div>
-<div class="line"><a name="l00917"></a><span class="lineno">  917</span>&#160;    {</div>
-<div class="line"><a name="l00918"></a><span class="lineno">  918</span>&#160;        <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00919"></a><span class="lineno">  919</span>&#160;    }</div>
-<div class="line"><a name="l00920"></a><span class="lineno">  920</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="group__w25qxx__advance__driver.html#ga4e9c059ff78866e478e835cb27a92899">w25qxx_program_security_register</a>(&amp;gs_handle, num, data) != 0)</div>
-<div class="line"><a name="l00921"></a><span class="lineno">  921</span>&#160;    {</div>
-<div class="line"><a name="l00922"></a><span class="lineno">  922</span>&#160;        <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00923"></a><span class="lineno">  923</span>&#160;    }</div>
-<div class="line"><a name="l00924"></a><span class="lineno">  924</span>&#160;    <span class="keywordflow">else</span></div>
-<div class="line"><a name="l00925"></a><span class="lineno">  925</span>&#160;    {</div>
-<div class="line"><a name="l00926"></a><span class="lineno">  926</span>&#160;        <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l00927"></a><span class="lineno">  927</span>&#160;    }</div>
-<div class="line"><a name="l00928"></a><span class="lineno">  928</span>&#160;}</div>
-<div class="line"><a name="l00929"></a><span class="lineno">  929</span>&#160; </div>
-<div class="line"><a name="l00939"></a><span class="lineno"><a class="line" href="group__w25qxx__example__driver.html#ga02652a58ee418b432cf77505809d7d42">  939</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__example__driver.html#ga02652a58ee418b432cf77505809d7d42">w25qxx_advance_only_spi_read_security_register</a>(<a class="code" href="group__w25qxx__advance__driver.html#ga81ddc7d4b9f4f124163beea19cc33c7e">w25qxx_security_register_t</a> num, uint8_t data[256])</div>
-<div class="line"><a name="l00940"></a><span class="lineno">  940</span>&#160;{</div>
-<div class="line"><a name="l00941"></a><span class="lineno">  941</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="group__w25qxx__advance__driver.html#ga4c65debc4947bd9a61e0073105164b9c">w25qxx_read_security_register</a>(&amp;gs_handle, num, data) != 0)</div>
-<div class="line"><a name="l00942"></a><span class="lineno">  942</span>&#160;    {</div>
-<div class="line"><a name="l00943"></a><span class="lineno">  943</span>&#160;        <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00944"></a><span class="lineno">  944</span>&#160;    }</div>
-<div class="line"><a name="l00945"></a><span class="lineno">  945</span>&#160;    <span class="keywordflow">else</span></div>
-<div class="line"><a name="l00946"></a><span class="lineno">  946</span>&#160;    {</div>
-<div class="line"><a name="l00947"></a><span class="lineno">  947</span>&#160;        <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l00948"></a><span class="lineno">  948</span>&#160;    }</div>
-<div class="line"><a name="l00949"></a><span class="lineno">  949</span>&#160;}</div>
-<div class="line"><a name="l00950"></a><span class="lineno">  950</span>&#160; </div>
-<div class="line"><a name="l00959"></a><span class="lineno"><a class="line" href="group__w25qxx__example__driver.html#ga16411577fcb794f7485912f5db1bdde9">  959</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__example__driver.html#ga16411577fcb794f7485912f5db1bdde9">w25qxx_advance_only_spi_set_burst_with_wrap</a>(<a class="code" href="group__w25qxx__advance__driver.html#ga94bbae2bf8906903e8dc2a28c490723d">w25qxx_burst_wrap_t</a> wrap)</div>
-<div class="line"><a name="l00960"></a><span class="lineno">  960</span>&#160;{</div>
-<div class="line"><a name="l00961"></a><span class="lineno">  961</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="group__w25qxx__advance__driver.html#gac19c1d0f3fd48968ea2a93c1dbe3d75d">w25qxx_set_burst_with_wrap</a>(&amp;gs_handle, wrap) != 0)</div>
-<div class="line"><a name="l00962"></a><span class="lineno">  962</span>&#160;    {</div>
-<div class="line"><a name="l00963"></a><span class="lineno">  963</span>&#160;        <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00964"></a><span class="lineno">  964</span>&#160;    }</div>
-<div class="line"><a name="l00965"></a><span class="lineno">  965</span>&#160;    <span class="keywordflow">else</span></div>
-<div class="line"><a name="l00966"></a><span class="lineno">  966</span>&#160;    {</div>
-<div class="line"><a name="l00967"></a><span class="lineno">  967</span>&#160;        <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l00968"></a><span class="lineno">  968</span>&#160;    }</div>
-<div class="line"><a name="l00969"></a><span class="lineno">  969</span>&#160;}</div>
+<a href="driver__w25qxx__advance_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno">    1</span> </div>
+<div class="line"><a id="l00037" name="l00037"></a><span class="lineno">   37</span><span class="preprocessor">#include &quot;<a class="code" href="driver__w25qxx__advance_8h.html">driver_w25qxx_advance.h</a>&quot;</span></div>
+<div class="line"><a id="l00038" name="l00038"></a><span class="lineno">   38</span> </div>
+<div class="line"><a id="l00039" name="l00039"></a><span class="lineno">   39</span><span class="keyword">static</span> <a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> gs_handle;        </div>
+<div class="foldopen" id="foldopen00051" data-start="{" data-end="}">
+<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"><a class="line" href="group__w25qxx__example__driver.html#ga413b420bc199d09ce5cafee4a4debb28">   51</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__example__driver.html#ga413b420bc199d09ce5cafee4a4debb28">w25qxx_advance_init</a>(<a class="code hl_enumeration" href="group__w25qxx__basic__driver.html#ga6cb4e5164464df549201dd96cb7a58b1">w25qxx_type_t</a> type, <a class="code hl_enumeration" href="group__w25qxx__basic__driver.html#gacbf327a42336baf10713a1796ff4f2fe">w25qxx_interface_t</a> interface, <a class="code hl_enumeration" href="group__w25qxx__basic__driver.html#gafb2690946f5baf4be6f3a63dde5491fb">w25qxx_bool_t</a> dual_quad_spi_enable)</div>
+<div class="line"><a id="l00052" name="l00052"></a><span class="lineno">   52</span>{</div>
+<div class="line"><a id="l00053" name="l00053"></a><span class="lineno">   53</span>    uint8_t res;</div>
+<div class="line"><a id="l00054" name="l00054"></a><span class="lineno">   54</span>    </div>
+<div class="line"><a id="l00055" name="l00055"></a><span class="lineno">   55</span>    <span class="comment">/* link interface function */</span></div>
+<div class="line"><a id="l00056" name="l00056"></a><span class="lineno">   56</span>    <a class="code hl_define" href="group__w25qxx__link__driver.html#ga995378489f95bc6bbddbe710557e3384">DRIVER_W25QXX_LINK_INIT</a>(&amp;gs_handle, <a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a>);</div>
+<div class="line"><a id="l00057" name="l00057"></a><span class="lineno">   57</span>    <a class="code hl_define" href="group__w25qxx__link__driver.html#gab2587de93f1dba5664eede8cd787a88a">DRIVER_W25QXX_LINK_SPI_QSPI_INIT</a>(&amp;gs_handle, <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga2bdc17a556f1c801a38656331f3bb7b6">w25qxx_interface_spi_qspi_init</a>);</div>
+<div class="line"><a id="l00058" name="l00058"></a><span class="lineno">   58</span>    <a class="code hl_define" href="group__w25qxx__link__driver.html#gaec8b55e83b46907be1dd9e7c50be550d">DRIVER_W25QXX_LINK_SPI_QSPI_DEINIT</a>(&amp;gs_handle, <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga091f3607fcdd47f9e5f94cf1397bd46a">w25qxx_interface_spi_qspi_deinit</a>);</div>
+<div class="line"><a id="l00059" name="l00059"></a><span class="lineno">   59</span>    <a class="code hl_define" href="group__w25qxx__link__driver.html#gac8f0ca0a725790bace3241d1d616e3d1">DRIVER_W25QXX_LINK_SPI_QSPI_WRITE_READ</a>(&amp;gs_handle, <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga3d76ea1f431978f6b55edfd0628c94cd">w25qxx_interface_spi_qspi_write_read</a>);</div>
+<div class="line"><a id="l00060" name="l00060"></a><span class="lineno">   60</span>    <a class="code hl_define" href="group__w25qxx__link__driver.html#ga7555618f13d2de0003ae6d9483085180">DRIVER_W25QXX_LINK_DELAY_MS</a>(&amp;gs_handle, <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga964fa232abf98737cb98458eebfff82c">w25qxx_interface_delay_ms</a>);</div>
+<div class="line"><a id="l00061" name="l00061"></a><span class="lineno">   61</span>    <a class="code hl_define" href="group__w25qxx__link__driver.html#gafc81bf850c80dfa316f0c6ab40be6e67">DRIVER_W25QXX_LINK_DELAY_US</a>(&amp;gs_handle, <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga38e79039b913154c9dd1036ff52bb420">w25qxx_interface_delay_us</a>);</div>
+<div class="line"><a id="l00062" name="l00062"></a><span class="lineno">   62</span>    <a class="code hl_define" href="group__w25qxx__link__driver.html#gab8d49ef9dca942fe5f37c30dcd7e22a6">DRIVER_W25QXX_LINK_DEBUG_PRINT</a>(&amp;gs_handle, <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>);</div>
+<div class="line"><a id="l00063" name="l00063"></a><span class="lineno">   63</span>    </div>
+<div class="line"><a id="l00064" name="l00064"></a><span class="lineno">   64</span>    <span class="comment">/* set chip type */</span></div>
+<div class="line"><a id="l00065" name="l00065"></a><span class="lineno">   65</span>    res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa57189cd4170b73f8b1300ca15e27de6">w25qxx_set_type</a>(&amp;gs_handle, type);</div>
+<div class="line"><a id="l00066" name="l00066"></a><span class="lineno">   66</span>    <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00067" name="l00067"></a><span class="lineno">   67</span>    {</div>
+<div class="line"><a id="l00068" name="l00068"></a><span class="lineno">   68</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set type failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00069" name="l00069"></a><span class="lineno">   69</span>       </div>
+<div class="line"><a id="l00070" name="l00070"></a><span class="lineno">   70</span>        <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00071" name="l00071"></a><span class="lineno">   71</span>    }</div>
+<div class="line"><a id="l00072" name="l00072"></a><span class="lineno">   72</span>    </div>
+<div class="line"><a id="l00073" name="l00073"></a><span class="lineno">   73</span>    <span class="comment">/* set chip interface */</span></div>
+<div class="line"><a id="l00074" name="l00074"></a><span class="lineno">   74</span>    res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#ga50a62003d566402d46ada2f272c41eb5">w25qxx_set_interface</a>(&amp;gs_handle, interface);</div>
+<div class="line"><a id="l00075" name="l00075"></a><span class="lineno">   75</span>    <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00076" name="l00076"></a><span class="lineno">   76</span>    {</div>
+<div class="line"><a id="l00077" name="l00077"></a><span class="lineno">   77</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set interface failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00078" name="l00078"></a><span class="lineno">   78</span>       </div>
+<div class="line"><a id="l00079" name="l00079"></a><span class="lineno">   79</span>        <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00080" name="l00080"></a><span class="lineno">   80</span>    }</div>
+<div class="line"><a id="l00081" name="l00081"></a><span class="lineno">   81</span>    </div>
+<div class="line"><a id="l00082" name="l00082"></a><span class="lineno">   82</span>    <span class="comment">/* set dual quad spi */</span></div>
+<div class="line"><a id="l00083" name="l00083"></a><span class="lineno">   83</span>    res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#ga665139209b0abc386474a78d89cce6f2">w25qxx_set_dual_quad_spi</a>(&amp;gs_handle, dual_quad_spi_enable);</div>
+<div class="line"><a id="l00084" name="l00084"></a><span class="lineno">   84</span>    <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00085" name="l00085"></a><span class="lineno">   85</span>    {</div>
+<div class="line"><a id="l00086" name="l00086"></a><span class="lineno">   86</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set dual quad spi failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00087" name="l00087"></a><span class="lineno">   87</span>        (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00088" name="l00088"></a><span class="lineno">   88</span>       </div>
+<div class="line"><a id="l00089" name="l00089"></a><span class="lineno">   89</span>        <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00090" name="l00090"></a><span class="lineno">   90</span>    }</div>
+<div class="line"><a id="l00091" name="l00091"></a><span class="lineno">   91</span>    </div>
+<div class="line"><a id="l00092" name="l00092"></a><span class="lineno">   92</span>    <span class="comment">/* chip init */</span></div>
+<div class="line"><a id="l00093" name="l00093"></a><span class="lineno">   93</span>    res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#ga8e7a163b3d255b8c7fc035d0d60f2491">w25qxx_init</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00094" name="l00094"></a><span class="lineno">   94</span>    <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00095" name="l00095"></a><span class="lineno">   95</span>    {</div>
+<div class="line"><a id="l00096" name="l00096"></a><span class="lineno">   96</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: init failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00097" name="l00097"></a><span class="lineno">   97</span>       </div>
+<div class="line"><a id="l00098" name="l00098"></a><span class="lineno">   98</span>        <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00099" name="l00099"></a><span class="lineno">   99</span>    }</div>
+<div class="line"><a id="l00100" name="l00100"></a><span class="lineno">  100</span>    <span class="keywordflow">else</span></div>
+<div class="line"><a id="l00101" name="l00101"></a><span class="lineno">  101</span>    {</div>
+<div class="line"><a id="l00102" name="l00102"></a><span class="lineno">  102</span>        <span class="keywordflow">if</span> (type &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)</div>
+<div class="line"><a id="l00103" name="l00103"></a><span class="lineno">  103</span>        {</div>
+<div class="line"><a id="l00104" name="l00104"></a><span class="lineno">  104</span>            res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#gad0e125eff304ce66fb3956d2c8c80656">w25qxx_set_address_mode</a>(&amp;gs_handle, <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>);</div>
+<div class="line"><a id="l00105" name="l00105"></a><span class="lineno">  105</span>            <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00106" name="l00106"></a><span class="lineno">  106</span>            {</div>
+<div class="line"><a id="l00107" name="l00107"></a><span class="lineno">  107</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set address mode failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00108" name="l00108"></a><span class="lineno">  108</span>                (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00109" name="l00109"></a><span class="lineno">  109</span>               </div>
+<div class="line"><a id="l00110" name="l00110"></a><span class="lineno">  110</span>                <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00111" name="l00111"></a><span class="lineno">  111</span>            }</div>
+<div class="line"><a id="l00112" name="l00112"></a><span class="lineno">  112</span>        }</div>
+<div class="line"><a id="l00113" name="l00113"></a><span class="lineno">  113</span>        </div>
+<div class="line"><a id="l00114" name="l00114"></a><span class="lineno">  114</span>        <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a id="l00115" name="l00115"></a><span class="lineno">  115</span>    }</div>
+<div class="line"><a id="l00116" name="l00116"></a><span class="lineno">  116</span>}</div>
+</div>
+<div class="line"><a id="l00117" name="l00117"></a><span class="lineno">  117</span> </div>
+<div class="foldopen" id="foldopen00125" data-start="{" data-end="}">
+<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"><a class="line" href="group__w25qxx__example__driver.html#gaf390bbb2c4140f49d25822d963ead722">  125</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__example__driver.html#gaf390bbb2c4140f49d25822d963ead722">w25qxx_advance_deinit</a>(<span class="keywordtype">void</span>)</div>
+<div class="line"><a id="l00126" name="l00126"></a><span class="lineno">  126</span>{</div>
+<div class="line"><a id="l00127" name="l00127"></a><span class="lineno">  127</span>    <span class="keywordflow">if</span> (<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle) != 0)</div>
+<div class="line"><a id="l00128" name="l00128"></a><span class="lineno">  128</span>    {</div>
+<div class="line"><a id="l00129" name="l00129"></a><span class="lineno">  129</span>        <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00130" name="l00130"></a><span class="lineno">  130</span>    }</div>
+<div class="line"><a id="l00131" name="l00131"></a><span class="lineno">  131</span>    <span class="keywordflow">else</span></div>
+<div class="line"><a id="l00132" name="l00132"></a><span class="lineno">  132</span>    {</div>
+<div class="line"><a id="l00133" name="l00133"></a><span class="lineno">  133</span>        <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a id="l00134" name="l00134"></a><span class="lineno">  134</span>    }</div>
+<div class="line"><a id="l00135" name="l00135"></a><span class="lineno">  135</span>}</div>
+</div>
+<div class="line"><a id="l00136" name="l00136"></a><span class="lineno">  136</span> </div>
+<div class="foldopen" id="foldopen00147" data-start="{" data-end="}">
+<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"><a class="line" href="group__w25qxx__example__driver.html#ga63f4e1dce2ef7c7de56461524fd22d04">  147</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__example__driver.html#ga63f4e1dce2ef7c7de56461524fd22d04">w25qxx_advance_write</a>(uint32_t addr, uint8_t *data, uint32_t len)</div>
+<div class="line"><a id="l00148" name="l00148"></a><span class="lineno">  148</span>{</div>
+<div class="line"><a id="l00149" name="l00149"></a><span class="lineno">  149</span>    <span class="keywordflow">if</span> (<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaaee8264d840e51460821cb6e609338ee">w25qxx_write</a>(&amp;gs_handle, addr, data, len) != 0)</div>
+<div class="line"><a id="l00150" name="l00150"></a><span class="lineno">  150</span>    {</div>
+<div class="line"><a id="l00151" name="l00151"></a><span class="lineno">  151</span>        <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00152" name="l00152"></a><span class="lineno">  152</span>    }</div>
+<div class="line"><a id="l00153" name="l00153"></a><span class="lineno">  153</span>    <span class="keywordflow">else</span></div>
+<div class="line"><a id="l00154" name="l00154"></a><span class="lineno">  154</span>    {</div>
+<div class="line"><a id="l00155" name="l00155"></a><span class="lineno">  155</span>        <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a id="l00156" name="l00156"></a><span class="lineno">  156</span>    }</div>
+<div class="line"><a id="l00157" name="l00157"></a><span class="lineno">  157</span>}</div>
+</div>
+<div class="line"><a id="l00158" name="l00158"></a><span class="lineno">  158</span> </div>
+<div class="foldopen" id="foldopen00169" data-start="{" data-end="}">
+<div class="line"><a id="l00169" name="l00169"></a><span class="lineno"><a class="line" href="group__w25qxx__example__driver.html#ga013a389763200b54daaa345adf9329dc">  169</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__example__driver.html#ga013a389763200b54daaa345adf9329dc">w25qxx_advance_read</a>(uint32_t addr, uint8_t *data, uint32_t len)</div>
+<div class="line"><a id="l00170" name="l00170"></a><span class="lineno">  170</span>{</div>
+<div class="line"><a id="l00171" name="l00171"></a><span class="lineno">  171</span>    <span class="keywordflow">if</span> (<a class="code hl_function" href="group__w25qxx__basic__driver.html#gae7479fc9ce911a52e3c5b6f1a615b879">w25qxx_read</a>(&amp;gs_handle, addr, data, len) != 0)</div>
+<div class="line"><a id="l00172" name="l00172"></a><span class="lineno">  172</span>    {</div>
+<div class="line"><a id="l00173" name="l00173"></a><span class="lineno">  173</span>        <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00174" name="l00174"></a><span class="lineno">  174</span>    }</div>
+<div class="line"><a id="l00175" name="l00175"></a><span class="lineno">  175</span>    <span class="keywordflow">else</span></div>
+<div class="line"><a id="l00176" name="l00176"></a><span class="lineno">  176</span>    {</div>
+<div class="line"><a id="l00177" name="l00177"></a><span class="lineno">  177</span>        <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a id="l00178" name="l00178"></a><span class="lineno">  178</span>    }</div>
+<div class="line"><a id="l00179" name="l00179"></a><span class="lineno">  179</span>}</div>
+</div>
+<div class="line"><a id="l00180" name="l00180"></a><span class="lineno">  180</span> </div>
+<div class="foldopen" id="foldopen00188" data-start="{" data-end="}">
+<div class="line"><a id="l00188" name="l00188"></a><span class="lineno"><a class="line" href="group__w25qxx__example__driver.html#ga5599de31797633ae75a63bcd5a8f4736">  188</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__example__driver.html#ga5599de31797633ae75a63bcd5a8f4736">w25qxx_advance_power_down</a>(<span class="keywordtype">void</span>)</div>
+<div class="line"><a id="l00189" name="l00189"></a><span class="lineno">  189</span>{</div>
+<div class="line"><a id="l00190" name="l00190"></a><span class="lineno">  190</span>    <span class="keywordflow">if</span> (<a class="code hl_function" href="group__w25qxx__basic__driver.html#gae4effce67e36120325e3c7b245b90142">w25qxx_power_down</a>(&amp;gs_handle) != 0)</div>
+<div class="line"><a id="l00191" name="l00191"></a><span class="lineno">  191</span>    {</div>
+<div class="line"><a id="l00192" name="l00192"></a><span class="lineno">  192</span>        <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00193" name="l00193"></a><span class="lineno">  193</span>    }</div>
+<div class="line"><a id="l00194" name="l00194"></a><span class="lineno">  194</span>    <span class="keywordflow">else</span></div>
+<div class="line"><a id="l00195" name="l00195"></a><span class="lineno">  195</span>    {</div>
+<div class="line"><a id="l00196" name="l00196"></a><span class="lineno">  196</span>        <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a id="l00197" name="l00197"></a><span class="lineno">  197</span>    }</div>
+<div class="line"><a id="l00198" name="l00198"></a><span class="lineno">  198</span>}</div>
+</div>
+<div class="line"><a id="l00199" name="l00199"></a><span class="lineno">  199</span> </div>
+<div class="foldopen" id="foldopen00207" data-start="{" data-end="}">
+<div class="line"><a id="l00207" name="l00207"></a><span class="lineno"><a class="line" href="group__w25qxx__example__driver.html#ga8a57e2d056d452abc14b0a08d4223251">  207</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__example__driver.html#ga8a57e2d056d452abc14b0a08d4223251">w25qxx_advance_wake_up</a>(<span class="keywordtype">void</span>)</div>
+<div class="line"><a id="l00208" name="l00208"></a><span class="lineno">  208</span>{</div>
+<div class="line"><a id="l00209" name="l00209"></a><span class="lineno">  209</span>    <span class="keywordflow">if</span> (<a class="code hl_function" href="group__w25qxx__basic__driver.html#ga09c9b52877516a2ee4c080dc249e7331">w25qxx_release_power_down</a>(&amp;gs_handle) != 0)</div>
+<div class="line"><a id="l00210" name="l00210"></a><span class="lineno">  210</span>    {</div>
+<div class="line"><a id="l00211" name="l00211"></a><span class="lineno">  211</span>        <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00212" name="l00212"></a><span class="lineno">  212</span>    }</div>
+<div class="line"><a id="l00213" name="l00213"></a><span class="lineno">  213</span>    <span class="keywordflow">else</span></div>
+<div class="line"><a id="l00214" name="l00214"></a><span class="lineno">  214</span>    {</div>
+<div class="line"><a id="l00215" name="l00215"></a><span class="lineno">  215</span>        <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a id="l00216" name="l00216"></a><span class="lineno">  216</span>    }</div>
+<div class="line"><a id="l00217" name="l00217"></a><span class="lineno">  217</span>}</div>
+</div>
+<div class="line"><a id="l00218" name="l00218"></a><span class="lineno">  218</span> </div>
+<div class="foldopen" id="foldopen00226" data-start="{" data-end="}">
+<div class="line"><a id="l00226" name="l00226"></a><span class="lineno"><a class="line" href="group__w25qxx__example__driver.html#ga15cb243f227ef8d897ef3208b622bded">  226</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__example__driver.html#ga15cb243f227ef8d897ef3208b622bded">w25qxx_advance_chip_erase</a>(<span class="keywordtype">void</span>)</div>
+<div class="line"><a id="l00227" name="l00227"></a><span class="lineno">  227</span>{</div>
+<div class="line"><a id="l00228" name="l00228"></a><span class="lineno">  228</span>    <span class="keywordflow">if</span> (<a class="code hl_function" href="group__w25qxx__basic__driver.html#ga0862833b36831f92684980b2e21f2e39">w25qxx_chip_erase</a>(&amp;gs_handle) != 0)</div>
+<div class="line"><a id="l00229" name="l00229"></a><span class="lineno">  229</span>    {</div>
+<div class="line"><a id="l00230" name="l00230"></a><span class="lineno">  230</span>        <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00231" name="l00231"></a><span class="lineno">  231</span>    }</div>
+<div class="line"><a id="l00232" name="l00232"></a><span class="lineno">  232</span>    <span class="keywordflow">else</span></div>
+<div class="line"><a id="l00233" name="l00233"></a><span class="lineno">  233</span>    {</div>
+<div class="line"><a id="l00234" name="l00234"></a><span class="lineno">  234</span>        <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a id="l00235" name="l00235"></a><span class="lineno">  235</span>    }</div>
+<div class="line"><a id="l00236" name="l00236"></a><span class="lineno">  236</span>}</div>
+</div>
+<div class="line"><a id="l00237" name="l00237"></a><span class="lineno">  237</span> </div>
+<div class="foldopen" id="foldopen00247" data-start="{" data-end="}">
+<div class="line"><a id="l00247" name="l00247"></a><span class="lineno"><a class="line" href="group__w25qxx__example__driver.html#ga0f49d960f8b6c6498ab293b369ffc389">  247</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__example__driver.html#ga0f49d960f8b6c6498ab293b369ffc389">w25qxx_advance_get_id</a>(uint8_t *manufacturer, uint8_t *device_id)</div>
+<div class="line"><a id="l00248" name="l00248"></a><span class="lineno">  248</span>{</div>
+<div class="line"><a id="l00249" name="l00249"></a><span class="lineno">  249</span>    <span class="keywordflow">if</span> (<a class="code hl_function" href="group__w25qxx__basic__driver.html#ga921836a777b082ff4d0f322ccfda6b22">w25qxx_get_manufacturer_device_id</a>(&amp;gs_handle, manufacturer, device_id) != 0)</div>
+<div class="line"><a id="l00250" name="l00250"></a><span class="lineno">  250</span>    {</div>
+<div class="line"><a id="l00251" name="l00251"></a><span class="lineno">  251</span>        <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00252" name="l00252"></a><span class="lineno">  252</span>    }</div>
+<div class="line"><a id="l00253" name="l00253"></a><span class="lineno">  253</span>    <span class="keywordflow">else</span></div>
+<div class="line"><a id="l00254" name="l00254"></a><span class="lineno">  254</span>    {</div>
+<div class="line"><a id="l00255" name="l00255"></a><span class="lineno">  255</span>        <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a id="l00256" name="l00256"></a><span class="lineno">  256</span>    }</div>
+<div class="line"><a id="l00257" name="l00257"></a><span class="lineno">  257</span>}</div>
+</div>
+<div class="line"><a id="l00258" name="l00258"></a><span class="lineno">  258</span> </div>
+<div class="foldopen" id="foldopen00269" data-start="{" data-end="}">
+<div class="line"><a id="l00269" name="l00269"></a><span class="lineno"><a class="line" href="group__w25qxx__example__driver.html#ga39ff13988a3d451231cec3260c13a4cd">  269</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__example__driver.html#ga39ff13988a3d451231cec3260c13a4cd">w25qxx_advance_page_program</a>(uint32_t addr, uint8_t *data, uint16_t len)</div>
+<div class="line"><a id="l00270" name="l00270"></a><span class="lineno">  270</span>{</div>
+<div class="line"><a id="l00271" name="l00271"></a><span class="lineno">  271</span>    <span class="keywordflow">if</span> (<a class="code hl_function" href="group__w25qxx__basic__driver.html#ga6280e7e4ab26306436e2c210617a28b3">w25qxx_page_program</a>(&amp;gs_handle, addr, data, len) != 0)</div>
+<div class="line"><a id="l00272" name="l00272"></a><span class="lineno">  272</span>    {</div>
+<div class="line"><a id="l00273" name="l00273"></a><span class="lineno">  273</span>        <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00274" name="l00274"></a><span class="lineno">  274</span>    }</div>
+<div class="line"><a id="l00275" name="l00275"></a><span class="lineno">  275</span>    <span class="keywordflow">else</span></div>
+<div class="line"><a id="l00276" name="l00276"></a><span class="lineno">  276</span>    {</div>
+<div class="line"><a id="l00277" name="l00277"></a><span class="lineno">  277</span>        <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a id="l00278" name="l00278"></a><span class="lineno">  278</span>    }</div>
+<div class="line"><a id="l00279" name="l00279"></a><span class="lineno">  279</span>}</div>
+</div>
+<div class="line"><a id="l00280" name="l00280"></a><span class="lineno">  280</span> </div>
+<div class="foldopen" id="foldopen00289" data-start="{" data-end="}">
+<div class="line"><a id="l00289" name="l00289"></a><span class="lineno"><a class="line" href="group__w25qxx__example__driver.html#ga9325acc424c95624f15e11631082201d">  289</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__example__driver.html#ga9325acc424c95624f15e11631082201d">w25qxx_advance_sector_erase_4k</a>(uint32_t addr)</div>
+<div class="line"><a id="l00290" name="l00290"></a><span class="lineno">  290</span>{</div>
+<div class="line"><a id="l00291" name="l00291"></a><span class="lineno">  291</span>    <span class="keywordflow">if</span> (<a class="code hl_function" href="group__w25qxx__basic__driver.html#ga9a03c51b4c84655350c15fbfce0a6b40">w25qxx_sector_erase_4k</a>(&amp;gs_handle, addr) != 0)</div>
+<div class="line"><a id="l00292" name="l00292"></a><span class="lineno">  292</span>    {</div>
+<div class="line"><a id="l00293" name="l00293"></a><span class="lineno">  293</span>        <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00294" name="l00294"></a><span class="lineno">  294</span>    }</div>
+<div class="line"><a id="l00295" name="l00295"></a><span class="lineno">  295</span>    <span class="keywordflow">else</span></div>
+<div class="line"><a id="l00296" name="l00296"></a><span class="lineno">  296</span>    {</div>
+<div class="line"><a id="l00297" name="l00297"></a><span class="lineno">  297</span>        <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a id="l00298" name="l00298"></a><span class="lineno">  298</span>    }</div>
+<div class="line"><a id="l00299" name="l00299"></a><span class="lineno">  299</span>}</div>
+</div>
+<div class="line"><a id="l00300" name="l00300"></a><span class="lineno">  300</span> </div>
+<div class="foldopen" id="foldopen00309" data-start="{" data-end="}">
+<div class="line"><a id="l00309" name="l00309"></a><span class="lineno"><a class="line" href="group__w25qxx__example__driver.html#gaee04edb9e97785e423dffe14a1cad780">  309</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__example__driver.html#gaee04edb9e97785e423dffe14a1cad780">w25qxx_advance_block_erase_32k</a>(uint32_t addr)</div>
+<div class="line"><a id="l00310" name="l00310"></a><span class="lineno">  310</span>{</div>
+<div class="line"><a id="l00311" name="l00311"></a><span class="lineno">  311</span>    <span class="keywordflow">if</span> (<a class="code hl_function" href="group__w25qxx__basic__driver.html#ga39c8fb382e8c3e4d57232dfa79af781c">w25qxx_block_erase_32k</a>(&amp;gs_handle, addr) != 0)</div>
+<div class="line"><a id="l00312" name="l00312"></a><span class="lineno">  312</span>    {</div>
+<div class="line"><a id="l00313" name="l00313"></a><span class="lineno">  313</span>        <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00314" name="l00314"></a><span class="lineno">  314</span>    }</div>
+<div class="line"><a id="l00315" name="l00315"></a><span class="lineno">  315</span>    <span class="keywordflow">else</span></div>
+<div class="line"><a id="l00316" name="l00316"></a><span class="lineno">  316</span>    {</div>
+<div class="line"><a id="l00317" name="l00317"></a><span class="lineno">  317</span>        <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a id="l00318" name="l00318"></a><span class="lineno">  318</span>    }</div>
+<div class="line"><a id="l00319" name="l00319"></a><span class="lineno">  319</span>}</div>
+</div>
+<div class="line"><a id="l00320" name="l00320"></a><span class="lineno">  320</span> </div>
+<div class="foldopen" id="foldopen00329" data-start="{" data-end="}">
+<div class="line"><a id="l00329" name="l00329"></a><span class="lineno"><a class="line" href="group__w25qxx__example__driver.html#gae7cba4e0b22a1043fe304e46148fa13c">  329</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__example__driver.html#gae7cba4e0b22a1043fe304e46148fa13c">w25qxx_advance_block_erase_64k</a>(uint32_t addr)</div>
+<div class="line"><a id="l00330" name="l00330"></a><span class="lineno">  330</span>{</div>
+<div class="line"><a id="l00331" name="l00331"></a><span class="lineno">  331</span>    <span class="keywordflow">if</span> (<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaf53bc5f6073482b9b74efd417ec7ac83">w25qxx_block_erase_64k</a>(&amp;gs_handle, addr) != 0)</div>
+<div class="line"><a id="l00332" name="l00332"></a><span class="lineno">  332</span>    {</div>
+<div class="line"><a id="l00333" name="l00333"></a><span class="lineno">  333</span>        <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00334" name="l00334"></a><span class="lineno">  334</span>    }</div>
+<div class="line"><a id="l00335" name="l00335"></a><span class="lineno">  335</span>    <span class="keywordflow">else</span></div>
+<div class="line"><a id="l00336" name="l00336"></a><span class="lineno">  336</span>    {</div>
+<div class="line"><a id="l00337" name="l00337"></a><span class="lineno">  337</span>        <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a id="l00338" name="l00338"></a><span class="lineno">  338</span>    }</div>
+<div class="line"><a id="l00339" name="l00339"></a><span class="lineno">  339</span>}</div>
+</div>
+<div class="line"><a id="l00340" name="l00340"></a><span class="lineno">  340</span> </div>
+<div class="foldopen" id="foldopen00351" data-start="{" data-end="}">
+<div class="line"><a id="l00351" name="l00351"></a><span class="lineno"><a class="line" href="group__w25qxx__example__driver.html#ga7ade25a387b9d03ddecefd86fb328389">  351</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__example__driver.html#ga7ade25a387b9d03ddecefd86fb328389">w25qxx_advance_fast_read</a>(uint32_t addr, uint8_t *data, uint32_t len)</div>
+<div class="line"><a id="l00352" name="l00352"></a><span class="lineno">  352</span>{</div>
+<div class="line"><a id="l00353" name="l00353"></a><span class="lineno">  353</span>    <span class="keywordflow">if</span> (<a class="code hl_function" href="group__w25qxx__basic__driver.html#gac345ba10af5ad355578fa97697487123">w25qxx_fast_read</a>(&amp;gs_handle, addr, data, len) != 0)</div>
+<div class="line"><a id="l00354" name="l00354"></a><span class="lineno">  354</span>    {</div>
+<div class="line"><a id="l00355" name="l00355"></a><span class="lineno">  355</span>        <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00356" name="l00356"></a><span class="lineno">  356</span>    }</div>
+<div class="line"><a id="l00357" name="l00357"></a><span class="lineno">  357</span>    <span class="keywordflow">else</span></div>
+<div class="line"><a id="l00358" name="l00358"></a><span class="lineno">  358</span>    {</div>
+<div class="line"><a id="l00359" name="l00359"></a><span class="lineno">  359</span>        <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a id="l00360" name="l00360"></a><span class="lineno">  360</span>    }</div>
+<div class="line"><a id="l00361" name="l00361"></a><span class="lineno">  361</span>}</div>
+</div>
+<div class="line"><a id="l00362" name="l00362"></a><span class="lineno">  362</span> </div>
+<div class="foldopen" id="foldopen00373" data-start="{" data-end="}">
+<div class="line"><a id="l00373" name="l00373"></a><span class="lineno"><a class="line" href="group__w25qxx__example__driver.html#gac1c7f320706dd6d6d937da75b8a4da93">  373</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__example__driver.html#gac1c7f320706dd6d6d937da75b8a4da93">w25qxx_advance_only_spi_read</a>(uint32_t addr, uint8_t *data, uint32_t len)</div>
+<div class="line"><a id="l00374" name="l00374"></a><span class="lineno">  374</span>{</div>
+<div class="line"><a id="l00375" name="l00375"></a><span class="lineno">  375</span>    <span class="keywordflow">if</span> (<a class="code hl_function" href="group__w25qxx__basic__driver.html#ga1e9ebf198137d23558dbf6470213c472">w25qxx_only_spi_read</a>(&amp;gs_handle, addr, data, len) != 0)</div>
+<div class="line"><a id="l00376" name="l00376"></a><span class="lineno">  376</span>    {</div>
+<div class="line"><a id="l00377" name="l00377"></a><span class="lineno">  377</span>        <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00378" name="l00378"></a><span class="lineno">  378</span>    }</div>
+<div class="line"><a id="l00379" name="l00379"></a><span class="lineno">  379</span>    <span class="keywordflow">else</span></div>
+<div class="line"><a id="l00380" name="l00380"></a><span class="lineno">  380</span>    {</div>
+<div class="line"><a id="l00381" name="l00381"></a><span class="lineno">  381</span>        <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a id="l00382" name="l00382"></a><span class="lineno">  382</span>    }</div>
+<div class="line"><a id="l00383" name="l00383"></a><span class="lineno">  383</span>}</div>
+</div>
+<div class="line"><a id="l00384" name="l00384"></a><span class="lineno">  384</span> </div>
+<div class="foldopen" id="foldopen00395" data-start="{" data-end="}">
+<div class="line"><a id="l00395" name="l00395"></a><span class="lineno"><a class="line" href="group__w25qxx__example__driver.html#ga364d891407cf323d3686d36ad6357604">  395</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__example__driver.html#ga364d891407cf323d3686d36ad6357604">w25qxx_advance_only_spi_fast_read_dual_output</a>(uint32_t addr, uint8_t *data, uint32_t len)</div>
+<div class="line"><a id="l00396" name="l00396"></a><span class="lineno">  396</span>{</div>
+<div class="line"><a id="l00397" name="l00397"></a><span class="lineno">  397</span>    <span class="keywordflow">if</span> (<a class="code hl_function" href="group__w25qxx__advance__driver.html#ga7a19230ca3916816ea8fb7421483d293">w25qxx_fast_read_dual_output</a>(&amp;gs_handle, addr, data, len) != 0)</div>
+<div class="line"><a id="l00398" name="l00398"></a><span class="lineno">  398</span>    {</div>
+<div class="line"><a id="l00399" name="l00399"></a><span class="lineno">  399</span>        <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00400" name="l00400"></a><span class="lineno">  400</span>    }</div>
+<div class="line"><a id="l00401" name="l00401"></a><span class="lineno">  401</span>    <span class="keywordflow">else</span></div>
+<div class="line"><a id="l00402" name="l00402"></a><span class="lineno">  402</span>    {</div>
+<div class="line"><a id="l00403" name="l00403"></a><span class="lineno">  403</span>        <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a id="l00404" name="l00404"></a><span class="lineno">  404</span>    }</div>
+<div class="line"><a id="l00405" name="l00405"></a><span class="lineno">  405</span>}</div>
+</div>
+<div class="line"><a id="l00406" name="l00406"></a><span class="lineno">  406</span> </div>
+<div class="foldopen" id="foldopen00417" data-start="{" data-end="}">
+<div class="line"><a id="l00417" name="l00417"></a><span class="lineno"><a class="line" href="group__w25qxx__example__driver.html#gaf5f978c432de7d6adaf41cd256724a01">  417</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__example__driver.html#gaf5f978c432de7d6adaf41cd256724a01">w25qxx_advance_only_spi_fast_read_quad_output</a>(uint32_t addr, uint8_t *data, uint32_t len)</div>
+<div class="line"><a id="l00418" name="l00418"></a><span class="lineno">  418</span>{</div>
+<div class="line"><a id="l00419" name="l00419"></a><span class="lineno">  419</span>    <span class="keywordflow">if</span> (<a class="code hl_function" href="group__w25qxx__advance__driver.html#gaf4bfafd1f80aa0316a4b1a15183dcd50">w25qxx_fast_read_quad_output</a>(&amp;gs_handle, addr, data, len) != 0)</div>
+<div class="line"><a id="l00420" name="l00420"></a><span class="lineno">  420</span>    {</div>
+<div class="line"><a id="l00421" name="l00421"></a><span class="lineno">  421</span>        <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00422" name="l00422"></a><span class="lineno">  422</span>    }</div>
+<div class="line"><a id="l00423" name="l00423"></a><span class="lineno">  423</span>    <span class="keywordflow">else</span></div>
+<div class="line"><a id="l00424" name="l00424"></a><span class="lineno">  424</span>    {</div>
+<div class="line"><a id="l00425" name="l00425"></a><span class="lineno">  425</span>        <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a id="l00426" name="l00426"></a><span class="lineno">  426</span>    }</div>
+<div class="line"><a id="l00427" name="l00427"></a><span class="lineno">  427</span>}</div>
+</div>
+<div class="line"><a id="l00428" name="l00428"></a><span class="lineno">  428</span> </div>
+<div class="foldopen" id="foldopen00439" data-start="{" data-end="}">
+<div class="line"><a id="l00439" name="l00439"></a><span class="lineno"><a class="line" href="group__w25qxx__example__driver.html#ga4bbaf1a989fae25d16d07edb1e38ca4f">  439</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__example__driver.html#ga4bbaf1a989fae25d16d07edb1e38ca4f">w25qxx_advance_only_spi_fast_read_dual_io</a>(uint32_t addr, uint8_t *data, uint32_t len)</div>
+<div class="line"><a id="l00440" name="l00440"></a><span class="lineno">  440</span>{</div>
+<div class="line"><a id="l00441" name="l00441"></a><span class="lineno">  441</span>    <span class="keywordflow">if</span> (<a class="code hl_function" href="group__w25qxx__advance__driver.html#gac894f4650905cba10dd3a31284de6d5e">w25qxx_fast_read_dual_io</a>(&amp;gs_handle, addr, data, len) != 0)</div>
+<div class="line"><a id="l00442" name="l00442"></a><span class="lineno">  442</span>    {</div>
+<div class="line"><a id="l00443" name="l00443"></a><span class="lineno">  443</span>        <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00444" name="l00444"></a><span class="lineno">  444</span>    }</div>
+<div class="line"><a id="l00445" name="l00445"></a><span class="lineno">  445</span>    <span class="keywordflow">else</span></div>
+<div class="line"><a id="l00446" name="l00446"></a><span class="lineno">  446</span>    {</div>
+<div class="line"><a id="l00447" name="l00447"></a><span class="lineno">  447</span>        <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a id="l00448" name="l00448"></a><span class="lineno">  448</span>    }</div>
+<div class="line"><a id="l00449" name="l00449"></a><span class="lineno">  449</span>}</div>
+</div>
+<div class="line"><a id="l00450" name="l00450"></a><span class="lineno">  450</span> </div>
+<div class="foldopen" id="foldopen00461" data-start="{" data-end="}">
+<div class="line"><a id="l00461" name="l00461"></a><span class="lineno"><a class="line" href="group__w25qxx__example__driver.html#ga395add1fa33f4f70d0ba52b38842dbdb">  461</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__example__driver.html#ga395add1fa33f4f70d0ba52b38842dbdb">w25qxx_advance_only_spi_fast_read_quad_io</a>(uint32_t addr, uint8_t *data, uint32_t len)</div>
+<div class="line"><a id="l00462" name="l00462"></a><span class="lineno">  462</span>{</div>
+<div class="line"><a id="l00463" name="l00463"></a><span class="lineno">  463</span>    <span class="keywordflow">if</span> (<a class="code hl_function" href="group__w25qxx__advance__driver.html#gab97a64bd3776874518f60381d921ae41">w25qxx_fast_read_quad_io</a>(&amp;gs_handle, addr, data, len) != 0)</div>
+<div class="line"><a id="l00464" name="l00464"></a><span class="lineno">  464</span>    {</div>
+<div class="line"><a id="l00465" name="l00465"></a><span class="lineno">  465</span>        <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00466" name="l00466"></a><span class="lineno">  466</span>    }</div>
+<div class="line"><a id="l00467" name="l00467"></a><span class="lineno">  467</span>    <span class="keywordflow">else</span></div>
+<div class="line"><a id="l00468" name="l00468"></a><span class="lineno">  468</span>    {</div>
+<div class="line"><a id="l00469" name="l00469"></a><span class="lineno">  469</span>        <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a id="l00470" name="l00470"></a><span class="lineno">  470</span>    }</div>
+<div class="line"><a id="l00471" name="l00471"></a><span class="lineno">  471</span>}</div>
+</div>
+<div class="line"><a id="l00472" name="l00472"></a><span class="lineno">  472</span> </div>
+<div class="foldopen" id="foldopen00483" data-start="{" data-end="}">
+<div class="line"><a id="l00483" name="l00483"></a><span class="lineno"><a class="line" href="group__w25qxx__example__driver.html#gaca6b4c6ea32dd96a4ae8714e2862d67a">  483</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__example__driver.html#gaca6b4c6ea32dd96a4ae8714e2862d67a">w25qxx_advance_only_spi_word_read_quad_io</a>(uint32_t addr, uint8_t *data, uint32_t len)</div>
+<div class="line"><a id="l00484" name="l00484"></a><span class="lineno">  484</span>{</div>
+<div class="line"><a id="l00485" name="l00485"></a><span class="lineno">  485</span>    <span class="keywordflow">if</span> (<a class="code hl_function" href="group__w25qxx__advance__driver.html#gad97d7e410dd77c49334097a0fd332660">w25qxx_word_read_quad_io</a>(&amp;gs_handle, addr, data, len) != 0)</div>
+<div class="line"><a id="l00486" name="l00486"></a><span class="lineno">  486</span>    {</div>
+<div class="line"><a id="l00487" name="l00487"></a><span class="lineno">  487</span>        <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00488" name="l00488"></a><span class="lineno">  488</span>    }</div>
+<div class="line"><a id="l00489" name="l00489"></a><span class="lineno">  489</span>    <span class="keywordflow">else</span></div>
+<div class="line"><a id="l00490" name="l00490"></a><span class="lineno">  490</span>    {</div>
+<div class="line"><a id="l00491" name="l00491"></a><span class="lineno">  491</span>        <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a id="l00492" name="l00492"></a><span class="lineno">  492</span>    }</div>
+<div class="line"><a id="l00493" name="l00493"></a><span class="lineno">  493</span>}</div>
+</div>
+<div class="line"><a id="l00494" name="l00494"></a><span class="lineno">  494</span> </div>
+<div class="foldopen" id="foldopen00505" data-start="{" data-end="}">
+<div class="line"><a id="l00505" name="l00505"></a><span class="lineno"><a class="line" href="group__w25qxx__example__driver.html#ga825a567c535236d7d18ffccf07df59e9">  505</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__example__driver.html#ga825a567c535236d7d18ffccf07df59e9">w25qxx_advance_only_spi_octal_word_read_quad_io</a>(uint32_t addr, uint8_t *data, uint32_t len)</div>
+<div class="line"><a id="l00506" name="l00506"></a><span class="lineno">  506</span>{</div>
+<div class="line"><a id="l00507" name="l00507"></a><span class="lineno">  507</span>    <span class="keywordflow">if</span> (<a class="code hl_function" href="group__w25qxx__advance__driver.html#ga88a62ec42e86db821ff3f0d3ab541dbb">w25qxx_octal_word_read_quad_io</a>(&amp;gs_handle, addr, data, len) != 0)</div>
+<div class="line"><a id="l00508" name="l00508"></a><span class="lineno">  508</span>    {</div>
+<div class="line"><a id="l00509" name="l00509"></a><span class="lineno">  509</span>        <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00510" name="l00510"></a><span class="lineno">  510</span>    }</div>
+<div class="line"><a id="l00511" name="l00511"></a><span class="lineno">  511</span>    <span class="keywordflow">else</span></div>
+<div class="line"><a id="l00512" name="l00512"></a><span class="lineno">  512</span>    {</div>
+<div class="line"><a id="l00513" name="l00513"></a><span class="lineno">  513</span>        <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a id="l00514" name="l00514"></a><span class="lineno">  514</span>    }</div>
+<div class="line"><a id="l00515" name="l00515"></a><span class="lineno">  515</span>}</div>
+</div>
+<div class="line"><a id="l00516" name="l00516"></a><span class="lineno">  516</span> </div>
+<div class="foldopen" id="foldopen00527" data-start="{" data-end="}">
+<div class="line"><a id="l00527" name="l00527"></a><span class="lineno"><a class="line" href="group__w25qxx__example__driver.html#gad243655eb738e44c50e6079c983fd782">  527</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__example__driver.html#gad243655eb738e44c50e6079c983fd782">w25qxx_advance_only_spi_page_program_quad_input</a>(uint32_t addr, uint8_t *data, uint16_t len)</div>
+<div class="line"><a id="l00528" name="l00528"></a><span class="lineno">  528</span>{</div>
+<div class="line"><a id="l00529" name="l00529"></a><span class="lineno">  529</span>    <span class="keywordflow">if</span> (<a class="code hl_function" href="group__w25qxx__advance__driver.html#ga1f80bbbaaa852eecfffb87737889363d">w25qxx_page_program_quad_input</a>(&amp;gs_handle, addr, data, len) != 0)</div>
+<div class="line"><a id="l00530" name="l00530"></a><span class="lineno">  530</span>    {</div>
+<div class="line"><a id="l00531" name="l00531"></a><span class="lineno">  531</span>        <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00532" name="l00532"></a><span class="lineno">  532</span>    }</div>
+<div class="line"><a id="l00533" name="l00533"></a><span class="lineno">  533</span>    <span class="keywordflow">else</span></div>
+<div class="line"><a id="l00534" name="l00534"></a><span class="lineno">  534</span>    {</div>
+<div class="line"><a id="l00535" name="l00535"></a><span class="lineno">  535</span>        <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a id="l00536" name="l00536"></a><span class="lineno">  536</span>    }</div>
+<div class="line"><a id="l00537" name="l00537"></a><span class="lineno">  537</span>}</div>
+</div>
+<div class="line"><a id="l00538" name="l00538"></a><span class="lineno">  538</span> </div>
+<div class="foldopen" id="foldopen00547" data-start="{" data-end="}">
+<div class="line"><a id="l00547" name="l00547"></a><span class="lineno"><a class="line" href="group__w25qxx__example__driver.html#ga4c1be6979b4dc878d07ec86b8624c9d2">  547</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__example__driver.html#ga4c1be6979b4dc878d07ec86b8624c9d2">w25qxx_advance_get_status1</a>(uint8_t *status)</div>
+<div class="line"><a id="l00548" name="l00548"></a><span class="lineno">  548</span>{</div>
+<div class="line"><a id="l00549" name="l00549"></a><span class="lineno">  549</span>    <span class="keywordflow">if</span> (<a class="code hl_function" href="group__w25qxx__advance__driver.html#gaa77d2b00b4fb9cf586f77ace827ea7c6">w25qxx_get_status1</a>(&amp;gs_handle, status) != 0)</div>
+<div class="line"><a id="l00550" name="l00550"></a><span class="lineno">  550</span>    {</div>
+<div class="line"><a id="l00551" name="l00551"></a><span class="lineno">  551</span>        <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00552" name="l00552"></a><span class="lineno">  552</span>    }</div>
+<div class="line"><a id="l00553" name="l00553"></a><span class="lineno">  553</span>    <span class="keywordflow">else</span></div>
+<div class="line"><a id="l00554" name="l00554"></a><span class="lineno">  554</span>    {</div>
+<div class="line"><a id="l00555" name="l00555"></a><span class="lineno">  555</span>        <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a id="l00556" name="l00556"></a><span class="lineno">  556</span>    }</div>
+<div class="line"><a id="l00557" name="l00557"></a><span class="lineno">  557</span>}</div>
+</div>
+<div class="line"><a id="l00558" name="l00558"></a><span class="lineno">  558</span> </div>
+<div class="foldopen" id="foldopen00567" data-start="{" data-end="}">
+<div class="line"><a id="l00567" name="l00567"></a><span class="lineno"><a class="line" href="group__w25qxx__example__driver.html#gaf4736fff906c2f0c1dbed26b20847052">  567</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__example__driver.html#gaf4736fff906c2f0c1dbed26b20847052">w25qxx_advance_get_status2</a>(uint8_t *status)</div>
+<div class="line"><a id="l00568" name="l00568"></a><span class="lineno">  568</span>{</div>
+<div class="line"><a id="l00569" name="l00569"></a><span class="lineno">  569</span>    <span class="keywordflow">if</span> (<a class="code hl_function" href="group__w25qxx__advance__driver.html#gaa21237ecbd5951b8017799066e7db5d9">w25qxx_get_status2</a>(&amp;gs_handle, status) != 0)</div>
+<div class="line"><a id="l00570" name="l00570"></a><span class="lineno">  570</span>    {</div>
+<div class="line"><a id="l00571" name="l00571"></a><span class="lineno">  571</span>        <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00572" name="l00572"></a><span class="lineno">  572</span>    }</div>
+<div class="line"><a id="l00573" name="l00573"></a><span class="lineno">  573</span>    <span class="keywordflow">else</span></div>
+<div class="line"><a id="l00574" name="l00574"></a><span class="lineno">  574</span>    {</div>
+<div class="line"><a id="l00575" name="l00575"></a><span class="lineno">  575</span>        <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a id="l00576" name="l00576"></a><span class="lineno">  576</span>    }</div>
+<div class="line"><a id="l00577" name="l00577"></a><span class="lineno">  577</span>}</div>
+</div>
+<div class="line"><a id="l00578" name="l00578"></a><span class="lineno">  578</span> </div>
+<div class="foldopen" id="foldopen00587" data-start="{" data-end="}">
+<div class="line"><a id="l00587" name="l00587"></a><span class="lineno"><a class="line" href="group__w25qxx__example__driver.html#ga31bcd3d2cc68d2fc589685b5087bd8b3">  587</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__example__driver.html#ga31bcd3d2cc68d2fc589685b5087bd8b3">w25qxx_advance_get_status3</a>(uint8_t *status)</div>
+<div class="line"><a id="l00588" name="l00588"></a><span class="lineno">  588</span>{</div>
+<div class="line"><a id="l00589" name="l00589"></a><span class="lineno">  589</span>    <span class="keywordflow">if</span> (<a class="code hl_function" href="group__w25qxx__advance__driver.html#ga99cf6a325a00921d4531004f0c1d75b1">w25qxx_get_status3</a>(&amp;gs_handle, status) != 0)</div>
+<div class="line"><a id="l00590" name="l00590"></a><span class="lineno">  590</span>    {</div>
+<div class="line"><a id="l00591" name="l00591"></a><span class="lineno">  591</span>        <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00592" name="l00592"></a><span class="lineno">  592</span>    }</div>
+<div class="line"><a id="l00593" name="l00593"></a><span class="lineno">  593</span>    <span class="keywordflow">else</span></div>
+<div class="line"><a id="l00594" name="l00594"></a><span class="lineno">  594</span>    {</div>
+<div class="line"><a id="l00595" name="l00595"></a><span class="lineno">  595</span>        <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a id="l00596" name="l00596"></a><span class="lineno">  596</span>    }</div>
+<div class="line"><a id="l00597" name="l00597"></a><span class="lineno">  597</span>}</div>
+</div>
+<div class="line"><a id="l00598" name="l00598"></a><span class="lineno">  598</span> </div>
+<div class="foldopen" id="foldopen00607" data-start="{" data-end="}">
+<div class="line"><a id="l00607" name="l00607"></a><span class="lineno"><a class="line" href="group__w25qxx__example__driver.html#ga5e4938b4575c417ae22fa82079459b1a">  607</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__example__driver.html#ga5e4938b4575c417ae22fa82079459b1a">w25qxx_advance_set_status1</a>(uint8_t status)</div>
+<div class="line"><a id="l00608" name="l00608"></a><span class="lineno">  608</span>{</div>
+<div class="line"><a id="l00609" name="l00609"></a><span class="lineno">  609</span>    <span class="keywordflow">if</span> (<a class="code hl_function" href="group__w25qxx__advance__driver.html#ga246e0bb07c8bbb39731f17906779c012">w25qxx_set_status1</a>(&amp;gs_handle, status) != 0)</div>
+<div class="line"><a id="l00610" name="l00610"></a><span class="lineno">  610</span>    {</div>
+<div class="line"><a id="l00611" name="l00611"></a><span class="lineno">  611</span>        <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00612" name="l00612"></a><span class="lineno">  612</span>    }</div>
+<div class="line"><a id="l00613" name="l00613"></a><span class="lineno">  613</span>    <span class="keywordflow">else</span></div>
+<div class="line"><a id="l00614" name="l00614"></a><span class="lineno">  614</span>    {</div>
+<div class="line"><a id="l00615" name="l00615"></a><span class="lineno">  615</span>        <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a id="l00616" name="l00616"></a><span class="lineno">  616</span>    }</div>
+<div class="line"><a id="l00617" name="l00617"></a><span class="lineno">  617</span>}</div>
+</div>
+<div class="line"><a id="l00618" name="l00618"></a><span class="lineno">  618</span> </div>
+<div class="foldopen" id="foldopen00627" data-start="{" data-end="}">
+<div class="line"><a id="l00627" name="l00627"></a><span class="lineno"><a class="line" href="group__w25qxx__example__driver.html#ga9bc0e696b700d66f15b3605e10d33718">  627</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__example__driver.html#ga9bc0e696b700d66f15b3605e10d33718">w25qxx_advance_set_status2</a>(uint8_t status)</div>
+<div class="line"><a id="l00628" name="l00628"></a><span class="lineno">  628</span>{</div>
+<div class="line"><a id="l00629" name="l00629"></a><span class="lineno">  629</span>    <span class="keywordflow">if</span> (<a class="code hl_function" href="group__w25qxx__advance__driver.html#gaab5f28e8930d50dbc2178e39bc9fa456">w25qxx_set_status2</a>(&amp;gs_handle, status) != 0)</div>
+<div class="line"><a id="l00630" name="l00630"></a><span class="lineno">  630</span>    {</div>
+<div class="line"><a id="l00631" name="l00631"></a><span class="lineno">  631</span>        <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00632" name="l00632"></a><span class="lineno">  632</span>    }</div>
+<div class="line"><a id="l00633" name="l00633"></a><span class="lineno">  633</span>    <span class="keywordflow">else</span></div>
+<div class="line"><a id="l00634" name="l00634"></a><span class="lineno">  634</span>    {</div>
+<div class="line"><a id="l00635" name="l00635"></a><span class="lineno">  635</span>        <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a id="l00636" name="l00636"></a><span class="lineno">  636</span>    }</div>
+<div class="line"><a id="l00637" name="l00637"></a><span class="lineno">  637</span>}</div>
+</div>
+<div class="line"><a id="l00638" name="l00638"></a><span class="lineno">  638</span> </div>
+<div class="foldopen" id="foldopen00647" data-start="{" data-end="}">
+<div class="line"><a id="l00647" name="l00647"></a><span class="lineno"><a class="line" href="group__w25qxx__example__driver.html#gab5c990ebd4874137b7d23f2b896d4601">  647</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__example__driver.html#gab5c990ebd4874137b7d23f2b896d4601">w25qxx_advance_set_status3</a>(uint8_t status)</div>
+<div class="line"><a id="l00648" name="l00648"></a><span class="lineno">  648</span>{</div>
+<div class="line"><a id="l00649" name="l00649"></a><span class="lineno">  649</span>    <span class="keywordflow">if</span> (<a class="code hl_function" href="group__w25qxx__advance__driver.html#gada897a6c6d6acb99f4dd4ff9b65ad8ee">w25qxx_set_status3</a>(&amp;gs_handle, status) != 0)</div>
+<div class="line"><a id="l00650" name="l00650"></a><span class="lineno">  650</span>    {</div>
+<div class="line"><a id="l00651" name="l00651"></a><span class="lineno">  651</span>        <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00652" name="l00652"></a><span class="lineno">  652</span>    }</div>
+<div class="line"><a id="l00653" name="l00653"></a><span class="lineno">  653</span>    <span class="keywordflow">else</span></div>
+<div class="line"><a id="l00654" name="l00654"></a><span class="lineno">  654</span>    {</div>
+<div class="line"><a id="l00655" name="l00655"></a><span class="lineno">  655</span>        <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a id="l00656" name="l00656"></a><span class="lineno">  656</span>    }</div>
+<div class="line"><a id="l00657" name="l00657"></a><span class="lineno">  657</span>}</div>
+</div>
+<div class="line"><a id="l00658" name="l00658"></a><span class="lineno">  658</span> </div>
+<div class="foldopen" id="foldopen00668" data-start="{" data-end="}">
+<div class="line"><a id="l00668" name="l00668"></a><span class="lineno"><a class="line" href="group__w25qxx__example__driver.html#gac0d9e08a37ee37563c8dbb501608a668">  668</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__example__driver.html#gac0d9e08a37ee37563c8dbb501608a668">w25qxx_advance_only_spi_get_manufacturer_device_id_dual_io</a>(uint8_t *manufacturer, uint8_t *device_id)</div>
+<div class="line"><a id="l00669" name="l00669"></a><span class="lineno">  669</span>{</div>
+<div class="line"><a id="l00670" name="l00670"></a><span class="lineno">  670</span>    <span class="keywordflow">if</span> (<a class="code hl_function" href="group__w25qxx__advance__driver.html#ga1cd3aec1bdeabbaed5f049fbf83ceeb4">w25qxx_get_manufacturer_device_id_dual_io</a>(&amp;gs_handle, manufacturer, device_id) != 0)</div>
+<div class="line"><a id="l00671" name="l00671"></a><span class="lineno">  671</span>    {</div>
+<div class="line"><a id="l00672" name="l00672"></a><span class="lineno">  672</span>        <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00673" name="l00673"></a><span class="lineno">  673</span>    }</div>
+<div class="line"><a id="l00674" name="l00674"></a><span class="lineno">  674</span>    <span class="keywordflow">else</span></div>
+<div class="line"><a id="l00675" name="l00675"></a><span class="lineno">  675</span>    {</div>
+<div class="line"><a id="l00676" name="l00676"></a><span class="lineno">  676</span>        <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a id="l00677" name="l00677"></a><span class="lineno">  677</span>    }</div>
+<div class="line"><a id="l00678" name="l00678"></a><span class="lineno">  678</span>}</div>
+</div>
+<div class="line"><a id="l00679" name="l00679"></a><span class="lineno">  679</span> </div>
+<div class="foldopen" id="foldopen00689" data-start="{" data-end="}">
+<div class="line"><a id="l00689" name="l00689"></a><span class="lineno"><a class="line" href="group__w25qxx__example__driver.html#ga6142b5a1e8602e2990dec34015812615">  689</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__example__driver.html#ga6142b5a1e8602e2990dec34015812615">w25qxx_advance_only_spi_get_manufacturer_device_id_quad_io</a>(uint8_t *manufacturer, uint8_t *device_id)</div>
+<div class="line"><a id="l00690" name="l00690"></a><span class="lineno">  690</span>{</div>
+<div class="line"><a id="l00691" name="l00691"></a><span class="lineno">  691</span>    <span class="keywordflow">if</span> (<a class="code hl_function" href="group__w25qxx__advance__driver.html#ga61bd3ce40b76b6862c6a53e0e37a3455">w25qxx_get_manufacturer_device_id_quad_io</a>(&amp;gs_handle, manufacturer, device_id) != 0)</div>
+<div class="line"><a id="l00692" name="l00692"></a><span class="lineno">  692</span>    {</div>
+<div class="line"><a id="l00693" name="l00693"></a><span class="lineno">  693</span>        <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00694" name="l00694"></a><span class="lineno">  694</span>    }</div>
+<div class="line"><a id="l00695" name="l00695"></a><span class="lineno">  695</span>    <span class="keywordflow">else</span></div>
+<div class="line"><a id="l00696" name="l00696"></a><span class="lineno">  696</span>    {</div>
+<div class="line"><a id="l00697" name="l00697"></a><span class="lineno">  697</span>        <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a id="l00698" name="l00698"></a><span class="lineno">  698</span>    }</div>
+<div class="line"><a id="l00699" name="l00699"></a><span class="lineno">  699</span>}</div>
+</div>
+<div class="line"><a id="l00700" name="l00700"></a><span class="lineno">  700</span> </div>
+<div class="foldopen" id="foldopen00710" data-start="{" data-end="}">
+<div class="line"><a id="l00710" name="l00710"></a><span class="lineno"><a class="line" href="group__w25qxx__example__driver.html#gacc7435a39b61c44f0ce16690d5da896b">  710</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__example__driver.html#gacc7435a39b61c44f0ce16690d5da896b">w25qxx_advance_get_get_jedec_id</a>(uint8_t *manufacturer, uint8_t device_id[2])</div>
+<div class="line"><a id="l00711" name="l00711"></a><span class="lineno">  711</span>{</div>
+<div class="line"><a id="l00712" name="l00712"></a><span class="lineno">  712</span>    <span class="keywordflow">if</span> (<a class="code hl_function" href="group__w25qxx__advance__driver.html#ga8a93ba14a032e10a27f1495fdcf56058">w25qxx_get_jedec_id</a>(&amp;gs_handle, manufacturer, device_id) != 0)</div>
+<div class="line"><a id="l00713" name="l00713"></a><span class="lineno">  713</span>    {</div>
+<div class="line"><a id="l00714" name="l00714"></a><span class="lineno">  714</span>        <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00715" name="l00715"></a><span class="lineno">  715</span>    }</div>
+<div class="line"><a id="l00716" name="l00716"></a><span class="lineno">  716</span>    <span class="keywordflow">else</span></div>
+<div class="line"><a id="l00717" name="l00717"></a><span class="lineno">  717</span>    {</div>
+<div class="line"><a id="l00718" name="l00718"></a><span class="lineno">  718</span>        <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a id="l00719" name="l00719"></a><span class="lineno">  719</span>    }</div>
+<div class="line"><a id="l00720" name="l00720"></a><span class="lineno">  720</span>}</div>
+</div>
+<div class="line"><a id="l00721" name="l00721"></a><span class="lineno">  721</span> </div>
+<div class="foldopen" id="foldopen00729" data-start="{" data-end="}">
+<div class="line"><a id="l00729" name="l00729"></a><span class="lineno"><a class="line" href="group__w25qxx__example__driver.html#ga2cbcc018dc11a870d2e0fc3a8946b1d8">  729</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__example__driver.html#ga2cbcc018dc11a870d2e0fc3a8946b1d8">w25qxx_advance_global_block_lock</a>(<span class="keywordtype">void</span>)</div>
+<div class="line"><a id="l00730" name="l00730"></a><span class="lineno">  730</span>{</div>
+<div class="line"><a id="l00731" name="l00731"></a><span class="lineno">  731</span>    <span class="keywordflow">if</span> (<a class="code hl_function" href="group__w25qxx__advance__driver.html#gab5579bc42bc07a7657848140888a817c">w25qxx_global_block_lock</a>(&amp;gs_handle) != 0)</div>
+<div class="line"><a id="l00732" name="l00732"></a><span class="lineno">  732</span>    {</div>
+<div class="line"><a id="l00733" name="l00733"></a><span class="lineno">  733</span>        <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00734" name="l00734"></a><span class="lineno">  734</span>    }</div>
+<div class="line"><a id="l00735" name="l00735"></a><span class="lineno">  735</span>    <span class="keywordflow">else</span></div>
+<div class="line"><a id="l00736" name="l00736"></a><span class="lineno">  736</span>    {</div>
+<div class="line"><a id="l00737" name="l00737"></a><span class="lineno">  737</span>        <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a id="l00738" name="l00738"></a><span class="lineno">  738</span>    }</div>
+<div class="line"><a id="l00739" name="l00739"></a><span class="lineno">  739</span>}</div>
+</div>
+<div class="line"><a id="l00740" name="l00740"></a><span class="lineno">  740</span> </div>
+<div class="foldopen" id="foldopen00748" data-start="{" data-end="}">
+<div class="line"><a id="l00748" name="l00748"></a><span class="lineno"><a class="line" href="group__w25qxx__example__driver.html#ga67c70da103511d1cff9274e61a08ce56">  748</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__example__driver.html#ga67c70da103511d1cff9274e61a08ce56">w25qxx_advance_global_block_unlock</a>(<span class="keywordtype">void</span>)</div>
+<div class="line"><a id="l00749" name="l00749"></a><span class="lineno">  749</span>{</div>
+<div class="line"><a id="l00750" name="l00750"></a><span class="lineno">  750</span>    <span class="keywordflow">if</span> (<a class="code hl_function" href="group__w25qxx__advance__driver.html#ga6d62f7d14945cfde7cde7a0e9a4e3afb">w25qxx_global_block_unlock</a>(&amp;gs_handle) != 0)</div>
+<div class="line"><a id="l00751" name="l00751"></a><span class="lineno">  751</span>    {</div>
+<div class="line"><a id="l00752" name="l00752"></a><span class="lineno">  752</span>        <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00753" name="l00753"></a><span class="lineno">  753</span>    }</div>
+<div class="line"><a id="l00754" name="l00754"></a><span class="lineno">  754</span>    <span class="keywordflow">else</span></div>
+<div class="line"><a id="l00755" name="l00755"></a><span class="lineno">  755</span>    {</div>
+<div class="line"><a id="l00756" name="l00756"></a><span class="lineno">  756</span>        <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a id="l00757" name="l00757"></a><span class="lineno">  757</span>    }</div>
+<div class="line"><a id="l00758" name="l00758"></a><span class="lineno">  758</span>}</div>
+</div>
+<div class="line"><a id="l00759" name="l00759"></a><span class="lineno">  759</span> </div>
+<div class="foldopen" id="foldopen00768" data-start="{" data-end="}">
+<div class="line"><a id="l00768" name="l00768"></a><span class="lineno"><a class="line" href="group__w25qxx__example__driver.html#gaa7af99e92b3e81f5b202575b55dc3a7c">  768</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__example__driver.html#gaa7af99e92b3e81f5b202575b55dc3a7c">w25qxx_advance_individual_block_lock</a>(uint32_t addr)</div>
+<div class="line"><a id="l00769" name="l00769"></a><span class="lineno">  769</span>{</div>
+<div class="line"><a id="l00770" name="l00770"></a><span class="lineno">  770</span>    <span class="keywordflow">if</span> (<a class="code hl_function" href="group__w25qxx__advance__driver.html#ga4f00c2c169cb7c3084841c6cd795e76b">w25qxx_individual_block_lock</a>(&amp;gs_handle, addr) != 0)</div>
+<div class="line"><a id="l00771" name="l00771"></a><span class="lineno">  771</span>    {</div>
+<div class="line"><a id="l00772" name="l00772"></a><span class="lineno">  772</span>        <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00773" name="l00773"></a><span class="lineno">  773</span>    }</div>
+<div class="line"><a id="l00774" name="l00774"></a><span class="lineno">  774</span>    <span class="keywordflow">else</span></div>
+<div class="line"><a id="l00775" name="l00775"></a><span class="lineno">  775</span>    {</div>
+<div class="line"><a id="l00776" name="l00776"></a><span class="lineno">  776</span>        <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a id="l00777" name="l00777"></a><span class="lineno">  777</span>    }</div>
+<div class="line"><a id="l00778" name="l00778"></a><span class="lineno">  778</span>}</div>
+</div>
+<div class="line"><a id="l00779" name="l00779"></a><span class="lineno">  779</span> </div>
+<div class="foldopen" id="foldopen00788" data-start="{" data-end="}">
+<div class="line"><a id="l00788" name="l00788"></a><span class="lineno"><a class="line" href="group__w25qxx__example__driver.html#ga66726fc451c7804e8fec6eb46a6a77d6">  788</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__example__driver.html#ga66726fc451c7804e8fec6eb46a6a77d6">w25qxx_advance_individual_block_unlock</a>(uint32_t addr)</div>
+<div class="line"><a id="l00789" name="l00789"></a><span class="lineno">  789</span>{</div>
+<div class="line"><a id="l00790" name="l00790"></a><span class="lineno">  790</span>    <span class="keywordflow">if</span> (<a class="code hl_function" href="group__w25qxx__advance__driver.html#ga7f88cedf7619071b3235ba094915b2a7">w25qxx_individual_block_unlock</a>(&amp;gs_handle, addr) != 0)</div>
+<div class="line"><a id="l00791" name="l00791"></a><span class="lineno">  791</span>    {</div>
+<div class="line"><a id="l00792" name="l00792"></a><span class="lineno">  792</span>        <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00793" name="l00793"></a><span class="lineno">  793</span>    }</div>
+<div class="line"><a id="l00794" name="l00794"></a><span class="lineno">  794</span>    <span class="keywordflow">else</span></div>
+<div class="line"><a id="l00795" name="l00795"></a><span class="lineno">  795</span>    {</div>
+<div class="line"><a id="l00796" name="l00796"></a><span class="lineno">  796</span>        <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a id="l00797" name="l00797"></a><span class="lineno">  797</span>    }</div>
+<div class="line"><a id="l00798" name="l00798"></a><span class="lineno">  798</span>}</div>
+</div>
+<div class="line"><a id="l00799" name="l00799"></a><span class="lineno">  799</span> </div>
+<div class="foldopen" id="foldopen00809" data-start="{" data-end="}">
+<div class="line"><a id="l00809" name="l00809"></a><span class="lineno"><a class="line" href="group__w25qxx__example__driver.html#gac1773fe914a01825ca28346205601036">  809</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__example__driver.html#gac1773fe914a01825ca28346205601036">w25qxx_advance_read_block_lock</a>(uint32_t addr, uint8_t *value)</div>
+<div class="line"><a id="l00810" name="l00810"></a><span class="lineno">  810</span>{</div>
+<div class="line"><a id="l00811" name="l00811"></a><span class="lineno">  811</span>    <span class="keywordflow">if</span> (<a class="code hl_function" href="group__w25qxx__advance__driver.html#ga59e655ca78a175037ca810bbc8539a96">w25qxx_read_block_lock</a>(&amp;gs_handle, addr, value) != 0)</div>
+<div class="line"><a id="l00812" name="l00812"></a><span class="lineno">  812</span>    {</div>
+<div class="line"><a id="l00813" name="l00813"></a><span class="lineno">  813</span>        <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00814" name="l00814"></a><span class="lineno">  814</span>    }</div>
+<div class="line"><a id="l00815" name="l00815"></a><span class="lineno">  815</span>    <span class="keywordflow">else</span></div>
+<div class="line"><a id="l00816" name="l00816"></a><span class="lineno">  816</span>    {</div>
+<div class="line"><a id="l00817" name="l00817"></a><span class="lineno">  817</span>        <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a id="l00818" name="l00818"></a><span class="lineno">  818</span>    }</div>
+<div class="line"><a id="l00819" name="l00819"></a><span class="lineno">  819</span>}</div>
+</div>
+<div class="line"><a id="l00820" name="l00820"></a><span class="lineno">  820</span> </div>
+<div class="foldopen" id="foldopen00828" data-start="{" data-end="}">
+<div class="line"><a id="l00828" name="l00828"></a><span class="lineno"><a class="line" href="group__w25qxx__example__driver.html#ga0f65053ad28443f19ed73dbc3412b5b2">  828</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__example__driver.html#ga0f65053ad28443f19ed73dbc3412b5b2">w25qxx_advance_reset</a>(<span class="keywordtype">void</span>)</div>
+<div class="line"><a id="l00829" name="l00829"></a><span class="lineno">  829</span>{</div>
+<div class="line"><a id="l00830" name="l00830"></a><span class="lineno">  830</span>    <span class="keywordflow">if</span> (<a class="code hl_function" href="group__w25qxx__advance__driver.html#gab55b4e071e20feb58584025287949438">w25qxx_enable_reset</a>(&amp;gs_handle) != 0)</div>
+<div class="line"><a id="l00831" name="l00831"></a><span class="lineno">  831</span>    {</div>
+<div class="line"><a id="l00832" name="l00832"></a><span class="lineno">  832</span>        <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00833" name="l00833"></a><span class="lineno">  833</span>    }</div>
+<div class="line"><a id="l00834" name="l00834"></a><span class="lineno">  834</span>    <span class="keywordflow">if</span> (<a class="code hl_function" href="group__w25qxx__advance__driver.html#ga2abebfe2a8d9377eb88448ffca73f222">w25qxx_reset_device</a>(&amp;gs_handle) != 0)</div>
+<div class="line"><a id="l00835" name="l00835"></a><span class="lineno">  835</span>    {</div>
+<div class="line"><a id="l00836" name="l00836"></a><span class="lineno">  836</span>        <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00837" name="l00837"></a><span class="lineno">  837</span>    }</div>
+<div class="line"><a id="l00838" name="l00838"></a><span class="lineno">  838</span>    <span class="keywordflow">else</span></div>
+<div class="line"><a id="l00839" name="l00839"></a><span class="lineno">  839</span>    {</div>
+<div class="line"><a id="l00840" name="l00840"></a><span class="lineno">  840</span>        <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a id="l00841" name="l00841"></a><span class="lineno">  841</span>    }</div>
+<div class="line"><a id="l00842" name="l00842"></a><span class="lineno">  842</span>}</div>
+</div>
+<div class="line"><a id="l00843" name="l00843"></a><span class="lineno">  843</span> </div>
+<div class="foldopen" id="foldopen00853" data-start="{" data-end="}">
+<div class="line"><a id="l00853" name="l00853"></a><span class="lineno"><a class="line" href="group__w25qxx__example__driver.html#gace2a5b7acd9798cfcaa2b5eb2f18e1d1">  853</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__example__driver.html#gace2a5b7acd9798cfcaa2b5eb2f18e1d1">w25qxx_advance_only_qspi_set_read_parameters</a>(<a class="code hl_enumeration" href="group__w25qxx__advance__driver.html#ga6ff284154302248f00db269146545443">w25qxx_qspi_read_dummy_t</a> dummy, <a class="code hl_enumeration" href="group__w25qxx__advance__driver.html#ga2fd3023819e1aebe089a4a72eb136da3">w25qxx_qspi_read_wrap_length_t</a> length)</div>
+<div class="line"><a id="l00854" name="l00854"></a><span class="lineno">  854</span>{</div>
+<div class="line"><a id="l00855" name="l00855"></a><span class="lineno">  855</span>    <span class="keywordflow">if</span> (<a class="code hl_function" href="group__w25qxx__advance__driver.html#ga9ad10781d888b32b43b9eba45d049624">w25qxx_set_read_parameters</a>(&amp;gs_handle, dummy, length) != 0)</div>
+<div class="line"><a id="l00856" name="l00856"></a><span class="lineno">  856</span>    {</div>
+<div class="line"><a id="l00857" name="l00857"></a><span class="lineno">  857</span>        <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00858" name="l00858"></a><span class="lineno">  858</span>    }</div>
+<div class="line"><a id="l00859" name="l00859"></a><span class="lineno">  859</span>    <span class="keywordflow">else</span></div>
+<div class="line"><a id="l00860" name="l00860"></a><span class="lineno">  860</span>    {</div>
+<div class="line"><a id="l00861" name="l00861"></a><span class="lineno">  861</span>        <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a id="l00862" name="l00862"></a><span class="lineno">  862</span>    }</div>
+<div class="line"><a id="l00863" name="l00863"></a><span class="lineno">  863</span>}</div>
+</div>
+<div class="line"><a id="l00864" name="l00864"></a><span class="lineno">  864</span> </div>
+<div class="foldopen" id="foldopen00873" data-start="{" data-end="}">
+<div class="line"><a id="l00873" name="l00873"></a><span class="lineno"><a class="line" href="group__w25qxx__example__driver.html#ga374d35b73fa61d5f7464c3effdae1d57">  873</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__example__driver.html#ga374d35b73fa61d5f7464c3effdae1d57">w25qxx_advance_only_spi_get_unique_id</a>(uint8_t <span class="keywordtype">id</span>[8])</div>
+<div class="line"><a id="l00874" name="l00874"></a><span class="lineno">  874</span>{</div>
+<div class="line"><a id="l00875" name="l00875"></a><span class="lineno">  875</span>    <span class="keywordflow">if</span> (<a class="code hl_function" href="group__w25qxx__advance__driver.html#ga11af244389478de68a6777076ee82d69">w25qxx_get_unique_id</a>(&amp;gs_handle, <span class="keywordtype">id</span>) != 0)</div>
+<div class="line"><a id="l00876" name="l00876"></a><span class="lineno">  876</span>    {</div>
+<div class="line"><a id="l00877" name="l00877"></a><span class="lineno">  877</span>        <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00878" name="l00878"></a><span class="lineno">  878</span>    }</div>
+<div class="line"><a id="l00879" name="l00879"></a><span class="lineno">  879</span>    <span class="keywordflow">else</span></div>
+<div class="line"><a id="l00880" name="l00880"></a><span class="lineno">  880</span>    {</div>
+<div class="line"><a id="l00881" name="l00881"></a><span class="lineno">  881</span>        <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a id="l00882" name="l00882"></a><span class="lineno">  882</span>    }</div>
+<div class="line"><a id="l00883" name="l00883"></a><span class="lineno">  883</span>}</div>
+</div>
+<div class="line"><a id="l00884" name="l00884"></a><span class="lineno">  884</span> </div>
+<div class="foldopen" id="foldopen00893" data-start="{" data-end="}">
+<div class="line"><a id="l00893" name="l00893"></a><span class="lineno"><a class="line" href="group__w25qxx__example__driver.html#ga9b1854e0ae52f57523bc2fa7cc0656df">  893</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__example__driver.html#ga9b1854e0ae52f57523bc2fa7cc0656df">w25qxx_advance_only_spi_get_sfdp</a>(uint8_t sfdp[256])</div>
+<div class="line"><a id="l00894" name="l00894"></a><span class="lineno">  894</span>{</div>
+<div class="line"><a id="l00895" name="l00895"></a><span class="lineno">  895</span>    <span class="keywordflow">if</span> (<a class="code hl_function" href="group__w25qxx__advance__driver.html#ga244a91b9c0c32e899ca89e1943045624">w25qxx_get_sfdp</a>(&amp;gs_handle, sfdp) != 0)</div>
+<div class="line"><a id="l00896" name="l00896"></a><span class="lineno">  896</span>    {</div>
+<div class="line"><a id="l00897" name="l00897"></a><span class="lineno">  897</span>        <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00898" name="l00898"></a><span class="lineno">  898</span>    }</div>
+<div class="line"><a id="l00899" name="l00899"></a><span class="lineno">  899</span>    <span class="keywordflow">else</span></div>
+<div class="line"><a id="l00900" name="l00900"></a><span class="lineno">  900</span>    {</div>
+<div class="line"><a id="l00901" name="l00901"></a><span class="lineno">  901</span>        <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a id="l00902" name="l00902"></a><span class="lineno">  902</span>    }</div>
+<div class="line"><a id="l00903" name="l00903"></a><span class="lineno">  903</span>}</div>
+</div>
+<div class="line"><a id="l00904" name="l00904"></a><span class="lineno">  904</span> </div>
+<div class="foldopen" id="foldopen00914" data-start="{" data-end="}">
+<div class="line"><a id="l00914" name="l00914"></a><span class="lineno"><a class="line" href="group__w25qxx__example__driver.html#gaa6c5f97106e769ba071973cc2e782ad4">  914</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__example__driver.html#gaa6c5f97106e769ba071973cc2e782ad4">w25qxx_advance_only_spi_write_security_register</a>(<a class="code hl_enumeration" href="group__w25qxx__advance__driver.html#ga81ddc7d4b9f4f124163beea19cc33c7e">w25qxx_security_register_t</a> num, uint8_t data[256])</div>
+<div class="line"><a id="l00915" name="l00915"></a><span class="lineno">  915</span>{</div>
+<div class="line"><a id="l00916" name="l00916"></a><span class="lineno">  916</span>    <span class="keywordflow">if</span> (<a class="code hl_function" href="group__w25qxx__advance__driver.html#gaf297e2c6877c64f8fd10a555f783ddaf">w25qxx_erase_security_register</a>(&amp;gs_handle, num) != 0)</div>
+<div class="line"><a id="l00917" name="l00917"></a><span class="lineno">  917</span>    {</div>
+<div class="line"><a id="l00918" name="l00918"></a><span class="lineno">  918</span>        <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00919" name="l00919"></a><span class="lineno">  919</span>    }</div>
+<div class="line"><a id="l00920" name="l00920"></a><span class="lineno">  920</span>    <span class="keywordflow">if</span> (<a class="code hl_function" href="group__w25qxx__advance__driver.html#ga4e9c059ff78866e478e835cb27a92899">w25qxx_program_security_register</a>(&amp;gs_handle, num, data) != 0)</div>
+<div class="line"><a id="l00921" name="l00921"></a><span class="lineno">  921</span>    {</div>
+<div class="line"><a id="l00922" name="l00922"></a><span class="lineno">  922</span>        <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00923" name="l00923"></a><span class="lineno">  923</span>    }</div>
+<div class="line"><a id="l00924" name="l00924"></a><span class="lineno">  924</span>    <span class="keywordflow">else</span></div>
+<div class="line"><a id="l00925" name="l00925"></a><span class="lineno">  925</span>    {</div>
+<div class="line"><a id="l00926" name="l00926"></a><span class="lineno">  926</span>        <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a id="l00927" name="l00927"></a><span class="lineno">  927</span>    }</div>
+<div class="line"><a id="l00928" name="l00928"></a><span class="lineno">  928</span>}</div>
+</div>
+<div class="line"><a id="l00929" name="l00929"></a><span class="lineno">  929</span> </div>
+<div class="foldopen" id="foldopen00939" data-start="{" data-end="}">
+<div class="line"><a id="l00939" name="l00939"></a><span class="lineno"><a class="line" href="group__w25qxx__example__driver.html#ga02652a58ee418b432cf77505809d7d42">  939</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__example__driver.html#ga02652a58ee418b432cf77505809d7d42">w25qxx_advance_only_spi_read_security_register</a>(<a class="code hl_enumeration" href="group__w25qxx__advance__driver.html#ga81ddc7d4b9f4f124163beea19cc33c7e">w25qxx_security_register_t</a> num, uint8_t data[256])</div>
+<div class="line"><a id="l00940" name="l00940"></a><span class="lineno">  940</span>{</div>
+<div class="line"><a id="l00941" name="l00941"></a><span class="lineno">  941</span>    <span class="keywordflow">if</span> (<a class="code hl_function" href="group__w25qxx__advance__driver.html#ga4c65debc4947bd9a61e0073105164b9c">w25qxx_read_security_register</a>(&amp;gs_handle, num, data) != 0)</div>
+<div class="line"><a id="l00942" name="l00942"></a><span class="lineno">  942</span>    {</div>
+<div class="line"><a id="l00943" name="l00943"></a><span class="lineno">  943</span>        <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00944" name="l00944"></a><span class="lineno">  944</span>    }</div>
+<div class="line"><a id="l00945" name="l00945"></a><span class="lineno">  945</span>    <span class="keywordflow">else</span></div>
+<div class="line"><a id="l00946" name="l00946"></a><span class="lineno">  946</span>    {</div>
+<div class="line"><a id="l00947" name="l00947"></a><span class="lineno">  947</span>        <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a id="l00948" name="l00948"></a><span class="lineno">  948</span>    }</div>
+<div class="line"><a id="l00949" name="l00949"></a><span class="lineno">  949</span>}</div>
+</div>
+<div class="line"><a id="l00950" name="l00950"></a><span class="lineno">  950</span> </div>
+<div class="foldopen" id="foldopen00959" data-start="{" data-end="}">
+<div class="line"><a id="l00959" name="l00959"></a><span class="lineno"><a class="line" href="group__w25qxx__example__driver.html#ga16411577fcb794f7485912f5db1bdde9">  959</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__example__driver.html#ga16411577fcb794f7485912f5db1bdde9">w25qxx_advance_only_spi_set_burst_with_wrap</a>(<a class="code hl_enumeration" href="group__w25qxx__advance__driver.html#ga94bbae2bf8906903e8dc2a28c490723d">w25qxx_burst_wrap_t</a> wrap)</div>
+<div class="line"><a id="l00960" name="l00960"></a><span class="lineno">  960</span>{</div>
+<div class="line"><a id="l00961" name="l00961"></a><span class="lineno">  961</span>    <span class="keywordflow">if</span> (<a class="code hl_function" href="group__w25qxx__advance__driver.html#gac19c1d0f3fd48968ea2a93c1dbe3d75d">w25qxx_set_burst_with_wrap</a>(&amp;gs_handle, wrap) != 0)</div>
+<div class="line"><a id="l00962" name="l00962"></a><span class="lineno">  962</span>    {</div>
+<div class="line"><a id="l00963" name="l00963"></a><span class="lineno">  963</span>        <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00964" name="l00964"></a><span class="lineno">  964</span>    }</div>
+<div class="line"><a id="l00965" name="l00965"></a><span class="lineno">  965</span>    <span class="keywordflow">else</span></div>
+<div class="line"><a id="l00966" name="l00966"></a><span class="lineno">  966</span>    {</div>
+<div class="line"><a id="l00967" name="l00967"></a><span class="lineno">  967</span>        <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a id="l00968" name="l00968"></a><span class="lineno">  968</span>    }</div>
+<div class="line"><a id="l00969" name="l00969"></a><span class="lineno">  969</span>}</div>
+</div>
 <div class="ttc" id="adriver__w25qxx__advance_8h_html"><div class="ttname"><a href="driver__w25qxx__advance_8h.html">driver_w25qxx_advance.h</a></div><div class="ttdoc">driver w25qxx advance header file</div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga11af244389478de68a6777076ee82d69"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga11af244389478de68a6777076ee82d69">w25qxx_get_unique_id</a></div><div class="ttdeci">uint8_t w25qxx_get_unique_id(w25qxx_handle_t *handle, uint8_t id[8])</div><div class="ttdoc">get the unique id</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l02764">driver_w25qxx.c:2764</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga1cd3aec1bdeabbaed5f049fbf83ceeb4"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga1cd3aec1bdeabbaed5f049fbf83ceeb4">w25qxx_get_manufacturer_device_id_dual_io</a></div><div class="ttdeci">uint8_t w25qxx_get_manufacturer_device_id_dual_io(w25qxx_handle_t *handle, uint8_t *manufacturer, uint8_t *device_id)</div><div class="ttdoc">get the manufacturer &amp;&amp; device id information with dual io</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l02038">driver_w25qxx.c:2038</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga1f80bbbaaa852eecfffb87737889363d"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga1f80bbbaaa852eecfffb87737889363d">w25qxx_page_program_quad_input</a></div><div class="ttdeci">uint8_t w25qxx_page_program_quad_input(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint16_t len)</div><div class="ttdoc">quad page program with quad input</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l04920">driver_w25qxx.c:4920</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga244a91b9c0c32e899ca89e1943045624"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga244a91b9c0c32e899ca89e1943045624">w25qxx_get_sfdp</a></div><div class="ttdeci">uint8_t w25qxx_get_sfdp(w25qxx_handle_t *handle, uint8_t sfdp[256])</div><div class="ttdoc">get the sfdp</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l02880">driver_w25qxx.c:2880</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga246e0bb07c8bbb39731f17906779c012"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga246e0bb07c8bbb39731f17906779c012">w25qxx_set_status1</a></div><div class="ttdeci">uint8_t w25qxx_set_status1(w25qxx_handle_t *handle, uint8_t status)</div><div class="ttdoc">set the status 1</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l00863">driver_w25qxx.c:863</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga2abebfe2a8d9377eb88448ffca73f222"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga2abebfe2a8d9377eb88448ffca73f222">w25qxx_reset_device</a></div><div class="ttdeci">uint8_t w25qxx_reset_device(w25qxx_handle_t *handle)</div><div class="ttdoc">reset the device</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l02690">driver_w25qxx.c:2690</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga2fd3023819e1aebe089a4a72eb136da3"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga2fd3023819e1aebe089a4a72eb136da3">w25qxx_qspi_read_wrap_length_t</a></div><div class="ttdeci">w25qxx_qspi_read_wrap_length_t</div><div class="ttdoc">w25qxx qspi read wrap length enumeration definition</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00122">driver_w25qxx.h:123</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga4c65debc4947bd9a61e0073105164b9c"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga4c65debc4947bd9a61e0073105164b9c">w25qxx_read_security_register</a></div><div class="ttdeci">uint8_t w25qxx_read_security_register(w25qxx_handle_t *handle, w25qxx_security_register_t num, uint8_t data[256])</div><div class="ttdoc">read the security register</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l03344">driver_w25qxx.c:3344</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga4e9c059ff78866e478e835cb27a92899"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga4e9c059ff78866e478e835cb27a92899">w25qxx_program_security_register</a></div><div class="ttdeci">uint8_t w25qxx_program_security_register(w25qxx_handle_t *handle, w25qxx_security_register_t num, uint8_t data[256])</div><div class="ttdoc">program the security register</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l03147">driver_w25qxx.c:3147</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga4f00c2c169cb7c3084841c6cd795e76b"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga4f00c2c169cb7c3084841c6cd795e76b">w25qxx_individual_block_lock</a></div><div class="ttdeci">uint8_t w25qxx_individual_block_lock(w25qxx_handle_t *handle, uint32_t addr)</div><div class="ttdoc">lock the individual block</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l06094">driver_w25qxx.c:6094</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga59e655ca78a175037ca810bbc8539a96"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga59e655ca78a175037ca810bbc8539a96">w25qxx_read_block_lock</a></div><div class="ttdeci">uint8_t w25qxx_read_block_lock(w25qxx_handle_t *handle, uint32_t addr, uint8_t *value)</div><div class="ttdoc">read the block lock</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l06529">driver_w25qxx.c:6529</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga61bd3ce40b76b6862c6a53e0e37a3455"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga61bd3ce40b76b6862c6a53e0e37a3455">w25qxx_get_manufacturer_device_id_quad_io</a></div><div class="ttdeci">uint8_t w25qxx_get_manufacturer_device_id_quad_io(w25qxx_handle_t *handle, uint8_t *manufacturer, uint8_t *device_id)</div><div class="ttdoc">get the manufacturer &amp;&amp; device id information with quad io</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l02122">driver_w25qxx.c:2122</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga6d62f7d14945cfde7cde7a0e9a4e3afb"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga6d62f7d14945cfde7cde7a0e9a4e3afb">w25qxx_global_block_unlock</a></div><div class="ttdeci">uint8_t w25qxx_global_block_unlock(w25qxx_handle_t *handle)</div><div class="ttdoc">unlock the whole block</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l02354">driver_w25qxx.c:2354</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga6ff284154302248f00db269146545443"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga6ff284154302248f00db269146545443">w25qxx_qspi_read_dummy_t</a></div><div class="ttdeci">w25qxx_qspi_read_dummy_t</div><div class="ttdoc">w25qxx qspi read dummy enumeration definition</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00111">driver_w25qxx.h:112</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga7a19230ca3916816ea8fb7421483d293"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga7a19230ca3916816ea8fb7421483d293">w25qxx_fast_read_dual_output</a></div><div class="ttdeci">uint8_t w25qxx_fast_read_dual_output(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">read with dual output in the fast mode</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l03858">driver_w25qxx.c:3858</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga7f88cedf7619071b3235ba094915b2a7"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga7f88cedf7619071b3235ba094915b2a7">w25qxx_individual_block_unlock</a></div><div class="ttdeci">uint8_t w25qxx_individual_block_unlock(w25qxx_handle_t *handle, uint32_t addr)</div><div class="ttdoc">unlock the individual block</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l06311">driver_w25qxx.c:6311</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga81ddc7d4b9f4f124163beea19cc33c7e"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga81ddc7d4b9f4f124163beea19cc33c7e">w25qxx_security_register_t</a></div><div class="ttdeci">w25qxx_security_register_t</div><div class="ttdoc">w25qxx security register enumeration definition</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00134">driver_w25qxx.h:135</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga88a62ec42e86db821ff3f0d3ab541dbb"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga88a62ec42e86db821ff3f0d3ab541dbb">w25qxx_octal_word_read_quad_io</a></div><div class="ttdeci">uint8_t w25qxx_octal_word_read_quad_io(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">octal word read with quad io</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l04459">driver_w25qxx.c:4459</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga8a93ba14a032e10a27f1495fdcf56058"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga8a93ba14a032e10a27f1495fdcf56058">w25qxx_get_jedec_id</a></div><div class="ttdeci">uint8_t w25qxx_get_jedec_id(w25qxx_handle_t *handle, uint8_t *manufacturer, uint8_t device_id[2])</div><div class="ttdoc">get the jedec id information</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l02203">driver_w25qxx.c:2203</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga94bbae2bf8906903e8dc2a28c490723d"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga94bbae2bf8906903e8dc2a28c490723d">w25qxx_burst_wrap_t</a></div><div class="ttdeci">w25qxx_burst_wrap_t</div><div class="ttdoc">w25qxx burst wrap enumeration definition</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00144">driver_w25qxx.h:145</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga99cf6a325a00921d4531004f0c1d75b1"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga99cf6a325a00921d4531004f0c1d75b1">w25qxx_get_status3</a></div><div class="ttdeci">uint8_t w25qxx_get_status3(w25qxx_handle_t *handle, uint8_t *status)</div><div class="ttdoc">get the status 3</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l00789">driver_w25qxx.c:789</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga9ad10781d888b32b43b9eba45d049624"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga9ad10781d888b32b43b9eba45d049624">w25qxx_set_read_parameters</a></div><div class="ttdeci">uint8_t w25qxx_set_read_parameters(w25qxx_handle_t *handle, w25qxx_qspi_read_dummy_t dummy, w25qxx_qspi_read_wrap_length_t length)</div><div class="ttdoc">set the read parameters</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l02427">driver_w25qxx.c:2427</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_gaa21237ecbd5951b8017799066e7db5d9"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gaa21237ecbd5951b8017799066e7db5d9">w25qxx_get_status2</a></div><div class="ttdeci">uint8_t w25qxx_get_status2(w25qxx_handle_t *handle, uint8_t *status)</div><div class="ttdoc">get the status 2</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l00716">driver_w25qxx.c:716</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_gaa77d2b00b4fb9cf586f77ace827ea7c6"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gaa77d2b00b4fb9cf586f77ace827ea7c6">w25qxx_get_status1</a></div><div class="ttdeci">uint8_t w25qxx_get_status1(w25qxx_handle_t *handle, uint8_t *status)</div><div class="ttdoc">get the status 1</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l00643">driver_w25qxx.c:643</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_gaab5f28e8930d50dbc2178e39bc9fa456"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gaab5f28e8930d50dbc2178e39bc9fa456">w25qxx_set_status2</a></div><div class="ttdeci">uint8_t w25qxx_set_status2(w25qxx_handle_t *handle, uint8_t status)</div><div class="ttdoc">set the status 2</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l01062">driver_w25qxx.c:1062</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_gab5579bc42bc07a7657848140888a817c"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gab5579bc42bc07a7657848140888a817c">w25qxx_global_block_lock</a></div><div class="ttdeci">uint8_t w25qxx_global_block_lock(w25qxx_handle_t *handle)</div><div class="ttdoc">lock the whole block</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l02284">driver_w25qxx.c:2284</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_gab55b4e071e20feb58584025287949438"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gab55b4e071e20feb58584025287949438">w25qxx_enable_reset</a></div><div class="ttdeci">uint8_t w25qxx_enable_reset(w25qxx_handle_t *handle)</div><div class="ttdoc">enable the reset</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l02619">driver_w25qxx.c:2619</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_gab97a64bd3776874518f60381d921ae41"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gab97a64bd3776874518f60381d921ae41">w25qxx_fast_read_quad_io</a></div><div class="ttdeci">uint8_t w25qxx_fast_read_quad_io(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">read with quad io in the fast mode</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l04184">driver_w25qxx.c:4184</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_gac19c1d0f3fd48968ea2a93c1dbe3d75d"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gac19c1d0f3fd48968ea2a93c1dbe3d75d">w25qxx_set_burst_with_wrap</a></div><div class="ttdeci">uint8_t w25qxx_set_burst_with_wrap(w25qxx_handle_t *handle, w25qxx_burst_wrap_t wrap)</div><div class="ttdoc">set the burst with wrap</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l06746">driver_w25qxx.c:6746</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_gac894f4650905cba10dd3a31284de6d5e"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gac894f4650905cba10dd3a31284de6d5e">w25qxx_fast_read_dual_io</a></div><div class="ttdeci">uint8_t w25qxx_fast_read_dual_io(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">read with dual io in the fast mode</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l04076">driver_w25qxx.c:4076</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_gad97d7e410dd77c49334097a0fd332660"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gad97d7e410dd77c49334097a0fd332660">w25qxx_word_read_quad_io</a></div><div class="ttdeci">uint8_t w25qxx_word_read_quad_io(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">word read with quad io</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l04350">driver_w25qxx.c:4350</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_gada897a6c6d6acb99f4dd4ff9b65ad8ee"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gada897a6c6d6acb99f4dd4ff9b65ad8ee">w25qxx_set_status3</a></div><div class="ttdeci">uint8_t w25qxx_set_status3(w25qxx_handle_t *handle, uint8_t status)</div><div class="ttdoc">set the status 3</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l01261">driver_w25qxx.c:1261</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_gaf297e2c6877c64f8fd10a555f783ddaf"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gaf297e2c6877c64f8fd10a555f783ddaf">w25qxx_erase_security_register</a></div><div class="ttdeci">uint8_t w25qxx_erase_security_register(w25qxx_handle_t *handle, w25qxx_security_register_t num)</div><div class="ttdoc">erase the security register</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l02952">driver_w25qxx.c:2952</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_gaf4bfafd1f80aa0316a4b1a15183dcd50"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gaf4bfafd1f80aa0316a4b1a15183dcd50">w25qxx_fast_read_quad_output</a></div><div class="ttdeci">uint8_t w25qxx_fast_read_quad_output(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">read with quad output in the fast mode</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l03967">driver_w25qxx.c:3967</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga0862833b36831f92684980b2e21f2e39"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga0862833b36831f92684980b2e21f2e39">w25qxx_chip_erase</a></div><div class="ttdeci">uint8_t w25qxx_chip_erase(w25qxx_handle_t *handle)</div><div class="ttdoc">erase the chip</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l01459">driver_w25qxx.c:1459</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga09c9b52877516a2ee4c080dc249e7331"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga09c9b52877516a2ee4c080dc249e7331">w25qxx_release_power_down</a></div><div class="ttdeci">uint8_t w25qxx_release_power_down(w25qxx_handle_t *handle)</div><div class="ttdoc">release power down</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l01875">driver_w25qxx.c:1875</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga1e9ebf198137d23558dbf6470213c472"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga1e9ebf198137d23558dbf6470213c472">w25qxx_only_spi_read</a></div><div class="ttdeci">uint8_t w25qxx_only_spi_read(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">read only in the spi interface</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l03465">driver_w25qxx.c:3465</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga39c8fb382e8c3e4d57232dfa79af781c"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga39c8fb382e8c3e4d57232dfa79af781c">w25qxx_block_erase_32k</a></div><div class="ttdeci">uint8_t w25qxx_block_erase_32k(w25qxx_handle_t *handle, uint32_t addr)</div><div class="ttdoc">erase the 32k block</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l05419">driver_w25qxx.c:5419</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga50a62003d566402d46ada2f272c41eb5"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga50a62003d566402d46ada2f272c41eb5">w25qxx_set_interface</a></div><div class="ttdeci">uint8_t w25qxx_set_interface(w25qxx_handle_t *handle, w25qxx_interface_t interface)</div><div class="ttdoc">set the chip interface</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l00259">driver_w25qxx.c:259</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga6280e7e4ab26306436e2c210617a28b3"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga6280e7e4ab26306436e2c210617a28b3">w25qxx_page_program</a></div><div class="ttdeci">uint8_t w25qxx_page_program(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint16_t len)</div><div class="ttdoc">page program</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l04569">driver_w25qxx.c:4569</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga665139209b0abc386474a78d89cce6f2"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga665139209b0abc386474a78d89cce6f2">w25qxx_set_dual_quad_spi</a></div><div class="ttdeci">uint8_t w25qxx_set_dual_quad_spi(w25qxx_handle_t *handle, w25qxx_bool_t enable)</div><div class="ttdoc">enable or disable the dual quad spi</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l00175">driver_w25qxx.c:175</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga6cb4e5164464df549201dd96cb7a58b1"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga6cb4e5164464df549201dd96cb7a58b1">w25qxx_type_t</a></div><div class="ttdeci">w25qxx_type_t</div><div class="ttdoc">w25qxx type enumeration definition</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00062">driver_w25qxx.h:63</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga8e7a163b3d255b8c7fc035d0d60f2491"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga8e7a163b3d255b8c7fc035d0d60f2491">w25qxx_init</a></div><div class="ttdeci">uint8_t w25qxx_init(w25qxx_handle_t *handle)</div><div class="ttdoc">initialize the chip</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l06819">driver_w25qxx.c:6819</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga921836a777b082ff4d0f322ccfda6b22"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga921836a777b082ff4d0f322ccfda6b22">w25qxx_get_manufacturer_device_id</a></div><div class="ttdeci">uint8_t w25qxx_get_manufacturer_device_id(w25qxx_handle_t *handle, uint8_t *manufacturer, uint8_t *device_id)</div><div class="ttdoc">get the manufacturer &amp;&amp; device id information</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l01952">driver_w25qxx.c:1952</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga9a03c51b4c84655350c15fbfce0a6b40"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga9a03c51b4c84655350c15fbfce0a6b40">w25qxx_sector_erase_4k</a></div><div class="ttdeci">uint8_t w25qxx_sector_erase_4k(w25qxx_handle_t *handle, uint32_t addr)</div><div class="ttdoc">erase the 4k sector</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l05080">driver_w25qxx.c:5080</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_gaa293c3a46c4010a3af597a83e646de0d"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a></div><div class="ttdeci">uint8_t w25qxx_deinit(w25qxx_handle_t *handle)</div><div class="ttdoc">close the chip</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l07195">driver_w25qxx.c:7195</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_gaa57189cd4170b73f8b1300ca15e27de6"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gaa57189cd4170b73f8b1300ca15e27de6">w25qxx_set_type</a></div><div class="ttdeci">uint8_t w25qxx_set_type(w25qxx_handle_t *handle, w25qxx_type_t type)</div><div class="ttdoc">set the chip type</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l00217">driver_w25qxx.c:217</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_gaaee8264d840e51460821cb6e609338ee"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gaaee8264d840e51460821cb6e609338ee">w25qxx_write</a></div><div class="ttdeci">uint8_t w25qxx_write(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">write data</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l08415">driver_w25qxx.c:8415</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_gac345ba10af5ad355578fa97697487123"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gac345ba10af5ad355578fa97697487123">w25qxx_fast_read</a></div><div class="ttdeci">uint8_t w25qxx_fast_read(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">read in the fast mode</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l03634">driver_w25qxx.c:3634</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_gacbf327a42336baf10713a1796ff4f2fe"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gacbf327a42336baf10713a1796ff4f2fe">w25qxx_interface_t</a></div><div class="ttdeci">w25qxx_interface_t</div><div class="ttdoc">w25qxx interface enumeration definition</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00075">driver_w25qxx.h:76</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_gad0e125eff304ce66fb3956d2c8c80656"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gad0e125eff304ce66fb3956d2c8c80656">w25qxx_set_address_mode</a></div><div class="ttdeci">uint8_t w25qxx_set_address_mode(w25qxx_handle_t *handle, w25qxx_address_mode_t mode)</div><div class="ttdoc">set the chip address mode</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l00304">driver_w25qxx.c:304</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_gae4effce67e36120325e3c7b245b90142"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gae4effce67e36120325e3c7b245b90142">w25qxx_power_down</a></div><div class="ttdeci">uint8_t w25qxx_power_down(w25qxx_handle_t *handle)</div><div class="ttdoc">power down</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l01792">driver_w25qxx.c:1792</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_gae7479fc9ce911a52e3c5b6f1a615b879"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gae7479fc9ce911a52e3c5b6f1a615b879">w25qxx_read</a></div><div class="ttdeci">uint8_t w25qxx_read(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">read data</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l07289">driver_w25qxx.c:7289</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_gaf53bc5f6073482b9b74efd417ec7ac83"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gaf53bc5f6073482b9b74efd417ec7ac83">w25qxx_block_erase_64k</a></div><div class="ttdeci">uint8_t w25qxx_block_erase_64k(w25qxx_handle_t *handle, uint32_t addr)</div><div class="ttdoc">erase the 64k block</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l05758">driver_w25qxx.c:5758</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_gafb2690946f5baf4be6f3a63dde5491fb"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gafb2690946f5baf4be6f3a63dde5491fb">w25qxx_bool_t</a></div><div class="ttdeci">w25qxx_bool_t</div><div class="ttdoc">w25qxx bool enumeration definition</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00084">driver_w25qxx.h:85</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a></div><div class="ttdeci">@ W25Q256</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00069">driver_w25qxx.h:69</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a></div><div class="ttdeci">@ W25QXX_ADDRESS_MODE_4_BYTE</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00096">driver_w25qxx.h:96</a></div></div>
-<div class="ttc" id="agroup__w25qxx__example__driver_html_ga013a389763200b54daaa345adf9329dc"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga013a389763200b54daaa345adf9329dc">w25qxx_advance_read</a></div><div class="ttdeci">uint8_t w25qxx_advance_read(uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">advance example read</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__advance_8c_source.html#l00169">driver_w25qxx_advance.c:169</a></div></div>
-<div class="ttc" id="agroup__w25qxx__example__driver_html_ga02652a58ee418b432cf77505809d7d42"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga02652a58ee418b432cf77505809d7d42">w25qxx_advance_only_spi_read_security_register</a></div><div class="ttdeci">uint8_t w25qxx_advance_only_spi_read_security_register(w25qxx_security_register_t num, uint8_t data[256])</div><div class="ttdoc">advance example read the security register only in the spi interface</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__advance_8c_source.html#l00939">driver_w25qxx_advance.c:939</a></div></div>
-<div class="ttc" id="agroup__w25qxx__example__driver_html_ga0f49d960f8b6c6498ab293b369ffc389"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga0f49d960f8b6c6498ab293b369ffc389">w25qxx_advance_get_id</a></div><div class="ttdeci">uint8_t w25qxx_advance_get_id(uint8_t *manufacturer, uint8_t *device_id)</div><div class="ttdoc">advance example get the manufacturer &amp;&amp; device id information</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__advance_8c_source.html#l00247">driver_w25qxx_advance.c:247</a></div></div>
-<div class="ttc" id="agroup__w25qxx__example__driver_html_ga0f65053ad28443f19ed73dbc3412b5b2"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga0f65053ad28443f19ed73dbc3412b5b2">w25qxx_advance_reset</a></div><div class="ttdeci">uint8_t w25qxx_advance_reset(void)</div><div class="ttdoc">advance example reset</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__advance_8c_source.html#l00828">driver_w25qxx_advance.c:828</a></div></div>
-<div class="ttc" id="agroup__w25qxx__example__driver_html_ga15cb243f227ef8d897ef3208b622bded"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga15cb243f227ef8d897ef3208b622bded">w25qxx_advance_chip_erase</a></div><div class="ttdeci">uint8_t w25qxx_advance_chip_erase(void)</div><div class="ttdoc">advance example chip erase</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__advance_8c_source.html#l00226">driver_w25qxx_advance.c:226</a></div></div>
-<div class="ttc" id="agroup__w25qxx__example__driver_html_ga16411577fcb794f7485912f5db1bdde9"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga16411577fcb794f7485912f5db1bdde9">w25qxx_advance_only_spi_set_burst_with_wrap</a></div><div class="ttdeci">uint8_t w25qxx_advance_only_spi_set_burst_with_wrap(w25qxx_burst_wrap_t wrap)</div><div class="ttdoc">advance example set the burst with wrap only in the spi interface</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__advance_8c_source.html#l00959">driver_w25qxx_advance.c:959</a></div></div>
-<div class="ttc" id="agroup__w25qxx__example__driver_html_ga2cbcc018dc11a870d2e0fc3a8946b1d8"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga2cbcc018dc11a870d2e0fc3a8946b1d8">w25qxx_advance_global_block_lock</a></div><div class="ttdeci">uint8_t w25qxx_advance_global_block_lock(void)</div><div class="ttdoc">advance example global block lock</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__advance_8c_source.html#l00729">driver_w25qxx_advance.c:729</a></div></div>
-<div class="ttc" id="agroup__w25qxx__example__driver_html_ga31bcd3d2cc68d2fc589685b5087bd8b3"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga31bcd3d2cc68d2fc589685b5087bd8b3">w25qxx_advance_get_status3</a></div><div class="ttdeci">uint8_t w25qxx_advance_get_status3(uint8_t *status)</div><div class="ttdoc">advance example get the status 3</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__advance_8c_source.html#l00587">driver_w25qxx_advance.c:587</a></div></div>
-<div class="ttc" id="agroup__w25qxx__example__driver_html_ga364d891407cf323d3686d36ad6357604"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga364d891407cf323d3686d36ad6357604">w25qxx_advance_only_spi_fast_read_dual_output</a></div><div class="ttdeci">uint8_t w25qxx_advance_only_spi_fast_read_dual_output(uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">advance example fast read only in the spi dual output interface</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__advance_8c_source.html#l00395">driver_w25qxx_advance.c:395</a></div></div>
-<div class="ttc" id="agroup__w25qxx__example__driver_html_ga374d35b73fa61d5f7464c3effdae1d57"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga374d35b73fa61d5f7464c3effdae1d57">w25qxx_advance_only_spi_get_unique_id</a></div><div class="ttdeci">uint8_t w25qxx_advance_only_spi_get_unique_id(uint8_t id[8])</div><div class="ttdoc">advance example get the unique id only in the spi interface</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__advance_8c_source.html#l00873">driver_w25qxx_advance.c:873</a></div></div>
-<div class="ttc" id="agroup__w25qxx__example__driver_html_ga395add1fa33f4f70d0ba52b38842dbdb"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga395add1fa33f4f70d0ba52b38842dbdb">w25qxx_advance_only_spi_fast_read_quad_io</a></div><div class="ttdeci">uint8_t w25qxx_advance_only_spi_fast_read_quad_io(uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">advance example fast read only in the spi quad io interface</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__advance_8c_source.html#l00461">driver_w25qxx_advance.c:461</a></div></div>
-<div class="ttc" id="agroup__w25qxx__example__driver_html_ga39ff13988a3d451231cec3260c13a4cd"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga39ff13988a3d451231cec3260c13a4cd">w25qxx_advance_page_program</a></div><div class="ttdeci">uint8_t w25qxx_advance_page_program(uint32_t addr, uint8_t *data, uint16_t len)</div><div class="ttdoc">advance example page program</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__advance_8c_source.html#l00269">driver_w25qxx_advance.c:269</a></div></div>
-<div class="ttc" id="agroup__w25qxx__example__driver_html_ga413b420bc199d09ce5cafee4a4debb28"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga413b420bc199d09ce5cafee4a4debb28">w25qxx_advance_init</a></div><div class="ttdeci">uint8_t w25qxx_advance_init(w25qxx_type_t type, w25qxx_interface_t interface, w25qxx_bool_t dual_quad_spi_enable)</div><div class="ttdoc">advance example init</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__advance_8c_source.html#l00051">driver_w25qxx_advance.c:51</a></div></div>
-<div class="ttc" id="agroup__w25qxx__example__driver_html_ga4bbaf1a989fae25d16d07edb1e38ca4f"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga4bbaf1a989fae25d16d07edb1e38ca4f">w25qxx_advance_only_spi_fast_read_dual_io</a></div><div class="ttdeci">uint8_t w25qxx_advance_only_spi_fast_read_dual_io(uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">advance example fast read only in the spi dual io interface</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__advance_8c_source.html#l00439">driver_w25qxx_advance.c:439</a></div></div>
-<div class="ttc" id="agroup__w25qxx__example__driver_html_ga4c1be6979b4dc878d07ec86b8624c9d2"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga4c1be6979b4dc878d07ec86b8624c9d2">w25qxx_advance_get_status1</a></div><div class="ttdeci">uint8_t w25qxx_advance_get_status1(uint8_t *status)</div><div class="ttdoc">advance example get the status 1</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__advance_8c_source.html#l00547">driver_w25qxx_advance.c:547</a></div></div>
-<div class="ttc" id="agroup__w25qxx__example__driver_html_ga5599de31797633ae75a63bcd5a8f4736"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga5599de31797633ae75a63bcd5a8f4736">w25qxx_advance_power_down</a></div><div class="ttdeci">uint8_t w25qxx_advance_power_down(void)</div><div class="ttdoc">advance example power down</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__advance_8c_source.html#l00188">driver_w25qxx_advance.c:188</a></div></div>
-<div class="ttc" id="agroup__w25qxx__example__driver_html_ga5e4938b4575c417ae22fa82079459b1a"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga5e4938b4575c417ae22fa82079459b1a">w25qxx_advance_set_status1</a></div><div class="ttdeci">uint8_t w25qxx_advance_set_status1(uint8_t status)</div><div class="ttdoc">advance example set the status 1</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__advance_8c_source.html#l00607">driver_w25qxx_advance.c:607</a></div></div>
-<div class="ttc" id="agroup__w25qxx__example__driver_html_ga6142b5a1e8602e2990dec34015812615"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga6142b5a1e8602e2990dec34015812615">w25qxx_advance_only_spi_get_manufacturer_device_id_quad_io</a></div><div class="ttdeci">uint8_t w25qxx_advance_only_spi_get_manufacturer_device_id_quad_io(uint8_t *manufacturer, uint8_t *device_id)</div><div class="ttdoc">advance example get the manufacturer &amp;&amp; device id information only in the spi quad io interface</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__advance_8c_source.html#l00689">driver_w25qxx_advance.c:689</a></div></div>
-<div class="ttc" id="agroup__w25qxx__example__driver_html_ga63f4e1dce2ef7c7de56461524fd22d04"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga63f4e1dce2ef7c7de56461524fd22d04">w25qxx_advance_write</a></div><div class="ttdeci">uint8_t w25qxx_advance_write(uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">advance example write</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__advance_8c_source.html#l00147">driver_w25qxx_advance.c:147</a></div></div>
-<div class="ttc" id="agroup__w25qxx__example__driver_html_ga66726fc451c7804e8fec6eb46a6a77d6"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga66726fc451c7804e8fec6eb46a6a77d6">w25qxx_advance_individual_block_unlock</a></div><div class="ttdeci">uint8_t w25qxx_advance_individual_block_unlock(uint32_t addr)</div><div class="ttdoc">advance example unlock the individual block</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__advance_8c_source.html#l00788">driver_w25qxx_advance.c:788</a></div></div>
-<div class="ttc" id="agroup__w25qxx__example__driver_html_ga67c70da103511d1cff9274e61a08ce56"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga67c70da103511d1cff9274e61a08ce56">w25qxx_advance_global_block_unlock</a></div><div class="ttdeci">uint8_t w25qxx_advance_global_block_unlock(void)</div><div class="ttdoc">advance example global block unlock</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__advance_8c_source.html#l00748">driver_w25qxx_advance.c:748</a></div></div>
-<div class="ttc" id="agroup__w25qxx__example__driver_html_ga7ade25a387b9d03ddecefd86fb328389"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga7ade25a387b9d03ddecefd86fb328389">w25qxx_advance_fast_read</a></div><div class="ttdeci">uint8_t w25qxx_advance_fast_read(uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">advance example read in the fast mode</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__advance_8c_source.html#l00351">driver_w25qxx_advance.c:351</a></div></div>
-<div class="ttc" id="agroup__w25qxx__example__driver_html_ga825a567c535236d7d18ffccf07df59e9"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga825a567c535236d7d18ffccf07df59e9">w25qxx_advance_only_spi_octal_word_read_quad_io</a></div><div class="ttdeci">uint8_t w25qxx_advance_only_spi_octal_word_read_quad_io(uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">advance example octal word read only in the spi quad io interface</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__advance_8c_source.html#l00505">driver_w25qxx_advance.c:505</a></div></div>
-<div class="ttc" id="agroup__w25qxx__example__driver_html_ga8a57e2d056d452abc14b0a08d4223251"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga8a57e2d056d452abc14b0a08d4223251">w25qxx_advance_wake_up</a></div><div class="ttdeci">uint8_t w25qxx_advance_wake_up(void)</div><div class="ttdoc">advance example wake up</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__advance_8c_source.html#l00207">driver_w25qxx_advance.c:207</a></div></div>
-<div class="ttc" id="agroup__w25qxx__example__driver_html_ga9325acc424c95624f15e11631082201d"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga9325acc424c95624f15e11631082201d">w25qxx_advance_sector_erase_4k</a></div><div class="ttdeci">uint8_t w25qxx_advance_sector_erase_4k(uint32_t addr)</div><div class="ttdoc">advance example erase the 4k sector</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__advance_8c_source.html#l00289">driver_w25qxx_advance.c:289</a></div></div>
-<div class="ttc" id="agroup__w25qxx__example__driver_html_ga9b1854e0ae52f57523bc2fa7cc0656df"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga9b1854e0ae52f57523bc2fa7cc0656df">w25qxx_advance_only_spi_get_sfdp</a></div><div class="ttdeci">uint8_t w25qxx_advance_only_spi_get_sfdp(uint8_t sfdp[256])</div><div class="ttdoc">advance example get the sfdp only in the spi interface</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__advance_8c_source.html#l00893">driver_w25qxx_advance.c:893</a></div></div>
-<div class="ttc" id="agroup__w25qxx__example__driver_html_ga9bc0e696b700d66f15b3605e10d33718"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga9bc0e696b700d66f15b3605e10d33718">w25qxx_advance_set_status2</a></div><div class="ttdeci">uint8_t w25qxx_advance_set_status2(uint8_t status)</div><div class="ttdoc">advance example set the status 2</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__advance_8c_source.html#l00627">driver_w25qxx_advance.c:627</a></div></div>
-<div class="ttc" id="agroup__w25qxx__example__driver_html_gaa6c5f97106e769ba071973cc2e782ad4"><div class="ttname"><a href="group__w25qxx__example__driver.html#gaa6c5f97106e769ba071973cc2e782ad4">w25qxx_advance_only_spi_write_security_register</a></div><div class="ttdeci">uint8_t w25qxx_advance_only_spi_write_security_register(w25qxx_security_register_t num, uint8_t data[256])</div><div class="ttdoc">advance example write the security register only in the spi interface</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__advance_8c_source.html#l00914">driver_w25qxx_advance.c:914</a></div></div>
-<div class="ttc" id="agroup__w25qxx__example__driver_html_gaa7af99e92b3e81f5b202575b55dc3a7c"><div class="ttname"><a href="group__w25qxx__example__driver.html#gaa7af99e92b3e81f5b202575b55dc3a7c">w25qxx_advance_individual_block_lock</a></div><div class="ttdeci">uint8_t w25qxx_advance_individual_block_lock(uint32_t addr)</div><div class="ttdoc">advance example lock the individual block</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__advance_8c_source.html#l00768">driver_w25qxx_advance.c:768</a></div></div>
-<div class="ttc" id="agroup__w25qxx__example__driver_html_gab5c990ebd4874137b7d23f2b896d4601"><div class="ttname"><a href="group__w25qxx__example__driver.html#gab5c990ebd4874137b7d23f2b896d4601">w25qxx_advance_set_status3</a></div><div class="ttdeci">uint8_t w25qxx_advance_set_status3(uint8_t status)</div><div class="ttdoc">advance example set the status 3</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__advance_8c_source.html#l00647">driver_w25qxx_advance.c:647</a></div></div>
-<div class="ttc" id="agroup__w25qxx__example__driver_html_gac0d9e08a37ee37563c8dbb501608a668"><div class="ttname"><a href="group__w25qxx__example__driver.html#gac0d9e08a37ee37563c8dbb501608a668">w25qxx_advance_only_spi_get_manufacturer_device_id_dual_io</a></div><div class="ttdeci">uint8_t w25qxx_advance_only_spi_get_manufacturer_device_id_dual_io(uint8_t *manufacturer, uint8_t *device_id)</div><div class="ttdoc">advance example get the manufacturer &amp;&amp; device id information only in the spi dual io interface</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__advance_8c_source.html#l00668">driver_w25qxx_advance.c:668</a></div></div>
-<div class="ttc" id="agroup__w25qxx__example__driver_html_gac1773fe914a01825ca28346205601036"><div class="ttname"><a href="group__w25qxx__example__driver.html#gac1773fe914a01825ca28346205601036">w25qxx_advance_read_block_lock</a></div><div class="ttdeci">uint8_t w25qxx_advance_read_block_lock(uint32_t addr, uint8_t *value)</div><div class="ttdoc">advance example read the block lock</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__advance_8c_source.html#l00809">driver_w25qxx_advance.c:809</a></div></div>
-<div class="ttc" id="agroup__w25qxx__example__driver_html_gac1c7f320706dd6d6d937da75b8a4da93"><div class="ttname"><a href="group__w25qxx__example__driver.html#gac1c7f320706dd6d6d937da75b8a4da93">w25qxx_advance_only_spi_read</a></div><div class="ttdeci">uint8_t w25qxx_advance_only_spi_read(uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">advance example read only in the spi interface</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__advance_8c_source.html#l00373">driver_w25qxx_advance.c:373</a></div></div>
-<div class="ttc" id="agroup__w25qxx__example__driver_html_gaca6b4c6ea32dd96a4ae8714e2862d67a"><div class="ttname"><a href="group__w25qxx__example__driver.html#gaca6b4c6ea32dd96a4ae8714e2862d67a">w25qxx_advance_only_spi_word_read_quad_io</a></div><div class="ttdeci">uint8_t w25qxx_advance_only_spi_word_read_quad_io(uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">advance example word read only in the spi quad io interface</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__advance_8c_source.html#l00483">driver_w25qxx_advance.c:483</a></div></div>
-<div class="ttc" id="agroup__w25qxx__example__driver_html_gacc7435a39b61c44f0ce16690d5da896b"><div class="ttname"><a href="group__w25qxx__example__driver.html#gacc7435a39b61c44f0ce16690d5da896b">w25qxx_advance_get_get_jedec_id</a></div><div class="ttdeci">uint8_t w25qxx_advance_get_get_jedec_id(uint8_t *manufacturer, uint8_t device_id[2])</div><div class="ttdoc">advance example get the jedec id information</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__advance_8c_source.html#l00710">driver_w25qxx_advance.c:710</a></div></div>
-<div class="ttc" id="agroup__w25qxx__example__driver_html_gace2a5b7acd9798cfcaa2b5eb2f18e1d1"><div class="ttname"><a href="group__w25qxx__example__driver.html#gace2a5b7acd9798cfcaa2b5eb2f18e1d1">w25qxx_advance_only_qspi_set_read_parameters</a></div><div class="ttdeci">uint8_t w25qxx_advance_only_qspi_set_read_parameters(w25qxx_qspi_read_dummy_t dummy, w25qxx_qspi_read_wrap_length_t length)</div><div class="ttdoc">advance example set the read parameters only in the qspi interface</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__advance_8c_source.html#l00853">driver_w25qxx_advance.c:853</a></div></div>
-<div class="ttc" id="agroup__w25qxx__example__driver_html_gad243655eb738e44c50e6079c983fd782"><div class="ttname"><a href="group__w25qxx__example__driver.html#gad243655eb738e44c50e6079c983fd782">w25qxx_advance_only_spi_page_program_quad_input</a></div><div class="ttdeci">uint8_t w25qxx_advance_only_spi_page_program_quad_input(uint32_t addr, uint8_t *data, uint16_t len)</div><div class="ttdoc">advance example quad page program only in the spi quad input interface</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__advance_8c_source.html#l00527">driver_w25qxx_advance.c:527</a></div></div>
-<div class="ttc" id="agroup__w25qxx__example__driver_html_gae7cba4e0b22a1043fe304e46148fa13c"><div class="ttname"><a href="group__w25qxx__example__driver.html#gae7cba4e0b22a1043fe304e46148fa13c">w25qxx_advance_block_erase_64k</a></div><div class="ttdeci">uint8_t w25qxx_advance_block_erase_64k(uint32_t addr)</div><div class="ttdoc">advance example erase the 64k block</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__advance_8c_source.html#l00329">driver_w25qxx_advance.c:329</a></div></div>
-<div class="ttc" id="agroup__w25qxx__example__driver_html_gaee04edb9e97785e423dffe14a1cad780"><div class="ttname"><a href="group__w25qxx__example__driver.html#gaee04edb9e97785e423dffe14a1cad780">w25qxx_advance_block_erase_32k</a></div><div class="ttdeci">uint8_t w25qxx_advance_block_erase_32k(uint32_t addr)</div><div class="ttdoc">advance example erase the 32k block</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__advance_8c_source.html#l00309">driver_w25qxx_advance.c:309</a></div></div>
-<div class="ttc" id="agroup__w25qxx__example__driver_html_gaf390bbb2c4140f49d25822d963ead722"><div class="ttname"><a href="group__w25qxx__example__driver.html#gaf390bbb2c4140f49d25822d963ead722">w25qxx_advance_deinit</a></div><div class="ttdeci">uint8_t w25qxx_advance_deinit(void)</div><div class="ttdoc">advance example deinit</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__advance_8c_source.html#l00125">driver_w25qxx_advance.c:125</a></div></div>
-<div class="ttc" id="agroup__w25qxx__example__driver_html_gaf4736fff906c2f0c1dbed26b20847052"><div class="ttname"><a href="group__w25qxx__example__driver.html#gaf4736fff906c2f0c1dbed26b20847052">w25qxx_advance_get_status2</a></div><div class="ttdeci">uint8_t w25qxx_advance_get_status2(uint8_t *status)</div><div class="ttdoc">advance example get the status 2</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__advance_8c_source.html#l00567">driver_w25qxx_advance.c:567</a></div></div>
-<div class="ttc" id="agroup__w25qxx__example__driver_html_gaf5f978c432de7d6adaf41cd256724a01"><div class="ttname"><a href="group__w25qxx__example__driver.html#gaf5f978c432de7d6adaf41cd256724a01">w25qxx_advance_only_spi_fast_read_quad_output</a></div><div class="ttdeci">uint8_t w25qxx_advance_only_spi_fast_read_quad_output(uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">advance example fast read only in the spi quad output interface</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__advance_8c_source.html#l00417">driver_w25qxx_advance.c:417</a></div></div>
-<div class="ttc" id="agroup__w25qxx__interface__driver_html_ga091f3607fcdd47f9e5f94cf1397bd46a"><div class="ttname"><a href="group__w25qxx__interface__driver.html#ga091f3607fcdd47f9e5f94cf1397bd46a">w25qxx_interface_spi_qspi_deinit</a></div><div class="ttdeci">uint8_t w25qxx_interface_spi_qspi_deinit(void)</div><div class="ttdoc">interface spi qspi bus deinit</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__interface__template_8c_source.html#l00058">driver_w25qxx_interface_template.c:58</a></div></div>
-<div class="ttc" id="agroup__w25qxx__interface__driver_html_ga2bdc17a556f1c801a38656331f3bb7b6"><div class="ttname"><a href="group__w25qxx__interface__driver.html#ga2bdc17a556f1c801a38656331f3bb7b6">w25qxx_interface_spi_qspi_init</a></div><div class="ttdeci">uint8_t w25qxx_interface_spi_qspi_init(void)</div><div class="ttdoc">interface spi qspi bus init</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__interface__template_8c_source.html#l00046">driver_w25qxx_interface_template.c:46</a></div></div>
-<div class="ttc" id="agroup__w25qxx__interface__driver_html_ga38e79039b913154c9dd1036ff52bb420"><div class="ttname"><a href="group__w25qxx__interface__driver.html#ga38e79039b913154c9dd1036ff52bb420">w25qxx_interface_delay_us</a></div><div class="ttdeci">void w25qxx_interface_delay_us(uint32_t us)</div><div class="ttdoc">interface delay us</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__interface__template_8c_source.html#l00108">driver_w25qxx_interface_template.c:108</a></div></div>
-<div class="ttc" id="agroup__w25qxx__interface__driver_html_ga3d76ea1f431978f6b55edfd0628c94cd"><div class="ttname"><a href="group__w25qxx__interface__driver.html#ga3d76ea1f431978f6b55edfd0628c94cd">w25qxx_interface_spi_qspi_write_read</a></div><div class="ttdeci">uint8_t w25qxx_interface_spi_qspi_write_read(uint8_t instruction, uint8_t instruction_line, uint32_t address, uint8_t address_line, uint8_t address_len, uint32_t alternate, uint8_t alternate_line, uint8_t alternate_len, uint8_t dummy, uint8_t *in_buf, uint32_t in_len, uint8_t *out_buf, uint32_t out_len, uint8_t data_line)</div><div class="ttdoc">interface spi qspi bus write read</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__interface__template_8c_source.html#l00084">driver_w25qxx_interface_template.c:84</a></div></div>
-<div class="ttc" id="agroup__w25qxx__interface__driver_html_ga5325474fa17f6833744e631613fd2a0e"><div class="ttname"><a href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a></div><div class="ttdeci">void w25qxx_interface_debug_print(const char *const fmt,...)</div><div class="ttdoc">interface print format data</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__interface__template_8c_source.html#l00118">driver_w25qxx_interface_template.c:118</a></div></div>
-<div class="ttc" id="agroup__w25qxx__interface__driver_html_ga964fa232abf98737cb98458eebfff82c"><div class="ttname"><a href="group__w25qxx__interface__driver.html#ga964fa232abf98737cb98458eebfff82c">w25qxx_interface_delay_ms</a></div><div class="ttdeci">void w25qxx_interface_delay_ms(uint32_t ms)</div><div class="ttdoc">interface delay ms</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__interface__template_8c_source.html#l00098">driver_w25qxx_interface_template.c:98</a></div></div>
-<div class="ttc" id="agroup__w25qxx__link__driver_html_ga7555618f13d2de0003ae6d9483085180"><div class="ttname"><a href="group__w25qxx__link__driver.html#ga7555618f13d2de0003ae6d9483085180">DRIVER_W25QXX_LINK_DELAY_MS</a></div><div class="ttdeci">#define DRIVER_W25QXX_LINK_DELAY_MS(HANDLE, FUC)</div><div class="ttdoc">link delay_ms function</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00297">driver_w25qxx.h:297</a></div></div>
-<div class="ttc" id="agroup__w25qxx__link__driver_html_ga995378489f95bc6bbddbe710557e3384"><div class="ttname"><a href="group__w25qxx__link__driver.html#ga995378489f95bc6bbddbe710557e3384">DRIVER_W25QXX_LINK_INIT</a></div><div class="ttdeci">#define DRIVER_W25QXX_LINK_INIT(HANDLE, STRUCTURE)</div><div class="ttdoc">initialize w25qxx_handle_t structure</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00265">driver_w25qxx.h:265</a></div></div>
-<div class="ttc" id="agroup__w25qxx__link__driver_html_gab2587de93f1dba5664eede8cd787a88a"><div class="ttname"><a href="group__w25qxx__link__driver.html#gab2587de93f1dba5664eede8cd787a88a">DRIVER_W25QXX_LINK_SPI_QSPI_INIT</a></div><div class="ttdeci">#define DRIVER_W25QXX_LINK_SPI_QSPI_INIT(HANDLE, FUC)</div><div class="ttdoc">link spi_qspi_init function</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00273">driver_w25qxx.h:273</a></div></div>
-<div class="ttc" id="agroup__w25qxx__link__driver_html_gab8d49ef9dca942fe5f37c30dcd7e22a6"><div class="ttname"><a href="group__w25qxx__link__driver.html#gab8d49ef9dca942fe5f37c30dcd7e22a6">DRIVER_W25QXX_LINK_DEBUG_PRINT</a></div><div class="ttdeci">#define DRIVER_W25QXX_LINK_DEBUG_PRINT(HANDLE, FUC)</div><div class="ttdoc">link debug_print function</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00313">driver_w25qxx.h:313</a></div></div>
-<div class="ttc" id="agroup__w25qxx__link__driver_html_gac8f0ca0a725790bace3241d1d616e3d1"><div class="ttname"><a href="group__w25qxx__link__driver.html#gac8f0ca0a725790bace3241d1d616e3d1">DRIVER_W25QXX_LINK_SPI_QSPI_WRITE_READ</a></div><div class="ttdeci">#define DRIVER_W25QXX_LINK_SPI_QSPI_WRITE_READ(HANDLE, FUC)</div><div class="ttdoc">link spi_qspi_write_read function</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00289">driver_w25qxx.h:289</a></div></div>
-<div class="ttc" id="agroup__w25qxx__link__driver_html_gaec8b55e83b46907be1dd9e7c50be550d"><div class="ttname"><a href="group__w25qxx__link__driver.html#gaec8b55e83b46907be1dd9e7c50be550d">DRIVER_W25QXX_LINK_SPI_QSPI_DEINIT</a></div><div class="ttdeci">#define DRIVER_W25QXX_LINK_SPI_QSPI_DEINIT(HANDLE, FUC)</div><div class="ttdoc">link spi_qspi_deinit function</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00281">driver_w25qxx.h:281</a></div></div>
-<div class="ttc" id="agroup__w25qxx__link__driver_html_gafc81bf850c80dfa316f0c6ab40be6e67"><div class="ttname"><a href="group__w25qxx__link__driver.html#gafc81bf850c80dfa316f0c6ab40be6e67">DRIVER_W25QXX_LINK_DELAY_US</a></div><div class="ttdeci">#define DRIVER_W25QXX_LINK_DELAY_US(HANDLE, FUC)</div><div class="ttdoc">link delay_us function</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00305">driver_w25qxx.h:305</a></div></div>
-<div class="ttc" id="astructw25qxx__handle__s_html"><div class="ttname"><a href="structw25qxx__handle__s.html">w25qxx_handle_s</a></div><div class="ttdoc">w25qxx handle structure definition</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00209">driver_w25qxx.h:210</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga11af244389478de68a6777076ee82d69"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga11af244389478de68a6777076ee82d69">w25qxx_get_unique_id</a></div><div class="ttdeci">uint8_t w25qxx_get_unique_id(w25qxx_handle_t *handle, uint8_t id[8])</div><div class="ttdoc">get the unique id</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l02764">driver_w25qxx.c:2764</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga1cd3aec1bdeabbaed5f049fbf83ceeb4"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga1cd3aec1bdeabbaed5f049fbf83ceeb4">w25qxx_get_manufacturer_device_id_dual_io</a></div><div class="ttdeci">uint8_t w25qxx_get_manufacturer_device_id_dual_io(w25qxx_handle_t *handle, uint8_t *manufacturer, uint8_t *device_id)</div><div class="ttdoc">get the manufacturer &amp;&amp; device id information with dual io</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l02038">driver_w25qxx.c:2038</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga1f80bbbaaa852eecfffb87737889363d"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga1f80bbbaaa852eecfffb87737889363d">w25qxx_page_program_quad_input</a></div><div class="ttdeci">uint8_t w25qxx_page_program_quad_input(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint16_t len)</div><div class="ttdoc">quad page program with quad input</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l04920">driver_w25qxx.c:4920</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga244a91b9c0c32e899ca89e1943045624"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga244a91b9c0c32e899ca89e1943045624">w25qxx_get_sfdp</a></div><div class="ttdeci">uint8_t w25qxx_get_sfdp(w25qxx_handle_t *handle, uint8_t sfdp[256])</div><div class="ttdoc">get the sfdp</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l02880">driver_w25qxx.c:2880</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga246e0bb07c8bbb39731f17906779c012"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga246e0bb07c8bbb39731f17906779c012">w25qxx_set_status1</a></div><div class="ttdeci">uint8_t w25qxx_set_status1(w25qxx_handle_t *handle, uint8_t status)</div><div class="ttdoc">set the status 1</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l00863">driver_w25qxx.c:863</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga2abebfe2a8d9377eb88448ffca73f222"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga2abebfe2a8d9377eb88448ffca73f222">w25qxx_reset_device</a></div><div class="ttdeci">uint8_t w25qxx_reset_device(w25qxx_handle_t *handle)</div><div class="ttdoc">reset the device</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l02690">driver_w25qxx.c:2690</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga2fd3023819e1aebe089a4a72eb136da3"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga2fd3023819e1aebe089a4a72eb136da3">w25qxx_qspi_read_wrap_length_t</a></div><div class="ttdeci">w25qxx_qspi_read_wrap_length_t</div><div class="ttdoc">w25qxx qspi read wrap length enumeration definition</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00122">driver_w25qxx.h:123</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga4c65debc4947bd9a61e0073105164b9c"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga4c65debc4947bd9a61e0073105164b9c">w25qxx_read_security_register</a></div><div class="ttdeci">uint8_t w25qxx_read_security_register(w25qxx_handle_t *handle, w25qxx_security_register_t num, uint8_t data[256])</div><div class="ttdoc">read the security register</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l03344">driver_w25qxx.c:3344</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga4e9c059ff78866e478e835cb27a92899"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga4e9c059ff78866e478e835cb27a92899">w25qxx_program_security_register</a></div><div class="ttdeci">uint8_t w25qxx_program_security_register(w25qxx_handle_t *handle, w25qxx_security_register_t num, uint8_t data[256])</div><div class="ttdoc">program the security register</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l03147">driver_w25qxx.c:3147</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga4f00c2c169cb7c3084841c6cd795e76b"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga4f00c2c169cb7c3084841c6cd795e76b">w25qxx_individual_block_lock</a></div><div class="ttdeci">uint8_t w25qxx_individual_block_lock(w25qxx_handle_t *handle, uint32_t addr)</div><div class="ttdoc">lock the individual block</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l06094">driver_w25qxx.c:6094</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga59e655ca78a175037ca810bbc8539a96"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga59e655ca78a175037ca810bbc8539a96">w25qxx_read_block_lock</a></div><div class="ttdeci">uint8_t w25qxx_read_block_lock(w25qxx_handle_t *handle, uint32_t addr, uint8_t *value)</div><div class="ttdoc">read the block lock</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l06529">driver_w25qxx.c:6529</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga61bd3ce40b76b6862c6a53e0e37a3455"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga61bd3ce40b76b6862c6a53e0e37a3455">w25qxx_get_manufacturer_device_id_quad_io</a></div><div class="ttdeci">uint8_t w25qxx_get_manufacturer_device_id_quad_io(w25qxx_handle_t *handle, uint8_t *manufacturer, uint8_t *device_id)</div><div class="ttdoc">get the manufacturer &amp;&amp; device id information with quad io</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l02122">driver_w25qxx.c:2122</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga6d62f7d14945cfde7cde7a0e9a4e3afb"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga6d62f7d14945cfde7cde7a0e9a4e3afb">w25qxx_global_block_unlock</a></div><div class="ttdeci">uint8_t w25qxx_global_block_unlock(w25qxx_handle_t *handle)</div><div class="ttdoc">unlock the whole block</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l02354">driver_w25qxx.c:2354</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga6ff284154302248f00db269146545443"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga6ff284154302248f00db269146545443">w25qxx_qspi_read_dummy_t</a></div><div class="ttdeci">w25qxx_qspi_read_dummy_t</div><div class="ttdoc">w25qxx qspi read dummy enumeration definition</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00111">driver_w25qxx.h:112</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga7a19230ca3916816ea8fb7421483d293"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga7a19230ca3916816ea8fb7421483d293">w25qxx_fast_read_dual_output</a></div><div class="ttdeci">uint8_t w25qxx_fast_read_dual_output(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">read with dual output in the fast mode</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l03858">driver_w25qxx.c:3858</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga7f88cedf7619071b3235ba094915b2a7"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga7f88cedf7619071b3235ba094915b2a7">w25qxx_individual_block_unlock</a></div><div class="ttdeci">uint8_t w25qxx_individual_block_unlock(w25qxx_handle_t *handle, uint32_t addr)</div><div class="ttdoc">unlock the individual block</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l06311">driver_w25qxx.c:6311</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga81ddc7d4b9f4f124163beea19cc33c7e"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga81ddc7d4b9f4f124163beea19cc33c7e">w25qxx_security_register_t</a></div><div class="ttdeci">w25qxx_security_register_t</div><div class="ttdoc">w25qxx security register enumeration definition</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00134">driver_w25qxx.h:135</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga88a62ec42e86db821ff3f0d3ab541dbb"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga88a62ec42e86db821ff3f0d3ab541dbb">w25qxx_octal_word_read_quad_io</a></div><div class="ttdeci">uint8_t w25qxx_octal_word_read_quad_io(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">octal word read with quad io</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l04459">driver_w25qxx.c:4459</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga8a93ba14a032e10a27f1495fdcf56058"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga8a93ba14a032e10a27f1495fdcf56058">w25qxx_get_jedec_id</a></div><div class="ttdeci">uint8_t w25qxx_get_jedec_id(w25qxx_handle_t *handle, uint8_t *manufacturer, uint8_t device_id[2])</div><div class="ttdoc">get the jedec id information</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l02203">driver_w25qxx.c:2203</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga94bbae2bf8906903e8dc2a28c490723d"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga94bbae2bf8906903e8dc2a28c490723d">w25qxx_burst_wrap_t</a></div><div class="ttdeci">w25qxx_burst_wrap_t</div><div class="ttdoc">w25qxx burst wrap enumeration definition</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00144">driver_w25qxx.h:145</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga99cf6a325a00921d4531004f0c1d75b1"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga99cf6a325a00921d4531004f0c1d75b1">w25qxx_get_status3</a></div><div class="ttdeci">uint8_t w25qxx_get_status3(w25qxx_handle_t *handle, uint8_t *status)</div><div class="ttdoc">get the status 3</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l00789">driver_w25qxx.c:789</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga9ad10781d888b32b43b9eba45d049624"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga9ad10781d888b32b43b9eba45d049624">w25qxx_set_read_parameters</a></div><div class="ttdeci">uint8_t w25qxx_set_read_parameters(w25qxx_handle_t *handle, w25qxx_qspi_read_dummy_t dummy, w25qxx_qspi_read_wrap_length_t length)</div><div class="ttdoc">set the read parameters</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l02427">driver_w25qxx.c:2427</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_gaa21237ecbd5951b8017799066e7db5d9"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gaa21237ecbd5951b8017799066e7db5d9">w25qxx_get_status2</a></div><div class="ttdeci">uint8_t w25qxx_get_status2(w25qxx_handle_t *handle, uint8_t *status)</div><div class="ttdoc">get the status 2</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l00716">driver_w25qxx.c:716</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_gaa77d2b00b4fb9cf586f77ace827ea7c6"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gaa77d2b00b4fb9cf586f77ace827ea7c6">w25qxx_get_status1</a></div><div class="ttdeci">uint8_t w25qxx_get_status1(w25qxx_handle_t *handle, uint8_t *status)</div><div class="ttdoc">get the status 1</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l00643">driver_w25qxx.c:643</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_gaab5f28e8930d50dbc2178e39bc9fa456"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gaab5f28e8930d50dbc2178e39bc9fa456">w25qxx_set_status2</a></div><div class="ttdeci">uint8_t w25qxx_set_status2(w25qxx_handle_t *handle, uint8_t status)</div><div class="ttdoc">set the status 2</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l01062">driver_w25qxx.c:1062</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_gab5579bc42bc07a7657848140888a817c"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gab5579bc42bc07a7657848140888a817c">w25qxx_global_block_lock</a></div><div class="ttdeci">uint8_t w25qxx_global_block_lock(w25qxx_handle_t *handle)</div><div class="ttdoc">lock the whole block</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l02284">driver_w25qxx.c:2284</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_gab55b4e071e20feb58584025287949438"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gab55b4e071e20feb58584025287949438">w25qxx_enable_reset</a></div><div class="ttdeci">uint8_t w25qxx_enable_reset(w25qxx_handle_t *handle)</div><div class="ttdoc">enable the reset</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l02619">driver_w25qxx.c:2619</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_gab97a64bd3776874518f60381d921ae41"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gab97a64bd3776874518f60381d921ae41">w25qxx_fast_read_quad_io</a></div><div class="ttdeci">uint8_t w25qxx_fast_read_quad_io(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">read with quad io in the fast mode</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l04184">driver_w25qxx.c:4184</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_gac19c1d0f3fd48968ea2a93c1dbe3d75d"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gac19c1d0f3fd48968ea2a93c1dbe3d75d">w25qxx_set_burst_with_wrap</a></div><div class="ttdeci">uint8_t w25qxx_set_burst_with_wrap(w25qxx_handle_t *handle, w25qxx_burst_wrap_t wrap)</div><div class="ttdoc">set the burst with wrap</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l06746">driver_w25qxx.c:6746</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_gac894f4650905cba10dd3a31284de6d5e"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gac894f4650905cba10dd3a31284de6d5e">w25qxx_fast_read_dual_io</a></div><div class="ttdeci">uint8_t w25qxx_fast_read_dual_io(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">read with dual io in the fast mode</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l04076">driver_w25qxx.c:4076</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_gad97d7e410dd77c49334097a0fd332660"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gad97d7e410dd77c49334097a0fd332660">w25qxx_word_read_quad_io</a></div><div class="ttdeci">uint8_t w25qxx_word_read_quad_io(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">word read with quad io</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l04350">driver_w25qxx.c:4350</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_gada897a6c6d6acb99f4dd4ff9b65ad8ee"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gada897a6c6d6acb99f4dd4ff9b65ad8ee">w25qxx_set_status3</a></div><div class="ttdeci">uint8_t w25qxx_set_status3(w25qxx_handle_t *handle, uint8_t status)</div><div class="ttdoc">set the status 3</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l01261">driver_w25qxx.c:1261</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_gaf297e2c6877c64f8fd10a555f783ddaf"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gaf297e2c6877c64f8fd10a555f783ddaf">w25qxx_erase_security_register</a></div><div class="ttdeci">uint8_t w25qxx_erase_security_register(w25qxx_handle_t *handle, w25qxx_security_register_t num)</div><div class="ttdoc">erase the security register</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l02952">driver_w25qxx.c:2952</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_gaf4bfafd1f80aa0316a4b1a15183dcd50"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gaf4bfafd1f80aa0316a4b1a15183dcd50">w25qxx_fast_read_quad_output</a></div><div class="ttdeci">uint8_t w25qxx_fast_read_quad_output(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">read with quad output in the fast mode</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l03967">driver_w25qxx.c:3967</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga0862833b36831f92684980b2e21f2e39"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga0862833b36831f92684980b2e21f2e39">w25qxx_chip_erase</a></div><div class="ttdeci">uint8_t w25qxx_chip_erase(w25qxx_handle_t *handle)</div><div class="ttdoc">erase the chip</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l01459">driver_w25qxx.c:1459</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga09c9b52877516a2ee4c080dc249e7331"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga09c9b52877516a2ee4c080dc249e7331">w25qxx_release_power_down</a></div><div class="ttdeci">uint8_t w25qxx_release_power_down(w25qxx_handle_t *handle)</div><div class="ttdoc">release power down</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l01875">driver_w25qxx.c:1875</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga1e9ebf198137d23558dbf6470213c472"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga1e9ebf198137d23558dbf6470213c472">w25qxx_only_spi_read</a></div><div class="ttdeci">uint8_t w25qxx_only_spi_read(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">read only in the spi interface</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l03465">driver_w25qxx.c:3465</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga39c8fb382e8c3e4d57232dfa79af781c"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga39c8fb382e8c3e4d57232dfa79af781c">w25qxx_block_erase_32k</a></div><div class="ttdeci">uint8_t w25qxx_block_erase_32k(w25qxx_handle_t *handle, uint32_t addr)</div><div class="ttdoc">erase the 32k block</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l05419">driver_w25qxx.c:5419</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga50a62003d566402d46ada2f272c41eb5"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga50a62003d566402d46ada2f272c41eb5">w25qxx_set_interface</a></div><div class="ttdeci">uint8_t w25qxx_set_interface(w25qxx_handle_t *handle, w25qxx_interface_t interface)</div><div class="ttdoc">set the chip interface</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l00259">driver_w25qxx.c:259</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga6280e7e4ab26306436e2c210617a28b3"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga6280e7e4ab26306436e2c210617a28b3">w25qxx_page_program</a></div><div class="ttdeci">uint8_t w25qxx_page_program(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint16_t len)</div><div class="ttdoc">page program</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l04569">driver_w25qxx.c:4569</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga665139209b0abc386474a78d89cce6f2"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga665139209b0abc386474a78d89cce6f2">w25qxx_set_dual_quad_spi</a></div><div class="ttdeci">uint8_t w25qxx_set_dual_quad_spi(w25qxx_handle_t *handle, w25qxx_bool_t enable)</div><div class="ttdoc">enable or disable the dual quad spi</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l00175">driver_w25qxx.c:175</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga6cb4e5164464df549201dd96cb7a58b1"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga6cb4e5164464df549201dd96cb7a58b1">w25qxx_type_t</a></div><div class="ttdeci">w25qxx_type_t</div><div class="ttdoc">w25qxx type enumeration definition</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00062">driver_w25qxx.h:63</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga8e7a163b3d255b8c7fc035d0d60f2491"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga8e7a163b3d255b8c7fc035d0d60f2491">w25qxx_init</a></div><div class="ttdeci">uint8_t w25qxx_init(w25qxx_handle_t *handle)</div><div class="ttdoc">initialize the chip</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l06819">driver_w25qxx.c:6819</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga921836a777b082ff4d0f322ccfda6b22"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga921836a777b082ff4d0f322ccfda6b22">w25qxx_get_manufacturer_device_id</a></div><div class="ttdeci">uint8_t w25qxx_get_manufacturer_device_id(w25qxx_handle_t *handle, uint8_t *manufacturer, uint8_t *device_id)</div><div class="ttdoc">get the manufacturer &amp;&amp; device id information</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l01952">driver_w25qxx.c:1952</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga9a03c51b4c84655350c15fbfce0a6b40"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga9a03c51b4c84655350c15fbfce0a6b40">w25qxx_sector_erase_4k</a></div><div class="ttdeci">uint8_t w25qxx_sector_erase_4k(w25qxx_handle_t *handle, uint32_t addr)</div><div class="ttdoc">erase the 4k sector</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l05080">driver_w25qxx.c:5080</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_gaa293c3a46c4010a3af597a83e646de0d"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a></div><div class="ttdeci">uint8_t w25qxx_deinit(w25qxx_handle_t *handle)</div><div class="ttdoc">close the chip</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l07195">driver_w25qxx.c:7195</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_gaa57189cd4170b73f8b1300ca15e27de6"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gaa57189cd4170b73f8b1300ca15e27de6">w25qxx_set_type</a></div><div class="ttdeci">uint8_t w25qxx_set_type(w25qxx_handle_t *handle, w25qxx_type_t type)</div><div class="ttdoc">set the chip type</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l00217">driver_w25qxx.c:217</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_gaaee8264d840e51460821cb6e609338ee"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gaaee8264d840e51460821cb6e609338ee">w25qxx_write</a></div><div class="ttdeci">uint8_t w25qxx_write(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">write data</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l08415">driver_w25qxx.c:8415</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_gac345ba10af5ad355578fa97697487123"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gac345ba10af5ad355578fa97697487123">w25qxx_fast_read</a></div><div class="ttdeci">uint8_t w25qxx_fast_read(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">read in the fast mode</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l03634">driver_w25qxx.c:3634</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_gacbf327a42336baf10713a1796ff4f2fe"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gacbf327a42336baf10713a1796ff4f2fe">w25qxx_interface_t</a></div><div class="ttdeci">w25qxx_interface_t</div><div class="ttdoc">w25qxx interface enumeration definition</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00075">driver_w25qxx.h:76</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_gad0e125eff304ce66fb3956d2c8c80656"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gad0e125eff304ce66fb3956d2c8c80656">w25qxx_set_address_mode</a></div><div class="ttdeci">uint8_t w25qxx_set_address_mode(w25qxx_handle_t *handle, w25qxx_address_mode_t mode)</div><div class="ttdoc">set the chip address mode</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l00304">driver_w25qxx.c:304</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_gae4effce67e36120325e3c7b245b90142"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gae4effce67e36120325e3c7b245b90142">w25qxx_power_down</a></div><div class="ttdeci">uint8_t w25qxx_power_down(w25qxx_handle_t *handle)</div><div class="ttdoc">power down</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l01792">driver_w25qxx.c:1792</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_gae7479fc9ce911a52e3c5b6f1a615b879"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gae7479fc9ce911a52e3c5b6f1a615b879">w25qxx_read</a></div><div class="ttdeci">uint8_t w25qxx_read(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">read data</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l07289">driver_w25qxx.c:7289</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_gaf53bc5f6073482b9b74efd417ec7ac83"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gaf53bc5f6073482b9b74efd417ec7ac83">w25qxx_block_erase_64k</a></div><div class="ttdeci">uint8_t w25qxx_block_erase_64k(w25qxx_handle_t *handle, uint32_t addr)</div><div class="ttdoc">erase the 64k block</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l05758">driver_w25qxx.c:5758</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_gafb2690946f5baf4be6f3a63dde5491fb"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gafb2690946f5baf4be6f3a63dde5491fb">w25qxx_bool_t</a></div><div class="ttdeci">w25qxx_bool_t</div><div class="ttdoc">w25qxx bool enumeration definition</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00084">driver_w25qxx.h:85</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a></div><div class="ttdeci">@ W25Q256</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00069">driver_w25qxx.h:69</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a></div><div class="ttdeci">@ W25QXX_ADDRESS_MODE_4_BYTE</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00096">driver_w25qxx.h:96</a></div></div>
+<div class="ttc" id="agroup__w25qxx__example__driver_html_ga013a389763200b54daaa345adf9329dc"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga013a389763200b54daaa345adf9329dc">w25qxx_advance_read</a></div><div class="ttdeci">uint8_t w25qxx_advance_read(uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">advance example read</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__advance_8c_source.html#l00169">driver_w25qxx_advance.c:169</a></div></div>
+<div class="ttc" id="agroup__w25qxx__example__driver_html_ga02652a58ee418b432cf77505809d7d42"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga02652a58ee418b432cf77505809d7d42">w25qxx_advance_only_spi_read_security_register</a></div><div class="ttdeci">uint8_t w25qxx_advance_only_spi_read_security_register(w25qxx_security_register_t num, uint8_t data[256])</div><div class="ttdoc">advance example read the security register only in the spi interface</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__advance_8c_source.html#l00939">driver_w25qxx_advance.c:939</a></div></div>
+<div class="ttc" id="agroup__w25qxx__example__driver_html_ga0f49d960f8b6c6498ab293b369ffc389"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga0f49d960f8b6c6498ab293b369ffc389">w25qxx_advance_get_id</a></div><div class="ttdeci">uint8_t w25qxx_advance_get_id(uint8_t *manufacturer, uint8_t *device_id)</div><div class="ttdoc">advance example get the manufacturer &amp;&amp; device id information</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__advance_8c_source.html#l00247">driver_w25qxx_advance.c:247</a></div></div>
+<div class="ttc" id="agroup__w25qxx__example__driver_html_ga0f65053ad28443f19ed73dbc3412b5b2"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga0f65053ad28443f19ed73dbc3412b5b2">w25qxx_advance_reset</a></div><div class="ttdeci">uint8_t w25qxx_advance_reset(void)</div><div class="ttdoc">advance example reset</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__advance_8c_source.html#l00828">driver_w25qxx_advance.c:828</a></div></div>
+<div class="ttc" id="agroup__w25qxx__example__driver_html_ga15cb243f227ef8d897ef3208b622bded"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga15cb243f227ef8d897ef3208b622bded">w25qxx_advance_chip_erase</a></div><div class="ttdeci">uint8_t w25qxx_advance_chip_erase(void)</div><div class="ttdoc">advance example chip erase</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__advance_8c_source.html#l00226">driver_w25qxx_advance.c:226</a></div></div>
+<div class="ttc" id="agroup__w25qxx__example__driver_html_ga16411577fcb794f7485912f5db1bdde9"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga16411577fcb794f7485912f5db1bdde9">w25qxx_advance_only_spi_set_burst_with_wrap</a></div><div class="ttdeci">uint8_t w25qxx_advance_only_spi_set_burst_with_wrap(w25qxx_burst_wrap_t wrap)</div><div class="ttdoc">advance example set the burst with wrap only in the spi interface</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__advance_8c_source.html#l00959">driver_w25qxx_advance.c:959</a></div></div>
+<div class="ttc" id="agroup__w25qxx__example__driver_html_ga2cbcc018dc11a870d2e0fc3a8946b1d8"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga2cbcc018dc11a870d2e0fc3a8946b1d8">w25qxx_advance_global_block_lock</a></div><div class="ttdeci">uint8_t w25qxx_advance_global_block_lock(void)</div><div class="ttdoc">advance example global block lock</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__advance_8c_source.html#l00729">driver_w25qxx_advance.c:729</a></div></div>
+<div class="ttc" id="agroup__w25qxx__example__driver_html_ga31bcd3d2cc68d2fc589685b5087bd8b3"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga31bcd3d2cc68d2fc589685b5087bd8b3">w25qxx_advance_get_status3</a></div><div class="ttdeci">uint8_t w25qxx_advance_get_status3(uint8_t *status)</div><div class="ttdoc">advance example get the status 3</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__advance_8c_source.html#l00587">driver_w25qxx_advance.c:587</a></div></div>
+<div class="ttc" id="agroup__w25qxx__example__driver_html_ga364d891407cf323d3686d36ad6357604"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga364d891407cf323d3686d36ad6357604">w25qxx_advance_only_spi_fast_read_dual_output</a></div><div class="ttdeci">uint8_t w25qxx_advance_only_spi_fast_read_dual_output(uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">advance example fast read only in the spi dual output interface</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__advance_8c_source.html#l00395">driver_w25qxx_advance.c:395</a></div></div>
+<div class="ttc" id="agroup__w25qxx__example__driver_html_ga374d35b73fa61d5f7464c3effdae1d57"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga374d35b73fa61d5f7464c3effdae1d57">w25qxx_advance_only_spi_get_unique_id</a></div><div class="ttdeci">uint8_t w25qxx_advance_only_spi_get_unique_id(uint8_t id[8])</div><div class="ttdoc">advance example get the unique id only in the spi interface</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__advance_8c_source.html#l00873">driver_w25qxx_advance.c:873</a></div></div>
+<div class="ttc" id="agroup__w25qxx__example__driver_html_ga395add1fa33f4f70d0ba52b38842dbdb"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga395add1fa33f4f70d0ba52b38842dbdb">w25qxx_advance_only_spi_fast_read_quad_io</a></div><div class="ttdeci">uint8_t w25qxx_advance_only_spi_fast_read_quad_io(uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">advance example fast read only in the spi quad io interface</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__advance_8c_source.html#l00461">driver_w25qxx_advance.c:461</a></div></div>
+<div class="ttc" id="agroup__w25qxx__example__driver_html_ga39ff13988a3d451231cec3260c13a4cd"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga39ff13988a3d451231cec3260c13a4cd">w25qxx_advance_page_program</a></div><div class="ttdeci">uint8_t w25qxx_advance_page_program(uint32_t addr, uint8_t *data, uint16_t len)</div><div class="ttdoc">advance example page program</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__advance_8c_source.html#l00269">driver_w25qxx_advance.c:269</a></div></div>
+<div class="ttc" id="agroup__w25qxx__example__driver_html_ga413b420bc199d09ce5cafee4a4debb28"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga413b420bc199d09ce5cafee4a4debb28">w25qxx_advance_init</a></div><div class="ttdeci">uint8_t w25qxx_advance_init(w25qxx_type_t type, w25qxx_interface_t interface, w25qxx_bool_t dual_quad_spi_enable)</div><div class="ttdoc">advance example init</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__advance_8c_source.html#l00051">driver_w25qxx_advance.c:51</a></div></div>
+<div class="ttc" id="agroup__w25qxx__example__driver_html_ga4bbaf1a989fae25d16d07edb1e38ca4f"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga4bbaf1a989fae25d16d07edb1e38ca4f">w25qxx_advance_only_spi_fast_read_dual_io</a></div><div class="ttdeci">uint8_t w25qxx_advance_only_spi_fast_read_dual_io(uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">advance example fast read only in the spi dual io interface</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__advance_8c_source.html#l00439">driver_w25qxx_advance.c:439</a></div></div>
+<div class="ttc" id="agroup__w25qxx__example__driver_html_ga4c1be6979b4dc878d07ec86b8624c9d2"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga4c1be6979b4dc878d07ec86b8624c9d2">w25qxx_advance_get_status1</a></div><div class="ttdeci">uint8_t w25qxx_advance_get_status1(uint8_t *status)</div><div class="ttdoc">advance example get the status 1</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__advance_8c_source.html#l00547">driver_w25qxx_advance.c:547</a></div></div>
+<div class="ttc" id="agroup__w25qxx__example__driver_html_ga5599de31797633ae75a63bcd5a8f4736"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga5599de31797633ae75a63bcd5a8f4736">w25qxx_advance_power_down</a></div><div class="ttdeci">uint8_t w25qxx_advance_power_down(void)</div><div class="ttdoc">advance example power down</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__advance_8c_source.html#l00188">driver_w25qxx_advance.c:188</a></div></div>
+<div class="ttc" id="agroup__w25qxx__example__driver_html_ga5e4938b4575c417ae22fa82079459b1a"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga5e4938b4575c417ae22fa82079459b1a">w25qxx_advance_set_status1</a></div><div class="ttdeci">uint8_t w25qxx_advance_set_status1(uint8_t status)</div><div class="ttdoc">advance example set the status 1</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__advance_8c_source.html#l00607">driver_w25qxx_advance.c:607</a></div></div>
+<div class="ttc" id="agroup__w25qxx__example__driver_html_ga6142b5a1e8602e2990dec34015812615"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga6142b5a1e8602e2990dec34015812615">w25qxx_advance_only_spi_get_manufacturer_device_id_quad_io</a></div><div class="ttdeci">uint8_t w25qxx_advance_only_spi_get_manufacturer_device_id_quad_io(uint8_t *manufacturer, uint8_t *device_id)</div><div class="ttdoc">advance example get the manufacturer &amp;&amp; device id information only in the spi quad io interface</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__advance_8c_source.html#l00689">driver_w25qxx_advance.c:689</a></div></div>
+<div class="ttc" id="agroup__w25qxx__example__driver_html_ga63f4e1dce2ef7c7de56461524fd22d04"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga63f4e1dce2ef7c7de56461524fd22d04">w25qxx_advance_write</a></div><div class="ttdeci">uint8_t w25qxx_advance_write(uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">advance example write</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__advance_8c_source.html#l00147">driver_w25qxx_advance.c:147</a></div></div>
+<div class="ttc" id="agroup__w25qxx__example__driver_html_ga66726fc451c7804e8fec6eb46a6a77d6"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga66726fc451c7804e8fec6eb46a6a77d6">w25qxx_advance_individual_block_unlock</a></div><div class="ttdeci">uint8_t w25qxx_advance_individual_block_unlock(uint32_t addr)</div><div class="ttdoc">advance example unlock the individual block</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__advance_8c_source.html#l00788">driver_w25qxx_advance.c:788</a></div></div>
+<div class="ttc" id="agroup__w25qxx__example__driver_html_ga67c70da103511d1cff9274e61a08ce56"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga67c70da103511d1cff9274e61a08ce56">w25qxx_advance_global_block_unlock</a></div><div class="ttdeci">uint8_t w25qxx_advance_global_block_unlock(void)</div><div class="ttdoc">advance example global block unlock</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__advance_8c_source.html#l00748">driver_w25qxx_advance.c:748</a></div></div>
+<div class="ttc" id="agroup__w25qxx__example__driver_html_ga7ade25a387b9d03ddecefd86fb328389"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga7ade25a387b9d03ddecefd86fb328389">w25qxx_advance_fast_read</a></div><div class="ttdeci">uint8_t w25qxx_advance_fast_read(uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">advance example read in the fast mode</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__advance_8c_source.html#l00351">driver_w25qxx_advance.c:351</a></div></div>
+<div class="ttc" id="agroup__w25qxx__example__driver_html_ga825a567c535236d7d18ffccf07df59e9"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga825a567c535236d7d18ffccf07df59e9">w25qxx_advance_only_spi_octal_word_read_quad_io</a></div><div class="ttdeci">uint8_t w25qxx_advance_only_spi_octal_word_read_quad_io(uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">advance example octal word read only in the spi quad io interface</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__advance_8c_source.html#l00505">driver_w25qxx_advance.c:505</a></div></div>
+<div class="ttc" id="agroup__w25qxx__example__driver_html_ga8a57e2d056d452abc14b0a08d4223251"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga8a57e2d056d452abc14b0a08d4223251">w25qxx_advance_wake_up</a></div><div class="ttdeci">uint8_t w25qxx_advance_wake_up(void)</div><div class="ttdoc">advance example wake up</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__advance_8c_source.html#l00207">driver_w25qxx_advance.c:207</a></div></div>
+<div class="ttc" id="agroup__w25qxx__example__driver_html_ga9325acc424c95624f15e11631082201d"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga9325acc424c95624f15e11631082201d">w25qxx_advance_sector_erase_4k</a></div><div class="ttdeci">uint8_t w25qxx_advance_sector_erase_4k(uint32_t addr)</div><div class="ttdoc">advance example erase the 4k sector</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__advance_8c_source.html#l00289">driver_w25qxx_advance.c:289</a></div></div>
+<div class="ttc" id="agroup__w25qxx__example__driver_html_ga9b1854e0ae52f57523bc2fa7cc0656df"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga9b1854e0ae52f57523bc2fa7cc0656df">w25qxx_advance_only_spi_get_sfdp</a></div><div class="ttdeci">uint8_t w25qxx_advance_only_spi_get_sfdp(uint8_t sfdp[256])</div><div class="ttdoc">advance example get the sfdp only in the spi interface</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__advance_8c_source.html#l00893">driver_w25qxx_advance.c:893</a></div></div>
+<div class="ttc" id="agroup__w25qxx__example__driver_html_ga9bc0e696b700d66f15b3605e10d33718"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga9bc0e696b700d66f15b3605e10d33718">w25qxx_advance_set_status2</a></div><div class="ttdeci">uint8_t w25qxx_advance_set_status2(uint8_t status)</div><div class="ttdoc">advance example set the status 2</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__advance_8c_source.html#l00627">driver_w25qxx_advance.c:627</a></div></div>
+<div class="ttc" id="agroup__w25qxx__example__driver_html_gaa6c5f97106e769ba071973cc2e782ad4"><div class="ttname"><a href="group__w25qxx__example__driver.html#gaa6c5f97106e769ba071973cc2e782ad4">w25qxx_advance_only_spi_write_security_register</a></div><div class="ttdeci">uint8_t w25qxx_advance_only_spi_write_security_register(w25qxx_security_register_t num, uint8_t data[256])</div><div class="ttdoc">advance example write the security register only in the spi interface</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__advance_8c_source.html#l00914">driver_w25qxx_advance.c:914</a></div></div>
+<div class="ttc" id="agroup__w25qxx__example__driver_html_gaa7af99e92b3e81f5b202575b55dc3a7c"><div class="ttname"><a href="group__w25qxx__example__driver.html#gaa7af99e92b3e81f5b202575b55dc3a7c">w25qxx_advance_individual_block_lock</a></div><div class="ttdeci">uint8_t w25qxx_advance_individual_block_lock(uint32_t addr)</div><div class="ttdoc">advance example lock the individual block</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__advance_8c_source.html#l00768">driver_w25qxx_advance.c:768</a></div></div>
+<div class="ttc" id="agroup__w25qxx__example__driver_html_gab5c990ebd4874137b7d23f2b896d4601"><div class="ttname"><a href="group__w25qxx__example__driver.html#gab5c990ebd4874137b7d23f2b896d4601">w25qxx_advance_set_status3</a></div><div class="ttdeci">uint8_t w25qxx_advance_set_status3(uint8_t status)</div><div class="ttdoc">advance example set the status 3</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__advance_8c_source.html#l00647">driver_w25qxx_advance.c:647</a></div></div>
+<div class="ttc" id="agroup__w25qxx__example__driver_html_gac0d9e08a37ee37563c8dbb501608a668"><div class="ttname"><a href="group__w25qxx__example__driver.html#gac0d9e08a37ee37563c8dbb501608a668">w25qxx_advance_only_spi_get_manufacturer_device_id_dual_io</a></div><div class="ttdeci">uint8_t w25qxx_advance_only_spi_get_manufacturer_device_id_dual_io(uint8_t *manufacturer, uint8_t *device_id)</div><div class="ttdoc">advance example get the manufacturer &amp;&amp; device id information only in the spi dual io interface</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__advance_8c_source.html#l00668">driver_w25qxx_advance.c:668</a></div></div>
+<div class="ttc" id="agroup__w25qxx__example__driver_html_gac1773fe914a01825ca28346205601036"><div class="ttname"><a href="group__w25qxx__example__driver.html#gac1773fe914a01825ca28346205601036">w25qxx_advance_read_block_lock</a></div><div class="ttdeci">uint8_t w25qxx_advance_read_block_lock(uint32_t addr, uint8_t *value)</div><div class="ttdoc">advance example read the block lock</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__advance_8c_source.html#l00809">driver_w25qxx_advance.c:809</a></div></div>
+<div class="ttc" id="agroup__w25qxx__example__driver_html_gac1c7f320706dd6d6d937da75b8a4da93"><div class="ttname"><a href="group__w25qxx__example__driver.html#gac1c7f320706dd6d6d937da75b8a4da93">w25qxx_advance_only_spi_read</a></div><div class="ttdeci">uint8_t w25qxx_advance_only_spi_read(uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">advance example read only in the spi interface</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__advance_8c_source.html#l00373">driver_w25qxx_advance.c:373</a></div></div>
+<div class="ttc" id="agroup__w25qxx__example__driver_html_gaca6b4c6ea32dd96a4ae8714e2862d67a"><div class="ttname"><a href="group__w25qxx__example__driver.html#gaca6b4c6ea32dd96a4ae8714e2862d67a">w25qxx_advance_only_spi_word_read_quad_io</a></div><div class="ttdeci">uint8_t w25qxx_advance_only_spi_word_read_quad_io(uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">advance example word read only in the spi quad io interface</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__advance_8c_source.html#l00483">driver_w25qxx_advance.c:483</a></div></div>
+<div class="ttc" id="agroup__w25qxx__example__driver_html_gacc7435a39b61c44f0ce16690d5da896b"><div class="ttname"><a href="group__w25qxx__example__driver.html#gacc7435a39b61c44f0ce16690d5da896b">w25qxx_advance_get_get_jedec_id</a></div><div class="ttdeci">uint8_t w25qxx_advance_get_get_jedec_id(uint8_t *manufacturer, uint8_t device_id[2])</div><div class="ttdoc">advance example get the jedec id information</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__advance_8c_source.html#l00710">driver_w25qxx_advance.c:710</a></div></div>
+<div class="ttc" id="agroup__w25qxx__example__driver_html_gace2a5b7acd9798cfcaa2b5eb2f18e1d1"><div class="ttname"><a href="group__w25qxx__example__driver.html#gace2a5b7acd9798cfcaa2b5eb2f18e1d1">w25qxx_advance_only_qspi_set_read_parameters</a></div><div class="ttdeci">uint8_t w25qxx_advance_only_qspi_set_read_parameters(w25qxx_qspi_read_dummy_t dummy, w25qxx_qspi_read_wrap_length_t length)</div><div class="ttdoc">advance example set the read parameters only in the qspi interface</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__advance_8c_source.html#l00853">driver_w25qxx_advance.c:853</a></div></div>
+<div class="ttc" id="agroup__w25qxx__example__driver_html_gad243655eb738e44c50e6079c983fd782"><div class="ttname"><a href="group__w25qxx__example__driver.html#gad243655eb738e44c50e6079c983fd782">w25qxx_advance_only_spi_page_program_quad_input</a></div><div class="ttdeci">uint8_t w25qxx_advance_only_spi_page_program_quad_input(uint32_t addr, uint8_t *data, uint16_t len)</div><div class="ttdoc">advance example quad page program only in the spi quad input interface</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__advance_8c_source.html#l00527">driver_w25qxx_advance.c:527</a></div></div>
+<div class="ttc" id="agroup__w25qxx__example__driver_html_gae7cba4e0b22a1043fe304e46148fa13c"><div class="ttname"><a href="group__w25qxx__example__driver.html#gae7cba4e0b22a1043fe304e46148fa13c">w25qxx_advance_block_erase_64k</a></div><div class="ttdeci">uint8_t w25qxx_advance_block_erase_64k(uint32_t addr)</div><div class="ttdoc">advance example erase the 64k block</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__advance_8c_source.html#l00329">driver_w25qxx_advance.c:329</a></div></div>
+<div class="ttc" id="agroup__w25qxx__example__driver_html_gaee04edb9e97785e423dffe14a1cad780"><div class="ttname"><a href="group__w25qxx__example__driver.html#gaee04edb9e97785e423dffe14a1cad780">w25qxx_advance_block_erase_32k</a></div><div class="ttdeci">uint8_t w25qxx_advance_block_erase_32k(uint32_t addr)</div><div class="ttdoc">advance example erase the 32k block</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__advance_8c_source.html#l00309">driver_w25qxx_advance.c:309</a></div></div>
+<div class="ttc" id="agroup__w25qxx__example__driver_html_gaf390bbb2c4140f49d25822d963ead722"><div class="ttname"><a href="group__w25qxx__example__driver.html#gaf390bbb2c4140f49d25822d963ead722">w25qxx_advance_deinit</a></div><div class="ttdeci">uint8_t w25qxx_advance_deinit(void)</div><div class="ttdoc">advance example deinit</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__advance_8c_source.html#l00125">driver_w25qxx_advance.c:125</a></div></div>
+<div class="ttc" id="agroup__w25qxx__example__driver_html_gaf4736fff906c2f0c1dbed26b20847052"><div class="ttname"><a href="group__w25qxx__example__driver.html#gaf4736fff906c2f0c1dbed26b20847052">w25qxx_advance_get_status2</a></div><div class="ttdeci">uint8_t w25qxx_advance_get_status2(uint8_t *status)</div><div class="ttdoc">advance example get the status 2</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__advance_8c_source.html#l00567">driver_w25qxx_advance.c:567</a></div></div>
+<div class="ttc" id="agroup__w25qxx__example__driver_html_gaf5f978c432de7d6adaf41cd256724a01"><div class="ttname"><a href="group__w25qxx__example__driver.html#gaf5f978c432de7d6adaf41cd256724a01">w25qxx_advance_only_spi_fast_read_quad_output</a></div><div class="ttdeci">uint8_t w25qxx_advance_only_spi_fast_read_quad_output(uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">advance example fast read only in the spi quad output interface</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__advance_8c_source.html#l00417">driver_w25qxx_advance.c:417</a></div></div>
+<div class="ttc" id="agroup__w25qxx__interface__driver_html_ga091f3607fcdd47f9e5f94cf1397bd46a"><div class="ttname"><a href="group__w25qxx__interface__driver.html#ga091f3607fcdd47f9e5f94cf1397bd46a">w25qxx_interface_spi_qspi_deinit</a></div><div class="ttdeci">uint8_t w25qxx_interface_spi_qspi_deinit(void)</div><div class="ttdoc">interface spi qspi bus deinit</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__interface__template_8c_source.html#l00058">driver_w25qxx_interface_template.c:58</a></div></div>
+<div class="ttc" id="agroup__w25qxx__interface__driver_html_ga2bdc17a556f1c801a38656331f3bb7b6"><div class="ttname"><a href="group__w25qxx__interface__driver.html#ga2bdc17a556f1c801a38656331f3bb7b6">w25qxx_interface_spi_qspi_init</a></div><div class="ttdeci">uint8_t w25qxx_interface_spi_qspi_init(void)</div><div class="ttdoc">interface spi qspi bus init</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__interface__template_8c_source.html#l00046">driver_w25qxx_interface_template.c:46</a></div></div>
+<div class="ttc" id="agroup__w25qxx__interface__driver_html_ga38e79039b913154c9dd1036ff52bb420"><div class="ttname"><a href="group__w25qxx__interface__driver.html#ga38e79039b913154c9dd1036ff52bb420">w25qxx_interface_delay_us</a></div><div class="ttdeci">void w25qxx_interface_delay_us(uint32_t us)</div><div class="ttdoc">interface delay us</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__interface__template_8c_source.html#l00108">driver_w25qxx_interface_template.c:108</a></div></div>
+<div class="ttc" id="agroup__w25qxx__interface__driver_html_ga3d76ea1f431978f6b55edfd0628c94cd"><div class="ttname"><a href="group__w25qxx__interface__driver.html#ga3d76ea1f431978f6b55edfd0628c94cd">w25qxx_interface_spi_qspi_write_read</a></div><div class="ttdeci">uint8_t w25qxx_interface_spi_qspi_write_read(uint8_t instruction, uint8_t instruction_line, uint32_t address, uint8_t address_line, uint8_t address_len, uint32_t alternate, uint8_t alternate_line, uint8_t alternate_len, uint8_t dummy, uint8_t *in_buf, uint32_t in_len, uint8_t *out_buf, uint32_t out_len, uint8_t data_line)</div><div class="ttdoc">interface spi qspi bus write read</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__interface__template_8c_source.html#l00084">driver_w25qxx_interface_template.c:84</a></div></div>
+<div class="ttc" id="agroup__w25qxx__interface__driver_html_ga5325474fa17f6833744e631613fd2a0e"><div class="ttname"><a href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a></div><div class="ttdeci">void w25qxx_interface_debug_print(const char *const fmt,...)</div><div class="ttdoc">interface print format data</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__interface__template_8c_source.html#l00118">driver_w25qxx_interface_template.c:118</a></div></div>
+<div class="ttc" id="agroup__w25qxx__interface__driver_html_ga964fa232abf98737cb98458eebfff82c"><div class="ttname"><a href="group__w25qxx__interface__driver.html#ga964fa232abf98737cb98458eebfff82c">w25qxx_interface_delay_ms</a></div><div class="ttdeci">void w25qxx_interface_delay_ms(uint32_t ms)</div><div class="ttdoc">interface delay ms</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__interface__template_8c_source.html#l00098">driver_w25qxx_interface_template.c:98</a></div></div>
+<div class="ttc" id="agroup__w25qxx__link__driver_html_ga7555618f13d2de0003ae6d9483085180"><div class="ttname"><a href="group__w25qxx__link__driver.html#ga7555618f13d2de0003ae6d9483085180">DRIVER_W25QXX_LINK_DELAY_MS</a></div><div class="ttdeci">#define DRIVER_W25QXX_LINK_DELAY_MS(HANDLE, FUC)</div><div class="ttdoc">link delay_ms function</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00297">driver_w25qxx.h:297</a></div></div>
+<div class="ttc" id="agroup__w25qxx__link__driver_html_ga995378489f95bc6bbddbe710557e3384"><div class="ttname"><a href="group__w25qxx__link__driver.html#ga995378489f95bc6bbddbe710557e3384">DRIVER_W25QXX_LINK_INIT</a></div><div class="ttdeci">#define DRIVER_W25QXX_LINK_INIT(HANDLE, STRUCTURE)</div><div class="ttdoc">initialize w25qxx_handle_t structure</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00265">driver_w25qxx.h:265</a></div></div>
+<div class="ttc" id="agroup__w25qxx__link__driver_html_gab2587de93f1dba5664eede8cd787a88a"><div class="ttname"><a href="group__w25qxx__link__driver.html#gab2587de93f1dba5664eede8cd787a88a">DRIVER_W25QXX_LINK_SPI_QSPI_INIT</a></div><div class="ttdeci">#define DRIVER_W25QXX_LINK_SPI_QSPI_INIT(HANDLE, FUC)</div><div class="ttdoc">link spi_qspi_init function</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00273">driver_w25qxx.h:273</a></div></div>
+<div class="ttc" id="agroup__w25qxx__link__driver_html_gab8d49ef9dca942fe5f37c30dcd7e22a6"><div class="ttname"><a href="group__w25qxx__link__driver.html#gab8d49ef9dca942fe5f37c30dcd7e22a6">DRIVER_W25QXX_LINK_DEBUG_PRINT</a></div><div class="ttdeci">#define DRIVER_W25QXX_LINK_DEBUG_PRINT(HANDLE, FUC)</div><div class="ttdoc">link debug_print function</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00313">driver_w25qxx.h:313</a></div></div>
+<div class="ttc" id="agroup__w25qxx__link__driver_html_gac8f0ca0a725790bace3241d1d616e3d1"><div class="ttname"><a href="group__w25qxx__link__driver.html#gac8f0ca0a725790bace3241d1d616e3d1">DRIVER_W25QXX_LINK_SPI_QSPI_WRITE_READ</a></div><div class="ttdeci">#define DRIVER_W25QXX_LINK_SPI_QSPI_WRITE_READ(HANDLE, FUC)</div><div class="ttdoc">link spi_qspi_write_read function</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00289">driver_w25qxx.h:289</a></div></div>
+<div class="ttc" id="agroup__w25qxx__link__driver_html_gaec8b55e83b46907be1dd9e7c50be550d"><div class="ttname"><a href="group__w25qxx__link__driver.html#gaec8b55e83b46907be1dd9e7c50be550d">DRIVER_W25QXX_LINK_SPI_QSPI_DEINIT</a></div><div class="ttdeci">#define DRIVER_W25QXX_LINK_SPI_QSPI_DEINIT(HANDLE, FUC)</div><div class="ttdoc">link spi_qspi_deinit function</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00281">driver_w25qxx.h:281</a></div></div>
+<div class="ttc" id="agroup__w25qxx__link__driver_html_gafc81bf850c80dfa316f0c6ab40be6e67"><div class="ttname"><a href="group__w25qxx__link__driver.html#gafc81bf850c80dfa316f0c6ab40be6e67">DRIVER_W25QXX_LINK_DELAY_US</a></div><div class="ttdeci">#define DRIVER_W25QXX_LINK_DELAY_US(HANDLE, FUC)</div><div class="ttdoc">link delay_us function</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00305">driver_w25qxx.h:305</a></div></div>
+<div class="ttc" id="astructw25qxx__handle__s_html"><div class="ttname"><a href="structw25qxx__handle__s.html">w25qxx_handle_s</a></div><div class="ttdoc">w25qxx handle structure definition</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00209">driver_w25qxx.h:210</a></div></div>
 </div><!-- fragment --></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
     <li class="navelem"><a class="el" href="dir_cfafba98a580ce4b62f8a6fa96d7cbb0.html">example</a></li><li class="navelem"><a class="el" href="driver__w25qxx__advance_8c.html">driver_w25qxx_advance.c</a></li>
-    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
+    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/driver__w25qxx__advance_8h.html b/doc/html/driver__w25qxx__advance_8h.html
index bdb6a50..ab8cbff 100644
--- a/doc/html/driver__w25qxx__advance_8h.html
+++ b/doc/html/driver__w25qxx__advance_8h.html
@@ -1,9 +1,9 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.8"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>LibDriver W25QXX: example/driver_w25qxx_advance.h File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -23,11 +23,10 @@
 <div id="titlearea">
 <table cellspacing="0" cellpadding="0">
  <tbody>
- <tr style="height: 56px;">
+ <tr id="projectrow">
   <td id="projectlogo"><img alt="Logo" src="doxygen.png"/></td>
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">LibDriver W25QXX
-   &#160;<span id="projectnumber">1.0.0</span>
+  <td id="projectalign">
+   <div id="projectname">LibDriver W25QXX<span id="projectnumber">&#160;1.0.0</span>
    </div>
    <div id="projectbrief">W25QXX full function driver</div>
   </td>
@@ -36,21 +35,22 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.8 -->
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search/",'.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
 <script type="text/javascript" src="menu.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(function() {
   initMenu('',true,false,'search.php','Search');
   $(document).ready(function() { init_search(); });
 });
-/* @license-end */</script>
+/* @license-end */
+</script>
 <div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
@@ -64,7 +64,7 @@
   </div>
 </div>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(document).ready(function(){initNavTree('driver__w25qxx__advance_8h.html',''); initResizable(); });
 /* @license-end */
 </script>
@@ -78,16 +78,22 @@
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
 </div>
 
 <div class="header">
   <div class="summary">
 <a href="#func-members">Functions</a>  </div>
-  <div class="headertitle">
-<div class="title">driver_w25qxx_advance.h File Reference</div>  </div>
+  <div class="headertitle"><div class="title">driver_w25qxx_advance.h File Reference</div></div>
 </div><!--header-->
 <div class="contents">
 
@@ -97,133 +103,133 @@
 </div>
 <p><a href="driver__w25qxx__advance_8h_source.html">Go to the source code of this file.</a></p>
 <table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
 Functions</h2></td></tr>
-<tr class="memitem:ga413b420bc199d09ce5cafee4a4debb28"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga413b420bc199d09ce5cafee4a4debb28">w25qxx_advance_init</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga6cb4e5164464df549201dd96cb7a58b1">w25qxx_type_t</a> type, <a class="el" href="group__w25qxx__basic__driver.html#gacbf327a42336baf10713a1796ff4f2fe">w25qxx_interface_t</a> interface, <a class="el" href="group__w25qxx__basic__driver.html#gafb2690946f5baf4be6f3a63dde5491fb">w25qxx_bool_t</a> dual_quad_spi_enable)</td></tr>
-<tr class="memdesc:ga413b420bc199d09ce5cafee4a4debb28"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example init  <a href="group__w25qxx__example__driver.html#ga413b420bc199d09ce5cafee4a4debb28">More...</a><br /></td></tr>
+<tr class="memitem:ga413b420bc199d09ce5cafee4a4debb28" id="r_ga413b420bc199d09ce5cafee4a4debb28"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga413b420bc199d09ce5cafee4a4debb28">w25qxx_advance_init</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga6cb4e5164464df549201dd96cb7a58b1">w25qxx_type_t</a> type, <a class="el" href="group__w25qxx__basic__driver.html#gacbf327a42336baf10713a1796ff4f2fe">w25qxx_interface_t</a> interface, <a class="el" href="group__w25qxx__basic__driver.html#gafb2690946f5baf4be6f3a63dde5491fb">w25qxx_bool_t</a> dual_quad_spi_enable)</td></tr>
+<tr class="memdesc:ga413b420bc199d09ce5cafee4a4debb28"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example init  <br /></td></tr>
 <tr class="separator:ga413b420bc199d09ce5cafee4a4debb28"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf390bbb2c4140f49d25822d963ead722"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#gaf390bbb2c4140f49d25822d963ead722">w25qxx_advance_deinit</a> (void)</td></tr>
-<tr class="memdesc:gaf390bbb2c4140f49d25822d963ead722"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example deinit  <a href="group__w25qxx__example__driver.html#gaf390bbb2c4140f49d25822d963ead722">More...</a><br /></td></tr>
+<tr class="memitem:gaf390bbb2c4140f49d25822d963ead722" id="r_gaf390bbb2c4140f49d25822d963ead722"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#gaf390bbb2c4140f49d25822d963ead722">w25qxx_advance_deinit</a> (void)</td></tr>
+<tr class="memdesc:gaf390bbb2c4140f49d25822d963ead722"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example deinit  <br /></td></tr>
 <tr class="separator:gaf390bbb2c4140f49d25822d963ead722"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga5599de31797633ae75a63bcd5a8f4736"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga5599de31797633ae75a63bcd5a8f4736">w25qxx_advance_power_down</a> (void)</td></tr>
-<tr class="memdesc:ga5599de31797633ae75a63bcd5a8f4736"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example power down  <a href="group__w25qxx__example__driver.html#ga5599de31797633ae75a63bcd5a8f4736">More...</a><br /></td></tr>
+<tr class="memitem:ga5599de31797633ae75a63bcd5a8f4736" id="r_ga5599de31797633ae75a63bcd5a8f4736"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga5599de31797633ae75a63bcd5a8f4736">w25qxx_advance_power_down</a> (void)</td></tr>
+<tr class="memdesc:ga5599de31797633ae75a63bcd5a8f4736"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example power down  <br /></td></tr>
 <tr class="separator:ga5599de31797633ae75a63bcd5a8f4736"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga8a57e2d056d452abc14b0a08d4223251"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga8a57e2d056d452abc14b0a08d4223251">w25qxx_advance_wake_up</a> (void)</td></tr>
-<tr class="memdesc:ga8a57e2d056d452abc14b0a08d4223251"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example wake up  <a href="group__w25qxx__example__driver.html#ga8a57e2d056d452abc14b0a08d4223251">More...</a><br /></td></tr>
+<tr class="memitem:ga8a57e2d056d452abc14b0a08d4223251" id="r_ga8a57e2d056d452abc14b0a08d4223251"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga8a57e2d056d452abc14b0a08d4223251">w25qxx_advance_wake_up</a> (void)</td></tr>
+<tr class="memdesc:ga8a57e2d056d452abc14b0a08d4223251"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example wake up  <br /></td></tr>
 <tr class="separator:ga8a57e2d056d452abc14b0a08d4223251"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga15cb243f227ef8d897ef3208b622bded"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga15cb243f227ef8d897ef3208b622bded">w25qxx_advance_chip_erase</a> (void)</td></tr>
-<tr class="memdesc:ga15cb243f227ef8d897ef3208b622bded"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example chip erase  <a href="group__w25qxx__example__driver.html#ga15cb243f227ef8d897ef3208b622bded">More...</a><br /></td></tr>
+<tr class="memitem:ga15cb243f227ef8d897ef3208b622bded" id="r_ga15cb243f227ef8d897ef3208b622bded"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga15cb243f227ef8d897ef3208b622bded">w25qxx_advance_chip_erase</a> (void)</td></tr>
+<tr class="memdesc:ga15cb243f227ef8d897ef3208b622bded"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example chip erase  <br /></td></tr>
 <tr class="separator:ga15cb243f227ef8d897ef3208b622bded"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga0f49d960f8b6c6498ab293b369ffc389"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga0f49d960f8b6c6498ab293b369ffc389">w25qxx_advance_get_id</a> (uint8_t *manufacturer, uint8_t *device_id)</td></tr>
-<tr class="memdesc:ga0f49d960f8b6c6498ab293b369ffc389"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example get the manufacturer &amp;&amp; device id information  <a href="group__w25qxx__example__driver.html#ga0f49d960f8b6c6498ab293b369ffc389">More...</a><br /></td></tr>
+<tr class="memitem:ga0f49d960f8b6c6498ab293b369ffc389" id="r_ga0f49d960f8b6c6498ab293b369ffc389"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga0f49d960f8b6c6498ab293b369ffc389">w25qxx_advance_get_id</a> (uint8_t *manufacturer, uint8_t *device_id)</td></tr>
+<tr class="memdesc:ga0f49d960f8b6c6498ab293b369ffc389"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example get the manufacturer &amp;&amp; device id information  <br /></td></tr>
 <tr class="separator:ga0f49d960f8b6c6498ab293b369ffc389"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga63f4e1dce2ef7c7de56461524fd22d04"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga63f4e1dce2ef7c7de56461524fd22d04">w25qxx_advance_write</a> (uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
-<tr class="memdesc:ga63f4e1dce2ef7c7de56461524fd22d04"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example write  <a href="group__w25qxx__example__driver.html#ga63f4e1dce2ef7c7de56461524fd22d04">More...</a><br /></td></tr>
+<tr class="memitem:ga63f4e1dce2ef7c7de56461524fd22d04" id="r_ga63f4e1dce2ef7c7de56461524fd22d04"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga63f4e1dce2ef7c7de56461524fd22d04">w25qxx_advance_write</a> (uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
+<tr class="memdesc:ga63f4e1dce2ef7c7de56461524fd22d04"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example write  <br /></td></tr>
 <tr class="separator:ga63f4e1dce2ef7c7de56461524fd22d04"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga013a389763200b54daaa345adf9329dc"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga013a389763200b54daaa345adf9329dc">w25qxx_advance_read</a> (uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
-<tr class="memdesc:ga013a389763200b54daaa345adf9329dc"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example read  <a href="group__w25qxx__example__driver.html#ga013a389763200b54daaa345adf9329dc">More...</a><br /></td></tr>
+<tr class="memitem:ga013a389763200b54daaa345adf9329dc" id="r_ga013a389763200b54daaa345adf9329dc"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga013a389763200b54daaa345adf9329dc">w25qxx_advance_read</a> (uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
+<tr class="memdesc:ga013a389763200b54daaa345adf9329dc"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example read  <br /></td></tr>
 <tr class="separator:ga013a389763200b54daaa345adf9329dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga39ff13988a3d451231cec3260c13a4cd"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga39ff13988a3d451231cec3260c13a4cd">w25qxx_advance_page_program</a> (uint32_t addr, uint8_t *data, uint16_t len)</td></tr>
-<tr class="memdesc:ga39ff13988a3d451231cec3260c13a4cd"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example page program  <a href="group__w25qxx__example__driver.html#ga39ff13988a3d451231cec3260c13a4cd">More...</a><br /></td></tr>
+<tr class="memitem:ga39ff13988a3d451231cec3260c13a4cd" id="r_ga39ff13988a3d451231cec3260c13a4cd"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga39ff13988a3d451231cec3260c13a4cd">w25qxx_advance_page_program</a> (uint32_t addr, uint8_t *data, uint16_t len)</td></tr>
+<tr class="memdesc:ga39ff13988a3d451231cec3260c13a4cd"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example page program  <br /></td></tr>
 <tr class="separator:ga39ff13988a3d451231cec3260c13a4cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga9325acc424c95624f15e11631082201d"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga9325acc424c95624f15e11631082201d">w25qxx_advance_sector_erase_4k</a> (uint32_t addr)</td></tr>
-<tr class="memdesc:ga9325acc424c95624f15e11631082201d"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example erase the 4k sector  <a href="group__w25qxx__example__driver.html#ga9325acc424c95624f15e11631082201d">More...</a><br /></td></tr>
+<tr class="memitem:ga9325acc424c95624f15e11631082201d" id="r_ga9325acc424c95624f15e11631082201d"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga9325acc424c95624f15e11631082201d">w25qxx_advance_sector_erase_4k</a> (uint32_t addr)</td></tr>
+<tr class="memdesc:ga9325acc424c95624f15e11631082201d"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example erase the 4k sector  <br /></td></tr>
 <tr class="separator:ga9325acc424c95624f15e11631082201d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaee04edb9e97785e423dffe14a1cad780"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#gaee04edb9e97785e423dffe14a1cad780">w25qxx_advance_block_erase_32k</a> (uint32_t addr)</td></tr>
-<tr class="memdesc:gaee04edb9e97785e423dffe14a1cad780"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example erase the 32k block  <a href="group__w25qxx__example__driver.html#gaee04edb9e97785e423dffe14a1cad780">More...</a><br /></td></tr>
+<tr class="memitem:gaee04edb9e97785e423dffe14a1cad780" id="r_gaee04edb9e97785e423dffe14a1cad780"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#gaee04edb9e97785e423dffe14a1cad780">w25qxx_advance_block_erase_32k</a> (uint32_t addr)</td></tr>
+<tr class="memdesc:gaee04edb9e97785e423dffe14a1cad780"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example erase the 32k block  <br /></td></tr>
 <tr class="separator:gaee04edb9e97785e423dffe14a1cad780"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae7cba4e0b22a1043fe304e46148fa13c"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#gae7cba4e0b22a1043fe304e46148fa13c">w25qxx_advance_block_erase_64k</a> (uint32_t addr)</td></tr>
-<tr class="memdesc:gae7cba4e0b22a1043fe304e46148fa13c"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example erase the 64k block  <a href="group__w25qxx__example__driver.html#gae7cba4e0b22a1043fe304e46148fa13c">More...</a><br /></td></tr>
+<tr class="memitem:gae7cba4e0b22a1043fe304e46148fa13c" id="r_gae7cba4e0b22a1043fe304e46148fa13c"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#gae7cba4e0b22a1043fe304e46148fa13c">w25qxx_advance_block_erase_64k</a> (uint32_t addr)</td></tr>
+<tr class="memdesc:gae7cba4e0b22a1043fe304e46148fa13c"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example erase the 64k block  <br /></td></tr>
 <tr class="separator:gae7cba4e0b22a1043fe304e46148fa13c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga7ade25a387b9d03ddecefd86fb328389"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga7ade25a387b9d03ddecefd86fb328389">w25qxx_advance_fast_read</a> (uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
-<tr class="memdesc:ga7ade25a387b9d03ddecefd86fb328389"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example read in the fast mode  <a href="group__w25qxx__example__driver.html#ga7ade25a387b9d03ddecefd86fb328389">More...</a><br /></td></tr>
+<tr class="memitem:ga7ade25a387b9d03ddecefd86fb328389" id="r_ga7ade25a387b9d03ddecefd86fb328389"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga7ade25a387b9d03ddecefd86fb328389">w25qxx_advance_fast_read</a> (uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
+<tr class="memdesc:ga7ade25a387b9d03ddecefd86fb328389"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example read in the fast mode  <br /></td></tr>
 <tr class="separator:ga7ade25a387b9d03ddecefd86fb328389"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga4c1be6979b4dc878d07ec86b8624c9d2"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga4c1be6979b4dc878d07ec86b8624c9d2">w25qxx_advance_get_status1</a> (uint8_t *status)</td></tr>
-<tr class="memdesc:ga4c1be6979b4dc878d07ec86b8624c9d2"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example get the status 1  <a href="group__w25qxx__example__driver.html#ga4c1be6979b4dc878d07ec86b8624c9d2">More...</a><br /></td></tr>
+<tr class="memitem:ga4c1be6979b4dc878d07ec86b8624c9d2" id="r_ga4c1be6979b4dc878d07ec86b8624c9d2"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga4c1be6979b4dc878d07ec86b8624c9d2">w25qxx_advance_get_status1</a> (uint8_t *status)</td></tr>
+<tr class="memdesc:ga4c1be6979b4dc878d07ec86b8624c9d2"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example get the status 1  <br /></td></tr>
 <tr class="separator:ga4c1be6979b4dc878d07ec86b8624c9d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf4736fff906c2f0c1dbed26b20847052"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#gaf4736fff906c2f0c1dbed26b20847052">w25qxx_advance_get_status2</a> (uint8_t *status)</td></tr>
-<tr class="memdesc:gaf4736fff906c2f0c1dbed26b20847052"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example get the status 2  <a href="group__w25qxx__example__driver.html#gaf4736fff906c2f0c1dbed26b20847052">More...</a><br /></td></tr>
+<tr class="memitem:gaf4736fff906c2f0c1dbed26b20847052" id="r_gaf4736fff906c2f0c1dbed26b20847052"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#gaf4736fff906c2f0c1dbed26b20847052">w25qxx_advance_get_status2</a> (uint8_t *status)</td></tr>
+<tr class="memdesc:gaf4736fff906c2f0c1dbed26b20847052"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example get the status 2  <br /></td></tr>
 <tr class="separator:gaf4736fff906c2f0c1dbed26b20847052"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga31bcd3d2cc68d2fc589685b5087bd8b3"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga31bcd3d2cc68d2fc589685b5087bd8b3">w25qxx_advance_get_status3</a> (uint8_t *status)</td></tr>
-<tr class="memdesc:ga31bcd3d2cc68d2fc589685b5087bd8b3"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example get the status 3  <a href="group__w25qxx__example__driver.html#ga31bcd3d2cc68d2fc589685b5087bd8b3">More...</a><br /></td></tr>
+<tr class="memitem:ga31bcd3d2cc68d2fc589685b5087bd8b3" id="r_ga31bcd3d2cc68d2fc589685b5087bd8b3"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga31bcd3d2cc68d2fc589685b5087bd8b3">w25qxx_advance_get_status3</a> (uint8_t *status)</td></tr>
+<tr class="memdesc:ga31bcd3d2cc68d2fc589685b5087bd8b3"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example get the status 3  <br /></td></tr>
 <tr class="separator:ga31bcd3d2cc68d2fc589685b5087bd8b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga5e4938b4575c417ae22fa82079459b1a"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga5e4938b4575c417ae22fa82079459b1a">w25qxx_advance_set_status1</a> (uint8_t status)</td></tr>
-<tr class="memdesc:ga5e4938b4575c417ae22fa82079459b1a"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example set the status 1  <a href="group__w25qxx__example__driver.html#ga5e4938b4575c417ae22fa82079459b1a">More...</a><br /></td></tr>
+<tr class="memitem:ga5e4938b4575c417ae22fa82079459b1a" id="r_ga5e4938b4575c417ae22fa82079459b1a"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga5e4938b4575c417ae22fa82079459b1a">w25qxx_advance_set_status1</a> (uint8_t status)</td></tr>
+<tr class="memdesc:ga5e4938b4575c417ae22fa82079459b1a"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example set the status 1  <br /></td></tr>
 <tr class="separator:ga5e4938b4575c417ae22fa82079459b1a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga9bc0e696b700d66f15b3605e10d33718"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga9bc0e696b700d66f15b3605e10d33718">w25qxx_advance_set_status2</a> (uint8_t status)</td></tr>
-<tr class="memdesc:ga9bc0e696b700d66f15b3605e10d33718"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example set the status 2  <a href="group__w25qxx__example__driver.html#ga9bc0e696b700d66f15b3605e10d33718">More...</a><br /></td></tr>
+<tr class="memitem:ga9bc0e696b700d66f15b3605e10d33718" id="r_ga9bc0e696b700d66f15b3605e10d33718"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga9bc0e696b700d66f15b3605e10d33718">w25qxx_advance_set_status2</a> (uint8_t status)</td></tr>
+<tr class="memdesc:ga9bc0e696b700d66f15b3605e10d33718"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example set the status 2  <br /></td></tr>
 <tr class="separator:ga9bc0e696b700d66f15b3605e10d33718"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab5c990ebd4874137b7d23f2b896d4601"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#gab5c990ebd4874137b7d23f2b896d4601">w25qxx_advance_set_status3</a> (uint8_t status)</td></tr>
-<tr class="memdesc:gab5c990ebd4874137b7d23f2b896d4601"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example set the status 3  <a href="group__w25qxx__example__driver.html#gab5c990ebd4874137b7d23f2b896d4601">More...</a><br /></td></tr>
+<tr class="memitem:gab5c990ebd4874137b7d23f2b896d4601" id="r_gab5c990ebd4874137b7d23f2b896d4601"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#gab5c990ebd4874137b7d23f2b896d4601">w25qxx_advance_set_status3</a> (uint8_t status)</td></tr>
+<tr class="memdesc:gab5c990ebd4874137b7d23f2b896d4601"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example set the status 3  <br /></td></tr>
 <tr class="separator:gab5c990ebd4874137b7d23f2b896d4601"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gacc7435a39b61c44f0ce16690d5da896b"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#gacc7435a39b61c44f0ce16690d5da896b">w25qxx_advance_get_get_jedec_id</a> (uint8_t *manufacturer, uint8_t device_id[2])</td></tr>
-<tr class="memdesc:gacc7435a39b61c44f0ce16690d5da896b"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example get the jedec id information  <a href="group__w25qxx__example__driver.html#gacc7435a39b61c44f0ce16690d5da896b">More...</a><br /></td></tr>
+<tr class="memitem:gacc7435a39b61c44f0ce16690d5da896b" id="r_gacc7435a39b61c44f0ce16690d5da896b"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#gacc7435a39b61c44f0ce16690d5da896b">w25qxx_advance_get_get_jedec_id</a> (uint8_t *manufacturer, uint8_t device_id[2])</td></tr>
+<tr class="memdesc:gacc7435a39b61c44f0ce16690d5da896b"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example get the jedec id information  <br /></td></tr>
 <tr class="separator:gacc7435a39b61c44f0ce16690d5da896b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga2cbcc018dc11a870d2e0fc3a8946b1d8"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga2cbcc018dc11a870d2e0fc3a8946b1d8">w25qxx_advance_global_block_lock</a> (void)</td></tr>
-<tr class="memdesc:ga2cbcc018dc11a870d2e0fc3a8946b1d8"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example global block lock  <a href="group__w25qxx__example__driver.html#ga2cbcc018dc11a870d2e0fc3a8946b1d8">More...</a><br /></td></tr>
+<tr class="memitem:ga2cbcc018dc11a870d2e0fc3a8946b1d8" id="r_ga2cbcc018dc11a870d2e0fc3a8946b1d8"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga2cbcc018dc11a870d2e0fc3a8946b1d8">w25qxx_advance_global_block_lock</a> (void)</td></tr>
+<tr class="memdesc:ga2cbcc018dc11a870d2e0fc3a8946b1d8"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example global block lock  <br /></td></tr>
 <tr class="separator:ga2cbcc018dc11a870d2e0fc3a8946b1d8"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga67c70da103511d1cff9274e61a08ce56"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga67c70da103511d1cff9274e61a08ce56">w25qxx_advance_global_block_unlock</a> (void)</td></tr>
-<tr class="memdesc:ga67c70da103511d1cff9274e61a08ce56"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example global block unlock  <a href="group__w25qxx__example__driver.html#ga67c70da103511d1cff9274e61a08ce56">More...</a><br /></td></tr>
+<tr class="memitem:ga67c70da103511d1cff9274e61a08ce56" id="r_ga67c70da103511d1cff9274e61a08ce56"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga67c70da103511d1cff9274e61a08ce56">w25qxx_advance_global_block_unlock</a> (void)</td></tr>
+<tr class="memdesc:ga67c70da103511d1cff9274e61a08ce56"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example global block unlock  <br /></td></tr>
 <tr class="separator:ga67c70da103511d1cff9274e61a08ce56"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa7af99e92b3e81f5b202575b55dc3a7c"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#gaa7af99e92b3e81f5b202575b55dc3a7c">w25qxx_advance_individual_block_lock</a> (uint32_t addr)</td></tr>
-<tr class="memdesc:gaa7af99e92b3e81f5b202575b55dc3a7c"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example lock the individual block  <a href="group__w25qxx__example__driver.html#gaa7af99e92b3e81f5b202575b55dc3a7c">More...</a><br /></td></tr>
+<tr class="memitem:gaa7af99e92b3e81f5b202575b55dc3a7c" id="r_gaa7af99e92b3e81f5b202575b55dc3a7c"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#gaa7af99e92b3e81f5b202575b55dc3a7c">w25qxx_advance_individual_block_lock</a> (uint32_t addr)</td></tr>
+<tr class="memdesc:gaa7af99e92b3e81f5b202575b55dc3a7c"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example lock the individual block  <br /></td></tr>
 <tr class="separator:gaa7af99e92b3e81f5b202575b55dc3a7c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga66726fc451c7804e8fec6eb46a6a77d6"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga66726fc451c7804e8fec6eb46a6a77d6">w25qxx_advance_individual_block_unlock</a> (uint32_t addr)</td></tr>
-<tr class="memdesc:ga66726fc451c7804e8fec6eb46a6a77d6"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example unlock the individual block  <a href="group__w25qxx__example__driver.html#ga66726fc451c7804e8fec6eb46a6a77d6">More...</a><br /></td></tr>
+<tr class="memitem:ga66726fc451c7804e8fec6eb46a6a77d6" id="r_ga66726fc451c7804e8fec6eb46a6a77d6"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga66726fc451c7804e8fec6eb46a6a77d6">w25qxx_advance_individual_block_unlock</a> (uint32_t addr)</td></tr>
+<tr class="memdesc:ga66726fc451c7804e8fec6eb46a6a77d6"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example unlock the individual block  <br /></td></tr>
 <tr class="separator:ga66726fc451c7804e8fec6eb46a6a77d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac1773fe914a01825ca28346205601036"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#gac1773fe914a01825ca28346205601036">w25qxx_advance_read_block_lock</a> (uint32_t addr, uint8_t *value)</td></tr>
-<tr class="memdesc:gac1773fe914a01825ca28346205601036"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example read the block lock  <a href="group__w25qxx__example__driver.html#gac1773fe914a01825ca28346205601036">More...</a><br /></td></tr>
+<tr class="memitem:gac1773fe914a01825ca28346205601036" id="r_gac1773fe914a01825ca28346205601036"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#gac1773fe914a01825ca28346205601036">w25qxx_advance_read_block_lock</a> (uint32_t addr, uint8_t *value)</td></tr>
+<tr class="memdesc:gac1773fe914a01825ca28346205601036"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example read the block lock  <br /></td></tr>
 <tr class="separator:gac1773fe914a01825ca28346205601036"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga0f65053ad28443f19ed73dbc3412b5b2"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga0f65053ad28443f19ed73dbc3412b5b2">w25qxx_advance_reset</a> (void)</td></tr>
-<tr class="memdesc:ga0f65053ad28443f19ed73dbc3412b5b2"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example reset  <a href="group__w25qxx__example__driver.html#ga0f65053ad28443f19ed73dbc3412b5b2">More...</a><br /></td></tr>
+<tr class="memitem:ga0f65053ad28443f19ed73dbc3412b5b2" id="r_ga0f65053ad28443f19ed73dbc3412b5b2"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga0f65053ad28443f19ed73dbc3412b5b2">w25qxx_advance_reset</a> (void)</td></tr>
+<tr class="memdesc:ga0f65053ad28443f19ed73dbc3412b5b2"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example reset  <br /></td></tr>
 <tr class="separator:ga0f65053ad28443f19ed73dbc3412b5b2"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac1c7f320706dd6d6d937da75b8a4da93"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#gac1c7f320706dd6d6d937da75b8a4da93">w25qxx_advance_only_spi_read</a> (uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
-<tr class="memdesc:gac1c7f320706dd6d6d937da75b8a4da93"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example read only in the spi interface  <a href="group__w25qxx__example__driver.html#gac1c7f320706dd6d6d937da75b8a4da93">More...</a><br /></td></tr>
+<tr class="memitem:gac1c7f320706dd6d6d937da75b8a4da93" id="r_gac1c7f320706dd6d6d937da75b8a4da93"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#gac1c7f320706dd6d6d937da75b8a4da93">w25qxx_advance_only_spi_read</a> (uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
+<tr class="memdesc:gac1c7f320706dd6d6d937da75b8a4da93"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example read only in the spi interface  <br /></td></tr>
 <tr class="separator:gac1c7f320706dd6d6d937da75b8a4da93"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga364d891407cf323d3686d36ad6357604"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga364d891407cf323d3686d36ad6357604">w25qxx_advance_only_spi_fast_read_dual_output</a> (uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
-<tr class="memdesc:ga364d891407cf323d3686d36ad6357604"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example fast read only in the spi dual output interface  <a href="group__w25qxx__example__driver.html#ga364d891407cf323d3686d36ad6357604">More...</a><br /></td></tr>
+<tr class="memitem:ga364d891407cf323d3686d36ad6357604" id="r_ga364d891407cf323d3686d36ad6357604"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga364d891407cf323d3686d36ad6357604">w25qxx_advance_only_spi_fast_read_dual_output</a> (uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
+<tr class="memdesc:ga364d891407cf323d3686d36ad6357604"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example fast read only in the spi dual output interface  <br /></td></tr>
 <tr class="separator:ga364d891407cf323d3686d36ad6357604"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf5f978c432de7d6adaf41cd256724a01"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#gaf5f978c432de7d6adaf41cd256724a01">w25qxx_advance_only_spi_fast_read_quad_output</a> (uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
-<tr class="memdesc:gaf5f978c432de7d6adaf41cd256724a01"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example fast read only in the spi quad output interface  <a href="group__w25qxx__example__driver.html#gaf5f978c432de7d6adaf41cd256724a01">More...</a><br /></td></tr>
+<tr class="memitem:gaf5f978c432de7d6adaf41cd256724a01" id="r_gaf5f978c432de7d6adaf41cd256724a01"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#gaf5f978c432de7d6adaf41cd256724a01">w25qxx_advance_only_spi_fast_read_quad_output</a> (uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
+<tr class="memdesc:gaf5f978c432de7d6adaf41cd256724a01"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example fast read only in the spi quad output interface  <br /></td></tr>
 <tr class="separator:gaf5f978c432de7d6adaf41cd256724a01"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga4bbaf1a989fae25d16d07edb1e38ca4f"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga4bbaf1a989fae25d16d07edb1e38ca4f">w25qxx_advance_only_spi_fast_read_dual_io</a> (uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
-<tr class="memdesc:ga4bbaf1a989fae25d16d07edb1e38ca4f"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example fast read only in the spi dual io interface  <a href="group__w25qxx__example__driver.html#ga4bbaf1a989fae25d16d07edb1e38ca4f">More...</a><br /></td></tr>
+<tr class="memitem:ga4bbaf1a989fae25d16d07edb1e38ca4f" id="r_ga4bbaf1a989fae25d16d07edb1e38ca4f"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga4bbaf1a989fae25d16d07edb1e38ca4f">w25qxx_advance_only_spi_fast_read_dual_io</a> (uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
+<tr class="memdesc:ga4bbaf1a989fae25d16d07edb1e38ca4f"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example fast read only in the spi dual io interface  <br /></td></tr>
 <tr class="separator:ga4bbaf1a989fae25d16d07edb1e38ca4f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga395add1fa33f4f70d0ba52b38842dbdb"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga395add1fa33f4f70d0ba52b38842dbdb">w25qxx_advance_only_spi_fast_read_quad_io</a> (uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
-<tr class="memdesc:ga395add1fa33f4f70d0ba52b38842dbdb"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example fast read only in the spi quad io interface  <a href="group__w25qxx__example__driver.html#ga395add1fa33f4f70d0ba52b38842dbdb">More...</a><br /></td></tr>
+<tr class="memitem:ga395add1fa33f4f70d0ba52b38842dbdb" id="r_ga395add1fa33f4f70d0ba52b38842dbdb"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga395add1fa33f4f70d0ba52b38842dbdb">w25qxx_advance_only_spi_fast_read_quad_io</a> (uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
+<tr class="memdesc:ga395add1fa33f4f70d0ba52b38842dbdb"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example fast read only in the spi quad io interface  <br /></td></tr>
 <tr class="separator:ga395add1fa33f4f70d0ba52b38842dbdb"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaca6b4c6ea32dd96a4ae8714e2862d67a"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#gaca6b4c6ea32dd96a4ae8714e2862d67a">w25qxx_advance_only_spi_word_read_quad_io</a> (uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
-<tr class="memdesc:gaca6b4c6ea32dd96a4ae8714e2862d67a"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example word read only in the spi quad io interface  <a href="group__w25qxx__example__driver.html#gaca6b4c6ea32dd96a4ae8714e2862d67a">More...</a><br /></td></tr>
+<tr class="memitem:gaca6b4c6ea32dd96a4ae8714e2862d67a" id="r_gaca6b4c6ea32dd96a4ae8714e2862d67a"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#gaca6b4c6ea32dd96a4ae8714e2862d67a">w25qxx_advance_only_spi_word_read_quad_io</a> (uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
+<tr class="memdesc:gaca6b4c6ea32dd96a4ae8714e2862d67a"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example word read only in the spi quad io interface  <br /></td></tr>
 <tr class="separator:gaca6b4c6ea32dd96a4ae8714e2862d67a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga825a567c535236d7d18ffccf07df59e9"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga825a567c535236d7d18ffccf07df59e9">w25qxx_advance_only_spi_octal_word_read_quad_io</a> (uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
-<tr class="memdesc:ga825a567c535236d7d18ffccf07df59e9"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example octal word read only in the spi quad io interface  <a href="group__w25qxx__example__driver.html#ga825a567c535236d7d18ffccf07df59e9">More...</a><br /></td></tr>
+<tr class="memitem:ga825a567c535236d7d18ffccf07df59e9" id="r_ga825a567c535236d7d18ffccf07df59e9"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga825a567c535236d7d18ffccf07df59e9">w25qxx_advance_only_spi_octal_word_read_quad_io</a> (uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
+<tr class="memdesc:ga825a567c535236d7d18ffccf07df59e9"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example octal word read only in the spi quad io interface  <br /></td></tr>
 <tr class="separator:ga825a567c535236d7d18ffccf07df59e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad243655eb738e44c50e6079c983fd782"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#gad243655eb738e44c50e6079c983fd782">w25qxx_advance_only_spi_page_program_quad_input</a> (uint32_t addr, uint8_t *data, uint16_t len)</td></tr>
-<tr class="memdesc:gad243655eb738e44c50e6079c983fd782"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example quad page program only in the spi quad input interface  <a href="group__w25qxx__example__driver.html#gad243655eb738e44c50e6079c983fd782">More...</a><br /></td></tr>
+<tr class="memitem:gad243655eb738e44c50e6079c983fd782" id="r_gad243655eb738e44c50e6079c983fd782"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#gad243655eb738e44c50e6079c983fd782">w25qxx_advance_only_spi_page_program_quad_input</a> (uint32_t addr, uint8_t *data, uint16_t len)</td></tr>
+<tr class="memdesc:gad243655eb738e44c50e6079c983fd782"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example quad page program only in the spi quad input interface  <br /></td></tr>
 <tr class="separator:gad243655eb738e44c50e6079c983fd782"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac0d9e08a37ee37563c8dbb501608a668"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#gac0d9e08a37ee37563c8dbb501608a668">w25qxx_advance_only_spi_get_manufacturer_device_id_dual_io</a> (uint8_t *manufacturer, uint8_t *device_id)</td></tr>
-<tr class="memdesc:gac0d9e08a37ee37563c8dbb501608a668"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example get the manufacturer &amp;&amp; device id information only in the spi dual io interface  <a href="group__w25qxx__example__driver.html#gac0d9e08a37ee37563c8dbb501608a668">More...</a><br /></td></tr>
+<tr class="memitem:gac0d9e08a37ee37563c8dbb501608a668" id="r_gac0d9e08a37ee37563c8dbb501608a668"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#gac0d9e08a37ee37563c8dbb501608a668">w25qxx_advance_only_spi_get_manufacturer_device_id_dual_io</a> (uint8_t *manufacturer, uint8_t *device_id)</td></tr>
+<tr class="memdesc:gac0d9e08a37ee37563c8dbb501608a668"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example get the manufacturer &amp;&amp; device id information only in the spi dual io interface  <br /></td></tr>
 <tr class="separator:gac0d9e08a37ee37563c8dbb501608a668"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6142b5a1e8602e2990dec34015812615"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga6142b5a1e8602e2990dec34015812615">w25qxx_advance_only_spi_get_manufacturer_device_id_quad_io</a> (uint8_t *manufacturer, uint8_t *device_id)</td></tr>
-<tr class="memdesc:ga6142b5a1e8602e2990dec34015812615"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example get the manufacturer &amp;&amp; device id information only in the spi quad io interface  <a href="group__w25qxx__example__driver.html#ga6142b5a1e8602e2990dec34015812615">More...</a><br /></td></tr>
+<tr class="memitem:ga6142b5a1e8602e2990dec34015812615" id="r_ga6142b5a1e8602e2990dec34015812615"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga6142b5a1e8602e2990dec34015812615">w25qxx_advance_only_spi_get_manufacturer_device_id_quad_io</a> (uint8_t *manufacturer, uint8_t *device_id)</td></tr>
+<tr class="memdesc:ga6142b5a1e8602e2990dec34015812615"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example get the manufacturer &amp;&amp; device id information only in the spi quad io interface  <br /></td></tr>
 <tr class="separator:ga6142b5a1e8602e2990dec34015812615"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga374d35b73fa61d5f7464c3effdae1d57"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga374d35b73fa61d5f7464c3effdae1d57">w25qxx_advance_only_spi_get_unique_id</a> (uint8_t id[8])</td></tr>
-<tr class="memdesc:ga374d35b73fa61d5f7464c3effdae1d57"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example get the unique id only in the spi interface  <a href="group__w25qxx__example__driver.html#ga374d35b73fa61d5f7464c3effdae1d57">More...</a><br /></td></tr>
+<tr class="memitem:ga374d35b73fa61d5f7464c3effdae1d57" id="r_ga374d35b73fa61d5f7464c3effdae1d57"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga374d35b73fa61d5f7464c3effdae1d57">w25qxx_advance_only_spi_get_unique_id</a> (uint8_t id[8])</td></tr>
+<tr class="memdesc:ga374d35b73fa61d5f7464c3effdae1d57"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example get the unique id only in the spi interface  <br /></td></tr>
 <tr class="separator:ga374d35b73fa61d5f7464c3effdae1d57"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga9b1854e0ae52f57523bc2fa7cc0656df"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga9b1854e0ae52f57523bc2fa7cc0656df">w25qxx_advance_only_spi_get_sfdp</a> (uint8_t sfdp[256])</td></tr>
-<tr class="memdesc:ga9b1854e0ae52f57523bc2fa7cc0656df"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example get the sfdp only in the spi interface  <a href="group__w25qxx__example__driver.html#ga9b1854e0ae52f57523bc2fa7cc0656df">More...</a><br /></td></tr>
+<tr class="memitem:ga9b1854e0ae52f57523bc2fa7cc0656df" id="r_ga9b1854e0ae52f57523bc2fa7cc0656df"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga9b1854e0ae52f57523bc2fa7cc0656df">w25qxx_advance_only_spi_get_sfdp</a> (uint8_t sfdp[256])</td></tr>
+<tr class="memdesc:ga9b1854e0ae52f57523bc2fa7cc0656df"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example get the sfdp only in the spi interface  <br /></td></tr>
 <tr class="separator:ga9b1854e0ae52f57523bc2fa7cc0656df"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa6c5f97106e769ba071973cc2e782ad4"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#gaa6c5f97106e769ba071973cc2e782ad4">w25qxx_advance_only_spi_write_security_register</a> (<a class="el" href="group__w25qxx__advance__driver.html#ga81ddc7d4b9f4f124163beea19cc33c7e">w25qxx_security_register_t</a> num, uint8_t data[256])</td></tr>
-<tr class="memdesc:gaa6c5f97106e769ba071973cc2e782ad4"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example write the security register only in the spi interface  <a href="group__w25qxx__example__driver.html#gaa6c5f97106e769ba071973cc2e782ad4">More...</a><br /></td></tr>
+<tr class="memitem:gaa6c5f97106e769ba071973cc2e782ad4" id="r_gaa6c5f97106e769ba071973cc2e782ad4"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#gaa6c5f97106e769ba071973cc2e782ad4">w25qxx_advance_only_spi_write_security_register</a> (<a class="el" href="group__w25qxx__advance__driver.html#ga81ddc7d4b9f4f124163beea19cc33c7e">w25qxx_security_register_t</a> num, uint8_t data[256])</td></tr>
+<tr class="memdesc:gaa6c5f97106e769ba071973cc2e782ad4"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example write the security register only in the spi interface  <br /></td></tr>
 <tr class="separator:gaa6c5f97106e769ba071973cc2e782ad4"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga02652a58ee418b432cf77505809d7d42"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga02652a58ee418b432cf77505809d7d42">w25qxx_advance_only_spi_read_security_register</a> (<a class="el" href="group__w25qxx__advance__driver.html#ga81ddc7d4b9f4f124163beea19cc33c7e">w25qxx_security_register_t</a> num, uint8_t data[256])</td></tr>
-<tr class="memdesc:ga02652a58ee418b432cf77505809d7d42"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example read the security register only in the spi interface  <a href="group__w25qxx__example__driver.html#ga02652a58ee418b432cf77505809d7d42">More...</a><br /></td></tr>
+<tr class="memitem:ga02652a58ee418b432cf77505809d7d42" id="r_ga02652a58ee418b432cf77505809d7d42"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga02652a58ee418b432cf77505809d7d42">w25qxx_advance_only_spi_read_security_register</a> (<a class="el" href="group__w25qxx__advance__driver.html#ga81ddc7d4b9f4f124163beea19cc33c7e">w25qxx_security_register_t</a> num, uint8_t data[256])</td></tr>
+<tr class="memdesc:ga02652a58ee418b432cf77505809d7d42"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example read the security register only in the spi interface  <br /></td></tr>
 <tr class="separator:ga02652a58ee418b432cf77505809d7d42"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga16411577fcb794f7485912f5db1bdde9"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga16411577fcb794f7485912f5db1bdde9">w25qxx_advance_only_spi_set_burst_with_wrap</a> (<a class="el" href="group__w25qxx__advance__driver.html#ga94bbae2bf8906903e8dc2a28c490723d">w25qxx_burst_wrap_t</a> wrap)</td></tr>
-<tr class="memdesc:ga16411577fcb794f7485912f5db1bdde9"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example set the burst with wrap only in the spi interface  <a href="group__w25qxx__example__driver.html#ga16411577fcb794f7485912f5db1bdde9">More...</a><br /></td></tr>
+<tr class="memitem:ga16411577fcb794f7485912f5db1bdde9" id="r_ga16411577fcb794f7485912f5db1bdde9"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga16411577fcb794f7485912f5db1bdde9">w25qxx_advance_only_spi_set_burst_with_wrap</a> (<a class="el" href="group__w25qxx__advance__driver.html#ga94bbae2bf8906903e8dc2a28c490723d">w25qxx_burst_wrap_t</a> wrap)</td></tr>
+<tr class="memdesc:ga16411577fcb794f7485912f5db1bdde9"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example set the burst with wrap only in the spi interface  <br /></td></tr>
 <tr class="separator:ga16411577fcb794f7485912f5db1bdde9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gace2a5b7acd9798cfcaa2b5eb2f18e1d1"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#gace2a5b7acd9798cfcaa2b5eb2f18e1d1">w25qxx_advance_only_qspi_set_read_parameters</a> (<a class="el" href="group__w25qxx__advance__driver.html#ga6ff284154302248f00db269146545443">w25qxx_qspi_read_dummy_t</a> dummy, <a class="el" href="group__w25qxx__advance__driver.html#ga2fd3023819e1aebe089a4a72eb136da3">w25qxx_qspi_read_wrap_length_t</a> length)</td></tr>
-<tr class="memdesc:gace2a5b7acd9798cfcaa2b5eb2f18e1d1"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example set the read parameters only in the qspi interface  <a href="group__w25qxx__example__driver.html#gace2a5b7acd9798cfcaa2b5eb2f18e1d1">More...</a><br /></td></tr>
+<tr class="memitem:gace2a5b7acd9798cfcaa2b5eb2f18e1d1" id="r_gace2a5b7acd9798cfcaa2b5eb2f18e1d1"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#gace2a5b7acd9798cfcaa2b5eb2f18e1d1">w25qxx_advance_only_qspi_set_read_parameters</a> (<a class="el" href="group__w25qxx__advance__driver.html#ga6ff284154302248f00db269146545443">w25qxx_qspi_read_dummy_t</a> dummy, <a class="el" href="group__w25qxx__advance__driver.html#ga2fd3023819e1aebe089a4a72eb136da3">w25qxx_qspi_read_wrap_length_t</a> length)</td></tr>
+<tr class="memdesc:gace2a5b7acd9798cfcaa2b5eb2f18e1d1"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example set the read parameters only in the qspi interface  <br /></td></tr>
 <tr class="separator:gace2a5b7acd9798cfcaa2b5eb2f18e1d1"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
@@ -251,7 +257,7 @@ <h3>history</h3>
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
     <li class="navelem"><a class="el" href="dir_cfafba98a580ce4b62f8a6fa96d7cbb0.html">example</a></li><li class="navelem"><a class="el" href="driver__w25qxx__advance_8h.html">driver_w25qxx_advance.h</a></li>
-    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
+    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/driver__w25qxx__advance_8h_source.html b/doc/html/driver__w25qxx__advance_8h_source.html
index 2a2cfcc..f6da107 100644
--- a/doc/html/driver__w25qxx__advance_8h_source.html
+++ b/doc/html/driver__w25qxx__advance_8h_source.html
@@ -1,9 +1,9 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.8"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>LibDriver W25QXX: example/driver_w25qxx_advance.h Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -23,11 +23,10 @@
 <div id="titlearea">
 <table cellspacing="0" cellpadding="0">
  <tbody>
- <tr style="height: 56px;">
+ <tr id="projectrow">
   <td id="projectlogo"><img alt="Logo" src="doxygen.png"/></td>
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">LibDriver W25QXX
-   &#160;<span id="projectnumber">1.0.0</span>
+  <td id="projectalign">
+   <div id="projectname">LibDriver W25QXX<span id="projectnumber">&#160;1.0.0</span>
    </div>
    <div id="projectbrief">W25QXX full function driver</div>
   </td>
@@ -36,22 +35,28 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.8 -->
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search/",'.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
 <script type="text/javascript" src="menu.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(function() {
   initMenu('',true,false,'search.php','Search');
   $(document).ready(function() { init_search(); });
 });
-/* @license-end */</script>
+/* @license-end */
+</script>
 <div id="main-nav"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(document).ready(function() { init_codefold(0); });
+/* @license-end */
+</script>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -64,7 +69,7 @@
   </div>
 </div>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(document).ready(function(){initNavTree('driver__w25qxx__advance_8h_source.html',''); initResizable(); });
 /* @license-end */
 </script>
@@ -78,172 +83,178 @@
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
 </div>
 
 <div class="header">
-  <div class="headertitle">
-<div class="title">driver_w25qxx_advance.h</div>  </div>
+  <div class="headertitle"><div class="title">driver_w25qxx_advance.h</div></div>
 </div><!--header-->
 <div class="contents">
-<a href="driver__w25qxx__advance_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160; </div>
-<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="preprocessor">#ifndef DRIVER_W25QXX_ADVANCE_H</span></div>
-<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;<span class="preprocessor">#define DRIVER_W25QXX_ADVANCE_H</span></div>
-<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160; </div>
-<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="driver__w25qxx__interface_8h.html">driver_w25qxx_interface.h</a>&quot;</span></div>
-<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160; </div>
-<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;<span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span>{</div>
-<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160; </div>
-<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;uint8_t <a class="code" href="group__w25qxx__example__driver.html#ga413b420bc199d09ce5cafee4a4debb28">w25qxx_advance_init</a>(<a class="code" href="group__w25qxx__basic__driver.html#ga6cb4e5164464df549201dd96cb7a58b1">w25qxx_type_t</a> type, <a class="code" href="group__w25qxx__basic__driver.html#gacbf327a42336baf10713a1796ff4f2fe">w25qxx_interface_t</a> interface, <a class="code" href="group__w25qxx__basic__driver.html#gafb2690946f5baf4be6f3a63dde5491fb">w25qxx_bool_t</a> dual_quad_spi_enable);</div>
-<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160; </div>
-<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;uint8_t <a class="code" href="group__w25qxx__example__driver.html#gaf390bbb2c4140f49d25822d963ead722">w25qxx_advance_deinit</a>(<span class="keywordtype">void</span>);</div>
-<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160; </div>
-<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;uint8_t <a class="code" href="group__w25qxx__example__driver.html#ga5599de31797633ae75a63bcd5a8f4736">w25qxx_advance_power_down</a>(<span class="keywordtype">void</span>);</div>
-<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160; </div>
-<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;uint8_t <a class="code" href="group__w25qxx__example__driver.html#ga8a57e2d056d452abc14b0a08d4223251">w25qxx_advance_wake_up</a>(<span class="keywordtype">void</span>);</div>
-<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160; </div>
-<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;uint8_t <a class="code" href="group__w25qxx__example__driver.html#ga15cb243f227ef8d897ef3208b622bded">w25qxx_advance_chip_erase</a>(<span class="keywordtype">void</span>);</div>
-<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160; </div>
-<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;uint8_t <a class="code" href="group__w25qxx__example__driver.html#ga0f49d960f8b6c6498ab293b369ffc389">w25qxx_advance_get_id</a>(uint8_t *manufacturer, uint8_t *device_id);</div>
-<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160; </div>
-<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;uint8_t <a class="code" href="group__w25qxx__example__driver.html#ga63f4e1dce2ef7c7de56461524fd22d04">w25qxx_advance_write</a>(uint32_t addr, uint8_t *data, uint32_t len);</div>
-<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160; </div>
-<div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;uint8_t <a class="code" href="group__w25qxx__example__driver.html#ga013a389763200b54daaa345adf9329dc">w25qxx_advance_read</a>(uint32_t addr, uint8_t *data, uint32_t len);</div>
-<div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160; </div>
-<div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;uint8_t <a class="code" href="group__w25qxx__example__driver.html#ga39ff13988a3d451231cec3260c13a4cd">w25qxx_advance_page_program</a>(uint32_t addr, uint8_t *data, uint16_t len);</div>
-<div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160; </div>
-<div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;uint8_t <a class="code" href="group__w25qxx__example__driver.html#ga9325acc424c95624f15e11631082201d">w25qxx_advance_sector_erase_4k</a>(uint32_t addr);</div>
-<div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160; </div>
-<div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;uint8_t <a class="code" href="group__w25qxx__example__driver.html#gaee04edb9e97785e423dffe14a1cad780">w25qxx_advance_block_erase_32k</a>(uint32_t addr);</div>
-<div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160; </div>
-<div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;uint8_t <a class="code" href="group__w25qxx__example__driver.html#gae7cba4e0b22a1043fe304e46148fa13c">w25qxx_advance_block_erase_64k</a>(uint32_t addr);</div>
-<div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160; </div>
-<div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;uint8_t <a class="code" href="group__w25qxx__example__driver.html#ga7ade25a387b9d03ddecefd86fb328389">w25qxx_advance_fast_read</a>(uint32_t addr, uint8_t *data, uint32_t len);</div>
-<div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160; </div>
-<div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;uint8_t <a class="code" href="group__w25qxx__example__driver.html#ga4c1be6979b4dc878d07ec86b8624c9d2">w25qxx_advance_get_status1</a>(uint8_t *status);</div>
-<div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160; </div>
-<div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;uint8_t <a class="code" href="group__w25qxx__example__driver.html#gaf4736fff906c2f0c1dbed26b20847052">w25qxx_advance_get_status2</a>(uint8_t *status);</div>
-<div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160; </div>
-<div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;uint8_t <a class="code" href="group__w25qxx__example__driver.html#ga31bcd3d2cc68d2fc589685b5087bd8b3">w25qxx_advance_get_status3</a>(uint8_t *status);</div>
-<div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160; </div>
-<div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;uint8_t <a class="code" href="group__w25qxx__example__driver.html#ga5e4938b4575c417ae22fa82079459b1a">w25qxx_advance_set_status1</a>(uint8_t status);</div>
-<div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160; </div>
-<div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;uint8_t <a class="code" href="group__w25qxx__example__driver.html#ga9bc0e696b700d66f15b3605e10d33718">w25qxx_advance_set_status2</a>(uint8_t status);</div>
-<div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160; </div>
-<div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160;uint8_t <a class="code" href="group__w25qxx__example__driver.html#gab5c990ebd4874137b7d23f2b896d4601">w25qxx_advance_set_status3</a>(uint8_t status);</div>
-<div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160; </div>
-<div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160;uint8_t <a class="code" href="group__w25qxx__example__driver.html#gacc7435a39b61c44f0ce16690d5da896b">w25qxx_advance_get_get_jedec_id</a>(uint8_t *manufacturer, uint8_t device_id[2]);</div>
-<div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160; </div>
-<div class="line"><a name="l00266"></a><span class="lineno">  266</span>&#160;uint8_t <a class="code" href="group__w25qxx__example__driver.html#ga2cbcc018dc11a870d2e0fc3a8946b1d8">w25qxx_advance_global_block_lock</a>(<span class="keywordtype">void</span>);</div>
-<div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160; </div>
-<div class="line"><a name="l00275"></a><span class="lineno">  275</span>&#160;uint8_t <a class="code" href="group__w25qxx__example__driver.html#ga67c70da103511d1cff9274e61a08ce56">w25qxx_advance_global_block_unlock</a>(<span class="keywordtype">void</span>);</div>
-<div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160; </div>
-<div class="line"><a name="l00285"></a><span class="lineno">  285</span>&#160;uint8_t <a class="code" href="group__w25qxx__example__driver.html#gaa7af99e92b3e81f5b202575b55dc3a7c">w25qxx_advance_individual_block_lock</a>(uint32_t addr);</div>
-<div class="line"><a name="l00286"></a><span class="lineno">  286</span>&#160; </div>
-<div class="line"><a name="l00295"></a><span class="lineno">  295</span>&#160;uint8_t <a class="code" href="group__w25qxx__example__driver.html#ga66726fc451c7804e8fec6eb46a6a77d6">w25qxx_advance_individual_block_unlock</a>(uint32_t addr);</div>
-<div class="line"><a name="l00296"></a><span class="lineno">  296</span>&#160; </div>
-<div class="line"><a name="l00306"></a><span class="lineno">  306</span>&#160;uint8_t <a class="code" href="group__w25qxx__example__driver.html#gac1773fe914a01825ca28346205601036">w25qxx_advance_read_block_lock</a>(uint32_t addr, uint8_t *value);</div>
-<div class="line"><a name="l00307"></a><span class="lineno">  307</span>&#160; </div>
-<div class="line"><a name="l00315"></a><span class="lineno">  315</span>&#160;uint8_t <a class="code" href="group__w25qxx__example__driver.html#ga0f65053ad28443f19ed73dbc3412b5b2">w25qxx_advance_reset</a>(<span class="keywordtype">void</span>);</div>
-<div class="line"><a name="l00316"></a><span class="lineno">  316</span>&#160; </div>
-<div class="line"><a name="l00327"></a><span class="lineno">  327</span>&#160;uint8_t <a class="code" href="group__w25qxx__example__driver.html#gac1c7f320706dd6d6d937da75b8a4da93">w25qxx_advance_only_spi_read</a>(uint32_t addr, uint8_t *data, uint32_t len);</div>
-<div class="line"><a name="l00328"></a><span class="lineno">  328</span>&#160; </div>
-<div class="line"><a name="l00339"></a><span class="lineno">  339</span>&#160;uint8_t <a class="code" href="group__w25qxx__example__driver.html#ga364d891407cf323d3686d36ad6357604">w25qxx_advance_only_spi_fast_read_dual_output</a>(uint32_t addr, uint8_t *data, uint32_t len);</div>
-<div class="line"><a name="l00340"></a><span class="lineno">  340</span>&#160; </div>
-<div class="line"><a name="l00351"></a><span class="lineno">  351</span>&#160;uint8_t <a class="code" href="group__w25qxx__example__driver.html#gaf5f978c432de7d6adaf41cd256724a01">w25qxx_advance_only_spi_fast_read_quad_output</a>(uint32_t addr, uint8_t *data, uint32_t len);</div>
-<div class="line"><a name="l00352"></a><span class="lineno">  352</span>&#160; </div>
-<div class="line"><a name="l00363"></a><span class="lineno">  363</span>&#160;uint8_t <a class="code" href="group__w25qxx__example__driver.html#ga4bbaf1a989fae25d16d07edb1e38ca4f">w25qxx_advance_only_spi_fast_read_dual_io</a>(uint32_t addr, uint8_t *data, uint32_t len);</div>
-<div class="line"><a name="l00364"></a><span class="lineno">  364</span>&#160; </div>
-<div class="line"><a name="l00375"></a><span class="lineno">  375</span>&#160;uint8_t <a class="code" href="group__w25qxx__example__driver.html#ga395add1fa33f4f70d0ba52b38842dbdb">w25qxx_advance_only_spi_fast_read_quad_io</a>(uint32_t addr, uint8_t *data, uint32_t len);</div>
-<div class="line"><a name="l00376"></a><span class="lineno">  376</span>&#160; </div>
-<div class="line"><a name="l00387"></a><span class="lineno">  387</span>&#160;uint8_t <a class="code" href="group__w25qxx__example__driver.html#gaca6b4c6ea32dd96a4ae8714e2862d67a">w25qxx_advance_only_spi_word_read_quad_io</a>(uint32_t addr, uint8_t *data, uint32_t len);</div>
-<div class="line"><a name="l00388"></a><span class="lineno">  388</span>&#160; </div>
-<div class="line"><a name="l00399"></a><span class="lineno">  399</span>&#160;uint8_t <a class="code" href="group__w25qxx__example__driver.html#ga825a567c535236d7d18ffccf07df59e9">w25qxx_advance_only_spi_octal_word_read_quad_io</a>(uint32_t addr, uint8_t *data, uint32_t len);</div>
-<div class="line"><a name="l00400"></a><span class="lineno">  400</span>&#160; </div>
-<div class="line"><a name="l00411"></a><span class="lineno">  411</span>&#160;uint8_t <a class="code" href="group__w25qxx__example__driver.html#gad243655eb738e44c50e6079c983fd782">w25qxx_advance_only_spi_page_program_quad_input</a>(uint32_t addr, uint8_t *data, uint16_t len);</div>
-<div class="line"><a name="l00412"></a><span class="lineno">  412</span>&#160; </div>
-<div class="line"><a name="l00422"></a><span class="lineno">  422</span>&#160;uint8_t <a class="code" href="group__w25qxx__example__driver.html#gac0d9e08a37ee37563c8dbb501608a668">w25qxx_advance_only_spi_get_manufacturer_device_id_dual_io</a>(uint8_t *manufacturer, uint8_t *device_id);</div>
-<div class="line"><a name="l00423"></a><span class="lineno">  423</span>&#160; </div>
-<div class="line"><a name="l00433"></a><span class="lineno">  433</span>&#160;uint8_t <a class="code" href="group__w25qxx__example__driver.html#ga6142b5a1e8602e2990dec34015812615">w25qxx_advance_only_spi_get_manufacturer_device_id_quad_io</a>(uint8_t *manufacturer, uint8_t *device_id);</div>
-<div class="line"><a name="l00434"></a><span class="lineno">  434</span>&#160; </div>
-<div class="line"><a name="l00443"></a><span class="lineno">  443</span>&#160;uint8_t <a class="code" href="group__w25qxx__example__driver.html#ga374d35b73fa61d5f7464c3effdae1d57">w25qxx_advance_only_spi_get_unique_id</a>(uint8_t <span class="keywordtype">id</span>[8]);</div>
-<div class="line"><a name="l00444"></a><span class="lineno">  444</span>&#160; </div>
-<div class="line"><a name="l00453"></a><span class="lineno">  453</span>&#160;uint8_t <a class="code" href="group__w25qxx__example__driver.html#ga9b1854e0ae52f57523bc2fa7cc0656df">w25qxx_advance_only_spi_get_sfdp</a>(uint8_t sfdp[256]);</div>
-<div class="line"><a name="l00454"></a><span class="lineno">  454</span>&#160; </div>
-<div class="line"><a name="l00464"></a><span class="lineno">  464</span>&#160;uint8_t <a class="code" href="group__w25qxx__example__driver.html#gaa6c5f97106e769ba071973cc2e782ad4">w25qxx_advance_only_spi_write_security_register</a>(<a class="code" href="group__w25qxx__advance__driver.html#ga81ddc7d4b9f4f124163beea19cc33c7e">w25qxx_security_register_t</a> num, uint8_t data[256]);</div>
-<div class="line"><a name="l00465"></a><span class="lineno">  465</span>&#160; </div>
-<div class="line"><a name="l00475"></a><span class="lineno">  475</span>&#160;uint8_t <a class="code" href="group__w25qxx__example__driver.html#ga02652a58ee418b432cf77505809d7d42">w25qxx_advance_only_spi_read_security_register</a>(<a class="code" href="group__w25qxx__advance__driver.html#ga81ddc7d4b9f4f124163beea19cc33c7e">w25qxx_security_register_t</a> num, uint8_t data[256]);</div>
-<div class="line"><a name="l00476"></a><span class="lineno">  476</span>&#160; </div>
-<div class="line"><a name="l00485"></a><span class="lineno">  485</span>&#160;uint8_t <a class="code" href="group__w25qxx__example__driver.html#ga16411577fcb794f7485912f5db1bdde9">w25qxx_advance_only_spi_set_burst_with_wrap</a>(<a class="code" href="group__w25qxx__advance__driver.html#ga94bbae2bf8906903e8dc2a28c490723d">w25qxx_burst_wrap_t</a> wrap);</div>
-<div class="line"><a name="l00486"></a><span class="lineno">  486</span>&#160; </div>
-<div class="line"><a name="l00496"></a><span class="lineno">  496</span>&#160;uint8_t <a class="code" href="group__w25qxx__example__driver.html#gace2a5b7acd9798cfcaa2b5eb2f18e1d1">w25qxx_advance_only_qspi_set_read_parameters</a>(<a class="code" href="group__w25qxx__advance__driver.html#ga6ff284154302248f00db269146545443">w25qxx_qspi_read_dummy_t</a> dummy, <a class="code" href="group__w25qxx__advance__driver.html#ga2fd3023819e1aebe089a4a72eb136da3">w25qxx_qspi_read_wrap_length_t</a> length);</div>
-<div class="line"><a name="l00497"></a><span class="lineno">  497</span>&#160; </div>
-<div class="line"><a name="l00502"></a><span class="lineno">  502</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a name="l00503"></a><span class="lineno">  503</span>&#160;}</div>
-<div class="line"><a name="l00504"></a><span class="lineno">  504</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00505"></a><span class="lineno">  505</span>&#160; </div>
-<div class="line"><a name="l00506"></a><span class="lineno">  506</span>&#160;<span class="preprocessor">#endif</span></div>
+<a href="driver__w25qxx__advance_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno">    1</span> </div>
+<div class="line"><a id="l00037" name="l00037"></a><span class="lineno">   37</span><span class="preprocessor">#ifndef DRIVER_W25QXX_ADVANCE_H</span></div>
+<div class="line"><a id="l00038" name="l00038"></a><span class="lineno">   38</span><span class="preprocessor">#define DRIVER_W25QXX_ADVANCE_H</span></div>
+<div class="line"><a id="l00039" name="l00039"></a><span class="lineno">   39</span> </div>
+<div class="line"><a id="l00040" name="l00040"></a><span class="lineno">   40</span><span class="preprocessor">#include &quot;<a class="code" href="driver__w25qxx__interface_8h.html">driver_w25qxx_interface.h</a>&quot;</span></div>
+<div class="line"><a id="l00041" name="l00041"></a><span class="lineno">   41</span> </div>
+<div class="line"><a id="l00042" name="l00042"></a><span class="lineno">   42</span><span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a id="l00043" name="l00043"></a><span class="lineno">   43</span><span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span>{</div>
+<div class="line"><a id="l00044" name="l00044"></a><span class="lineno">   44</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l00045" name="l00045"></a><span class="lineno">   45</span> </div>
+<div class="line"><a id="l00061" name="l00061"></a><span class="lineno">   61</span>uint8_t <a class="code hl_function" href="group__w25qxx__example__driver.html#ga413b420bc199d09ce5cafee4a4debb28">w25qxx_advance_init</a>(<a class="code hl_enumeration" href="group__w25qxx__basic__driver.html#ga6cb4e5164464df549201dd96cb7a58b1">w25qxx_type_t</a> type, <a class="code hl_enumeration" href="group__w25qxx__basic__driver.html#gacbf327a42336baf10713a1796ff4f2fe">w25qxx_interface_t</a> interface, <a class="code hl_enumeration" href="group__w25qxx__basic__driver.html#gafb2690946f5baf4be6f3a63dde5491fb">w25qxx_bool_t</a> dual_quad_spi_enable);</div>
+<div class="line"><a id="l00062" name="l00062"></a><span class="lineno">   62</span> </div>
+<div class="line"><a id="l00070" name="l00070"></a><span class="lineno">   70</span>uint8_t <a class="code hl_function" href="group__w25qxx__example__driver.html#gaf390bbb2c4140f49d25822d963ead722">w25qxx_advance_deinit</a>(<span class="keywordtype">void</span>);</div>
+<div class="line"><a id="l00071" name="l00071"></a><span class="lineno">   71</span> </div>
+<div class="line"><a id="l00079" name="l00079"></a><span class="lineno">   79</span>uint8_t <a class="code hl_function" href="group__w25qxx__example__driver.html#ga5599de31797633ae75a63bcd5a8f4736">w25qxx_advance_power_down</a>(<span class="keywordtype">void</span>);</div>
+<div class="line"><a id="l00080" name="l00080"></a><span class="lineno">   80</span> </div>
+<div class="line"><a id="l00088" name="l00088"></a><span class="lineno">   88</span>uint8_t <a class="code hl_function" href="group__w25qxx__example__driver.html#ga8a57e2d056d452abc14b0a08d4223251">w25qxx_advance_wake_up</a>(<span class="keywordtype">void</span>);</div>
+<div class="line"><a id="l00089" name="l00089"></a><span class="lineno">   89</span> </div>
+<div class="line"><a id="l00097" name="l00097"></a><span class="lineno">   97</span>uint8_t <a class="code hl_function" href="group__w25qxx__example__driver.html#ga15cb243f227ef8d897ef3208b622bded">w25qxx_advance_chip_erase</a>(<span class="keywordtype">void</span>);</div>
+<div class="line"><a id="l00098" name="l00098"></a><span class="lineno">   98</span> </div>
+<div class="line"><a id="l00108" name="l00108"></a><span class="lineno">  108</span>uint8_t <a class="code hl_function" href="group__w25qxx__example__driver.html#ga0f49d960f8b6c6498ab293b369ffc389">w25qxx_advance_get_id</a>(uint8_t *manufacturer, uint8_t *device_id);</div>
+<div class="line"><a id="l00109" name="l00109"></a><span class="lineno">  109</span> </div>
+<div class="line"><a id="l00120" name="l00120"></a><span class="lineno">  120</span>uint8_t <a class="code hl_function" href="group__w25qxx__example__driver.html#ga63f4e1dce2ef7c7de56461524fd22d04">w25qxx_advance_write</a>(uint32_t addr, uint8_t *data, uint32_t len);</div>
+<div class="line"><a id="l00121" name="l00121"></a><span class="lineno">  121</span> </div>
+<div class="line"><a id="l00132" name="l00132"></a><span class="lineno">  132</span>uint8_t <a class="code hl_function" href="group__w25qxx__example__driver.html#ga013a389763200b54daaa345adf9329dc">w25qxx_advance_read</a>(uint32_t addr, uint8_t *data, uint32_t len);</div>
+<div class="line"><a id="l00133" name="l00133"></a><span class="lineno">  133</span> </div>
+<div class="line"><a id="l00144" name="l00144"></a><span class="lineno">  144</span>uint8_t <a class="code hl_function" href="group__w25qxx__example__driver.html#ga39ff13988a3d451231cec3260c13a4cd">w25qxx_advance_page_program</a>(uint32_t addr, uint8_t *data, uint16_t len);</div>
+<div class="line"><a id="l00145" name="l00145"></a><span class="lineno">  145</span> </div>
+<div class="line"><a id="l00154" name="l00154"></a><span class="lineno">  154</span>uint8_t <a class="code hl_function" href="group__w25qxx__example__driver.html#ga9325acc424c95624f15e11631082201d">w25qxx_advance_sector_erase_4k</a>(uint32_t addr);</div>
+<div class="line"><a id="l00155" name="l00155"></a><span class="lineno">  155</span> </div>
+<div class="line"><a id="l00164" name="l00164"></a><span class="lineno">  164</span>uint8_t <a class="code hl_function" href="group__w25qxx__example__driver.html#gaee04edb9e97785e423dffe14a1cad780">w25qxx_advance_block_erase_32k</a>(uint32_t addr);</div>
+<div class="line"><a id="l00165" name="l00165"></a><span class="lineno">  165</span> </div>
+<div class="line"><a id="l00174" name="l00174"></a><span class="lineno">  174</span>uint8_t <a class="code hl_function" href="group__w25qxx__example__driver.html#gae7cba4e0b22a1043fe304e46148fa13c">w25qxx_advance_block_erase_64k</a>(uint32_t addr);</div>
+<div class="line"><a id="l00175" name="l00175"></a><span class="lineno">  175</span> </div>
+<div class="line"><a id="l00186" name="l00186"></a><span class="lineno">  186</span>uint8_t <a class="code hl_function" href="group__w25qxx__example__driver.html#ga7ade25a387b9d03ddecefd86fb328389">w25qxx_advance_fast_read</a>(uint32_t addr, uint8_t *data, uint32_t len);</div>
+<div class="line"><a id="l00187" name="l00187"></a><span class="lineno">  187</span> </div>
+<div class="line"><a id="l00196" name="l00196"></a><span class="lineno">  196</span>uint8_t <a class="code hl_function" href="group__w25qxx__example__driver.html#ga4c1be6979b4dc878d07ec86b8624c9d2">w25qxx_advance_get_status1</a>(uint8_t *status);</div>
+<div class="line"><a id="l00197" name="l00197"></a><span class="lineno">  197</span> </div>
+<div class="line"><a id="l00206" name="l00206"></a><span class="lineno">  206</span>uint8_t <a class="code hl_function" href="group__w25qxx__example__driver.html#gaf4736fff906c2f0c1dbed26b20847052">w25qxx_advance_get_status2</a>(uint8_t *status);</div>
+<div class="line"><a id="l00207" name="l00207"></a><span class="lineno">  207</span> </div>
+<div class="line"><a id="l00216" name="l00216"></a><span class="lineno">  216</span>uint8_t <a class="code hl_function" href="group__w25qxx__example__driver.html#ga31bcd3d2cc68d2fc589685b5087bd8b3">w25qxx_advance_get_status3</a>(uint8_t *status);</div>
+<div class="line"><a id="l00217" name="l00217"></a><span class="lineno">  217</span> </div>
+<div class="line"><a id="l00226" name="l00226"></a><span class="lineno">  226</span>uint8_t <a class="code hl_function" href="group__w25qxx__example__driver.html#ga5e4938b4575c417ae22fa82079459b1a">w25qxx_advance_set_status1</a>(uint8_t status);</div>
+<div class="line"><a id="l00227" name="l00227"></a><span class="lineno">  227</span> </div>
+<div class="line"><a id="l00236" name="l00236"></a><span class="lineno">  236</span>uint8_t <a class="code hl_function" href="group__w25qxx__example__driver.html#ga9bc0e696b700d66f15b3605e10d33718">w25qxx_advance_set_status2</a>(uint8_t status);</div>
+<div class="line"><a id="l00237" name="l00237"></a><span class="lineno">  237</span> </div>
+<div class="line"><a id="l00246" name="l00246"></a><span class="lineno">  246</span>uint8_t <a class="code hl_function" href="group__w25qxx__example__driver.html#gab5c990ebd4874137b7d23f2b896d4601">w25qxx_advance_set_status3</a>(uint8_t status);</div>
+<div class="line"><a id="l00247" name="l00247"></a><span class="lineno">  247</span> </div>
+<div class="line"><a id="l00257" name="l00257"></a><span class="lineno">  257</span>uint8_t <a class="code hl_function" href="group__w25qxx__example__driver.html#gacc7435a39b61c44f0ce16690d5da896b">w25qxx_advance_get_get_jedec_id</a>(uint8_t *manufacturer, uint8_t device_id[2]);</div>
+<div class="line"><a id="l00258" name="l00258"></a><span class="lineno">  258</span> </div>
+<div class="line"><a id="l00266" name="l00266"></a><span class="lineno">  266</span>uint8_t <a class="code hl_function" href="group__w25qxx__example__driver.html#ga2cbcc018dc11a870d2e0fc3a8946b1d8">w25qxx_advance_global_block_lock</a>(<span class="keywordtype">void</span>);</div>
+<div class="line"><a id="l00267" name="l00267"></a><span class="lineno">  267</span> </div>
+<div class="line"><a id="l00275" name="l00275"></a><span class="lineno">  275</span>uint8_t <a class="code hl_function" href="group__w25qxx__example__driver.html#ga67c70da103511d1cff9274e61a08ce56">w25qxx_advance_global_block_unlock</a>(<span class="keywordtype">void</span>);</div>
+<div class="line"><a id="l00276" name="l00276"></a><span class="lineno">  276</span> </div>
+<div class="line"><a id="l00285" name="l00285"></a><span class="lineno">  285</span>uint8_t <a class="code hl_function" href="group__w25qxx__example__driver.html#gaa7af99e92b3e81f5b202575b55dc3a7c">w25qxx_advance_individual_block_lock</a>(uint32_t addr);</div>
+<div class="line"><a id="l00286" name="l00286"></a><span class="lineno">  286</span> </div>
+<div class="line"><a id="l00295" name="l00295"></a><span class="lineno">  295</span>uint8_t <a class="code hl_function" href="group__w25qxx__example__driver.html#ga66726fc451c7804e8fec6eb46a6a77d6">w25qxx_advance_individual_block_unlock</a>(uint32_t addr);</div>
+<div class="line"><a id="l00296" name="l00296"></a><span class="lineno">  296</span> </div>
+<div class="line"><a id="l00306" name="l00306"></a><span class="lineno">  306</span>uint8_t <a class="code hl_function" href="group__w25qxx__example__driver.html#gac1773fe914a01825ca28346205601036">w25qxx_advance_read_block_lock</a>(uint32_t addr, uint8_t *value);</div>
+<div class="line"><a id="l00307" name="l00307"></a><span class="lineno">  307</span> </div>
+<div class="line"><a id="l00315" name="l00315"></a><span class="lineno">  315</span>uint8_t <a class="code hl_function" href="group__w25qxx__example__driver.html#ga0f65053ad28443f19ed73dbc3412b5b2">w25qxx_advance_reset</a>(<span class="keywordtype">void</span>);</div>
+<div class="line"><a id="l00316" name="l00316"></a><span class="lineno">  316</span> </div>
+<div class="line"><a id="l00327" name="l00327"></a><span class="lineno">  327</span>uint8_t <a class="code hl_function" href="group__w25qxx__example__driver.html#gac1c7f320706dd6d6d937da75b8a4da93">w25qxx_advance_only_spi_read</a>(uint32_t addr, uint8_t *data, uint32_t len);</div>
+<div class="line"><a id="l00328" name="l00328"></a><span class="lineno">  328</span> </div>
+<div class="line"><a id="l00339" name="l00339"></a><span class="lineno">  339</span>uint8_t <a class="code hl_function" href="group__w25qxx__example__driver.html#ga364d891407cf323d3686d36ad6357604">w25qxx_advance_only_spi_fast_read_dual_output</a>(uint32_t addr, uint8_t *data, uint32_t len);</div>
+<div class="line"><a id="l00340" name="l00340"></a><span class="lineno">  340</span> </div>
+<div class="line"><a id="l00351" name="l00351"></a><span class="lineno">  351</span>uint8_t <a class="code hl_function" href="group__w25qxx__example__driver.html#gaf5f978c432de7d6adaf41cd256724a01">w25qxx_advance_only_spi_fast_read_quad_output</a>(uint32_t addr, uint8_t *data, uint32_t len);</div>
+<div class="line"><a id="l00352" name="l00352"></a><span class="lineno">  352</span> </div>
+<div class="line"><a id="l00363" name="l00363"></a><span class="lineno">  363</span>uint8_t <a class="code hl_function" href="group__w25qxx__example__driver.html#ga4bbaf1a989fae25d16d07edb1e38ca4f">w25qxx_advance_only_spi_fast_read_dual_io</a>(uint32_t addr, uint8_t *data, uint32_t len);</div>
+<div class="line"><a id="l00364" name="l00364"></a><span class="lineno">  364</span> </div>
+<div class="line"><a id="l00375" name="l00375"></a><span class="lineno">  375</span>uint8_t <a class="code hl_function" href="group__w25qxx__example__driver.html#ga395add1fa33f4f70d0ba52b38842dbdb">w25qxx_advance_only_spi_fast_read_quad_io</a>(uint32_t addr, uint8_t *data, uint32_t len);</div>
+<div class="line"><a id="l00376" name="l00376"></a><span class="lineno">  376</span> </div>
+<div class="line"><a id="l00387" name="l00387"></a><span class="lineno">  387</span>uint8_t <a class="code hl_function" href="group__w25qxx__example__driver.html#gaca6b4c6ea32dd96a4ae8714e2862d67a">w25qxx_advance_only_spi_word_read_quad_io</a>(uint32_t addr, uint8_t *data, uint32_t len);</div>
+<div class="line"><a id="l00388" name="l00388"></a><span class="lineno">  388</span> </div>
+<div class="line"><a id="l00399" name="l00399"></a><span class="lineno">  399</span>uint8_t <a class="code hl_function" href="group__w25qxx__example__driver.html#ga825a567c535236d7d18ffccf07df59e9">w25qxx_advance_only_spi_octal_word_read_quad_io</a>(uint32_t addr, uint8_t *data, uint32_t len);</div>
+<div class="line"><a id="l00400" name="l00400"></a><span class="lineno">  400</span> </div>
+<div class="line"><a id="l00411" name="l00411"></a><span class="lineno">  411</span>uint8_t <a class="code hl_function" href="group__w25qxx__example__driver.html#gad243655eb738e44c50e6079c983fd782">w25qxx_advance_only_spi_page_program_quad_input</a>(uint32_t addr, uint8_t *data, uint16_t len);</div>
+<div class="line"><a id="l00412" name="l00412"></a><span class="lineno">  412</span> </div>
+<div class="line"><a id="l00422" name="l00422"></a><span class="lineno">  422</span>uint8_t <a class="code hl_function" href="group__w25qxx__example__driver.html#gac0d9e08a37ee37563c8dbb501608a668">w25qxx_advance_only_spi_get_manufacturer_device_id_dual_io</a>(uint8_t *manufacturer, uint8_t *device_id);</div>
+<div class="line"><a id="l00423" name="l00423"></a><span class="lineno">  423</span> </div>
+<div class="line"><a id="l00433" name="l00433"></a><span class="lineno">  433</span>uint8_t <a class="code hl_function" href="group__w25qxx__example__driver.html#ga6142b5a1e8602e2990dec34015812615">w25qxx_advance_only_spi_get_manufacturer_device_id_quad_io</a>(uint8_t *manufacturer, uint8_t *device_id);</div>
+<div class="line"><a id="l00434" name="l00434"></a><span class="lineno">  434</span> </div>
+<div class="line"><a id="l00443" name="l00443"></a><span class="lineno">  443</span>uint8_t <a class="code hl_function" href="group__w25qxx__example__driver.html#ga374d35b73fa61d5f7464c3effdae1d57">w25qxx_advance_only_spi_get_unique_id</a>(uint8_t <span class="keywordtype">id</span>[8]);</div>
+<div class="line"><a id="l00444" name="l00444"></a><span class="lineno">  444</span> </div>
+<div class="line"><a id="l00453" name="l00453"></a><span class="lineno">  453</span>uint8_t <a class="code hl_function" href="group__w25qxx__example__driver.html#ga9b1854e0ae52f57523bc2fa7cc0656df">w25qxx_advance_only_spi_get_sfdp</a>(uint8_t sfdp[256]);</div>
+<div class="line"><a id="l00454" name="l00454"></a><span class="lineno">  454</span> </div>
+<div class="line"><a id="l00464" name="l00464"></a><span class="lineno">  464</span>uint8_t <a class="code hl_function" href="group__w25qxx__example__driver.html#gaa6c5f97106e769ba071973cc2e782ad4">w25qxx_advance_only_spi_write_security_register</a>(<a class="code hl_enumeration" href="group__w25qxx__advance__driver.html#ga81ddc7d4b9f4f124163beea19cc33c7e">w25qxx_security_register_t</a> num, uint8_t data[256]);</div>
+<div class="line"><a id="l00465" name="l00465"></a><span class="lineno">  465</span> </div>
+<div class="line"><a id="l00475" name="l00475"></a><span class="lineno">  475</span>uint8_t <a class="code hl_function" href="group__w25qxx__example__driver.html#ga02652a58ee418b432cf77505809d7d42">w25qxx_advance_only_spi_read_security_register</a>(<a class="code hl_enumeration" href="group__w25qxx__advance__driver.html#ga81ddc7d4b9f4f124163beea19cc33c7e">w25qxx_security_register_t</a> num, uint8_t data[256]);</div>
+<div class="line"><a id="l00476" name="l00476"></a><span class="lineno">  476</span> </div>
+<div class="line"><a id="l00485" name="l00485"></a><span class="lineno">  485</span>uint8_t <a class="code hl_function" href="group__w25qxx__example__driver.html#ga16411577fcb794f7485912f5db1bdde9">w25qxx_advance_only_spi_set_burst_with_wrap</a>(<a class="code hl_enumeration" href="group__w25qxx__advance__driver.html#ga94bbae2bf8906903e8dc2a28c490723d">w25qxx_burst_wrap_t</a> wrap);</div>
+<div class="line"><a id="l00486" name="l00486"></a><span class="lineno">  486</span> </div>
+<div class="line"><a id="l00496" name="l00496"></a><span class="lineno">  496</span>uint8_t <a class="code hl_function" href="group__w25qxx__example__driver.html#gace2a5b7acd9798cfcaa2b5eb2f18e1d1">w25qxx_advance_only_qspi_set_read_parameters</a>(<a class="code hl_enumeration" href="group__w25qxx__advance__driver.html#ga6ff284154302248f00db269146545443">w25qxx_qspi_read_dummy_t</a> dummy, <a class="code hl_enumeration" href="group__w25qxx__advance__driver.html#ga2fd3023819e1aebe089a4a72eb136da3">w25qxx_qspi_read_wrap_length_t</a> length);</div>
+<div class="line"><a id="l00497" name="l00497"></a><span class="lineno">  497</span> </div>
+<div class="line"><a id="l00502" name="l00502"></a><span class="lineno">  502</span><span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a id="l00503" name="l00503"></a><span class="lineno">  503</span>}</div>
+<div class="line"><a id="l00504" name="l00504"></a><span class="lineno">  504</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l00505" name="l00505"></a><span class="lineno">  505</span> </div>
+<div class="line"><a id="l00506" name="l00506"></a><span class="lineno">  506</span><span class="preprocessor">#endif</span></div>
 <div class="ttc" id="adriver__w25qxx__interface_8h_html"><div class="ttname"><a href="driver__w25qxx__interface_8h.html">driver_w25qxx_interface.h</a></div><div class="ttdoc">driver w25qxx interface header file</div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga2fd3023819e1aebe089a4a72eb136da3"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga2fd3023819e1aebe089a4a72eb136da3">w25qxx_qspi_read_wrap_length_t</a></div><div class="ttdeci">w25qxx_qspi_read_wrap_length_t</div><div class="ttdoc">w25qxx qspi read wrap length enumeration definition</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00122">driver_w25qxx.h:123</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga6ff284154302248f00db269146545443"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga6ff284154302248f00db269146545443">w25qxx_qspi_read_dummy_t</a></div><div class="ttdeci">w25qxx_qspi_read_dummy_t</div><div class="ttdoc">w25qxx qspi read dummy enumeration definition</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00111">driver_w25qxx.h:112</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga81ddc7d4b9f4f124163beea19cc33c7e"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga81ddc7d4b9f4f124163beea19cc33c7e">w25qxx_security_register_t</a></div><div class="ttdeci">w25qxx_security_register_t</div><div class="ttdoc">w25qxx security register enumeration definition</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00134">driver_w25qxx.h:135</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga94bbae2bf8906903e8dc2a28c490723d"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga94bbae2bf8906903e8dc2a28c490723d">w25qxx_burst_wrap_t</a></div><div class="ttdeci">w25qxx_burst_wrap_t</div><div class="ttdoc">w25qxx burst wrap enumeration definition</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00144">driver_w25qxx.h:145</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga6cb4e5164464df549201dd96cb7a58b1"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga6cb4e5164464df549201dd96cb7a58b1">w25qxx_type_t</a></div><div class="ttdeci">w25qxx_type_t</div><div class="ttdoc">w25qxx type enumeration definition</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00062">driver_w25qxx.h:63</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_gacbf327a42336baf10713a1796ff4f2fe"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gacbf327a42336baf10713a1796ff4f2fe">w25qxx_interface_t</a></div><div class="ttdeci">w25qxx_interface_t</div><div class="ttdoc">w25qxx interface enumeration definition</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00075">driver_w25qxx.h:76</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_gafb2690946f5baf4be6f3a63dde5491fb"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gafb2690946f5baf4be6f3a63dde5491fb">w25qxx_bool_t</a></div><div class="ttdeci">w25qxx_bool_t</div><div class="ttdoc">w25qxx bool enumeration definition</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00084">driver_w25qxx.h:85</a></div></div>
-<div class="ttc" id="agroup__w25qxx__example__driver_html_ga013a389763200b54daaa345adf9329dc"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga013a389763200b54daaa345adf9329dc">w25qxx_advance_read</a></div><div class="ttdeci">uint8_t w25qxx_advance_read(uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">advance example read</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__advance_8c_source.html#l00169">driver_w25qxx_advance.c:169</a></div></div>
-<div class="ttc" id="agroup__w25qxx__example__driver_html_ga02652a58ee418b432cf77505809d7d42"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga02652a58ee418b432cf77505809d7d42">w25qxx_advance_only_spi_read_security_register</a></div><div class="ttdeci">uint8_t w25qxx_advance_only_spi_read_security_register(w25qxx_security_register_t num, uint8_t data[256])</div><div class="ttdoc">advance example read the security register only in the spi interface</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__advance_8c_source.html#l00939">driver_w25qxx_advance.c:939</a></div></div>
-<div class="ttc" id="agroup__w25qxx__example__driver_html_ga0f49d960f8b6c6498ab293b369ffc389"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga0f49d960f8b6c6498ab293b369ffc389">w25qxx_advance_get_id</a></div><div class="ttdeci">uint8_t w25qxx_advance_get_id(uint8_t *manufacturer, uint8_t *device_id)</div><div class="ttdoc">advance example get the manufacturer &amp;&amp; device id information</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__advance_8c_source.html#l00247">driver_w25qxx_advance.c:247</a></div></div>
-<div class="ttc" id="agroup__w25qxx__example__driver_html_ga0f65053ad28443f19ed73dbc3412b5b2"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga0f65053ad28443f19ed73dbc3412b5b2">w25qxx_advance_reset</a></div><div class="ttdeci">uint8_t w25qxx_advance_reset(void)</div><div class="ttdoc">advance example reset</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__advance_8c_source.html#l00828">driver_w25qxx_advance.c:828</a></div></div>
-<div class="ttc" id="agroup__w25qxx__example__driver_html_ga15cb243f227ef8d897ef3208b622bded"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga15cb243f227ef8d897ef3208b622bded">w25qxx_advance_chip_erase</a></div><div class="ttdeci">uint8_t w25qxx_advance_chip_erase(void)</div><div class="ttdoc">advance example chip erase</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__advance_8c_source.html#l00226">driver_w25qxx_advance.c:226</a></div></div>
-<div class="ttc" id="agroup__w25qxx__example__driver_html_ga16411577fcb794f7485912f5db1bdde9"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga16411577fcb794f7485912f5db1bdde9">w25qxx_advance_only_spi_set_burst_with_wrap</a></div><div class="ttdeci">uint8_t w25qxx_advance_only_spi_set_burst_with_wrap(w25qxx_burst_wrap_t wrap)</div><div class="ttdoc">advance example set the burst with wrap only in the spi interface</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__advance_8c_source.html#l00959">driver_w25qxx_advance.c:959</a></div></div>
-<div class="ttc" id="agroup__w25qxx__example__driver_html_ga2cbcc018dc11a870d2e0fc3a8946b1d8"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga2cbcc018dc11a870d2e0fc3a8946b1d8">w25qxx_advance_global_block_lock</a></div><div class="ttdeci">uint8_t w25qxx_advance_global_block_lock(void)</div><div class="ttdoc">advance example global block lock</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__advance_8c_source.html#l00729">driver_w25qxx_advance.c:729</a></div></div>
-<div class="ttc" id="agroup__w25qxx__example__driver_html_ga31bcd3d2cc68d2fc589685b5087bd8b3"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga31bcd3d2cc68d2fc589685b5087bd8b3">w25qxx_advance_get_status3</a></div><div class="ttdeci">uint8_t w25qxx_advance_get_status3(uint8_t *status)</div><div class="ttdoc">advance example get the status 3</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__advance_8c_source.html#l00587">driver_w25qxx_advance.c:587</a></div></div>
-<div class="ttc" id="agroup__w25qxx__example__driver_html_ga364d891407cf323d3686d36ad6357604"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga364d891407cf323d3686d36ad6357604">w25qxx_advance_only_spi_fast_read_dual_output</a></div><div class="ttdeci">uint8_t w25qxx_advance_only_spi_fast_read_dual_output(uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">advance example fast read only in the spi dual output interface</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__advance_8c_source.html#l00395">driver_w25qxx_advance.c:395</a></div></div>
-<div class="ttc" id="agroup__w25qxx__example__driver_html_ga374d35b73fa61d5f7464c3effdae1d57"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga374d35b73fa61d5f7464c3effdae1d57">w25qxx_advance_only_spi_get_unique_id</a></div><div class="ttdeci">uint8_t w25qxx_advance_only_spi_get_unique_id(uint8_t id[8])</div><div class="ttdoc">advance example get the unique id only in the spi interface</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__advance_8c_source.html#l00873">driver_w25qxx_advance.c:873</a></div></div>
-<div class="ttc" id="agroup__w25qxx__example__driver_html_ga395add1fa33f4f70d0ba52b38842dbdb"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga395add1fa33f4f70d0ba52b38842dbdb">w25qxx_advance_only_spi_fast_read_quad_io</a></div><div class="ttdeci">uint8_t w25qxx_advance_only_spi_fast_read_quad_io(uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">advance example fast read only in the spi quad io interface</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__advance_8c_source.html#l00461">driver_w25qxx_advance.c:461</a></div></div>
-<div class="ttc" id="agroup__w25qxx__example__driver_html_ga39ff13988a3d451231cec3260c13a4cd"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga39ff13988a3d451231cec3260c13a4cd">w25qxx_advance_page_program</a></div><div class="ttdeci">uint8_t w25qxx_advance_page_program(uint32_t addr, uint8_t *data, uint16_t len)</div><div class="ttdoc">advance example page program</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__advance_8c_source.html#l00269">driver_w25qxx_advance.c:269</a></div></div>
-<div class="ttc" id="agroup__w25qxx__example__driver_html_ga413b420bc199d09ce5cafee4a4debb28"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga413b420bc199d09ce5cafee4a4debb28">w25qxx_advance_init</a></div><div class="ttdeci">uint8_t w25qxx_advance_init(w25qxx_type_t type, w25qxx_interface_t interface, w25qxx_bool_t dual_quad_spi_enable)</div><div class="ttdoc">advance example init</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__advance_8c_source.html#l00051">driver_w25qxx_advance.c:51</a></div></div>
-<div class="ttc" id="agroup__w25qxx__example__driver_html_ga4bbaf1a989fae25d16d07edb1e38ca4f"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga4bbaf1a989fae25d16d07edb1e38ca4f">w25qxx_advance_only_spi_fast_read_dual_io</a></div><div class="ttdeci">uint8_t w25qxx_advance_only_spi_fast_read_dual_io(uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">advance example fast read only in the spi dual io interface</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__advance_8c_source.html#l00439">driver_w25qxx_advance.c:439</a></div></div>
-<div class="ttc" id="agroup__w25qxx__example__driver_html_ga4c1be6979b4dc878d07ec86b8624c9d2"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga4c1be6979b4dc878d07ec86b8624c9d2">w25qxx_advance_get_status1</a></div><div class="ttdeci">uint8_t w25qxx_advance_get_status1(uint8_t *status)</div><div class="ttdoc">advance example get the status 1</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__advance_8c_source.html#l00547">driver_w25qxx_advance.c:547</a></div></div>
-<div class="ttc" id="agroup__w25qxx__example__driver_html_ga5599de31797633ae75a63bcd5a8f4736"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga5599de31797633ae75a63bcd5a8f4736">w25qxx_advance_power_down</a></div><div class="ttdeci">uint8_t w25qxx_advance_power_down(void)</div><div class="ttdoc">advance example power down</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__advance_8c_source.html#l00188">driver_w25qxx_advance.c:188</a></div></div>
-<div class="ttc" id="agroup__w25qxx__example__driver_html_ga5e4938b4575c417ae22fa82079459b1a"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga5e4938b4575c417ae22fa82079459b1a">w25qxx_advance_set_status1</a></div><div class="ttdeci">uint8_t w25qxx_advance_set_status1(uint8_t status)</div><div class="ttdoc">advance example set the status 1</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__advance_8c_source.html#l00607">driver_w25qxx_advance.c:607</a></div></div>
-<div class="ttc" id="agroup__w25qxx__example__driver_html_ga6142b5a1e8602e2990dec34015812615"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga6142b5a1e8602e2990dec34015812615">w25qxx_advance_only_spi_get_manufacturer_device_id_quad_io</a></div><div class="ttdeci">uint8_t w25qxx_advance_only_spi_get_manufacturer_device_id_quad_io(uint8_t *manufacturer, uint8_t *device_id)</div><div class="ttdoc">advance example get the manufacturer &amp;&amp; device id information only in the spi quad io interface</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__advance_8c_source.html#l00689">driver_w25qxx_advance.c:689</a></div></div>
-<div class="ttc" id="agroup__w25qxx__example__driver_html_ga63f4e1dce2ef7c7de56461524fd22d04"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga63f4e1dce2ef7c7de56461524fd22d04">w25qxx_advance_write</a></div><div class="ttdeci">uint8_t w25qxx_advance_write(uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">advance example write</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__advance_8c_source.html#l00147">driver_w25qxx_advance.c:147</a></div></div>
-<div class="ttc" id="agroup__w25qxx__example__driver_html_ga66726fc451c7804e8fec6eb46a6a77d6"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga66726fc451c7804e8fec6eb46a6a77d6">w25qxx_advance_individual_block_unlock</a></div><div class="ttdeci">uint8_t w25qxx_advance_individual_block_unlock(uint32_t addr)</div><div class="ttdoc">advance example unlock the individual block</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__advance_8c_source.html#l00788">driver_w25qxx_advance.c:788</a></div></div>
-<div class="ttc" id="agroup__w25qxx__example__driver_html_ga67c70da103511d1cff9274e61a08ce56"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga67c70da103511d1cff9274e61a08ce56">w25qxx_advance_global_block_unlock</a></div><div class="ttdeci">uint8_t w25qxx_advance_global_block_unlock(void)</div><div class="ttdoc">advance example global block unlock</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__advance_8c_source.html#l00748">driver_w25qxx_advance.c:748</a></div></div>
-<div class="ttc" id="agroup__w25qxx__example__driver_html_ga7ade25a387b9d03ddecefd86fb328389"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga7ade25a387b9d03ddecefd86fb328389">w25qxx_advance_fast_read</a></div><div class="ttdeci">uint8_t w25qxx_advance_fast_read(uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">advance example read in the fast mode</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__advance_8c_source.html#l00351">driver_w25qxx_advance.c:351</a></div></div>
-<div class="ttc" id="agroup__w25qxx__example__driver_html_ga825a567c535236d7d18ffccf07df59e9"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga825a567c535236d7d18ffccf07df59e9">w25qxx_advance_only_spi_octal_word_read_quad_io</a></div><div class="ttdeci">uint8_t w25qxx_advance_only_spi_octal_word_read_quad_io(uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">advance example octal word read only in the spi quad io interface</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__advance_8c_source.html#l00505">driver_w25qxx_advance.c:505</a></div></div>
-<div class="ttc" id="agroup__w25qxx__example__driver_html_ga8a57e2d056d452abc14b0a08d4223251"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga8a57e2d056d452abc14b0a08d4223251">w25qxx_advance_wake_up</a></div><div class="ttdeci">uint8_t w25qxx_advance_wake_up(void)</div><div class="ttdoc">advance example wake up</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__advance_8c_source.html#l00207">driver_w25qxx_advance.c:207</a></div></div>
-<div class="ttc" id="agroup__w25qxx__example__driver_html_ga9325acc424c95624f15e11631082201d"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga9325acc424c95624f15e11631082201d">w25qxx_advance_sector_erase_4k</a></div><div class="ttdeci">uint8_t w25qxx_advance_sector_erase_4k(uint32_t addr)</div><div class="ttdoc">advance example erase the 4k sector</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__advance_8c_source.html#l00289">driver_w25qxx_advance.c:289</a></div></div>
-<div class="ttc" id="agroup__w25qxx__example__driver_html_ga9b1854e0ae52f57523bc2fa7cc0656df"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga9b1854e0ae52f57523bc2fa7cc0656df">w25qxx_advance_only_spi_get_sfdp</a></div><div class="ttdeci">uint8_t w25qxx_advance_only_spi_get_sfdp(uint8_t sfdp[256])</div><div class="ttdoc">advance example get the sfdp only in the spi interface</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__advance_8c_source.html#l00893">driver_w25qxx_advance.c:893</a></div></div>
-<div class="ttc" id="agroup__w25qxx__example__driver_html_ga9bc0e696b700d66f15b3605e10d33718"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga9bc0e696b700d66f15b3605e10d33718">w25qxx_advance_set_status2</a></div><div class="ttdeci">uint8_t w25qxx_advance_set_status2(uint8_t status)</div><div class="ttdoc">advance example set the status 2</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__advance_8c_source.html#l00627">driver_w25qxx_advance.c:627</a></div></div>
-<div class="ttc" id="agroup__w25qxx__example__driver_html_gaa6c5f97106e769ba071973cc2e782ad4"><div class="ttname"><a href="group__w25qxx__example__driver.html#gaa6c5f97106e769ba071973cc2e782ad4">w25qxx_advance_only_spi_write_security_register</a></div><div class="ttdeci">uint8_t w25qxx_advance_only_spi_write_security_register(w25qxx_security_register_t num, uint8_t data[256])</div><div class="ttdoc">advance example write the security register only in the spi interface</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__advance_8c_source.html#l00914">driver_w25qxx_advance.c:914</a></div></div>
-<div class="ttc" id="agroup__w25qxx__example__driver_html_gaa7af99e92b3e81f5b202575b55dc3a7c"><div class="ttname"><a href="group__w25qxx__example__driver.html#gaa7af99e92b3e81f5b202575b55dc3a7c">w25qxx_advance_individual_block_lock</a></div><div class="ttdeci">uint8_t w25qxx_advance_individual_block_lock(uint32_t addr)</div><div class="ttdoc">advance example lock the individual block</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__advance_8c_source.html#l00768">driver_w25qxx_advance.c:768</a></div></div>
-<div class="ttc" id="agroup__w25qxx__example__driver_html_gab5c990ebd4874137b7d23f2b896d4601"><div class="ttname"><a href="group__w25qxx__example__driver.html#gab5c990ebd4874137b7d23f2b896d4601">w25qxx_advance_set_status3</a></div><div class="ttdeci">uint8_t w25qxx_advance_set_status3(uint8_t status)</div><div class="ttdoc">advance example set the status 3</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__advance_8c_source.html#l00647">driver_w25qxx_advance.c:647</a></div></div>
-<div class="ttc" id="agroup__w25qxx__example__driver_html_gac0d9e08a37ee37563c8dbb501608a668"><div class="ttname"><a href="group__w25qxx__example__driver.html#gac0d9e08a37ee37563c8dbb501608a668">w25qxx_advance_only_spi_get_manufacturer_device_id_dual_io</a></div><div class="ttdeci">uint8_t w25qxx_advance_only_spi_get_manufacturer_device_id_dual_io(uint8_t *manufacturer, uint8_t *device_id)</div><div class="ttdoc">advance example get the manufacturer &amp;&amp; device id information only in the spi dual io interface</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__advance_8c_source.html#l00668">driver_w25qxx_advance.c:668</a></div></div>
-<div class="ttc" id="agroup__w25qxx__example__driver_html_gac1773fe914a01825ca28346205601036"><div class="ttname"><a href="group__w25qxx__example__driver.html#gac1773fe914a01825ca28346205601036">w25qxx_advance_read_block_lock</a></div><div class="ttdeci">uint8_t w25qxx_advance_read_block_lock(uint32_t addr, uint8_t *value)</div><div class="ttdoc">advance example read the block lock</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__advance_8c_source.html#l00809">driver_w25qxx_advance.c:809</a></div></div>
-<div class="ttc" id="agroup__w25qxx__example__driver_html_gac1c7f320706dd6d6d937da75b8a4da93"><div class="ttname"><a href="group__w25qxx__example__driver.html#gac1c7f320706dd6d6d937da75b8a4da93">w25qxx_advance_only_spi_read</a></div><div class="ttdeci">uint8_t w25qxx_advance_only_spi_read(uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">advance example read only in the spi interface</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__advance_8c_source.html#l00373">driver_w25qxx_advance.c:373</a></div></div>
-<div class="ttc" id="agroup__w25qxx__example__driver_html_gaca6b4c6ea32dd96a4ae8714e2862d67a"><div class="ttname"><a href="group__w25qxx__example__driver.html#gaca6b4c6ea32dd96a4ae8714e2862d67a">w25qxx_advance_only_spi_word_read_quad_io</a></div><div class="ttdeci">uint8_t w25qxx_advance_only_spi_word_read_quad_io(uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">advance example word read only in the spi quad io interface</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__advance_8c_source.html#l00483">driver_w25qxx_advance.c:483</a></div></div>
-<div class="ttc" id="agroup__w25qxx__example__driver_html_gacc7435a39b61c44f0ce16690d5da896b"><div class="ttname"><a href="group__w25qxx__example__driver.html#gacc7435a39b61c44f0ce16690d5da896b">w25qxx_advance_get_get_jedec_id</a></div><div class="ttdeci">uint8_t w25qxx_advance_get_get_jedec_id(uint8_t *manufacturer, uint8_t device_id[2])</div><div class="ttdoc">advance example get the jedec id information</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__advance_8c_source.html#l00710">driver_w25qxx_advance.c:710</a></div></div>
-<div class="ttc" id="agroup__w25qxx__example__driver_html_gace2a5b7acd9798cfcaa2b5eb2f18e1d1"><div class="ttname"><a href="group__w25qxx__example__driver.html#gace2a5b7acd9798cfcaa2b5eb2f18e1d1">w25qxx_advance_only_qspi_set_read_parameters</a></div><div class="ttdeci">uint8_t w25qxx_advance_only_qspi_set_read_parameters(w25qxx_qspi_read_dummy_t dummy, w25qxx_qspi_read_wrap_length_t length)</div><div class="ttdoc">advance example set the read parameters only in the qspi interface</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__advance_8c_source.html#l00853">driver_w25qxx_advance.c:853</a></div></div>
-<div class="ttc" id="agroup__w25qxx__example__driver_html_gad243655eb738e44c50e6079c983fd782"><div class="ttname"><a href="group__w25qxx__example__driver.html#gad243655eb738e44c50e6079c983fd782">w25qxx_advance_only_spi_page_program_quad_input</a></div><div class="ttdeci">uint8_t w25qxx_advance_only_spi_page_program_quad_input(uint32_t addr, uint8_t *data, uint16_t len)</div><div class="ttdoc">advance example quad page program only in the spi quad input interface</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__advance_8c_source.html#l00527">driver_w25qxx_advance.c:527</a></div></div>
-<div class="ttc" id="agroup__w25qxx__example__driver_html_gae7cba4e0b22a1043fe304e46148fa13c"><div class="ttname"><a href="group__w25qxx__example__driver.html#gae7cba4e0b22a1043fe304e46148fa13c">w25qxx_advance_block_erase_64k</a></div><div class="ttdeci">uint8_t w25qxx_advance_block_erase_64k(uint32_t addr)</div><div class="ttdoc">advance example erase the 64k block</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__advance_8c_source.html#l00329">driver_w25qxx_advance.c:329</a></div></div>
-<div class="ttc" id="agroup__w25qxx__example__driver_html_gaee04edb9e97785e423dffe14a1cad780"><div class="ttname"><a href="group__w25qxx__example__driver.html#gaee04edb9e97785e423dffe14a1cad780">w25qxx_advance_block_erase_32k</a></div><div class="ttdeci">uint8_t w25qxx_advance_block_erase_32k(uint32_t addr)</div><div class="ttdoc">advance example erase the 32k block</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__advance_8c_source.html#l00309">driver_w25qxx_advance.c:309</a></div></div>
-<div class="ttc" id="agroup__w25qxx__example__driver_html_gaf390bbb2c4140f49d25822d963ead722"><div class="ttname"><a href="group__w25qxx__example__driver.html#gaf390bbb2c4140f49d25822d963ead722">w25qxx_advance_deinit</a></div><div class="ttdeci">uint8_t w25qxx_advance_deinit(void)</div><div class="ttdoc">advance example deinit</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__advance_8c_source.html#l00125">driver_w25qxx_advance.c:125</a></div></div>
-<div class="ttc" id="agroup__w25qxx__example__driver_html_gaf4736fff906c2f0c1dbed26b20847052"><div class="ttname"><a href="group__w25qxx__example__driver.html#gaf4736fff906c2f0c1dbed26b20847052">w25qxx_advance_get_status2</a></div><div class="ttdeci">uint8_t w25qxx_advance_get_status2(uint8_t *status)</div><div class="ttdoc">advance example get the status 2</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__advance_8c_source.html#l00567">driver_w25qxx_advance.c:567</a></div></div>
-<div class="ttc" id="agroup__w25qxx__example__driver_html_gaf5f978c432de7d6adaf41cd256724a01"><div class="ttname"><a href="group__w25qxx__example__driver.html#gaf5f978c432de7d6adaf41cd256724a01">w25qxx_advance_only_spi_fast_read_quad_output</a></div><div class="ttdeci">uint8_t w25qxx_advance_only_spi_fast_read_quad_output(uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">advance example fast read only in the spi quad output interface</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__advance_8c_source.html#l00417">driver_w25qxx_advance.c:417</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga2fd3023819e1aebe089a4a72eb136da3"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga2fd3023819e1aebe089a4a72eb136da3">w25qxx_qspi_read_wrap_length_t</a></div><div class="ttdeci">w25qxx_qspi_read_wrap_length_t</div><div class="ttdoc">w25qxx qspi read wrap length enumeration definition</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00122">driver_w25qxx.h:123</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga6ff284154302248f00db269146545443"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga6ff284154302248f00db269146545443">w25qxx_qspi_read_dummy_t</a></div><div class="ttdeci">w25qxx_qspi_read_dummy_t</div><div class="ttdoc">w25qxx qspi read dummy enumeration definition</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00111">driver_w25qxx.h:112</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga81ddc7d4b9f4f124163beea19cc33c7e"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga81ddc7d4b9f4f124163beea19cc33c7e">w25qxx_security_register_t</a></div><div class="ttdeci">w25qxx_security_register_t</div><div class="ttdoc">w25qxx security register enumeration definition</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00134">driver_w25qxx.h:135</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga94bbae2bf8906903e8dc2a28c490723d"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga94bbae2bf8906903e8dc2a28c490723d">w25qxx_burst_wrap_t</a></div><div class="ttdeci">w25qxx_burst_wrap_t</div><div class="ttdoc">w25qxx burst wrap enumeration definition</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00144">driver_w25qxx.h:145</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga6cb4e5164464df549201dd96cb7a58b1"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga6cb4e5164464df549201dd96cb7a58b1">w25qxx_type_t</a></div><div class="ttdeci">w25qxx_type_t</div><div class="ttdoc">w25qxx type enumeration definition</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00062">driver_w25qxx.h:63</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_gacbf327a42336baf10713a1796ff4f2fe"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gacbf327a42336baf10713a1796ff4f2fe">w25qxx_interface_t</a></div><div class="ttdeci">w25qxx_interface_t</div><div class="ttdoc">w25qxx interface enumeration definition</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00075">driver_w25qxx.h:76</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_gafb2690946f5baf4be6f3a63dde5491fb"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gafb2690946f5baf4be6f3a63dde5491fb">w25qxx_bool_t</a></div><div class="ttdeci">w25qxx_bool_t</div><div class="ttdoc">w25qxx bool enumeration definition</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00084">driver_w25qxx.h:85</a></div></div>
+<div class="ttc" id="agroup__w25qxx__example__driver_html_ga013a389763200b54daaa345adf9329dc"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga013a389763200b54daaa345adf9329dc">w25qxx_advance_read</a></div><div class="ttdeci">uint8_t w25qxx_advance_read(uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">advance example read</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__advance_8c_source.html#l00169">driver_w25qxx_advance.c:169</a></div></div>
+<div class="ttc" id="agroup__w25qxx__example__driver_html_ga02652a58ee418b432cf77505809d7d42"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga02652a58ee418b432cf77505809d7d42">w25qxx_advance_only_spi_read_security_register</a></div><div class="ttdeci">uint8_t w25qxx_advance_only_spi_read_security_register(w25qxx_security_register_t num, uint8_t data[256])</div><div class="ttdoc">advance example read the security register only in the spi interface</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__advance_8c_source.html#l00939">driver_w25qxx_advance.c:939</a></div></div>
+<div class="ttc" id="agroup__w25qxx__example__driver_html_ga0f49d960f8b6c6498ab293b369ffc389"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga0f49d960f8b6c6498ab293b369ffc389">w25qxx_advance_get_id</a></div><div class="ttdeci">uint8_t w25qxx_advance_get_id(uint8_t *manufacturer, uint8_t *device_id)</div><div class="ttdoc">advance example get the manufacturer &amp;&amp; device id information</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__advance_8c_source.html#l00247">driver_w25qxx_advance.c:247</a></div></div>
+<div class="ttc" id="agroup__w25qxx__example__driver_html_ga0f65053ad28443f19ed73dbc3412b5b2"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga0f65053ad28443f19ed73dbc3412b5b2">w25qxx_advance_reset</a></div><div class="ttdeci">uint8_t w25qxx_advance_reset(void)</div><div class="ttdoc">advance example reset</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__advance_8c_source.html#l00828">driver_w25qxx_advance.c:828</a></div></div>
+<div class="ttc" id="agroup__w25qxx__example__driver_html_ga15cb243f227ef8d897ef3208b622bded"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga15cb243f227ef8d897ef3208b622bded">w25qxx_advance_chip_erase</a></div><div class="ttdeci">uint8_t w25qxx_advance_chip_erase(void)</div><div class="ttdoc">advance example chip erase</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__advance_8c_source.html#l00226">driver_w25qxx_advance.c:226</a></div></div>
+<div class="ttc" id="agroup__w25qxx__example__driver_html_ga16411577fcb794f7485912f5db1bdde9"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga16411577fcb794f7485912f5db1bdde9">w25qxx_advance_only_spi_set_burst_with_wrap</a></div><div class="ttdeci">uint8_t w25qxx_advance_only_spi_set_burst_with_wrap(w25qxx_burst_wrap_t wrap)</div><div class="ttdoc">advance example set the burst with wrap only in the spi interface</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__advance_8c_source.html#l00959">driver_w25qxx_advance.c:959</a></div></div>
+<div class="ttc" id="agroup__w25qxx__example__driver_html_ga2cbcc018dc11a870d2e0fc3a8946b1d8"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga2cbcc018dc11a870d2e0fc3a8946b1d8">w25qxx_advance_global_block_lock</a></div><div class="ttdeci">uint8_t w25qxx_advance_global_block_lock(void)</div><div class="ttdoc">advance example global block lock</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__advance_8c_source.html#l00729">driver_w25qxx_advance.c:729</a></div></div>
+<div class="ttc" id="agroup__w25qxx__example__driver_html_ga31bcd3d2cc68d2fc589685b5087bd8b3"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga31bcd3d2cc68d2fc589685b5087bd8b3">w25qxx_advance_get_status3</a></div><div class="ttdeci">uint8_t w25qxx_advance_get_status3(uint8_t *status)</div><div class="ttdoc">advance example get the status 3</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__advance_8c_source.html#l00587">driver_w25qxx_advance.c:587</a></div></div>
+<div class="ttc" id="agroup__w25qxx__example__driver_html_ga364d891407cf323d3686d36ad6357604"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga364d891407cf323d3686d36ad6357604">w25qxx_advance_only_spi_fast_read_dual_output</a></div><div class="ttdeci">uint8_t w25qxx_advance_only_spi_fast_read_dual_output(uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">advance example fast read only in the spi dual output interface</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__advance_8c_source.html#l00395">driver_w25qxx_advance.c:395</a></div></div>
+<div class="ttc" id="agroup__w25qxx__example__driver_html_ga374d35b73fa61d5f7464c3effdae1d57"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga374d35b73fa61d5f7464c3effdae1d57">w25qxx_advance_only_spi_get_unique_id</a></div><div class="ttdeci">uint8_t w25qxx_advance_only_spi_get_unique_id(uint8_t id[8])</div><div class="ttdoc">advance example get the unique id only in the spi interface</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__advance_8c_source.html#l00873">driver_w25qxx_advance.c:873</a></div></div>
+<div class="ttc" id="agroup__w25qxx__example__driver_html_ga395add1fa33f4f70d0ba52b38842dbdb"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga395add1fa33f4f70d0ba52b38842dbdb">w25qxx_advance_only_spi_fast_read_quad_io</a></div><div class="ttdeci">uint8_t w25qxx_advance_only_spi_fast_read_quad_io(uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">advance example fast read only in the spi quad io interface</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__advance_8c_source.html#l00461">driver_w25qxx_advance.c:461</a></div></div>
+<div class="ttc" id="agroup__w25qxx__example__driver_html_ga39ff13988a3d451231cec3260c13a4cd"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga39ff13988a3d451231cec3260c13a4cd">w25qxx_advance_page_program</a></div><div class="ttdeci">uint8_t w25qxx_advance_page_program(uint32_t addr, uint8_t *data, uint16_t len)</div><div class="ttdoc">advance example page program</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__advance_8c_source.html#l00269">driver_w25qxx_advance.c:269</a></div></div>
+<div class="ttc" id="agroup__w25qxx__example__driver_html_ga413b420bc199d09ce5cafee4a4debb28"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga413b420bc199d09ce5cafee4a4debb28">w25qxx_advance_init</a></div><div class="ttdeci">uint8_t w25qxx_advance_init(w25qxx_type_t type, w25qxx_interface_t interface, w25qxx_bool_t dual_quad_spi_enable)</div><div class="ttdoc">advance example init</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__advance_8c_source.html#l00051">driver_w25qxx_advance.c:51</a></div></div>
+<div class="ttc" id="agroup__w25qxx__example__driver_html_ga4bbaf1a989fae25d16d07edb1e38ca4f"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga4bbaf1a989fae25d16d07edb1e38ca4f">w25qxx_advance_only_spi_fast_read_dual_io</a></div><div class="ttdeci">uint8_t w25qxx_advance_only_spi_fast_read_dual_io(uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">advance example fast read only in the spi dual io interface</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__advance_8c_source.html#l00439">driver_w25qxx_advance.c:439</a></div></div>
+<div class="ttc" id="agroup__w25qxx__example__driver_html_ga4c1be6979b4dc878d07ec86b8624c9d2"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga4c1be6979b4dc878d07ec86b8624c9d2">w25qxx_advance_get_status1</a></div><div class="ttdeci">uint8_t w25qxx_advance_get_status1(uint8_t *status)</div><div class="ttdoc">advance example get the status 1</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__advance_8c_source.html#l00547">driver_w25qxx_advance.c:547</a></div></div>
+<div class="ttc" id="agroup__w25qxx__example__driver_html_ga5599de31797633ae75a63bcd5a8f4736"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga5599de31797633ae75a63bcd5a8f4736">w25qxx_advance_power_down</a></div><div class="ttdeci">uint8_t w25qxx_advance_power_down(void)</div><div class="ttdoc">advance example power down</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__advance_8c_source.html#l00188">driver_w25qxx_advance.c:188</a></div></div>
+<div class="ttc" id="agroup__w25qxx__example__driver_html_ga5e4938b4575c417ae22fa82079459b1a"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga5e4938b4575c417ae22fa82079459b1a">w25qxx_advance_set_status1</a></div><div class="ttdeci">uint8_t w25qxx_advance_set_status1(uint8_t status)</div><div class="ttdoc">advance example set the status 1</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__advance_8c_source.html#l00607">driver_w25qxx_advance.c:607</a></div></div>
+<div class="ttc" id="agroup__w25qxx__example__driver_html_ga6142b5a1e8602e2990dec34015812615"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga6142b5a1e8602e2990dec34015812615">w25qxx_advance_only_spi_get_manufacturer_device_id_quad_io</a></div><div class="ttdeci">uint8_t w25qxx_advance_only_spi_get_manufacturer_device_id_quad_io(uint8_t *manufacturer, uint8_t *device_id)</div><div class="ttdoc">advance example get the manufacturer &amp;&amp; device id information only in the spi quad io interface</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__advance_8c_source.html#l00689">driver_w25qxx_advance.c:689</a></div></div>
+<div class="ttc" id="agroup__w25qxx__example__driver_html_ga63f4e1dce2ef7c7de56461524fd22d04"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga63f4e1dce2ef7c7de56461524fd22d04">w25qxx_advance_write</a></div><div class="ttdeci">uint8_t w25qxx_advance_write(uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">advance example write</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__advance_8c_source.html#l00147">driver_w25qxx_advance.c:147</a></div></div>
+<div class="ttc" id="agroup__w25qxx__example__driver_html_ga66726fc451c7804e8fec6eb46a6a77d6"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga66726fc451c7804e8fec6eb46a6a77d6">w25qxx_advance_individual_block_unlock</a></div><div class="ttdeci">uint8_t w25qxx_advance_individual_block_unlock(uint32_t addr)</div><div class="ttdoc">advance example unlock the individual block</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__advance_8c_source.html#l00788">driver_w25qxx_advance.c:788</a></div></div>
+<div class="ttc" id="agroup__w25qxx__example__driver_html_ga67c70da103511d1cff9274e61a08ce56"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga67c70da103511d1cff9274e61a08ce56">w25qxx_advance_global_block_unlock</a></div><div class="ttdeci">uint8_t w25qxx_advance_global_block_unlock(void)</div><div class="ttdoc">advance example global block unlock</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__advance_8c_source.html#l00748">driver_w25qxx_advance.c:748</a></div></div>
+<div class="ttc" id="agroup__w25qxx__example__driver_html_ga7ade25a387b9d03ddecefd86fb328389"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga7ade25a387b9d03ddecefd86fb328389">w25qxx_advance_fast_read</a></div><div class="ttdeci">uint8_t w25qxx_advance_fast_read(uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">advance example read in the fast mode</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__advance_8c_source.html#l00351">driver_w25qxx_advance.c:351</a></div></div>
+<div class="ttc" id="agroup__w25qxx__example__driver_html_ga825a567c535236d7d18ffccf07df59e9"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga825a567c535236d7d18ffccf07df59e9">w25qxx_advance_only_spi_octal_word_read_quad_io</a></div><div class="ttdeci">uint8_t w25qxx_advance_only_spi_octal_word_read_quad_io(uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">advance example octal word read only in the spi quad io interface</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__advance_8c_source.html#l00505">driver_w25qxx_advance.c:505</a></div></div>
+<div class="ttc" id="agroup__w25qxx__example__driver_html_ga8a57e2d056d452abc14b0a08d4223251"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga8a57e2d056d452abc14b0a08d4223251">w25qxx_advance_wake_up</a></div><div class="ttdeci">uint8_t w25qxx_advance_wake_up(void)</div><div class="ttdoc">advance example wake up</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__advance_8c_source.html#l00207">driver_w25qxx_advance.c:207</a></div></div>
+<div class="ttc" id="agroup__w25qxx__example__driver_html_ga9325acc424c95624f15e11631082201d"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga9325acc424c95624f15e11631082201d">w25qxx_advance_sector_erase_4k</a></div><div class="ttdeci">uint8_t w25qxx_advance_sector_erase_4k(uint32_t addr)</div><div class="ttdoc">advance example erase the 4k sector</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__advance_8c_source.html#l00289">driver_w25qxx_advance.c:289</a></div></div>
+<div class="ttc" id="agroup__w25qxx__example__driver_html_ga9b1854e0ae52f57523bc2fa7cc0656df"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga9b1854e0ae52f57523bc2fa7cc0656df">w25qxx_advance_only_spi_get_sfdp</a></div><div class="ttdeci">uint8_t w25qxx_advance_only_spi_get_sfdp(uint8_t sfdp[256])</div><div class="ttdoc">advance example get the sfdp only in the spi interface</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__advance_8c_source.html#l00893">driver_w25qxx_advance.c:893</a></div></div>
+<div class="ttc" id="agroup__w25qxx__example__driver_html_ga9bc0e696b700d66f15b3605e10d33718"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga9bc0e696b700d66f15b3605e10d33718">w25qxx_advance_set_status2</a></div><div class="ttdeci">uint8_t w25qxx_advance_set_status2(uint8_t status)</div><div class="ttdoc">advance example set the status 2</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__advance_8c_source.html#l00627">driver_w25qxx_advance.c:627</a></div></div>
+<div class="ttc" id="agroup__w25qxx__example__driver_html_gaa6c5f97106e769ba071973cc2e782ad4"><div class="ttname"><a href="group__w25qxx__example__driver.html#gaa6c5f97106e769ba071973cc2e782ad4">w25qxx_advance_only_spi_write_security_register</a></div><div class="ttdeci">uint8_t w25qxx_advance_only_spi_write_security_register(w25qxx_security_register_t num, uint8_t data[256])</div><div class="ttdoc">advance example write the security register only in the spi interface</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__advance_8c_source.html#l00914">driver_w25qxx_advance.c:914</a></div></div>
+<div class="ttc" id="agroup__w25qxx__example__driver_html_gaa7af99e92b3e81f5b202575b55dc3a7c"><div class="ttname"><a href="group__w25qxx__example__driver.html#gaa7af99e92b3e81f5b202575b55dc3a7c">w25qxx_advance_individual_block_lock</a></div><div class="ttdeci">uint8_t w25qxx_advance_individual_block_lock(uint32_t addr)</div><div class="ttdoc">advance example lock the individual block</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__advance_8c_source.html#l00768">driver_w25qxx_advance.c:768</a></div></div>
+<div class="ttc" id="agroup__w25qxx__example__driver_html_gab5c990ebd4874137b7d23f2b896d4601"><div class="ttname"><a href="group__w25qxx__example__driver.html#gab5c990ebd4874137b7d23f2b896d4601">w25qxx_advance_set_status3</a></div><div class="ttdeci">uint8_t w25qxx_advance_set_status3(uint8_t status)</div><div class="ttdoc">advance example set the status 3</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__advance_8c_source.html#l00647">driver_w25qxx_advance.c:647</a></div></div>
+<div class="ttc" id="agroup__w25qxx__example__driver_html_gac0d9e08a37ee37563c8dbb501608a668"><div class="ttname"><a href="group__w25qxx__example__driver.html#gac0d9e08a37ee37563c8dbb501608a668">w25qxx_advance_only_spi_get_manufacturer_device_id_dual_io</a></div><div class="ttdeci">uint8_t w25qxx_advance_only_spi_get_manufacturer_device_id_dual_io(uint8_t *manufacturer, uint8_t *device_id)</div><div class="ttdoc">advance example get the manufacturer &amp;&amp; device id information only in the spi dual io interface</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__advance_8c_source.html#l00668">driver_w25qxx_advance.c:668</a></div></div>
+<div class="ttc" id="agroup__w25qxx__example__driver_html_gac1773fe914a01825ca28346205601036"><div class="ttname"><a href="group__w25qxx__example__driver.html#gac1773fe914a01825ca28346205601036">w25qxx_advance_read_block_lock</a></div><div class="ttdeci">uint8_t w25qxx_advance_read_block_lock(uint32_t addr, uint8_t *value)</div><div class="ttdoc">advance example read the block lock</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__advance_8c_source.html#l00809">driver_w25qxx_advance.c:809</a></div></div>
+<div class="ttc" id="agroup__w25qxx__example__driver_html_gac1c7f320706dd6d6d937da75b8a4da93"><div class="ttname"><a href="group__w25qxx__example__driver.html#gac1c7f320706dd6d6d937da75b8a4da93">w25qxx_advance_only_spi_read</a></div><div class="ttdeci">uint8_t w25qxx_advance_only_spi_read(uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">advance example read only in the spi interface</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__advance_8c_source.html#l00373">driver_w25qxx_advance.c:373</a></div></div>
+<div class="ttc" id="agroup__w25qxx__example__driver_html_gaca6b4c6ea32dd96a4ae8714e2862d67a"><div class="ttname"><a href="group__w25qxx__example__driver.html#gaca6b4c6ea32dd96a4ae8714e2862d67a">w25qxx_advance_only_spi_word_read_quad_io</a></div><div class="ttdeci">uint8_t w25qxx_advance_only_spi_word_read_quad_io(uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">advance example word read only in the spi quad io interface</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__advance_8c_source.html#l00483">driver_w25qxx_advance.c:483</a></div></div>
+<div class="ttc" id="agroup__w25qxx__example__driver_html_gacc7435a39b61c44f0ce16690d5da896b"><div class="ttname"><a href="group__w25qxx__example__driver.html#gacc7435a39b61c44f0ce16690d5da896b">w25qxx_advance_get_get_jedec_id</a></div><div class="ttdeci">uint8_t w25qxx_advance_get_get_jedec_id(uint8_t *manufacturer, uint8_t device_id[2])</div><div class="ttdoc">advance example get the jedec id information</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__advance_8c_source.html#l00710">driver_w25qxx_advance.c:710</a></div></div>
+<div class="ttc" id="agroup__w25qxx__example__driver_html_gace2a5b7acd9798cfcaa2b5eb2f18e1d1"><div class="ttname"><a href="group__w25qxx__example__driver.html#gace2a5b7acd9798cfcaa2b5eb2f18e1d1">w25qxx_advance_only_qspi_set_read_parameters</a></div><div class="ttdeci">uint8_t w25qxx_advance_only_qspi_set_read_parameters(w25qxx_qspi_read_dummy_t dummy, w25qxx_qspi_read_wrap_length_t length)</div><div class="ttdoc">advance example set the read parameters only in the qspi interface</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__advance_8c_source.html#l00853">driver_w25qxx_advance.c:853</a></div></div>
+<div class="ttc" id="agroup__w25qxx__example__driver_html_gad243655eb738e44c50e6079c983fd782"><div class="ttname"><a href="group__w25qxx__example__driver.html#gad243655eb738e44c50e6079c983fd782">w25qxx_advance_only_spi_page_program_quad_input</a></div><div class="ttdeci">uint8_t w25qxx_advance_only_spi_page_program_quad_input(uint32_t addr, uint8_t *data, uint16_t len)</div><div class="ttdoc">advance example quad page program only in the spi quad input interface</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__advance_8c_source.html#l00527">driver_w25qxx_advance.c:527</a></div></div>
+<div class="ttc" id="agroup__w25qxx__example__driver_html_gae7cba4e0b22a1043fe304e46148fa13c"><div class="ttname"><a href="group__w25qxx__example__driver.html#gae7cba4e0b22a1043fe304e46148fa13c">w25qxx_advance_block_erase_64k</a></div><div class="ttdeci">uint8_t w25qxx_advance_block_erase_64k(uint32_t addr)</div><div class="ttdoc">advance example erase the 64k block</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__advance_8c_source.html#l00329">driver_w25qxx_advance.c:329</a></div></div>
+<div class="ttc" id="agroup__w25qxx__example__driver_html_gaee04edb9e97785e423dffe14a1cad780"><div class="ttname"><a href="group__w25qxx__example__driver.html#gaee04edb9e97785e423dffe14a1cad780">w25qxx_advance_block_erase_32k</a></div><div class="ttdeci">uint8_t w25qxx_advance_block_erase_32k(uint32_t addr)</div><div class="ttdoc">advance example erase the 32k block</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__advance_8c_source.html#l00309">driver_w25qxx_advance.c:309</a></div></div>
+<div class="ttc" id="agroup__w25qxx__example__driver_html_gaf390bbb2c4140f49d25822d963ead722"><div class="ttname"><a href="group__w25qxx__example__driver.html#gaf390bbb2c4140f49d25822d963ead722">w25qxx_advance_deinit</a></div><div class="ttdeci">uint8_t w25qxx_advance_deinit(void)</div><div class="ttdoc">advance example deinit</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__advance_8c_source.html#l00125">driver_w25qxx_advance.c:125</a></div></div>
+<div class="ttc" id="agroup__w25qxx__example__driver_html_gaf4736fff906c2f0c1dbed26b20847052"><div class="ttname"><a href="group__w25qxx__example__driver.html#gaf4736fff906c2f0c1dbed26b20847052">w25qxx_advance_get_status2</a></div><div class="ttdeci">uint8_t w25qxx_advance_get_status2(uint8_t *status)</div><div class="ttdoc">advance example get the status 2</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__advance_8c_source.html#l00567">driver_w25qxx_advance.c:567</a></div></div>
+<div class="ttc" id="agroup__w25qxx__example__driver_html_gaf5f978c432de7d6adaf41cd256724a01"><div class="ttname"><a href="group__w25qxx__example__driver.html#gaf5f978c432de7d6adaf41cd256724a01">w25qxx_advance_only_spi_fast_read_quad_output</a></div><div class="ttdeci">uint8_t w25qxx_advance_only_spi_fast_read_quad_output(uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">advance example fast read only in the spi quad output interface</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__advance_8c_source.html#l00417">driver_w25qxx_advance.c:417</a></div></div>
 </div><!-- fragment --></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
     <li class="navelem"><a class="el" href="dir_cfafba98a580ce4b62f8a6fa96d7cbb0.html">example</a></li><li class="navelem"><a class="el" href="driver__w25qxx__advance_8h.html">driver_w25qxx_advance.h</a></li>
-    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
+    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/driver__w25qxx__basic_8c.html b/doc/html/driver__w25qxx__basic_8c.html
index 06e05a7..1d0550e 100644
--- a/doc/html/driver__w25qxx__basic_8c.html
+++ b/doc/html/driver__w25qxx__basic_8c.html
@@ -1,9 +1,9 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.8"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>LibDriver W25QXX: example/driver_w25qxx_basic.c File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -23,11 +23,10 @@
 <div id="titlearea">
 <table cellspacing="0" cellpadding="0">
  <tbody>
- <tr style="height: 56px;">
+ <tr id="projectrow">
   <td id="projectlogo"><img alt="Logo" src="doxygen.png"/></td>
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">LibDriver W25QXX
-   &#160;<span id="projectnumber">1.0.0</span>
+  <td id="projectalign">
+   <div id="projectname">LibDriver W25QXX<span id="projectnumber">&#160;1.0.0</span>
    </div>
    <div id="projectbrief">W25QXX full function driver</div>
   </td>
@@ -36,21 +35,22 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.8 -->
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search/",'.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
 <script type="text/javascript" src="menu.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(function() {
   initMenu('',true,false,'search.php','Search');
   $(document).ready(function() { init_search(); });
 });
-/* @license-end */</script>
+/* @license-end */
+</script>
 <div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
@@ -64,7 +64,7 @@
   </div>
 </div>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(document).ready(function(){initNavTree('driver__w25qxx__basic_8c.html',''); initResizable(); });
 /* @license-end */
 </script>
@@ -78,16 +78,22 @@
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
 </div>
 
 <div class="header">
   <div class="summary">
 <a href="#func-members">Functions</a>  </div>
-  <div class="headertitle">
-<div class="title">driver_w25qxx_basic.c File Reference</div>  </div>
+  <div class="headertitle"><div class="title">driver_w25qxx_basic.c File Reference</div></div>
 </div><!--header-->
 <div class="contents">
 
@@ -97,31 +103,31 @@
 </div>
 <p><a href="driver__w25qxx__basic_8c_source.html">Go to the source code of this file.</a></p>
 <table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
 Functions</h2></td></tr>
-<tr class="memitem:ga1e20768311dfdf33c77b442fa874b61a"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga1e20768311dfdf33c77b442fa874b61a">w25qxx_basic_init</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga6cb4e5164464df549201dd96cb7a58b1">w25qxx_type_t</a> type, <a class="el" href="group__w25qxx__basic__driver.html#gacbf327a42336baf10713a1796ff4f2fe">w25qxx_interface_t</a> interface, <a class="el" href="group__w25qxx__basic__driver.html#gafb2690946f5baf4be6f3a63dde5491fb">w25qxx_bool_t</a> dual_quad_spi_enable)</td></tr>
-<tr class="memdesc:ga1e20768311dfdf33c77b442fa874b61a"><td class="mdescLeft">&#160;</td><td class="mdescRight">basic example init  <a href="group__w25qxx__example__driver.html#ga1e20768311dfdf33c77b442fa874b61a">More...</a><br /></td></tr>
+<tr class="memitem:ga1e20768311dfdf33c77b442fa874b61a" id="r_ga1e20768311dfdf33c77b442fa874b61a"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga1e20768311dfdf33c77b442fa874b61a">w25qxx_basic_init</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga6cb4e5164464df549201dd96cb7a58b1">w25qxx_type_t</a> type, <a class="el" href="group__w25qxx__basic__driver.html#gacbf327a42336baf10713a1796ff4f2fe">w25qxx_interface_t</a> interface, <a class="el" href="group__w25qxx__basic__driver.html#gafb2690946f5baf4be6f3a63dde5491fb">w25qxx_bool_t</a> dual_quad_spi_enable)</td></tr>
+<tr class="memdesc:ga1e20768311dfdf33c77b442fa874b61a"><td class="mdescLeft">&#160;</td><td class="mdescRight">basic example init  <br /></td></tr>
 <tr class="separator:ga1e20768311dfdf33c77b442fa874b61a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaeb167c2924a3490e9a8d11e0c57d2dc0"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#gaeb167c2924a3490e9a8d11e0c57d2dc0">w25qxx_basic_deinit</a> (void)</td></tr>
-<tr class="memdesc:gaeb167c2924a3490e9a8d11e0c57d2dc0"><td class="mdescLeft">&#160;</td><td class="mdescRight">basic example deinit  <a href="group__w25qxx__example__driver.html#gaeb167c2924a3490e9a8d11e0c57d2dc0">More...</a><br /></td></tr>
+<tr class="memitem:gaeb167c2924a3490e9a8d11e0c57d2dc0" id="r_gaeb167c2924a3490e9a8d11e0c57d2dc0"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#gaeb167c2924a3490e9a8d11e0c57d2dc0">w25qxx_basic_deinit</a> (void)</td></tr>
+<tr class="memdesc:gaeb167c2924a3490e9a8d11e0c57d2dc0"><td class="mdescLeft">&#160;</td><td class="mdescRight">basic example deinit  <br /></td></tr>
 <tr class="separator:gaeb167c2924a3490e9a8d11e0c57d2dc0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga572c9f7a0bf2e7ab43dc078121162ec3"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga572c9f7a0bf2e7ab43dc078121162ec3">w25qxx_basic_power_down</a> (void)</td></tr>
-<tr class="memdesc:ga572c9f7a0bf2e7ab43dc078121162ec3"><td class="mdescLeft">&#160;</td><td class="mdescRight">basic example power down  <a href="group__w25qxx__example__driver.html#ga572c9f7a0bf2e7ab43dc078121162ec3">More...</a><br /></td></tr>
+<tr class="memitem:ga572c9f7a0bf2e7ab43dc078121162ec3" id="r_ga572c9f7a0bf2e7ab43dc078121162ec3"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga572c9f7a0bf2e7ab43dc078121162ec3">w25qxx_basic_power_down</a> (void)</td></tr>
+<tr class="memdesc:ga572c9f7a0bf2e7ab43dc078121162ec3"><td class="mdescLeft">&#160;</td><td class="mdescRight">basic example power down  <br /></td></tr>
 <tr class="separator:ga572c9f7a0bf2e7ab43dc078121162ec3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga02914409a9db38f35bc89d9fc4d96a17"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga02914409a9db38f35bc89d9fc4d96a17">w25qxx_basic_wake_up</a> (void)</td></tr>
-<tr class="memdesc:ga02914409a9db38f35bc89d9fc4d96a17"><td class="mdescLeft">&#160;</td><td class="mdescRight">basic example wake up  <a href="group__w25qxx__example__driver.html#ga02914409a9db38f35bc89d9fc4d96a17">More...</a><br /></td></tr>
+<tr class="memitem:ga02914409a9db38f35bc89d9fc4d96a17" id="r_ga02914409a9db38f35bc89d9fc4d96a17"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga02914409a9db38f35bc89d9fc4d96a17">w25qxx_basic_wake_up</a> (void)</td></tr>
+<tr class="memdesc:ga02914409a9db38f35bc89d9fc4d96a17"><td class="mdescLeft">&#160;</td><td class="mdescRight">basic example wake up  <br /></td></tr>
 <tr class="separator:ga02914409a9db38f35bc89d9fc4d96a17"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf78e9f136e29b826c1a2b337b8451d6d"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#gaf78e9f136e29b826c1a2b337b8451d6d">w25qxx_basic_chip_erase</a> (void)</td></tr>
-<tr class="memdesc:gaf78e9f136e29b826c1a2b337b8451d6d"><td class="mdescLeft">&#160;</td><td class="mdescRight">basic example chip erase  <a href="group__w25qxx__example__driver.html#gaf78e9f136e29b826c1a2b337b8451d6d">More...</a><br /></td></tr>
+<tr class="memitem:gaf78e9f136e29b826c1a2b337b8451d6d" id="r_gaf78e9f136e29b826c1a2b337b8451d6d"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#gaf78e9f136e29b826c1a2b337b8451d6d">w25qxx_basic_chip_erase</a> (void)</td></tr>
+<tr class="memdesc:gaf78e9f136e29b826c1a2b337b8451d6d"><td class="mdescLeft">&#160;</td><td class="mdescRight">basic example chip erase  <br /></td></tr>
 <tr class="separator:gaf78e9f136e29b826c1a2b337b8451d6d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gacdda3af55c024b55fc9939aa23650356"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#gacdda3af55c024b55fc9939aa23650356">w25qxx_basic_get_id</a> (uint8_t *manufacturer, uint8_t *device_id)</td></tr>
-<tr class="memdesc:gacdda3af55c024b55fc9939aa23650356"><td class="mdescLeft">&#160;</td><td class="mdescRight">basic example get the manufacturer &amp;&amp; device id information  <a href="group__w25qxx__example__driver.html#gacdda3af55c024b55fc9939aa23650356">More...</a><br /></td></tr>
+<tr class="memitem:gacdda3af55c024b55fc9939aa23650356" id="r_gacdda3af55c024b55fc9939aa23650356"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#gacdda3af55c024b55fc9939aa23650356">w25qxx_basic_get_id</a> (uint8_t *manufacturer, uint8_t *device_id)</td></tr>
+<tr class="memdesc:gacdda3af55c024b55fc9939aa23650356"><td class="mdescLeft">&#160;</td><td class="mdescRight">basic example get the manufacturer &amp;&amp; device id information  <br /></td></tr>
 <tr class="separator:gacdda3af55c024b55fc9939aa23650356"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga5cf24fc78e1b45e845d02ec9133f46ab"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga5cf24fc78e1b45e845d02ec9133f46ab">w25qxx_basic_write</a> (uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
-<tr class="memdesc:ga5cf24fc78e1b45e845d02ec9133f46ab"><td class="mdescLeft">&#160;</td><td class="mdescRight">basic example write  <a href="group__w25qxx__example__driver.html#ga5cf24fc78e1b45e845d02ec9133f46ab">More...</a><br /></td></tr>
+<tr class="memitem:ga5cf24fc78e1b45e845d02ec9133f46ab" id="r_ga5cf24fc78e1b45e845d02ec9133f46ab"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga5cf24fc78e1b45e845d02ec9133f46ab">w25qxx_basic_write</a> (uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
+<tr class="memdesc:ga5cf24fc78e1b45e845d02ec9133f46ab"><td class="mdescLeft">&#160;</td><td class="mdescRight">basic example write  <br /></td></tr>
 <tr class="separator:ga5cf24fc78e1b45e845d02ec9133f46ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga143fa1f19a792142339f3d4e9ce078d0"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga143fa1f19a792142339f3d4e9ce078d0">w25qxx_basic_read</a> (uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
-<tr class="memdesc:ga143fa1f19a792142339f3d4e9ce078d0"><td class="mdescLeft">&#160;</td><td class="mdescRight">basic example read  <a href="group__w25qxx__example__driver.html#ga143fa1f19a792142339f3d4e9ce078d0">More...</a><br /></td></tr>
+<tr class="memitem:ga143fa1f19a792142339f3d4e9ce078d0" id="r_ga143fa1f19a792142339f3d4e9ce078d0"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga143fa1f19a792142339f3d4e9ce078d0">w25qxx_basic_read</a> (uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
+<tr class="memdesc:ga143fa1f19a792142339f3d4e9ce078d0"><td class="mdescLeft">&#160;</td><td class="mdescRight">basic example read  <br /></td></tr>
 <tr class="separator:ga143fa1f19a792142339f3d4e9ce078d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
@@ -149,7 +155,7 @@ <h3>history</h3>
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
     <li class="navelem"><a class="el" href="dir_cfafba98a580ce4b62f8a6fa96d7cbb0.html">example</a></li><li class="navelem"><a class="el" href="driver__w25qxx__basic_8c.html">driver_w25qxx_basic.c</a></li>
-    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
+    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/driver__w25qxx__basic_8c_source.html b/doc/html/driver__w25qxx__basic_8c_source.html
index 88c33b0..f0abaac 100644
--- a/doc/html/driver__w25qxx__basic_8c_source.html
+++ b/doc/html/driver__w25qxx__basic_8c_source.html
@@ -1,9 +1,9 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.8"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>LibDriver W25QXX: example/driver_w25qxx_basic.c Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -23,11 +23,10 @@
 <div id="titlearea">
 <table cellspacing="0" cellpadding="0">
  <tbody>
- <tr style="height: 56px;">
+ <tr id="projectrow">
   <td id="projectlogo"><img alt="Logo" src="doxygen.png"/></td>
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">LibDriver W25QXX
-   &#160;<span id="projectnumber">1.0.0</span>
+  <td id="projectalign">
+   <div id="projectname">LibDriver W25QXX<span id="projectnumber">&#160;1.0.0</span>
    </div>
    <div id="projectbrief">W25QXX full function driver</div>
   </td>
@@ -36,22 +35,28 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.8 -->
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search/",'.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
 <script type="text/javascript" src="menu.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(function() {
   initMenu('',true,false,'search.php','Search');
   $(document).ready(function() { init_search(); });
 });
-/* @license-end */</script>
+/* @license-end */
+</script>
 <div id="main-nav"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(document).ready(function() { init_codefold(0); });
+/* @license-end */
+</script>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -64,7 +69,7 @@
   </div>
 </div>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(document).ready(function(){initNavTree('driver__w25qxx__basic_8c_source.html',''); initResizable(); });
 /* @license-end */
 </script>
@@ -78,217 +83,239 @@
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
 </div>
 
 <div class="header">
-  <div class="headertitle">
-<div class="title">driver_w25qxx_basic.c</div>  </div>
+  <div class="headertitle"><div class="title">driver_w25qxx_basic.c</div></div>
 </div><!--header-->
 <div class="contents">
-<a href="driver__w25qxx__basic_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160; </div>
-<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="driver__w25qxx__basic_8h.html">driver_w25qxx_basic.h</a>&quot;</span></div>
-<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160; </div>
-<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="keyword">static</span> <a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> gs_handle;        </div>
-<div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="group__w25qxx__example__driver.html#ga1e20768311dfdf33c77b442fa874b61a">   51</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__example__driver.html#ga1e20768311dfdf33c77b442fa874b61a">w25qxx_basic_init</a>(<a class="code" href="group__w25qxx__basic__driver.html#ga6cb4e5164464df549201dd96cb7a58b1">w25qxx_type_t</a> type, <a class="code" href="group__w25qxx__basic__driver.html#gacbf327a42336baf10713a1796ff4f2fe">w25qxx_interface_t</a> interface, <a class="code" href="group__w25qxx__basic__driver.html#gafb2690946f5baf4be6f3a63dde5491fb">w25qxx_bool_t</a> dual_quad_spi_enable)</div>
-<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;{</div>
-<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;    uint8_t res;</div>
-<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;    </div>
-<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;    <span class="comment">/* link interface function */</span></div>
-<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;    <a class="code" href="group__w25qxx__link__driver.html#ga995378489f95bc6bbddbe710557e3384">DRIVER_W25QXX_LINK_INIT</a>(&amp;gs_handle, <a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a>);</div>
-<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;    <a class="code" href="group__w25qxx__link__driver.html#gab2587de93f1dba5664eede8cd787a88a">DRIVER_W25QXX_LINK_SPI_QSPI_INIT</a>(&amp;gs_handle, <a class="code" href="group__w25qxx__interface__driver.html#ga2bdc17a556f1c801a38656331f3bb7b6">w25qxx_interface_spi_qspi_init</a>);</div>
-<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;    <a class="code" href="group__w25qxx__link__driver.html#gaec8b55e83b46907be1dd9e7c50be550d">DRIVER_W25QXX_LINK_SPI_QSPI_DEINIT</a>(&amp;gs_handle, <a class="code" href="group__w25qxx__interface__driver.html#ga091f3607fcdd47f9e5f94cf1397bd46a">w25qxx_interface_spi_qspi_deinit</a>);</div>
-<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;    <a class="code" href="group__w25qxx__link__driver.html#gac8f0ca0a725790bace3241d1d616e3d1">DRIVER_W25QXX_LINK_SPI_QSPI_WRITE_READ</a>(&amp;gs_handle, <a class="code" href="group__w25qxx__interface__driver.html#ga3d76ea1f431978f6b55edfd0628c94cd">w25qxx_interface_spi_qspi_write_read</a>);</div>
-<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;    <a class="code" href="group__w25qxx__link__driver.html#ga7555618f13d2de0003ae6d9483085180">DRIVER_W25QXX_LINK_DELAY_MS</a>(&amp;gs_handle, <a class="code" href="group__w25qxx__interface__driver.html#ga964fa232abf98737cb98458eebfff82c">w25qxx_interface_delay_ms</a>);</div>
-<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;    <a class="code" href="group__w25qxx__link__driver.html#gafc81bf850c80dfa316f0c6ab40be6e67">DRIVER_W25QXX_LINK_DELAY_US</a>(&amp;gs_handle, <a class="code" href="group__w25qxx__interface__driver.html#ga38e79039b913154c9dd1036ff52bb420">w25qxx_interface_delay_us</a>);</div>
-<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;    <a class="code" href="group__w25qxx__link__driver.html#gab8d49ef9dca942fe5f37c30dcd7e22a6">DRIVER_W25QXX_LINK_DEBUG_PRINT</a>(&amp;gs_handle, <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>);</div>
-<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;    </div>
-<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;    <span class="comment">/* set chip type */</span></div>
-<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;    res = <a class="code" href="group__w25qxx__basic__driver.html#gaa57189cd4170b73f8b1300ca15e27de6">w25qxx_set_type</a>(&amp;gs_handle, type);</div>
-<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;    <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;    {</div>
-<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set type failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;       </div>
-<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;        <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;    }</div>
-<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;    </div>
-<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;    <span class="comment">/* set chip interface */</span></div>
-<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;    res = <a class="code" href="group__w25qxx__basic__driver.html#ga50a62003d566402d46ada2f272c41eb5">w25qxx_set_interface</a>(&amp;gs_handle, interface);</div>
-<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;    <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;    {</div>
-<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set interface failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;       </div>
-<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;        <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;    }</div>
-<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;    </div>
-<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;    <span class="comment">/* set dual quad spi */</span></div>
-<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;    res = <a class="code" href="group__w25qxx__basic__driver.html#ga665139209b0abc386474a78d89cce6f2">w25qxx_set_dual_quad_spi</a>(&amp;gs_handle, dual_quad_spi_enable);</div>
-<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;    <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;    {</div>
-<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set dual quad spi failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;        (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;       </div>
-<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;        <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;    }</div>
-<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;    </div>
-<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;    <span class="comment">/* chip init */</span></div>
-<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;    res = <a class="code" href="group__w25qxx__basic__driver.html#ga8e7a163b3d255b8c7fc035d0d60f2491">w25qxx_init</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;    <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;    {</div>
-<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: init failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;       </div>
-<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;        <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;    }</div>
-<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;    <span class="keywordflow">else</span></div>
-<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;    {</div>
-<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;        <span class="keywordflow">if</span> (type &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)</div>
-<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;        {</div>
-<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;            res = <a class="code" href="group__w25qxx__basic__driver.html#gad0e125eff304ce66fb3956d2c8c80656">w25qxx_set_address_mode</a>(&amp;gs_handle, <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>);</div>
-<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;            <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;            {</div>
-<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set address mode failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;                (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;               </div>
-<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;                <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;            }</div>
-<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;        }</div>
-<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;        </div>
-<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;        <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;    }</div>
-<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;}</div>
-<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160; </div>
-<div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="group__w25qxx__example__driver.html#gaeb167c2924a3490e9a8d11e0c57d2dc0">  125</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__example__driver.html#gaeb167c2924a3490e9a8d11e0c57d2dc0">w25qxx_basic_deinit</a>(<span class="keywordtype">void</span>)</div>
-<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;{</div>
-<div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle) != 0)</div>
-<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;    {</div>
-<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;        <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;    }</div>
-<div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;    <span class="keywordflow">else</span></div>
-<div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;    {</div>
-<div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;        <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;    }</div>
-<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;}</div>
-<div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160; </div>
-<div class="line"><a name="l00144"></a><span class="lineno"><a class="line" href="group__w25qxx__example__driver.html#ga572c9f7a0bf2e7ab43dc078121162ec3">  144</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__example__driver.html#ga572c9f7a0bf2e7ab43dc078121162ec3">w25qxx_basic_power_down</a>(<span class="keywordtype">void</span>)</div>
-<div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;{</div>
-<div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="group__w25qxx__basic__driver.html#gae4effce67e36120325e3c7b245b90142">w25qxx_power_down</a>(&amp;gs_handle) != 0)</div>
-<div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;    {</div>
-<div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;        <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;    }</div>
-<div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;    <span class="keywordflow">else</span></div>
-<div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;    {</div>
-<div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;        <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;    }</div>
-<div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;}</div>
-<div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160; </div>
-<div class="line"><a name="l00163"></a><span class="lineno"><a class="line" href="group__w25qxx__example__driver.html#ga02914409a9db38f35bc89d9fc4d96a17">  163</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__example__driver.html#ga02914409a9db38f35bc89d9fc4d96a17">w25qxx_basic_wake_up</a>(<span class="keywordtype">void</span>)</div>
-<div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;{</div>
-<div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="group__w25qxx__basic__driver.html#ga09c9b52877516a2ee4c080dc249e7331">w25qxx_release_power_down</a>(&amp;gs_handle) != 0)</div>
-<div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;    {</div>
-<div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;        <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;    }</div>
-<div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;    <span class="keywordflow">else</span></div>
-<div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;    {</div>
-<div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;        <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;    }</div>
-<div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;}</div>
-<div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160; </div>
-<div class="line"><a name="l00182"></a><span class="lineno"><a class="line" href="group__w25qxx__example__driver.html#gaf78e9f136e29b826c1a2b337b8451d6d">  182</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__example__driver.html#gaf78e9f136e29b826c1a2b337b8451d6d">w25qxx_basic_chip_erase</a>(<span class="keywordtype">void</span>)</div>
-<div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;{</div>
-<div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="group__w25qxx__basic__driver.html#ga0862833b36831f92684980b2e21f2e39">w25qxx_chip_erase</a>(&amp;gs_handle) != 0)</div>
-<div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;    {</div>
-<div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;        <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;    }</div>
-<div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;    <span class="keywordflow">else</span></div>
-<div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;    {</div>
-<div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;        <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;    }</div>
-<div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;}</div>
-<div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160; </div>
-<div class="line"><a name="l00203"></a><span class="lineno"><a class="line" href="group__w25qxx__example__driver.html#gacdda3af55c024b55fc9939aa23650356">  203</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__example__driver.html#gacdda3af55c024b55fc9939aa23650356">w25qxx_basic_get_id</a>(uint8_t *manufacturer, uint8_t *device_id)</div>
-<div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;{</div>
-<div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="group__w25qxx__basic__driver.html#ga921836a777b082ff4d0f322ccfda6b22">w25qxx_get_manufacturer_device_id</a>(&amp;gs_handle, manufacturer, device_id) != 0)</div>
-<div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;    {</div>
-<div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;        <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;    }</div>
-<div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;    <span class="keywordflow">else</span></div>
-<div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;    {</div>
-<div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;        <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;    }</div>
-<div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;}</div>
-<div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160; </div>
-<div class="line"><a name="l00225"></a><span class="lineno"><a class="line" href="group__w25qxx__example__driver.html#ga5cf24fc78e1b45e845d02ec9133f46ab">  225</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__example__driver.html#ga5cf24fc78e1b45e845d02ec9133f46ab">w25qxx_basic_write</a>(uint32_t addr, uint8_t *data, uint32_t len)</div>
-<div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;{</div>
-<div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="group__w25qxx__basic__driver.html#gaaee8264d840e51460821cb6e609338ee">w25qxx_write</a>(&amp;gs_handle, addr, data, len) != 0)</div>
-<div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;    {</div>
-<div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;        <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160;    }</div>
-<div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160;    <span class="keywordflow">else</span></div>
-<div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;    {</div>
-<div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;        <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;    }</div>
-<div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;}</div>
-<div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160; </div>
-<div class="line"><a name="l00247"></a><span class="lineno"><a class="line" href="group__w25qxx__example__driver.html#ga143fa1f19a792142339f3d4e9ce078d0">  247</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__example__driver.html#ga143fa1f19a792142339f3d4e9ce078d0">w25qxx_basic_read</a>(uint32_t addr, uint8_t *data, uint32_t len)</div>
-<div class="line"><a name="l00248"></a><span class="lineno">  248</span>&#160;{</div>
-<div class="line"><a name="l00249"></a><span class="lineno">  249</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="group__w25qxx__basic__driver.html#gae7479fc9ce911a52e3c5b6f1a615b879">w25qxx_read</a>(&amp;gs_handle, addr, data, len) != 0)</div>
-<div class="line"><a name="l00250"></a><span class="lineno">  250</span>&#160;    {</div>
-<div class="line"><a name="l00251"></a><span class="lineno">  251</span>&#160;        <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00252"></a><span class="lineno">  252</span>&#160;    }</div>
-<div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160;    <span class="keywordflow">else</span></div>
-<div class="line"><a name="l00254"></a><span class="lineno">  254</span>&#160;    {</div>
-<div class="line"><a name="l00255"></a><span class="lineno">  255</span>&#160;        <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l00256"></a><span class="lineno">  256</span>&#160;    }</div>
-<div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160;}</div>
+<a href="driver__w25qxx__basic_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno">    1</span> </div>
+<div class="line"><a id="l00037" name="l00037"></a><span class="lineno">   37</span><span class="preprocessor">#include &quot;<a class="code" href="driver__w25qxx__basic_8h.html">driver_w25qxx_basic.h</a>&quot;</span></div>
+<div class="line"><a id="l00038" name="l00038"></a><span class="lineno">   38</span> </div>
+<div class="line"><a id="l00039" name="l00039"></a><span class="lineno">   39</span><span class="keyword">static</span> <a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> gs_handle;        </div>
+<div class="foldopen" id="foldopen00051" data-start="{" data-end="}">
+<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"><a class="line" href="group__w25qxx__example__driver.html#ga1e20768311dfdf33c77b442fa874b61a">   51</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__example__driver.html#ga1e20768311dfdf33c77b442fa874b61a">w25qxx_basic_init</a>(<a class="code hl_enumeration" href="group__w25qxx__basic__driver.html#ga6cb4e5164464df549201dd96cb7a58b1">w25qxx_type_t</a> type, <a class="code hl_enumeration" href="group__w25qxx__basic__driver.html#gacbf327a42336baf10713a1796ff4f2fe">w25qxx_interface_t</a> interface, <a class="code hl_enumeration" href="group__w25qxx__basic__driver.html#gafb2690946f5baf4be6f3a63dde5491fb">w25qxx_bool_t</a> dual_quad_spi_enable)</div>
+<div class="line"><a id="l00052" name="l00052"></a><span class="lineno">   52</span>{</div>
+<div class="line"><a id="l00053" name="l00053"></a><span class="lineno">   53</span>    uint8_t res;</div>
+<div class="line"><a id="l00054" name="l00054"></a><span class="lineno">   54</span>    </div>
+<div class="line"><a id="l00055" name="l00055"></a><span class="lineno">   55</span>    <span class="comment">/* link interface function */</span></div>
+<div class="line"><a id="l00056" name="l00056"></a><span class="lineno">   56</span>    <a class="code hl_define" href="group__w25qxx__link__driver.html#ga995378489f95bc6bbddbe710557e3384">DRIVER_W25QXX_LINK_INIT</a>(&amp;gs_handle, <a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a>);</div>
+<div class="line"><a id="l00057" name="l00057"></a><span class="lineno">   57</span>    <a class="code hl_define" href="group__w25qxx__link__driver.html#gab2587de93f1dba5664eede8cd787a88a">DRIVER_W25QXX_LINK_SPI_QSPI_INIT</a>(&amp;gs_handle, <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga2bdc17a556f1c801a38656331f3bb7b6">w25qxx_interface_spi_qspi_init</a>);</div>
+<div class="line"><a id="l00058" name="l00058"></a><span class="lineno">   58</span>    <a class="code hl_define" href="group__w25qxx__link__driver.html#gaec8b55e83b46907be1dd9e7c50be550d">DRIVER_W25QXX_LINK_SPI_QSPI_DEINIT</a>(&amp;gs_handle, <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga091f3607fcdd47f9e5f94cf1397bd46a">w25qxx_interface_spi_qspi_deinit</a>);</div>
+<div class="line"><a id="l00059" name="l00059"></a><span class="lineno">   59</span>    <a class="code hl_define" href="group__w25qxx__link__driver.html#gac8f0ca0a725790bace3241d1d616e3d1">DRIVER_W25QXX_LINK_SPI_QSPI_WRITE_READ</a>(&amp;gs_handle, <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga3d76ea1f431978f6b55edfd0628c94cd">w25qxx_interface_spi_qspi_write_read</a>);</div>
+<div class="line"><a id="l00060" name="l00060"></a><span class="lineno">   60</span>    <a class="code hl_define" href="group__w25qxx__link__driver.html#ga7555618f13d2de0003ae6d9483085180">DRIVER_W25QXX_LINK_DELAY_MS</a>(&amp;gs_handle, <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga964fa232abf98737cb98458eebfff82c">w25qxx_interface_delay_ms</a>);</div>
+<div class="line"><a id="l00061" name="l00061"></a><span class="lineno">   61</span>    <a class="code hl_define" href="group__w25qxx__link__driver.html#gafc81bf850c80dfa316f0c6ab40be6e67">DRIVER_W25QXX_LINK_DELAY_US</a>(&amp;gs_handle, <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga38e79039b913154c9dd1036ff52bb420">w25qxx_interface_delay_us</a>);</div>
+<div class="line"><a id="l00062" name="l00062"></a><span class="lineno">   62</span>    <a class="code hl_define" href="group__w25qxx__link__driver.html#gab8d49ef9dca942fe5f37c30dcd7e22a6">DRIVER_W25QXX_LINK_DEBUG_PRINT</a>(&amp;gs_handle, <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>);</div>
+<div class="line"><a id="l00063" name="l00063"></a><span class="lineno">   63</span>    </div>
+<div class="line"><a id="l00064" name="l00064"></a><span class="lineno">   64</span>    <span class="comment">/* set chip type */</span></div>
+<div class="line"><a id="l00065" name="l00065"></a><span class="lineno">   65</span>    res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa57189cd4170b73f8b1300ca15e27de6">w25qxx_set_type</a>(&amp;gs_handle, type);</div>
+<div class="line"><a id="l00066" name="l00066"></a><span class="lineno">   66</span>    <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00067" name="l00067"></a><span class="lineno">   67</span>    {</div>
+<div class="line"><a id="l00068" name="l00068"></a><span class="lineno">   68</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set type failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00069" name="l00069"></a><span class="lineno">   69</span>       </div>
+<div class="line"><a id="l00070" name="l00070"></a><span class="lineno">   70</span>        <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00071" name="l00071"></a><span class="lineno">   71</span>    }</div>
+<div class="line"><a id="l00072" name="l00072"></a><span class="lineno">   72</span>    </div>
+<div class="line"><a id="l00073" name="l00073"></a><span class="lineno">   73</span>    <span class="comment">/* set chip interface */</span></div>
+<div class="line"><a id="l00074" name="l00074"></a><span class="lineno">   74</span>    res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#ga50a62003d566402d46ada2f272c41eb5">w25qxx_set_interface</a>(&amp;gs_handle, interface);</div>
+<div class="line"><a id="l00075" name="l00075"></a><span class="lineno">   75</span>    <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00076" name="l00076"></a><span class="lineno">   76</span>    {</div>
+<div class="line"><a id="l00077" name="l00077"></a><span class="lineno">   77</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set interface failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00078" name="l00078"></a><span class="lineno">   78</span>       </div>
+<div class="line"><a id="l00079" name="l00079"></a><span class="lineno">   79</span>        <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00080" name="l00080"></a><span class="lineno">   80</span>    }</div>
+<div class="line"><a id="l00081" name="l00081"></a><span class="lineno">   81</span>    </div>
+<div class="line"><a id="l00082" name="l00082"></a><span class="lineno">   82</span>    <span class="comment">/* set dual quad spi */</span></div>
+<div class="line"><a id="l00083" name="l00083"></a><span class="lineno">   83</span>    res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#ga665139209b0abc386474a78d89cce6f2">w25qxx_set_dual_quad_spi</a>(&amp;gs_handle, dual_quad_spi_enable);</div>
+<div class="line"><a id="l00084" name="l00084"></a><span class="lineno">   84</span>    <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00085" name="l00085"></a><span class="lineno">   85</span>    {</div>
+<div class="line"><a id="l00086" name="l00086"></a><span class="lineno">   86</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set dual quad spi failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00087" name="l00087"></a><span class="lineno">   87</span>        (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00088" name="l00088"></a><span class="lineno">   88</span>       </div>
+<div class="line"><a id="l00089" name="l00089"></a><span class="lineno">   89</span>        <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00090" name="l00090"></a><span class="lineno">   90</span>    }</div>
+<div class="line"><a id="l00091" name="l00091"></a><span class="lineno">   91</span>    </div>
+<div class="line"><a id="l00092" name="l00092"></a><span class="lineno">   92</span>    <span class="comment">/* chip init */</span></div>
+<div class="line"><a id="l00093" name="l00093"></a><span class="lineno">   93</span>    res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#ga8e7a163b3d255b8c7fc035d0d60f2491">w25qxx_init</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00094" name="l00094"></a><span class="lineno">   94</span>    <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00095" name="l00095"></a><span class="lineno">   95</span>    {</div>
+<div class="line"><a id="l00096" name="l00096"></a><span class="lineno">   96</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: init failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00097" name="l00097"></a><span class="lineno">   97</span>       </div>
+<div class="line"><a id="l00098" name="l00098"></a><span class="lineno">   98</span>        <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00099" name="l00099"></a><span class="lineno">   99</span>    }</div>
+<div class="line"><a id="l00100" name="l00100"></a><span class="lineno">  100</span>    <span class="keywordflow">else</span></div>
+<div class="line"><a id="l00101" name="l00101"></a><span class="lineno">  101</span>    {</div>
+<div class="line"><a id="l00102" name="l00102"></a><span class="lineno">  102</span>        <span class="keywordflow">if</span> (type &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)</div>
+<div class="line"><a id="l00103" name="l00103"></a><span class="lineno">  103</span>        {</div>
+<div class="line"><a id="l00104" name="l00104"></a><span class="lineno">  104</span>            res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#gad0e125eff304ce66fb3956d2c8c80656">w25qxx_set_address_mode</a>(&amp;gs_handle, <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>);</div>
+<div class="line"><a id="l00105" name="l00105"></a><span class="lineno">  105</span>            <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00106" name="l00106"></a><span class="lineno">  106</span>            {</div>
+<div class="line"><a id="l00107" name="l00107"></a><span class="lineno">  107</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set address mode failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00108" name="l00108"></a><span class="lineno">  108</span>                (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00109" name="l00109"></a><span class="lineno">  109</span>               </div>
+<div class="line"><a id="l00110" name="l00110"></a><span class="lineno">  110</span>                <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00111" name="l00111"></a><span class="lineno">  111</span>            }</div>
+<div class="line"><a id="l00112" name="l00112"></a><span class="lineno">  112</span>        }</div>
+<div class="line"><a id="l00113" name="l00113"></a><span class="lineno">  113</span>        </div>
+<div class="line"><a id="l00114" name="l00114"></a><span class="lineno">  114</span>        <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a id="l00115" name="l00115"></a><span class="lineno">  115</span>    }</div>
+<div class="line"><a id="l00116" name="l00116"></a><span class="lineno">  116</span>}</div>
+</div>
+<div class="line"><a id="l00117" name="l00117"></a><span class="lineno">  117</span> </div>
+<div class="foldopen" id="foldopen00125" data-start="{" data-end="}">
+<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"><a class="line" href="group__w25qxx__example__driver.html#gaeb167c2924a3490e9a8d11e0c57d2dc0">  125</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__example__driver.html#gaeb167c2924a3490e9a8d11e0c57d2dc0">w25qxx_basic_deinit</a>(<span class="keywordtype">void</span>)</div>
+<div class="line"><a id="l00126" name="l00126"></a><span class="lineno">  126</span>{</div>
+<div class="line"><a id="l00127" name="l00127"></a><span class="lineno">  127</span>    <span class="keywordflow">if</span> (<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle) != 0)</div>
+<div class="line"><a id="l00128" name="l00128"></a><span class="lineno">  128</span>    {</div>
+<div class="line"><a id="l00129" name="l00129"></a><span class="lineno">  129</span>        <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00130" name="l00130"></a><span class="lineno">  130</span>    }</div>
+<div class="line"><a id="l00131" name="l00131"></a><span class="lineno">  131</span>    <span class="keywordflow">else</span></div>
+<div class="line"><a id="l00132" name="l00132"></a><span class="lineno">  132</span>    {</div>
+<div class="line"><a id="l00133" name="l00133"></a><span class="lineno">  133</span>        <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a id="l00134" name="l00134"></a><span class="lineno">  134</span>    }</div>
+<div class="line"><a id="l00135" name="l00135"></a><span class="lineno">  135</span>}</div>
+</div>
+<div class="line"><a id="l00136" name="l00136"></a><span class="lineno">  136</span> </div>
+<div class="foldopen" id="foldopen00144" data-start="{" data-end="}">
+<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"><a class="line" href="group__w25qxx__example__driver.html#ga572c9f7a0bf2e7ab43dc078121162ec3">  144</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__example__driver.html#ga572c9f7a0bf2e7ab43dc078121162ec3">w25qxx_basic_power_down</a>(<span class="keywordtype">void</span>)</div>
+<div class="line"><a id="l00145" name="l00145"></a><span class="lineno">  145</span>{</div>
+<div class="line"><a id="l00146" name="l00146"></a><span class="lineno">  146</span>    <span class="keywordflow">if</span> (<a class="code hl_function" href="group__w25qxx__basic__driver.html#gae4effce67e36120325e3c7b245b90142">w25qxx_power_down</a>(&amp;gs_handle) != 0)</div>
+<div class="line"><a id="l00147" name="l00147"></a><span class="lineno">  147</span>    {</div>
+<div class="line"><a id="l00148" name="l00148"></a><span class="lineno">  148</span>        <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00149" name="l00149"></a><span class="lineno">  149</span>    }</div>
+<div class="line"><a id="l00150" name="l00150"></a><span class="lineno">  150</span>    <span class="keywordflow">else</span></div>
+<div class="line"><a id="l00151" name="l00151"></a><span class="lineno">  151</span>    {</div>
+<div class="line"><a id="l00152" name="l00152"></a><span class="lineno">  152</span>        <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a id="l00153" name="l00153"></a><span class="lineno">  153</span>    }</div>
+<div class="line"><a id="l00154" name="l00154"></a><span class="lineno">  154</span>}</div>
+</div>
+<div class="line"><a id="l00155" name="l00155"></a><span class="lineno">  155</span> </div>
+<div class="foldopen" id="foldopen00163" data-start="{" data-end="}">
+<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"><a class="line" href="group__w25qxx__example__driver.html#ga02914409a9db38f35bc89d9fc4d96a17">  163</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__example__driver.html#ga02914409a9db38f35bc89d9fc4d96a17">w25qxx_basic_wake_up</a>(<span class="keywordtype">void</span>)</div>
+<div class="line"><a id="l00164" name="l00164"></a><span class="lineno">  164</span>{</div>
+<div class="line"><a id="l00165" name="l00165"></a><span class="lineno">  165</span>    <span class="keywordflow">if</span> (<a class="code hl_function" href="group__w25qxx__basic__driver.html#ga09c9b52877516a2ee4c080dc249e7331">w25qxx_release_power_down</a>(&amp;gs_handle) != 0)</div>
+<div class="line"><a id="l00166" name="l00166"></a><span class="lineno">  166</span>    {</div>
+<div class="line"><a id="l00167" name="l00167"></a><span class="lineno">  167</span>        <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00168" name="l00168"></a><span class="lineno">  168</span>    }</div>
+<div class="line"><a id="l00169" name="l00169"></a><span class="lineno">  169</span>    <span class="keywordflow">else</span></div>
+<div class="line"><a id="l00170" name="l00170"></a><span class="lineno">  170</span>    {</div>
+<div class="line"><a id="l00171" name="l00171"></a><span class="lineno">  171</span>        <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a id="l00172" name="l00172"></a><span class="lineno">  172</span>    }</div>
+<div class="line"><a id="l00173" name="l00173"></a><span class="lineno">  173</span>}</div>
+</div>
+<div class="line"><a id="l00174" name="l00174"></a><span class="lineno">  174</span> </div>
+<div class="foldopen" id="foldopen00182" data-start="{" data-end="}">
+<div class="line"><a id="l00182" name="l00182"></a><span class="lineno"><a class="line" href="group__w25qxx__example__driver.html#gaf78e9f136e29b826c1a2b337b8451d6d">  182</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__example__driver.html#gaf78e9f136e29b826c1a2b337b8451d6d">w25qxx_basic_chip_erase</a>(<span class="keywordtype">void</span>)</div>
+<div class="line"><a id="l00183" name="l00183"></a><span class="lineno">  183</span>{</div>
+<div class="line"><a id="l00184" name="l00184"></a><span class="lineno">  184</span>    <span class="keywordflow">if</span> (<a class="code hl_function" href="group__w25qxx__basic__driver.html#ga0862833b36831f92684980b2e21f2e39">w25qxx_chip_erase</a>(&amp;gs_handle) != 0)</div>
+<div class="line"><a id="l00185" name="l00185"></a><span class="lineno">  185</span>    {</div>
+<div class="line"><a id="l00186" name="l00186"></a><span class="lineno">  186</span>        <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00187" name="l00187"></a><span class="lineno">  187</span>    }</div>
+<div class="line"><a id="l00188" name="l00188"></a><span class="lineno">  188</span>    <span class="keywordflow">else</span></div>
+<div class="line"><a id="l00189" name="l00189"></a><span class="lineno">  189</span>    {</div>
+<div class="line"><a id="l00190" name="l00190"></a><span class="lineno">  190</span>        <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a id="l00191" name="l00191"></a><span class="lineno">  191</span>    }</div>
+<div class="line"><a id="l00192" name="l00192"></a><span class="lineno">  192</span>}</div>
+</div>
+<div class="line"><a id="l00193" name="l00193"></a><span class="lineno">  193</span> </div>
+<div class="foldopen" id="foldopen00203" data-start="{" data-end="}">
+<div class="line"><a id="l00203" name="l00203"></a><span class="lineno"><a class="line" href="group__w25qxx__example__driver.html#gacdda3af55c024b55fc9939aa23650356">  203</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__example__driver.html#gacdda3af55c024b55fc9939aa23650356">w25qxx_basic_get_id</a>(uint8_t *manufacturer, uint8_t *device_id)</div>
+<div class="line"><a id="l00204" name="l00204"></a><span class="lineno">  204</span>{</div>
+<div class="line"><a id="l00205" name="l00205"></a><span class="lineno">  205</span>    <span class="keywordflow">if</span> (<a class="code hl_function" href="group__w25qxx__basic__driver.html#ga921836a777b082ff4d0f322ccfda6b22">w25qxx_get_manufacturer_device_id</a>(&amp;gs_handle, manufacturer, device_id) != 0)</div>
+<div class="line"><a id="l00206" name="l00206"></a><span class="lineno">  206</span>    {</div>
+<div class="line"><a id="l00207" name="l00207"></a><span class="lineno">  207</span>        <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00208" name="l00208"></a><span class="lineno">  208</span>    }</div>
+<div class="line"><a id="l00209" name="l00209"></a><span class="lineno">  209</span>    <span class="keywordflow">else</span></div>
+<div class="line"><a id="l00210" name="l00210"></a><span class="lineno">  210</span>    {</div>
+<div class="line"><a id="l00211" name="l00211"></a><span class="lineno">  211</span>        <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a id="l00212" name="l00212"></a><span class="lineno">  212</span>    }</div>
+<div class="line"><a id="l00213" name="l00213"></a><span class="lineno">  213</span>}</div>
+</div>
+<div class="line"><a id="l00214" name="l00214"></a><span class="lineno">  214</span> </div>
+<div class="foldopen" id="foldopen00225" data-start="{" data-end="}">
+<div class="line"><a id="l00225" name="l00225"></a><span class="lineno"><a class="line" href="group__w25qxx__example__driver.html#ga5cf24fc78e1b45e845d02ec9133f46ab">  225</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__example__driver.html#ga5cf24fc78e1b45e845d02ec9133f46ab">w25qxx_basic_write</a>(uint32_t addr, uint8_t *data, uint32_t len)</div>
+<div class="line"><a id="l00226" name="l00226"></a><span class="lineno">  226</span>{</div>
+<div class="line"><a id="l00227" name="l00227"></a><span class="lineno">  227</span>    <span class="keywordflow">if</span> (<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaaee8264d840e51460821cb6e609338ee">w25qxx_write</a>(&amp;gs_handle, addr, data, len) != 0)</div>
+<div class="line"><a id="l00228" name="l00228"></a><span class="lineno">  228</span>    {</div>
+<div class="line"><a id="l00229" name="l00229"></a><span class="lineno">  229</span>        <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00230" name="l00230"></a><span class="lineno">  230</span>    }</div>
+<div class="line"><a id="l00231" name="l00231"></a><span class="lineno">  231</span>    <span class="keywordflow">else</span></div>
+<div class="line"><a id="l00232" name="l00232"></a><span class="lineno">  232</span>    {</div>
+<div class="line"><a id="l00233" name="l00233"></a><span class="lineno">  233</span>        <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a id="l00234" name="l00234"></a><span class="lineno">  234</span>    }</div>
+<div class="line"><a id="l00235" name="l00235"></a><span class="lineno">  235</span>}</div>
+</div>
+<div class="line"><a id="l00236" name="l00236"></a><span class="lineno">  236</span> </div>
+<div class="foldopen" id="foldopen00247" data-start="{" data-end="}">
+<div class="line"><a id="l00247" name="l00247"></a><span class="lineno"><a class="line" href="group__w25qxx__example__driver.html#ga143fa1f19a792142339f3d4e9ce078d0">  247</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__example__driver.html#ga143fa1f19a792142339f3d4e9ce078d0">w25qxx_basic_read</a>(uint32_t addr, uint8_t *data, uint32_t len)</div>
+<div class="line"><a id="l00248" name="l00248"></a><span class="lineno">  248</span>{</div>
+<div class="line"><a id="l00249" name="l00249"></a><span class="lineno">  249</span>    <span class="keywordflow">if</span> (<a class="code hl_function" href="group__w25qxx__basic__driver.html#gae7479fc9ce911a52e3c5b6f1a615b879">w25qxx_read</a>(&amp;gs_handle, addr, data, len) != 0)</div>
+<div class="line"><a id="l00250" name="l00250"></a><span class="lineno">  250</span>    {</div>
+<div class="line"><a id="l00251" name="l00251"></a><span class="lineno">  251</span>        <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00252" name="l00252"></a><span class="lineno">  252</span>    }</div>
+<div class="line"><a id="l00253" name="l00253"></a><span class="lineno">  253</span>    <span class="keywordflow">else</span></div>
+<div class="line"><a id="l00254" name="l00254"></a><span class="lineno">  254</span>    {</div>
+<div class="line"><a id="l00255" name="l00255"></a><span class="lineno">  255</span>        <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a id="l00256" name="l00256"></a><span class="lineno">  256</span>    }</div>
+<div class="line"><a id="l00257" name="l00257"></a><span class="lineno">  257</span>}</div>
+</div>
 <div class="ttc" id="adriver__w25qxx__basic_8h_html"><div class="ttname"><a href="driver__w25qxx__basic_8h.html">driver_w25qxx_basic.h</a></div><div class="ttdoc">driver w25qxx basic header file</div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga0862833b36831f92684980b2e21f2e39"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga0862833b36831f92684980b2e21f2e39">w25qxx_chip_erase</a></div><div class="ttdeci">uint8_t w25qxx_chip_erase(w25qxx_handle_t *handle)</div><div class="ttdoc">erase the chip</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l01459">driver_w25qxx.c:1459</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga09c9b52877516a2ee4c080dc249e7331"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga09c9b52877516a2ee4c080dc249e7331">w25qxx_release_power_down</a></div><div class="ttdeci">uint8_t w25qxx_release_power_down(w25qxx_handle_t *handle)</div><div class="ttdoc">release power down</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l01875">driver_w25qxx.c:1875</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga50a62003d566402d46ada2f272c41eb5"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga50a62003d566402d46ada2f272c41eb5">w25qxx_set_interface</a></div><div class="ttdeci">uint8_t w25qxx_set_interface(w25qxx_handle_t *handle, w25qxx_interface_t interface)</div><div class="ttdoc">set the chip interface</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l00259">driver_w25qxx.c:259</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga665139209b0abc386474a78d89cce6f2"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga665139209b0abc386474a78d89cce6f2">w25qxx_set_dual_quad_spi</a></div><div class="ttdeci">uint8_t w25qxx_set_dual_quad_spi(w25qxx_handle_t *handle, w25qxx_bool_t enable)</div><div class="ttdoc">enable or disable the dual quad spi</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l00175">driver_w25qxx.c:175</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga6cb4e5164464df549201dd96cb7a58b1"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga6cb4e5164464df549201dd96cb7a58b1">w25qxx_type_t</a></div><div class="ttdeci">w25qxx_type_t</div><div class="ttdoc">w25qxx type enumeration definition</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00062">driver_w25qxx.h:63</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga8e7a163b3d255b8c7fc035d0d60f2491"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga8e7a163b3d255b8c7fc035d0d60f2491">w25qxx_init</a></div><div class="ttdeci">uint8_t w25qxx_init(w25qxx_handle_t *handle)</div><div class="ttdoc">initialize the chip</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l06819">driver_w25qxx.c:6819</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga921836a777b082ff4d0f322ccfda6b22"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga921836a777b082ff4d0f322ccfda6b22">w25qxx_get_manufacturer_device_id</a></div><div class="ttdeci">uint8_t w25qxx_get_manufacturer_device_id(w25qxx_handle_t *handle, uint8_t *manufacturer, uint8_t *device_id)</div><div class="ttdoc">get the manufacturer &amp;&amp; device id information</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l01952">driver_w25qxx.c:1952</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_gaa293c3a46c4010a3af597a83e646de0d"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a></div><div class="ttdeci">uint8_t w25qxx_deinit(w25qxx_handle_t *handle)</div><div class="ttdoc">close the chip</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l07195">driver_w25qxx.c:7195</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_gaa57189cd4170b73f8b1300ca15e27de6"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gaa57189cd4170b73f8b1300ca15e27de6">w25qxx_set_type</a></div><div class="ttdeci">uint8_t w25qxx_set_type(w25qxx_handle_t *handle, w25qxx_type_t type)</div><div class="ttdoc">set the chip type</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l00217">driver_w25qxx.c:217</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_gaaee8264d840e51460821cb6e609338ee"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gaaee8264d840e51460821cb6e609338ee">w25qxx_write</a></div><div class="ttdeci">uint8_t w25qxx_write(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">write data</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l08415">driver_w25qxx.c:8415</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_gacbf327a42336baf10713a1796ff4f2fe"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gacbf327a42336baf10713a1796ff4f2fe">w25qxx_interface_t</a></div><div class="ttdeci">w25qxx_interface_t</div><div class="ttdoc">w25qxx interface enumeration definition</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00075">driver_w25qxx.h:76</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_gad0e125eff304ce66fb3956d2c8c80656"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gad0e125eff304ce66fb3956d2c8c80656">w25qxx_set_address_mode</a></div><div class="ttdeci">uint8_t w25qxx_set_address_mode(w25qxx_handle_t *handle, w25qxx_address_mode_t mode)</div><div class="ttdoc">set the chip address mode</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l00304">driver_w25qxx.c:304</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_gae4effce67e36120325e3c7b245b90142"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gae4effce67e36120325e3c7b245b90142">w25qxx_power_down</a></div><div class="ttdeci">uint8_t w25qxx_power_down(w25qxx_handle_t *handle)</div><div class="ttdoc">power down</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l01792">driver_w25qxx.c:1792</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_gae7479fc9ce911a52e3c5b6f1a615b879"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gae7479fc9ce911a52e3c5b6f1a615b879">w25qxx_read</a></div><div class="ttdeci">uint8_t w25qxx_read(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">read data</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l07289">driver_w25qxx.c:7289</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_gafb2690946f5baf4be6f3a63dde5491fb"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gafb2690946f5baf4be6f3a63dde5491fb">w25qxx_bool_t</a></div><div class="ttdeci">w25qxx_bool_t</div><div class="ttdoc">w25qxx bool enumeration definition</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00084">driver_w25qxx.h:85</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a></div><div class="ttdeci">@ W25Q256</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00069">driver_w25qxx.h:69</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a></div><div class="ttdeci">@ W25QXX_ADDRESS_MODE_4_BYTE</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00096">driver_w25qxx.h:96</a></div></div>
-<div class="ttc" id="agroup__w25qxx__example__driver_html_ga02914409a9db38f35bc89d9fc4d96a17"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga02914409a9db38f35bc89d9fc4d96a17">w25qxx_basic_wake_up</a></div><div class="ttdeci">uint8_t w25qxx_basic_wake_up(void)</div><div class="ttdoc">basic example wake up</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__basic_8c_source.html#l00163">driver_w25qxx_basic.c:163</a></div></div>
-<div class="ttc" id="agroup__w25qxx__example__driver_html_ga143fa1f19a792142339f3d4e9ce078d0"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga143fa1f19a792142339f3d4e9ce078d0">w25qxx_basic_read</a></div><div class="ttdeci">uint8_t w25qxx_basic_read(uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">basic example read</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__basic_8c_source.html#l00247">driver_w25qxx_basic.c:247</a></div></div>
-<div class="ttc" id="agroup__w25qxx__example__driver_html_ga1e20768311dfdf33c77b442fa874b61a"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga1e20768311dfdf33c77b442fa874b61a">w25qxx_basic_init</a></div><div class="ttdeci">uint8_t w25qxx_basic_init(w25qxx_type_t type, w25qxx_interface_t interface, w25qxx_bool_t dual_quad_spi_enable)</div><div class="ttdoc">basic example init</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__basic_8c_source.html#l00051">driver_w25qxx_basic.c:51</a></div></div>
-<div class="ttc" id="agroup__w25qxx__example__driver_html_ga572c9f7a0bf2e7ab43dc078121162ec3"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga572c9f7a0bf2e7ab43dc078121162ec3">w25qxx_basic_power_down</a></div><div class="ttdeci">uint8_t w25qxx_basic_power_down(void)</div><div class="ttdoc">basic example power down</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__basic_8c_source.html#l00144">driver_w25qxx_basic.c:144</a></div></div>
-<div class="ttc" id="agroup__w25qxx__example__driver_html_ga5cf24fc78e1b45e845d02ec9133f46ab"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga5cf24fc78e1b45e845d02ec9133f46ab">w25qxx_basic_write</a></div><div class="ttdeci">uint8_t w25qxx_basic_write(uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">basic example write</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__basic_8c_source.html#l00225">driver_w25qxx_basic.c:225</a></div></div>
-<div class="ttc" id="agroup__w25qxx__example__driver_html_gacdda3af55c024b55fc9939aa23650356"><div class="ttname"><a href="group__w25qxx__example__driver.html#gacdda3af55c024b55fc9939aa23650356">w25qxx_basic_get_id</a></div><div class="ttdeci">uint8_t w25qxx_basic_get_id(uint8_t *manufacturer, uint8_t *device_id)</div><div class="ttdoc">basic example get the manufacturer &amp;&amp; device id information</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__basic_8c_source.html#l00203">driver_w25qxx_basic.c:203</a></div></div>
-<div class="ttc" id="agroup__w25qxx__example__driver_html_gaeb167c2924a3490e9a8d11e0c57d2dc0"><div class="ttname"><a href="group__w25qxx__example__driver.html#gaeb167c2924a3490e9a8d11e0c57d2dc0">w25qxx_basic_deinit</a></div><div class="ttdeci">uint8_t w25qxx_basic_deinit(void)</div><div class="ttdoc">basic example deinit</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__basic_8c_source.html#l00125">driver_w25qxx_basic.c:125</a></div></div>
-<div class="ttc" id="agroup__w25qxx__example__driver_html_gaf78e9f136e29b826c1a2b337b8451d6d"><div class="ttname"><a href="group__w25qxx__example__driver.html#gaf78e9f136e29b826c1a2b337b8451d6d">w25qxx_basic_chip_erase</a></div><div class="ttdeci">uint8_t w25qxx_basic_chip_erase(void)</div><div class="ttdoc">basic example chip erase</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__basic_8c_source.html#l00182">driver_w25qxx_basic.c:182</a></div></div>
-<div class="ttc" id="agroup__w25qxx__interface__driver_html_ga091f3607fcdd47f9e5f94cf1397bd46a"><div class="ttname"><a href="group__w25qxx__interface__driver.html#ga091f3607fcdd47f9e5f94cf1397bd46a">w25qxx_interface_spi_qspi_deinit</a></div><div class="ttdeci">uint8_t w25qxx_interface_spi_qspi_deinit(void)</div><div class="ttdoc">interface spi qspi bus deinit</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__interface__template_8c_source.html#l00058">driver_w25qxx_interface_template.c:58</a></div></div>
-<div class="ttc" id="agroup__w25qxx__interface__driver_html_ga2bdc17a556f1c801a38656331f3bb7b6"><div class="ttname"><a href="group__w25qxx__interface__driver.html#ga2bdc17a556f1c801a38656331f3bb7b6">w25qxx_interface_spi_qspi_init</a></div><div class="ttdeci">uint8_t w25qxx_interface_spi_qspi_init(void)</div><div class="ttdoc">interface spi qspi bus init</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__interface__template_8c_source.html#l00046">driver_w25qxx_interface_template.c:46</a></div></div>
-<div class="ttc" id="agroup__w25qxx__interface__driver_html_ga38e79039b913154c9dd1036ff52bb420"><div class="ttname"><a href="group__w25qxx__interface__driver.html#ga38e79039b913154c9dd1036ff52bb420">w25qxx_interface_delay_us</a></div><div class="ttdeci">void w25qxx_interface_delay_us(uint32_t us)</div><div class="ttdoc">interface delay us</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__interface__template_8c_source.html#l00108">driver_w25qxx_interface_template.c:108</a></div></div>
-<div class="ttc" id="agroup__w25qxx__interface__driver_html_ga3d76ea1f431978f6b55edfd0628c94cd"><div class="ttname"><a href="group__w25qxx__interface__driver.html#ga3d76ea1f431978f6b55edfd0628c94cd">w25qxx_interface_spi_qspi_write_read</a></div><div class="ttdeci">uint8_t w25qxx_interface_spi_qspi_write_read(uint8_t instruction, uint8_t instruction_line, uint32_t address, uint8_t address_line, uint8_t address_len, uint32_t alternate, uint8_t alternate_line, uint8_t alternate_len, uint8_t dummy, uint8_t *in_buf, uint32_t in_len, uint8_t *out_buf, uint32_t out_len, uint8_t data_line)</div><div class="ttdoc">interface spi qspi bus write read</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__interface__template_8c_source.html#l00084">driver_w25qxx_interface_template.c:84</a></div></div>
-<div class="ttc" id="agroup__w25qxx__interface__driver_html_ga5325474fa17f6833744e631613fd2a0e"><div class="ttname"><a href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a></div><div class="ttdeci">void w25qxx_interface_debug_print(const char *const fmt,...)</div><div class="ttdoc">interface print format data</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__interface__template_8c_source.html#l00118">driver_w25qxx_interface_template.c:118</a></div></div>
-<div class="ttc" id="agroup__w25qxx__interface__driver_html_ga964fa232abf98737cb98458eebfff82c"><div class="ttname"><a href="group__w25qxx__interface__driver.html#ga964fa232abf98737cb98458eebfff82c">w25qxx_interface_delay_ms</a></div><div class="ttdeci">void w25qxx_interface_delay_ms(uint32_t ms)</div><div class="ttdoc">interface delay ms</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__interface__template_8c_source.html#l00098">driver_w25qxx_interface_template.c:98</a></div></div>
-<div class="ttc" id="agroup__w25qxx__link__driver_html_ga7555618f13d2de0003ae6d9483085180"><div class="ttname"><a href="group__w25qxx__link__driver.html#ga7555618f13d2de0003ae6d9483085180">DRIVER_W25QXX_LINK_DELAY_MS</a></div><div class="ttdeci">#define DRIVER_W25QXX_LINK_DELAY_MS(HANDLE, FUC)</div><div class="ttdoc">link delay_ms function</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00297">driver_w25qxx.h:297</a></div></div>
-<div class="ttc" id="agroup__w25qxx__link__driver_html_ga995378489f95bc6bbddbe710557e3384"><div class="ttname"><a href="group__w25qxx__link__driver.html#ga995378489f95bc6bbddbe710557e3384">DRIVER_W25QXX_LINK_INIT</a></div><div class="ttdeci">#define DRIVER_W25QXX_LINK_INIT(HANDLE, STRUCTURE)</div><div class="ttdoc">initialize w25qxx_handle_t structure</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00265">driver_w25qxx.h:265</a></div></div>
-<div class="ttc" id="agroup__w25qxx__link__driver_html_gab2587de93f1dba5664eede8cd787a88a"><div class="ttname"><a href="group__w25qxx__link__driver.html#gab2587de93f1dba5664eede8cd787a88a">DRIVER_W25QXX_LINK_SPI_QSPI_INIT</a></div><div class="ttdeci">#define DRIVER_W25QXX_LINK_SPI_QSPI_INIT(HANDLE, FUC)</div><div class="ttdoc">link spi_qspi_init function</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00273">driver_w25qxx.h:273</a></div></div>
-<div class="ttc" id="agroup__w25qxx__link__driver_html_gab8d49ef9dca942fe5f37c30dcd7e22a6"><div class="ttname"><a href="group__w25qxx__link__driver.html#gab8d49ef9dca942fe5f37c30dcd7e22a6">DRIVER_W25QXX_LINK_DEBUG_PRINT</a></div><div class="ttdeci">#define DRIVER_W25QXX_LINK_DEBUG_PRINT(HANDLE, FUC)</div><div class="ttdoc">link debug_print function</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00313">driver_w25qxx.h:313</a></div></div>
-<div class="ttc" id="agroup__w25qxx__link__driver_html_gac8f0ca0a725790bace3241d1d616e3d1"><div class="ttname"><a href="group__w25qxx__link__driver.html#gac8f0ca0a725790bace3241d1d616e3d1">DRIVER_W25QXX_LINK_SPI_QSPI_WRITE_READ</a></div><div class="ttdeci">#define DRIVER_W25QXX_LINK_SPI_QSPI_WRITE_READ(HANDLE, FUC)</div><div class="ttdoc">link spi_qspi_write_read function</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00289">driver_w25qxx.h:289</a></div></div>
-<div class="ttc" id="agroup__w25qxx__link__driver_html_gaec8b55e83b46907be1dd9e7c50be550d"><div class="ttname"><a href="group__w25qxx__link__driver.html#gaec8b55e83b46907be1dd9e7c50be550d">DRIVER_W25QXX_LINK_SPI_QSPI_DEINIT</a></div><div class="ttdeci">#define DRIVER_W25QXX_LINK_SPI_QSPI_DEINIT(HANDLE, FUC)</div><div class="ttdoc">link spi_qspi_deinit function</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00281">driver_w25qxx.h:281</a></div></div>
-<div class="ttc" id="agroup__w25qxx__link__driver_html_gafc81bf850c80dfa316f0c6ab40be6e67"><div class="ttname"><a href="group__w25qxx__link__driver.html#gafc81bf850c80dfa316f0c6ab40be6e67">DRIVER_W25QXX_LINK_DELAY_US</a></div><div class="ttdeci">#define DRIVER_W25QXX_LINK_DELAY_US(HANDLE, FUC)</div><div class="ttdoc">link delay_us function</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00305">driver_w25qxx.h:305</a></div></div>
-<div class="ttc" id="astructw25qxx__handle__s_html"><div class="ttname"><a href="structw25qxx__handle__s.html">w25qxx_handle_s</a></div><div class="ttdoc">w25qxx handle structure definition</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00209">driver_w25qxx.h:210</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga0862833b36831f92684980b2e21f2e39"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga0862833b36831f92684980b2e21f2e39">w25qxx_chip_erase</a></div><div class="ttdeci">uint8_t w25qxx_chip_erase(w25qxx_handle_t *handle)</div><div class="ttdoc">erase the chip</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l01459">driver_w25qxx.c:1459</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga09c9b52877516a2ee4c080dc249e7331"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga09c9b52877516a2ee4c080dc249e7331">w25qxx_release_power_down</a></div><div class="ttdeci">uint8_t w25qxx_release_power_down(w25qxx_handle_t *handle)</div><div class="ttdoc">release power down</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l01875">driver_w25qxx.c:1875</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga50a62003d566402d46ada2f272c41eb5"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga50a62003d566402d46ada2f272c41eb5">w25qxx_set_interface</a></div><div class="ttdeci">uint8_t w25qxx_set_interface(w25qxx_handle_t *handle, w25qxx_interface_t interface)</div><div class="ttdoc">set the chip interface</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l00259">driver_w25qxx.c:259</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga665139209b0abc386474a78d89cce6f2"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga665139209b0abc386474a78d89cce6f2">w25qxx_set_dual_quad_spi</a></div><div class="ttdeci">uint8_t w25qxx_set_dual_quad_spi(w25qxx_handle_t *handle, w25qxx_bool_t enable)</div><div class="ttdoc">enable or disable the dual quad spi</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l00175">driver_w25qxx.c:175</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga6cb4e5164464df549201dd96cb7a58b1"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga6cb4e5164464df549201dd96cb7a58b1">w25qxx_type_t</a></div><div class="ttdeci">w25qxx_type_t</div><div class="ttdoc">w25qxx type enumeration definition</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00062">driver_w25qxx.h:63</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga8e7a163b3d255b8c7fc035d0d60f2491"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga8e7a163b3d255b8c7fc035d0d60f2491">w25qxx_init</a></div><div class="ttdeci">uint8_t w25qxx_init(w25qxx_handle_t *handle)</div><div class="ttdoc">initialize the chip</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l06819">driver_w25qxx.c:6819</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga921836a777b082ff4d0f322ccfda6b22"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga921836a777b082ff4d0f322ccfda6b22">w25qxx_get_manufacturer_device_id</a></div><div class="ttdeci">uint8_t w25qxx_get_manufacturer_device_id(w25qxx_handle_t *handle, uint8_t *manufacturer, uint8_t *device_id)</div><div class="ttdoc">get the manufacturer &amp;&amp; device id information</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l01952">driver_w25qxx.c:1952</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_gaa293c3a46c4010a3af597a83e646de0d"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a></div><div class="ttdeci">uint8_t w25qxx_deinit(w25qxx_handle_t *handle)</div><div class="ttdoc">close the chip</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l07195">driver_w25qxx.c:7195</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_gaa57189cd4170b73f8b1300ca15e27de6"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gaa57189cd4170b73f8b1300ca15e27de6">w25qxx_set_type</a></div><div class="ttdeci">uint8_t w25qxx_set_type(w25qxx_handle_t *handle, w25qxx_type_t type)</div><div class="ttdoc">set the chip type</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l00217">driver_w25qxx.c:217</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_gaaee8264d840e51460821cb6e609338ee"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gaaee8264d840e51460821cb6e609338ee">w25qxx_write</a></div><div class="ttdeci">uint8_t w25qxx_write(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">write data</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l08415">driver_w25qxx.c:8415</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_gacbf327a42336baf10713a1796ff4f2fe"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gacbf327a42336baf10713a1796ff4f2fe">w25qxx_interface_t</a></div><div class="ttdeci">w25qxx_interface_t</div><div class="ttdoc">w25qxx interface enumeration definition</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00075">driver_w25qxx.h:76</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_gad0e125eff304ce66fb3956d2c8c80656"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gad0e125eff304ce66fb3956d2c8c80656">w25qxx_set_address_mode</a></div><div class="ttdeci">uint8_t w25qxx_set_address_mode(w25qxx_handle_t *handle, w25qxx_address_mode_t mode)</div><div class="ttdoc">set the chip address mode</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l00304">driver_w25qxx.c:304</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_gae4effce67e36120325e3c7b245b90142"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gae4effce67e36120325e3c7b245b90142">w25qxx_power_down</a></div><div class="ttdeci">uint8_t w25qxx_power_down(w25qxx_handle_t *handle)</div><div class="ttdoc">power down</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l01792">driver_w25qxx.c:1792</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_gae7479fc9ce911a52e3c5b6f1a615b879"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gae7479fc9ce911a52e3c5b6f1a615b879">w25qxx_read</a></div><div class="ttdeci">uint8_t w25qxx_read(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">read data</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l07289">driver_w25qxx.c:7289</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_gafb2690946f5baf4be6f3a63dde5491fb"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gafb2690946f5baf4be6f3a63dde5491fb">w25qxx_bool_t</a></div><div class="ttdeci">w25qxx_bool_t</div><div class="ttdoc">w25qxx bool enumeration definition</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00084">driver_w25qxx.h:85</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a></div><div class="ttdeci">@ W25Q256</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00069">driver_w25qxx.h:69</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a></div><div class="ttdeci">@ W25QXX_ADDRESS_MODE_4_BYTE</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00096">driver_w25qxx.h:96</a></div></div>
+<div class="ttc" id="agroup__w25qxx__example__driver_html_ga02914409a9db38f35bc89d9fc4d96a17"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga02914409a9db38f35bc89d9fc4d96a17">w25qxx_basic_wake_up</a></div><div class="ttdeci">uint8_t w25qxx_basic_wake_up(void)</div><div class="ttdoc">basic example wake up</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__basic_8c_source.html#l00163">driver_w25qxx_basic.c:163</a></div></div>
+<div class="ttc" id="agroup__w25qxx__example__driver_html_ga143fa1f19a792142339f3d4e9ce078d0"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga143fa1f19a792142339f3d4e9ce078d0">w25qxx_basic_read</a></div><div class="ttdeci">uint8_t w25qxx_basic_read(uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">basic example read</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__basic_8c_source.html#l00247">driver_w25qxx_basic.c:247</a></div></div>
+<div class="ttc" id="agroup__w25qxx__example__driver_html_ga1e20768311dfdf33c77b442fa874b61a"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga1e20768311dfdf33c77b442fa874b61a">w25qxx_basic_init</a></div><div class="ttdeci">uint8_t w25qxx_basic_init(w25qxx_type_t type, w25qxx_interface_t interface, w25qxx_bool_t dual_quad_spi_enable)</div><div class="ttdoc">basic example init</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__basic_8c_source.html#l00051">driver_w25qxx_basic.c:51</a></div></div>
+<div class="ttc" id="agroup__w25qxx__example__driver_html_ga572c9f7a0bf2e7ab43dc078121162ec3"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga572c9f7a0bf2e7ab43dc078121162ec3">w25qxx_basic_power_down</a></div><div class="ttdeci">uint8_t w25qxx_basic_power_down(void)</div><div class="ttdoc">basic example power down</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__basic_8c_source.html#l00144">driver_w25qxx_basic.c:144</a></div></div>
+<div class="ttc" id="agroup__w25qxx__example__driver_html_ga5cf24fc78e1b45e845d02ec9133f46ab"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga5cf24fc78e1b45e845d02ec9133f46ab">w25qxx_basic_write</a></div><div class="ttdeci">uint8_t w25qxx_basic_write(uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">basic example write</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__basic_8c_source.html#l00225">driver_w25qxx_basic.c:225</a></div></div>
+<div class="ttc" id="agroup__w25qxx__example__driver_html_gacdda3af55c024b55fc9939aa23650356"><div class="ttname"><a href="group__w25qxx__example__driver.html#gacdda3af55c024b55fc9939aa23650356">w25qxx_basic_get_id</a></div><div class="ttdeci">uint8_t w25qxx_basic_get_id(uint8_t *manufacturer, uint8_t *device_id)</div><div class="ttdoc">basic example get the manufacturer &amp;&amp; device id information</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__basic_8c_source.html#l00203">driver_w25qxx_basic.c:203</a></div></div>
+<div class="ttc" id="agroup__w25qxx__example__driver_html_gaeb167c2924a3490e9a8d11e0c57d2dc0"><div class="ttname"><a href="group__w25qxx__example__driver.html#gaeb167c2924a3490e9a8d11e0c57d2dc0">w25qxx_basic_deinit</a></div><div class="ttdeci">uint8_t w25qxx_basic_deinit(void)</div><div class="ttdoc">basic example deinit</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__basic_8c_source.html#l00125">driver_w25qxx_basic.c:125</a></div></div>
+<div class="ttc" id="agroup__w25qxx__example__driver_html_gaf78e9f136e29b826c1a2b337b8451d6d"><div class="ttname"><a href="group__w25qxx__example__driver.html#gaf78e9f136e29b826c1a2b337b8451d6d">w25qxx_basic_chip_erase</a></div><div class="ttdeci">uint8_t w25qxx_basic_chip_erase(void)</div><div class="ttdoc">basic example chip erase</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__basic_8c_source.html#l00182">driver_w25qxx_basic.c:182</a></div></div>
+<div class="ttc" id="agroup__w25qxx__interface__driver_html_ga091f3607fcdd47f9e5f94cf1397bd46a"><div class="ttname"><a href="group__w25qxx__interface__driver.html#ga091f3607fcdd47f9e5f94cf1397bd46a">w25qxx_interface_spi_qspi_deinit</a></div><div class="ttdeci">uint8_t w25qxx_interface_spi_qspi_deinit(void)</div><div class="ttdoc">interface spi qspi bus deinit</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__interface__template_8c_source.html#l00058">driver_w25qxx_interface_template.c:58</a></div></div>
+<div class="ttc" id="agroup__w25qxx__interface__driver_html_ga2bdc17a556f1c801a38656331f3bb7b6"><div class="ttname"><a href="group__w25qxx__interface__driver.html#ga2bdc17a556f1c801a38656331f3bb7b6">w25qxx_interface_spi_qspi_init</a></div><div class="ttdeci">uint8_t w25qxx_interface_spi_qspi_init(void)</div><div class="ttdoc">interface spi qspi bus init</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__interface__template_8c_source.html#l00046">driver_w25qxx_interface_template.c:46</a></div></div>
+<div class="ttc" id="agroup__w25qxx__interface__driver_html_ga38e79039b913154c9dd1036ff52bb420"><div class="ttname"><a href="group__w25qxx__interface__driver.html#ga38e79039b913154c9dd1036ff52bb420">w25qxx_interface_delay_us</a></div><div class="ttdeci">void w25qxx_interface_delay_us(uint32_t us)</div><div class="ttdoc">interface delay us</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__interface__template_8c_source.html#l00108">driver_w25qxx_interface_template.c:108</a></div></div>
+<div class="ttc" id="agroup__w25qxx__interface__driver_html_ga3d76ea1f431978f6b55edfd0628c94cd"><div class="ttname"><a href="group__w25qxx__interface__driver.html#ga3d76ea1f431978f6b55edfd0628c94cd">w25qxx_interface_spi_qspi_write_read</a></div><div class="ttdeci">uint8_t w25qxx_interface_spi_qspi_write_read(uint8_t instruction, uint8_t instruction_line, uint32_t address, uint8_t address_line, uint8_t address_len, uint32_t alternate, uint8_t alternate_line, uint8_t alternate_len, uint8_t dummy, uint8_t *in_buf, uint32_t in_len, uint8_t *out_buf, uint32_t out_len, uint8_t data_line)</div><div class="ttdoc">interface spi qspi bus write read</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__interface__template_8c_source.html#l00084">driver_w25qxx_interface_template.c:84</a></div></div>
+<div class="ttc" id="agroup__w25qxx__interface__driver_html_ga5325474fa17f6833744e631613fd2a0e"><div class="ttname"><a href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a></div><div class="ttdeci">void w25qxx_interface_debug_print(const char *const fmt,...)</div><div class="ttdoc">interface print format data</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__interface__template_8c_source.html#l00118">driver_w25qxx_interface_template.c:118</a></div></div>
+<div class="ttc" id="agroup__w25qxx__interface__driver_html_ga964fa232abf98737cb98458eebfff82c"><div class="ttname"><a href="group__w25qxx__interface__driver.html#ga964fa232abf98737cb98458eebfff82c">w25qxx_interface_delay_ms</a></div><div class="ttdeci">void w25qxx_interface_delay_ms(uint32_t ms)</div><div class="ttdoc">interface delay ms</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__interface__template_8c_source.html#l00098">driver_w25qxx_interface_template.c:98</a></div></div>
+<div class="ttc" id="agroup__w25qxx__link__driver_html_ga7555618f13d2de0003ae6d9483085180"><div class="ttname"><a href="group__w25qxx__link__driver.html#ga7555618f13d2de0003ae6d9483085180">DRIVER_W25QXX_LINK_DELAY_MS</a></div><div class="ttdeci">#define DRIVER_W25QXX_LINK_DELAY_MS(HANDLE, FUC)</div><div class="ttdoc">link delay_ms function</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00297">driver_w25qxx.h:297</a></div></div>
+<div class="ttc" id="agroup__w25qxx__link__driver_html_ga995378489f95bc6bbddbe710557e3384"><div class="ttname"><a href="group__w25qxx__link__driver.html#ga995378489f95bc6bbddbe710557e3384">DRIVER_W25QXX_LINK_INIT</a></div><div class="ttdeci">#define DRIVER_W25QXX_LINK_INIT(HANDLE, STRUCTURE)</div><div class="ttdoc">initialize w25qxx_handle_t structure</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00265">driver_w25qxx.h:265</a></div></div>
+<div class="ttc" id="agroup__w25qxx__link__driver_html_gab2587de93f1dba5664eede8cd787a88a"><div class="ttname"><a href="group__w25qxx__link__driver.html#gab2587de93f1dba5664eede8cd787a88a">DRIVER_W25QXX_LINK_SPI_QSPI_INIT</a></div><div class="ttdeci">#define DRIVER_W25QXX_LINK_SPI_QSPI_INIT(HANDLE, FUC)</div><div class="ttdoc">link spi_qspi_init function</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00273">driver_w25qxx.h:273</a></div></div>
+<div class="ttc" id="agroup__w25qxx__link__driver_html_gab8d49ef9dca942fe5f37c30dcd7e22a6"><div class="ttname"><a href="group__w25qxx__link__driver.html#gab8d49ef9dca942fe5f37c30dcd7e22a6">DRIVER_W25QXX_LINK_DEBUG_PRINT</a></div><div class="ttdeci">#define DRIVER_W25QXX_LINK_DEBUG_PRINT(HANDLE, FUC)</div><div class="ttdoc">link debug_print function</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00313">driver_w25qxx.h:313</a></div></div>
+<div class="ttc" id="agroup__w25qxx__link__driver_html_gac8f0ca0a725790bace3241d1d616e3d1"><div class="ttname"><a href="group__w25qxx__link__driver.html#gac8f0ca0a725790bace3241d1d616e3d1">DRIVER_W25QXX_LINK_SPI_QSPI_WRITE_READ</a></div><div class="ttdeci">#define DRIVER_W25QXX_LINK_SPI_QSPI_WRITE_READ(HANDLE, FUC)</div><div class="ttdoc">link spi_qspi_write_read function</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00289">driver_w25qxx.h:289</a></div></div>
+<div class="ttc" id="agroup__w25qxx__link__driver_html_gaec8b55e83b46907be1dd9e7c50be550d"><div class="ttname"><a href="group__w25qxx__link__driver.html#gaec8b55e83b46907be1dd9e7c50be550d">DRIVER_W25QXX_LINK_SPI_QSPI_DEINIT</a></div><div class="ttdeci">#define DRIVER_W25QXX_LINK_SPI_QSPI_DEINIT(HANDLE, FUC)</div><div class="ttdoc">link spi_qspi_deinit function</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00281">driver_w25qxx.h:281</a></div></div>
+<div class="ttc" id="agroup__w25qxx__link__driver_html_gafc81bf850c80dfa316f0c6ab40be6e67"><div class="ttname"><a href="group__w25qxx__link__driver.html#gafc81bf850c80dfa316f0c6ab40be6e67">DRIVER_W25QXX_LINK_DELAY_US</a></div><div class="ttdeci">#define DRIVER_W25QXX_LINK_DELAY_US(HANDLE, FUC)</div><div class="ttdoc">link delay_us function</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00305">driver_w25qxx.h:305</a></div></div>
+<div class="ttc" id="astructw25qxx__handle__s_html"><div class="ttname"><a href="structw25qxx__handle__s.html">w25qxx_handle_s</a></div><div class="ttdoc">w25qxx handle structure definition</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00209">driver_w25qxx.h:210</a></div></div>
 </div><!-- fragment --></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
     <li class="navelem"><a class="el" href="dir_cfafba98a580ce4b62f8a6fa96d7cbb0.html">example</a></li><li class="navelem"><a class="el" href="driver__w25qxx__basic_8c.html">driver_w25qxx_basic.c</a></li>
-    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
+    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/driver__w25qxx__basic_8h.html b/doc/html/driver__w25qxx__basic_8h.html
index 9ee0b4c..3c8a4d6 100644
--- a/doc/html/driver__w25qxx__basic_8h.html
+++ b/doc/html/driver__w25qxx__basic_8h.html
@@ -1,9 +1,9 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.8"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>LibDriver W25QXX: example/driver_w25qxx_basic.h File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -23,11 +23,10 @@
 <div id="titlearea">
 <table cellspacing="0" cellpadding="0">
  <tbody>
- <tr style="height: 56px;">
+ <tr id="projectrow">
   <td id="projectlogo"><img alt="Logo" src="doxygen.png"/></td>
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">LibDriver W25QXX
-   &#160;<span id="projectnumber">1.0.0</span>
+  <td id="projectalign">
+   <div id="projectname">LibDriver W25QXX<span id="projectnumber">&#160;1.0.0</span>
    </div>
    <div id="projectbrief">W25QXX full function driver</div>
   </td>
@@ -36,21 +35,22 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.8 -->
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search/",'.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
 <script type="text/javascript" src="menu.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(function() {
   initMenu('',true,false,'search.php','Search');
   $(document).ready(function() { init_search(); });
 });
-/* @license-end */</script>
+/* @license-end */
+</script>
 <div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
@@ -64,7 +64,7 @@
   </div>
 </div>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(document).ready(function(){initNavTree('driver__w25qxx__basic_8h.html',''); initResizable(); });
 /* @license-end */
 </script>
@@ -78,16 +78,22 @@
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
 </div>
 
 <div class="header">
   <div class="summary">
 <a href="#func-members">Functions</a>  </div>
-  <div class="headertitle">
-<div class="title">driver_w25qxx_basic.h File Reference</div>  </div>
+  <div class="headertitle"><div class="title">driver_w25qxx_basic.h File Reference</div></div>
 </div><!--header-->
 <div class="contents">
 
@@ -97,31 +103,31 @@
 </div>
 <p><a href="driver__w25qxx__basic_8h_source.html">Go to the source code of this file.</a></p>
 <table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
 Functions</h2></td></tr>
-<tr class="memitem:ga1e20768311dfdf33c77b442fa874b61a"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga1e20768311dfdf33c77b442fa874b61a">w25qxx_basic_init</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga6cb4e5164464df549201dd96cb7a58b1">w25qxx_type_t</a> type, <a class="el" href="group__w25qxx__basic__driver.html#gacbf327a42336baf10713a1796ff4f2fe">w25qxx_interface_t</a> interface, <a class="el" href="group__w25qxx__basic__driver.html#gafb2690946f5baf4be6f3a63dde5491fb">w25qxx_bool_t</a> dual_quad_spi_enable)</td></tr>
-<tr class="memdesc:ga1e20768311dfdf33c77b442fa874b61a"><td class="mdescLeft">&#160;</td><td class="mdescRight">basic example init  <a href="group__w25qxx__example__driver.html#ga1e20768311dfdf33c77b442fa874b61a">More...</a><br /></td></tr>
+<tr class="memitem:ga1e20768311dfdf33c77b442fa874b61a" id="r_ga1e20768311dfdf33c77b442fa874b61a"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga1e20768311dfdf33c77b442fa874b61a">w25qxx_basic_init</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga6cb4e5164464df549201dd96cb7a58b1">w25qxx_type_t</a> type, <a class="el" href="group__w25qxx__basic__driver.html#gacbf327a42336baf10713a1796ff4f2fe">w25qxx_interface_t</a> interface, <a class="el" href="group__w25qxx__basic__driver.html#gafb2690946f5baf4be6f3a63dde5491fb">w25qxx_bool_t</a> dual_quad_spi_enable)</td></tr>
+<tr class="memdesc:ga1e20768311dfdf33c77b442fa874b61a"><td class="mdescLeft">&#160;</td><td class="mdescRight">basic example init  <br /></td></tr>
 <tr class="separator:ga1e20768311dfdf33c77b442fa874b61a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaeb167c2924a3490e9a8d11e0c57d2dc0"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#gaeb167c2924a3490e9a8d11e0c57d2dc0">w25qxx_basic_deinit</a> (void)</td></tr>
-<tr class="memdesc:gaeb167c2924a3490e9a8d11e0c57d2dc0"><td class="mdescLeft">&#160;</td><td class="mdescRight">basic example deinit  <a href="group__w25qxx__example__driver.html#gaeb167c2924a3490e9a8d11e0c57d2dc0">More...</a><br /></td></tr>
+<tr class="memitem:gaeb167c2924a3490e9a8d11e0c57d2dc0" id="r_gaeb167c2924a3490e9a8d11e0c57d2dc0"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#gaeb167c2924a3490e9a8d11e0c57d2dc0">w25qxx_basic_deinit</a> (void)</td></tr>
+<tr class="memdesc:gaeb167c2924a3490e9a8d11e0c57d2dc0"><td class="mdescLeft">&#160;</td><td class="mdescRight">basic example deinit  <br /></td></tr>
 <tr class="separator:gaeb167c2924a3490e9a8d11e0c57d2dc0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga572c9f7a0bf2e7ab43dc078121162ec3"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga572c9f7a0bf2e7ab43dc078121162ec3">w25qxx_basic_power_down</a> (void)</td></tr>
-<tr class="memdesc:ga572c9f7a0bf2e7ab43dc078121162ec3"><td class="mdescLeft">&#160;</td><td class="mdescRight">basic example power down  <a href="group__w25qxx__example__driver.html#ga572c9f7a0bf2e7ab43dc078121162ec3">More...</a><br /></td></tr>
+<tr class="memitem:ga572c9f7a0bf2e7ab43dc078121162ec3" id="r_ga572c9f7a0bf2e7ab43dc078121162ec3"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga572c9f7a0bf2e7ab43dc078121162ec3">w25qxx_basic_power_down</a> (void)</td></tr>
+<tr class="memdesc:ga572c9f7a0bf2e7ab43dc078121162ec3"><td class="mdescLeft">&#160;</td><td class="mdescRight">basic example power down  <br /></td></tr>
 <tr class="separator:ga572c9f7a0bf2e7ab43dc078121162ec3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga02914409a9db38f35bc89d9fc4d96a17"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga02914409a9db38f35bc89d9fc4d96a17">w25qxx_basic_wake_up</a> (void)</td></tr>
-<tr class="memdesc:ga02914409a9db38f35bc89d9fc4d96a17"><td class="mdescLeft">&#160;</td><td class="mdescRight">basic example wake up  <a href="group__w25qxx__example__driver.html#ga02914409a9db38f35bc89d9fc4d96a17">More...</a><br /></td></tr>
+<tr class="memitem:ga02914409a9db38f35bc89d9fc4d96a17" id="r_ga02914409a9db38f35bc89d9fc4d96a17"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga02914409a9db38f35bc89d9fc4d96a17">w25qxx_basic_wake_up</a> (void)</td></tr>
+<tr class="memdesc:ga02914409a9db38f35bc89d9fc4d96a17"><td class="mdescLeft">&#160;</td><td class="mdescRight">basic example wake up  <br /></td></tr>
 <tr class="separator:ga02914409a9db38f35bc89d9fc4d96a17"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf78e9f136e29b826c1a2b337b8451d6d"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#gaf78e9f136e29b826c1a2b337b8451d6d">w25qxx_basic_chip_erase</a> (void)</td></tr>
-<tr class="memdesc:gaf78e9f136e29b826c1a2b337b8451d6d"><td class="mdescLeft">&#160;</td><td class="mdescRight">basic example chip erase  <a href="group__w25qxx__example__driver.html#gaf78e9f136e29b826c1a2b337b8451d6d">More...</a><br /></td></tr>
+<tr class="memitem:gaf78e9f136e29b826c1a2b337b8451d6d" id="r_gaf78e9f136e29b826c1a2b337b8451d6d"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#gaf78e9f136e29b826c1a2b337b8451d6d">w25qxx_basic_chip_erase</a> (void)</td></tr>
+<tr class="memdesc:gaf78e9f136e29b826c1a2b337b8451d6d"><td class="mdescLeft">&#160;</td><td class="mdescRight">basic example chip erase  <br /></td></tr>
 <tr class="separator:gaf78e9f136e29b826c1a2b337b8451d6d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gacdda3af55c024b55fc9939aa23650356"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#gacdda3af55c024b55fc9939aa23650356">w25qxx_basic_get_id</a> (uint8_t *manufacturer, uint8_t *device_id)</td></tr>
-<tr class="memdesc:gacdda3af55c024b55fc9939aa23650356"><td class="mdescLeft">&#160;</td><td class="mdescRight">basic example get the manufacturer &amp;&amp; device id information  <a href="group__w25qxx__example__driver.html#gacdda3af55c024b55fc9939aa23650356">More...</a><br /></td></tr>
+<tr class="memitem:gacdda3af55c024b55fc9939aa23650356" id="r_gacdda3af55c024b55fc9939aa23650356"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#gacdda3af55c024b55fc9939aa23650356">w25qxx_basic_get_id</a> (uint8_t *manufacturer, uint8_t *device_id)</td></tr>
+<tr class="memdesc:gacdda3af55c024b55fc9939aa23650356"><td class="mdescLeft">&#160;</td><td class="mdescRight">basic example get the manufacturer &amp;&amp; device id information  <br /></td></tr>
 <tr class="separator:gacdda3af55c024b55fc9939aa23650356"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga5cf24fc78e1b45e845d02ec9133f46ab"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga5cf24fc78e1b45e845d02ec9133f46ab">w25qxx_basic_write</a> (uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
-<tr class="memdesc:ga5cf24fc78e1b45e845d02ec9133f46ab"><td class="mdescLeft">&#160;</td><td class="mdescRight">basic example write  <a href="group__w25qxx__example__driver.html#ga5cf24fc78e1b45e845d02ec9133f46ab">More...</a><br /></td></tr>
+<tr class="memitem:ga5cf24fc78e1b45e845d02ec9133f46ab" id="r_ga5cf24fc78e1b45e845d02ec9133f46ab"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga5cf24fc78e1b45e845d02ec9133f46ab">w25qxx_basic_write</a> (uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
+<tr class="memdesc:ga5cf24fc78e1b45e845d02ec9133f46ab"><td class="mdescLeft">&#160;</td><td class="mdescRight">basic example write  <br /></td></tr>
 <tr class="separator:ga5cf24fc78e1b45e845d02ec9133f46ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga143fa1f19a792142339f3d4e9ce078d0"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga143fa1f19a792142339f3d4e9ce078d0">w25qxx_basic_read</a> (uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
-<tr class="memdesc:ga143fa1f19a792142339f3d4e9ce078d0"><td class="mdescLeft">&#160;</td><td class="mdescRight">basic example read  <a href="group__w25qxx__example__driver.html#ga143fa1f19a792142339f3d4e9ce078d0">More...</a><br /></td></tr>
+<tr class="memitem:ga143fa1f19a792142339f3d4e9ce078d0" id="r_ga143fa1f19a792142339f3d4e9ce078d0"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga143fa1f19a792142339f3d4e9ce078d0">w25qxx_basic_read</a> (uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
+<tr class="memdesc:ga143fa1f19a792142339f3d4e9ce078d0"><td class="mdescLeft">&#160;</td><td class="mdescRight">basic example read  <br /></td></tr>
 <tr class="separator:ga143fa1f19a792142339f3d4e9ce078d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
@@ -149,7 +155,7 @@ <h3>history</h3>
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
     <li class="navelem"><a class="el" href="dir_cfafba98a580ce4b62f8a6fa96d7cbb0.html">example</a></li><li class="navelem"><a class="el" href="driver__w25qxx__basic_8h.html">driver_w25qxx_basic.h</a></li>
-    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
+    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/driver__w25qxx__basic_8h_source.html b/doc/html/driver__w25qxx__basic_8h_source.html
index 766ad7a..07f053f 100644
--- a/doc/html/driver__w25qxx__basic_8h_source.html
+++ b/doc/html/driver__w25qxx__basic_8h_source.html
@@ -1,9 +1,9 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.8"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>LibDriver W25QXX: example/driver_w25qxx_basic.h Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -23,11 +23,10 @@
 <div id="titlearea">
 <table cellspacing="0" cellpadding="0">
  <tbody>
- <tr style="height: 56px;">
+ <tr id="projectrow">
   <td id="projectlogo"><img alt="Logo" src="doxygen.png"/></td>
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">LibDriver W25QXX
-   &#160;<span id="projectnumber">1.0.0</span>
+  <td id="projectalign">
+   <div id="projectname">LibDriver W25QXX<span id="projectnumber">&#160;1.0.0</span>
    </div>
    <div id="projectbrief">W25QXX full function driver</div>
   </td>
@@ -36,22 +35,28 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.8 -->
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search/",'.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
 <script type="text/javascript" src="menu.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(function() {
   initMenu('',true,false,'search.php','Search');
   $(document).ready(function() { init_search(); });
 });
-/* @license-end */</script>
+/* @license-end */
+</script>
 <div id="main-nav"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(document).ready(function() { init_codefold(0); });
+/* @license-end */
+</script>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -64,7 +69,7 @@
   </div>
 </div>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(document).ready(function(){initNavTree('driver__w25qxx__basic_8h_source.html',''); initResizable(); });
 /* @license-end */
 </script>
@@ -78,66 +83,72 @@
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
 </div>
 
 <div class="header">
-  <div class="headertitle">
-<div class="title">driver_w25qxx_basic.h</div>  </div>
+  <div class="headertitle"><div class="title">driver_w25qxx_basic.h</div></div>
 </div><!--header-->
 <div class="contents">
-<a href="driver__w25qxx__basic_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160; </div>
-<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="preprocessor">#ifndef DRIVER_W25QXX_BASIC_H</span></div>
-<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;<span class="preprocessor">#define DRIVER_W25QXX_BASIC_H</span></div>
-<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160; </div>
-<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="driver__w25qxx__interface_8h.html">driver_w25qxx_interface.h</a>&quot;</span></div>
-<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160; </div>
-<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;<span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span>{</div>
-<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160; </div>
-<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;uint8_t <a class="code" href="group__w25qxx__example__driver.html#ga1e20768311dfdf33c77b442fa874b61a">w25qxx_basic_init</a>(<a class="code" href="group__w25qxx__basic__driver.html#ga6cb4e5164464df549201dd96cb7a58b1">w25qxx_type_t</a> type, <a class="code" href="group__w25qxx__basic__driver.html#gacbf327a42336baf10713a1796ff4f2fe">w25qxx_interface_t</a> interface, <a class="code" href="group__w25qxx__basic__driver.html#gafb2690946f5baf4be6f3a63dde5491fb">w25qxx_bool_t</a> dual_quad_spi_enable);</div>
-<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160; </div>
-<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;uint8_t <a class="code" href="group__w25qxx__example__driver.html#gaeb167c2924a3490e9a8d11e0c57d2dc0">w25qxx_basic_deinit</a>(<span class="keywordtype">void</span>);</div>
-<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160; </div>
-<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;uint8_t <a class="code" href="group__w25qxx__example__driver.html#ga572c9f7a0bf2e7ab43dc078121162ec3">w25qxx_basic_power_down</a>(<span class="keywordtype">void</span>);</div>
-<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160; </div>
-<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;uint8_t <a class="code" href="group__w25qxx__example__driver.html#ga02914409a9db38f35bc89d9fc4d96a17">w25qxx_basic_wake_up</a>(<span class="keywordtype">void</span>);</div>
-<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160; </div>
-<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;uint8_t <a class="code" href="group__w25qxx__example__driver.html#gaf78e9f136e29b826c1a2b337b8451d6d">w25qxx_basic_chip_erase</a>(<span class="keywordtype">void</span>);</div>
-<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160; </div>
-<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;uint8_t <a class="code" href="group__w25qxx__example__driver.html#gacdda3af55c024b55fc9939aa23650356">w25qxx_basic_get_id</a>(uint8_t *manufacturer, uint8_t *device_id);</div>
-<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160; </div>
-<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;uint8_t <a class="code" href="group__w25qxx__example__driver.html#ga5cf24fc78e1b45e845d02ec9133f46ab">w25qxx_basic_write</a>(uint32_t addr, uint8_t *data, uint32_t len);</div>
-<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160; </div>
-<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;uint8_t <a class="code" href="group__w25qxx__example__driver.html#ga143fa1f19a792142339f3d4e9ce078d0">w25qxx_basic_read</a>(uint32_t addr, uint8_t *data, uint32_t len);</div>
-<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160; </div>
-<div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;}</div>
-<div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160; </div>
-<div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;<span class="preprocessor">#endif</span></div>
+<a href="driver__w25qxx__basic_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno">    1</span> </div>
+<div class="line"><a id="l00037" name="l00037"></a><span class="lineno">   37</span><span class="preprocessor">#ifndef DRIVER_W25QXX_BASIC_H</span></div>
+<div class="line"><a id="l00038" name="l00038"></a><span class="lineno">   38</span><span class="preprocessor">#define DRIVER_W25QXX_BASIC_H</span></div>
+<div class="line"><a id="l00039" name="l00039"></a><span class="lineno">   39</span> </div>
+<div class="line"><a id="l00040" name="l00040"></a><span class="lineno">   40</span><span class="preprocessor">#include &quot;<a class="code" href="driver__w25qxx__interface_8h.html">driver_w25qxx_interface.h</a>&quot;</span></div>
+<div class="line"><a id="l00041" name="l00041"></a><span class="lineno">   41</span> </div>
+<div class="line"><a id="l00042" name="l00042"></a><span class="lineno">   42</span><span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a id="l00043" name="l00043"></a><span class="lineno">   43</span><span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span>{</div>
+<div class="line"><a id="l00044" name="l00044"></a><span class="lineno">   44</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l00045" name="l00045"></a><span class="lineno">   45</span> </div>
+<div class="line"><a id="l00063" name="l00063"></a><span class="lineno">   63</span>uint8_t <a class="code hl_function" href="group__w25qxx__example__driver.html#ga1e20768311dfdf33c77b442fa874b61a">w25qxx_basic_init</a>(<a class="code hl_enumeration" href="group__w25qxx__basic__driver.html#ga6cb4e5164464df549201dd96cb7a58b1">w25qxx_type_t</a> type, <a class="code hl_enumeration" href="group__w25qxx__basic__driver.html#gacbf327a42336baf10713a1796ff4f2fe">w25qxx_interface_t</a> interface, <a class="code hl_enumeration" href="group__w25qxx__basic__driver.html#gafb2690946f5baf4be6f3a63dde5491fb">w25qxx_bool_t</a> dual_quad_spi_enable);</div>
+<div class="line"><a id="l00064" name="l00064"></a><span class="lineno">   64</span> </div>
+<div class="line"><a id="l00072" name="l00072"></a><span class="lineno">   72</span>uint8_t <a class="code hl_function" href="group__w25qxx__example__driver.html#gaeb167c2924a3490e9a8d11e0c57d2dc0">w25qxx_basic_deinit</a>(<span class="keywordtype">void</span>);</div>
+<div class="line"><a id="l00073" name="l00073"></a><span class="lineno">   73</span> </div>
+<div class="line"><a id="l00081" name="l00081"></a><span class="lineno">   81</span>uint8_t <a class="code hl_function" href="group__w25qxx__example__driver.html#ga572c9f7a0bf2e7ab43dc078121162ec3">w25qxx_basic_power_down</a>(<span class="keywordtype">void</span>);</div>
+<div class="line"><a id="l00082" name="l00082"></a><span class="lineno">   82</span> </div>
+<div class="line"><a id="l00090" name="l00090"></a><span class="lineno">   90</span>uint8_t <a class="code hl_function" href="group__w25qxx__example__driver.html#ga02914409a9db38f35bc89d9fc4d96a17">w25qxx_basic_wake_up</a>(<span class="keywordtype">void</span>);</div>
+<div class="line"><a id="l00091" name="l00091"></a><span class="lineno">   91</span> </div>
+<div class="line"><a id="l00099" name="l00099"></a><span class="lineno">   99</span>uint8_t <a class="code hl_function" href="group__w25qxx__example__driver.html#gaf78e9f136e29b826c1a2b337b8451d6d">w25qxx_basic_chip_erase</a>(<span class="keywordtype">void</span>);</div>
+<div class="line"><a id="l00100" name="l00100"></a><span class="lineno">  100</span> </div>
+<div class="line"><a id="l00110" name="l00110"></a><span class="lineno">  110</span>uint8_t <a class="code hl_function" href="group__w25qxx__example__driver.html#gacdda3af55c024b55fc9939aa23650356">w25qxx_basic_get_id</a>(uint8_t *manufacturer, uint8_t *device_id);</div>
+<div class="line"><a id="l00111" name="l00111"></a><span class="lineno">  111</span> </div>
+<div class="line"><a id="l00122" name="l00122"></a><span class="lineno">  122</span>uint8_t <a class="code hl_function" href="group__w25qxx__example__driver.html#ga5cf24fc78e1b45e845d02ec9133f46ab">w25qxx_basic_write</a>(uint32_t addr, uint8_t *data, uint32_t len);</div>
+<div class="line"><a id="l00123" name="l00123"></a><span class="lineno">  123</span> </div>
+<div class="line"><a id="l00134" name="l00134"></a><span class="lineno">  134</span>uint8_t <a class="code hl_function" href="group__w25qxx__example__driver.html#ga143fa1f19a792142339f3d4e9ce078d0">w25qxx_basic_read</a>(uint32_t addr, uint8_t *data, uint32_t len);</div>
+<div class="line"><a id="l00135" name="l00135"></a><span class="lineno">  135</span> </div>
+<div class="line"><a id="l00140" name="l00140"></a><span class="lineno">  140</span><span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a id="l00141" name="l00141"></a><span class="lineno">  141</span>}</div>
+<div class="line"><a id="l00142" name="l00142"></a><span class="lineno">  142</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l00143" name="l00143"></a><span class="lineno">  143</span> </div>
+<div class="line"><a id="l00144" name="l00144"></a><span class="lineno">  144</span><span class="preprocessor">#endif</span></div>
 <div class="ttc" id="adriver__w25qxx__interface_8h_html"><div class="ttname"><a href="driver__w25qxx__interface_8h.html">driver_w25qxx_interface.h</a></div><div class="ttdoc">driver w25qxx interface header file</div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga6cb4e5164464df549201dd96cb7a58b1"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga6cb4e5164464df549201dd96cb7a58b1">w25qxx_type_t</a></div><div class="ttdeci">w25qxx_type_t</div><div class="ttdoc">w25qxx type enumeration definition</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00062">driver_w25qxx.h:63</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_gacbf327a42336baf10713a1796ff4f2fe"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gacbf327a42336baf10713a1796ff4f2fe">w25qxx_interface_t</a></div><div class="ttdeci">w25qxx_interface_t</div><div class="ttdoc">w25qxx interface enumeration definition</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00075">driver_w25qxx.h:76</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_gafb2690946f5baf4be6f3a63dde5491fb"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gafb2690946f5baf4be6f3a63dde5491fb">w25qxx_bool_t</a></div><div class="ttdeci">w25qxx_bool_t</div><div class="ttdoc">w25qxx bool enumeration definition</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00084">driver_w25qxx.h:85</a></div></div>
-<div class="ttc" id="agroup__w25qxx__example__driver_html_ga02914409a9db38f35bc89d9fc4d96a17"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga02914409a9db38f35bc89d9fc4d96a17">w25qxx_basic_wake_up</a></div><div class="ttdeci">uint8_t w25qxx_basic_wake_up(void)</div><div class="ttdoc">basic example wake up</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__basic_8c_source.html#l00163">driver_w25qxx_basic.c:163</a></div></div>
-<div class="ttc" id="agroup__w25qxx__example__driver_html_ga143fa1f19a792142339f3d4e9ce078d0"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga143fa1f19a792142339f3d4e9ce078d0">w25qxx_basic_read</a></div><div class="ttdeci">uint8_t w25qxx_basic_read(uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">basic example read</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__basic_8c_source.html#l00247">driver_w25qxx_basic.c:247</a></div></div>
-<div class="ttc" id="agroup__w25qxx__example__driver_html_ga1e20768311dfdf33c77b442fa874b61a"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga1e20768311dfdf33c77b442fa874b61a">w25qxx_basic_init</a></div><div class="ttdeci">uint8_t w25qxx_basic_init(w25qxx_type_t type, w25qxx_interface_t interface, w25qxx_bool_t dual_quad_spi_enable)</div><div class="ttdoc">basic example init</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__basic_8c_source.html#l00051">driver_w25qxx_basic.c:51</a></div></div>
-<div class="ttc" id="agroup__w25qxx__example__driver_html_ga572c9f7a0bf2e7ab43dc078121162ec3"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga572c9f7a0bf2e7ab43dc078121162ec3">w25qxx_basic_power_down</a></div><div class="ttdeci">uint8_t w25qxx_basic_power_down(void)</div><div class="ttdoc">basic example power down</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__basic_8c_source.html#l00144">driver_w25qxx_basic.c:144</a></div></div>
-<div class="ttc" id="agroup__w25qxx__example__driver_html_ga5cf24fc78e1b45e845d02ec9133f46ab"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga5cf24fc78e1b45e845d02ec9133f46ab">w25qxx_basic_write</a></div><div class="ttdeci">uint8_t w25qxx_basic_write(uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">basic example write</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__basic_8c_source.html#l00225">driver_w25qxx_basic.c:225</a></div></div>
-<div class="ttc" id="agroup__w25qxx__example__driver_html_gacdda3af55c024b55fc9939aa23650356"><div class="ttname"><a href="group__w25qxx__example__driver.html#gacdda3af55c024b55fc9939aa23650356">w25qxx_basic_get_id</a></div><div class="ttdeci">uint8_t w25qxx_basic_get_id(uint8_t *manufacturer, uint8_t *device_id)</div><div class="ttdoc">basic example get the manufacturer &amp;&amp; device id information</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__basic_8c_source.html#l00203">driver_w25qxx_basic.c:203</a></div></div>
-<div class="ttc" id="agroup__w25qxx__example__driver_html_gaeb167c2924a3490e9a8d11e0c57d2dc0"><div class="ttname"><a href="group__w25qxx__example__driver.html#gaeb167c2924a3490e9a8d11e0c57d2dc0">w25qxx_basic_deinit</a></div><div class="ttdeci">uint8_t w25qxx_basic_deinit(void)</div><div class="ttdoc">basic example deinit</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__basic_8c_source.html#l00125">driver_w25qxx_basic.c:125</a></div></div>
-<div class="ttc" id="agroup__w25qxx__example__driver_html_gaf78e9f136e29b826c1a2b337b8451d6d"><div class="ttname"><a href="group__w25qxx__example__driver.html#gaf78e9f136e29b826c1a2b337b8451d6d">w25qxx_basic_chip_erase</a></div><div class="ttdeci">uint8_t w25qxx_basic_chip_erase(void)</div><div class="ttdoc">basic example chip erase</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__basic_8c_source.html#l00182">driver_w25qxx_basic.c:182</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga6cb4e5164464df549201dd96cb7a58b1"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga6cb4e5164464df549201dd96cb7a58b1">w25qxx_type_t</a></div><div class="ttdeci">w25qxx_type_t</div><div class="ttdoc">w25qxx type enumeration definition</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00062">driver_w25qxx.h:63</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_gacbf327a42336baf10713a1796ff4f2fe"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gacbf327a42336baf10713a1796ff4f2fe">w25qxx_interface_t</a></div><div class="ttdeci">w25qxx_interface_t</div><div class="ttdoc">w25qxx interface enumeration definition</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00075">driver_w25qxx.h:76</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_gafb2690946f5baf4be6f3a63dde5491fb"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gafb2690946f5baf4be6f3a63dde5491fb">w25qxx_bool_t</a></div><div class="ttdeci">w25qxx_bool_t</div><div class="ttdoc">w25qxx bool enumeration definition</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00084">driver_w25qxx.h:85</a></div></div>
+<div class="ttc" id="agroup__w25qxx__example__driver_html_ga02914409a9db38f35bc89d9fc4d96a17"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga02914409a9db38f35bc89d9fc4d96a17">w25qxx_basic_wake_up</a></div><div class="ttdeci">uint8_t w25qxx_basic_wake_up(void)</div><div class="ttdoc">basic example wake up</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__basic_8c_source.html#l00163">driver_w25qxx_basic.c:163</a></div></div>
+<div class="ttc" id="agroup__w25qxx__example__driver_html_ga143fa1f19a792142339f3d4e9ce078d0"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga143fa1f19a792142339f3d4e9ce078d0">w25qxx_basic_read</a></div><div class="ttdeci">uint8_t w25qxx_basic_read(uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">basic example read</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__basic_8c_source.html#l00247">driver_w25qxx_basic.c:247</a></div></div>
+<div class="ttc" id="agroup__w25qxx__example__driver_html_ga1e20768311dfdf33c77b442fa874b61a"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga1e20768311dfdf33c77b442fa874b61a">w25qxx_basic_init</a></div><div class="ttdeci">uint8_t w25qxx_basic_init(w25qxx_type_t type, w25qxx_interface_t interface, w25qxx_bool_t dual_quad_spi_enable)</div><div class="ttdoc">basic example init</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__basic_8c_source.html#l00051">driver_w25qxx_basic.c:51</a></div></div>
+<div class="ttc" id="agroup__w25qxx__example__driver_html_ga572c9f7a0bf2e7ab43dc078121162ec3"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga572c9f7a0bf2e7ab43dc078121162ec3">w25qxx_basic_power_down</a></div><div class="ttdeci">uint8_t w25qxx_basic_power_down(void)</div><div class="ttdoc">basic example power down</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__basic_8c_source.html#l00144">driver_w25qxx_basic.c:144</a></div></div>
+<div class="ttc" id="agroup__w25qxx__example__driver_html_ga5cf24fc78e1b45e845d02ec9133f46ab"><div class="ttname"><a href="group__w25qxx__example__driver.html#ga5cf24fc78e1b45e845d02ec9133f46ab">w25qxx_basic_write</a></div><div class="ttdeci">uint8_t w25qxx_basic_write(uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">basic example write</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__basic_8c_source.html#l00225">driver_w25qxx_basic.c:225</a></div></div>
+<div class="ttc" id="agroup__w25qxx__example__driver_html_gacdda3af55c024b55fc9939aa23650356"><div class="ttname"><a href="group__w25qxx__example__driver.html#gacdda3af55c024b55fc9939aa23650356">w25qxx_basic_get_id</a></div><div class="ttdeci">uint8_t w25qxx_basic_get_id(uint8_t *manufacturer, uint8_t *device_id)</div><div class="ttdoc">basic example get the manufacturer &amp;&amp; device id information</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__basic_8c_source.html#l00203">driver_w25qxx_basic.c:203</a></div></div>
+<div class="ttc" id="agroup__w25qxx__example__driver_html_gaeb167c2924a3490e9a8d11e0c57d2dc0"><div class="ttname"><a href="group__w25qxx__example__driver.html#gaeb167c2924a3490e9a8d11e0c57d2dc0">w25qxx_basic_deinit</a></div><div class="ttdeci">uint8_t w25qxx_basic_deinit(void)</div><div class="ttdoc">basic example deinit</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__basic_8c_source.html#l00125">driver_w25qxx_basic.c:125</a></div></div>
+<div class="ttc" id="agroup__w25qxx__example__driver_html_gaf78e9f136e29b826c1a2b337b8451d6d"><div class="ttname"><a href="group__w25qxx__example__driver.html#gaf78e9f136e29b826c1a2b337b8451d6d">w25qxx_basic_chip_erase</a></div><div class="ttdeci">uint8_t w25qxx_basic_chip_erase(void)</div><div class="ttdoc">basic example chip erase</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__basic_8c_source.html#l00182">driver_w25qxx_basic.c:182</a></div></div>
 </div><!-- fragment --></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
     <li class="navelem"><a class="el" href="dir_cfafba98a580ce4b62f8a6fa96d7cbb0.html">example</a></li><li class="navelem"><a class="el" href="driver__w25qxx__basic_8h.html">driver_w25qxx_basic.h</a></li>
-    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
+    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/driver__w25qxx__interface_8h.html b/doc/html/driver__w25qxx__interface_8h.html
index 6b775ac..00a4d36 100644
--- a/doc/html/driver__w25qxx__interface_8h.html
+++ b/doc/html/driver__w25qxx__interface_8h.html
@@ -1,9 +1,9 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.8"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>LibDriver W25QXX: interface/driver_w25qxx_interface.h File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -23,11 +23,10 @@
 <div id="titlearea">
 <table cellspacing="0" cellpadding="0">
  <tbody>
- <tr style="height: 56px;">
+ <tr id="projectrow">
   <td id="projectlogo"><img alt="Logo" src="doxygen.png"/></td>
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">LibDriver W25QXX
-   &#160;<span id="projectnumber">1.0.0</span>
+  <td id="projectalign">
+   <div id="projectname">LibDriver W25QXX<span id="projectnumber">&#160;1.0.0</span>
    </div>
    <div id="projectbrief">W25QXX full function driver</div>
   </td>
@@ -36,21 +35,22 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.8 -->
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search/",'.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
 <script type="text/javascript" src="menu.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(function() {
   initMenu('',true,false,'search.php','Search');
   $(document).ready(function() { init_search(); });
 });
-/* @license-end */</script>
+/* @license-end */
+</script>
 <div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
@@ -64,7 +64,7 @@
   </div>
 </div>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(document).ready(function(){initNavTree('driver__w25qxx__interface_8h.html',''); initResizable(); });
 /* @license-end */
 </script>
@@ -78,16 +78,22 @@
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
 </div>
 
 <div class="header">
   <div class="summary">
 <a href="#func-members">Functions</a>  </div>
-  <div class="headertitle">
-<div class="title">driver_w25qxx_interface.h File Reference</div>  </div>
+  <div class="headertitle"><div class="title">driver_w25qxx_interface.h File Reference</div></div>
 </div><!--header-->
 <div class="contents">
 
@@ -97,25 +103,25 @@
 </div>
 <p><a href="driver__w25qxx__interface_8h_source.html">Go to the source code of this file.</a></p>
 <table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
 Functions</h2></td></tr>
-<tr class="memitem:ga2bdc17a556f1c801a38656331f3bb7b6"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__interface__driver.html#ga2bdc17a556f1c801a38656331f3bb7b6">w25qxx_interface_spi_qspi_init</a> (void)</td></tr>
-<tr class="memdesc:ga2bdc17a556f1c801a38656331f3bb7b6"><td class="mdescLeft">&#160;</td><td class="mdescRight">interface spi qspi bus init  <a href="group__w25qxx__interface__driver.html#ga2bdc17a556f1c801a38656331f3bb7b6">More...</a><br /></td></tr>
+<tr class="memitem:ga2bdc17a556f1c801a38656331f3bb7b6" id="r_ga2bdc17a556f1c801a38656331f3bb7b6"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__interface__driver.html#ga2bdc17a556f1c801a38656331f3bb7b6">w25qxx_interface_spi_qspi_init</a> (void)</td></tr>
+<tr class="memdesc:ga2bdc17a556f1c801a38656331f3bb7b6"><td class="mdescLeft">&#160;</td><td class="mdescRight">interface spi qspi bus init  <br /></td></tr>
 <tr class="separator:ga2bdc17a556f1c801a38656331f3bb7b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga091f3607fcdd47f9e5f94cf1397bd46a"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__interface__driver.html#ga091f3607fcdd47f9e5f94cf1397bd46a">w25qxx_interface_spi_qspi_deinit</a> (void)</td></tr>
-<tr class="memdesc:ga091f3607fcdd47f9e5f94cf1397bd46a"><td class="mdescLeft">&#160;</td><td class="mdescRight">interface spi qspi bus deinit  <a href="group__w25qxx__interface__driver.html#ga091f3607fcdd47f9e5f94cf1397bd46a">More...</a><br /></td></tr>
+<tr class="memitem:ga091f3607fcdd47f9e5f94cf1397bd46a" id="r_ga091f3607fcdd47f9e5f94cf1397bd46a"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__interface__driver.html#ga091f3607fcdd47f9e5f94cf1397bd46a">w25qxx_interface_spi_qspi_deinit</a> (void)</td></tr>
+<tr class="memdesc:ga091f3607fcdd47f9e5f94cf1397bd46a"><td class="mdescLeft">&#160;</td><td class="mdescRight">interface spi qspi bus deinit  <br /></td></tr>
 <tr class="separator:ga091f3607fcdd47f9e5f94cf1397bd46a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga3d76ea1f431978f6b55edfd0628c94cd"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__interface__driver.html#ga3d76ea1f431978f6b55edfd0628c94cd">w25qxx_interface_spi_qspi_write_read</a> (uint8_t instruction, uint8_t instruction_line, uint32_t address, uint8_t address_line, uint8_t address_len, uint32_t alternate, uint8_t alternate_line, uint8_t alternate_len, uint8_t dummy, uint8_t *in_buf, uint32_t in_len, uint8_t *out_buf, uint32_t out_len, uint8_t data_line)</td></tr>
-<tr class="memdesc:ga3d76ea1f431978f6b55edfd0628c94cd"><td class="mdescLeft">&#160;</td><td class="mdescRight">interface spi qspi bus write read  <a href="group__w25qxx__interface__driver.html#ga3d76ea1f431978f6b55edfd0628c94cd">More...</a><br /></td></tr>
+<tr class="memitem:ga3d76ea1f431978f6b55edfd0628c94cd" id="r_ga3d76ea1f431978f6b55edfd0628c94cd"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__interface__driver.html#ga3d76ea1f431978f6b55edfd0628c94cd">w25qxx_interface_spi_qspi_write_read</a> (uint8_t instruction, uint8_t instruction_line, uint32_t address, uint8_t address_line, uint8_t address_len, uint32_t alternate, uint8_t alternate_line, uint8_t alternate_len, uint8_t dummy, uint8_t *in_buf, uint32_t in_len, uint8_t *out_buf, uint32_t out_len, uint8_t data_line)</td></tr>
+<tr class="memdesc:ga3d76ea1f431978f6b55edfd0628c94cd"><td class="mdescLeft">&#160;</td><td class="mdescRight">interface spi qspi bus write read  <br /></td></tr>
 <tr class="separator:ga3d76ea1f431978f6b55edfd0628c94cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga964fa232abf98737cb98458eebfff82c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__interface__driver.html#ga964fa232abf98737cb98458eebfff82c">w25qxx_interface_delay_ms</a> (uint32_t ms)</td></tr>
-<tr class="memdesc:ga964fa232abf98737cb98458eebfff82c"><td class="mdescLeft">&#160;</td><td class="mdescRight">interface delay ms  <a href="group__w25qxx__interface__driver.html#ga964fa232abf98737cb98458eebfff82c">More...</a><br /></td></tr>
+<tr class="memitem:ga964fa232abf98737cb98458eebfff82c" id="r_ga964fa232abf98737cb98458eebfff82c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__interface__driver.html#ga964fa232abf98737cb98458eebfff82c">w25qxx_interface_delay_ms</a> (uint32_t ms)</td></tr>
+<tr class="memdesc:ga964fa232abf98737cb98458eebfff82c"><td class="mdescLeft">&#160;</td><td class="mdescRight">interface delay ms  <br /></td></tr>
 <tr class="separator:ga964fa232abf98737cb98458eebfff82c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga38e79039b913154c9dd1036ff52bb420"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__interface__driver.html#ga38e79039b913154c9dd1036ff52bb420">w25qxx_interface_delay_us</a> (uint32_t us)</td></tr>
-<tr class="memdesc:ga38e79039b913154c9dd1036ff52bb420"><td class="mdescLeft">&#160;</td><td class="mdescRight">interface delay us  <a href="group__w25qxx__interface__driver.html#ga38e79039b913154c9dd1036ff52bb420">More...</a><br /></td></tr>
+<tr class="memitem:ga38e79039b913154c9dd1036ff52bb420" id="r_ga38e79039b913154c9dd1036ff52bb420"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__interface__driver.html#ga38e79039b913154c9dd1036ff52bb420">w25qxx_interface_delay_us</a> (uint32_t us)</td></tr>
+<tr class="memdesc:ga38e79039b913154c9dd1036ff52bb420"><td class="mdescLeft">&#160;</td><td class="mdescRight">interface delay us  <br /></td></tr>
 <tr class="separator:ga38e79039b913154c9dd1036ff52bb420"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga5325474fa17f6833744e631613fd2a0e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a> (const char *const fmt,...)</td></tr>
-<tr class="memdesc:ga5325474fa17f6833744e631613fd2a0e"><td class="mdescLeft">&#160;</td><td class="mdescRight">interface print format data  <a href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">More...</a><br /></td></tr>
+<tr class="memitem:ga5325474fa17f6833744e631613fd2a0e" id="r_ga5325474fa17f6833744e631613fd2a0e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a> (const char *const fmt,...)</td></tr>
+<tr class="memdesc:ga5325474fa17f6833744e631613fd2a0e"><td class="mdescLeft">&#160;</td><td class="mdescRight">interface print format data  <br /></td></tr>
 <tr class="separator:ga5325474fa17f6833744e631613fd2a0e"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
@@ -143,7 +149,7 @@ <h3>history</h3>
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
     <li class="navelem"><a class="el" href="dir_b31d54d5631803016a26f28213a41162.html">interface</a></li><li class="navelem"><a class="el" href="driver__w25qxx__interface_8h.html">driver_w25qxx_interface.h</a></li>
-    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
+    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/driver__w25qxx__interface_8h_source.html b/doc/html/driver__w25qxx__interface_8h_source.html
index 082ac78..4af1d60 100644
--- a/doc/html/driver__w25qxx__interface_8h_source.html
+++ b/doc/html/driver__w25qxx__interface_8h_source.html
@@ -1,9 +1,9 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.8"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>LibDriver W25QXX: interface/driver_w25qxx_interface.h Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -23,11 +23,10 @@
 <div id="titlearea">
 <table cellspacing="0" cellpadding="0">
  <tbody>
- <tr style="height: 56px;">
+ <tr id="projectrow">
   <td id="projectlogo"><img alt="Logo" src="doxygen.png"/></td>
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">LibDriver W25QXX
-   &#160;<span id="projectnumber">1.0.0</span>
+  <td id="projectalign">
+   <div id="projectname">LibDriver W25QXX<span id="projectnumber">&#160;1.0.0</span>
    </div>
    <div id="projectbrief">W25QXX full function driver</div>
   </td>
@@ -36,22 +35,28 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.8 -->
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search/",'.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
 <script type="text/javascript" src="menu.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(function() {
   initMenu('',true,false,'search.php','Search');
   $(document).ready(function() { init_search(); });
 });
-/* @license-end */</script>
+/* @license-end */
+</script>
 <div id="main-nav"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(document).ready(function() { init_codefold(0); });
+/* @license-end */
+</script>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -64,7 +69,7 @@
   </div>
 </div>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(document).ready(function(){initNavTree('driver__w25qxx__interface_8h_source.html',''); initResizable(); });
 /* @license-end */
 </script>
@@ -78,60 +83,66 @@
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
 </div>
 
 <div class="header">
-  <div class="headertitle">
-<div class="title">driver_w25qxx_interface.h</div>  </div>
+  <div class="headertitle"><div class="title">driver_w25qxx_interface.h</div></div>
 </div><!--header-->
 <div class="contents">
-<a href="driver__w25qxx__interface_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160; </div>
-<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="preprocessor">#ifndef DRIVER_W25QXX_INTERFACE_H</span></div>
-<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;<span class="preprocessor">#define DRIVER_W25QXX_INTERFACE_H</span></div>
-<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160; </div>
-<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="driver__w25qxx_8h.html">driver_w25qxx.h</a>&quot;</span></div>
-<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160; </div>
-<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;<span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span>{</div>
-<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160; </div>
-<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;uint8_t <a class="code" href="group__w25qxx__interface__driver.html#ga2bdc17a556f1c801a38656331f3bb7b6">w25qxx_interface_spi_qspi_init</a>(<span class="keywordtype">void</span>);</div>
-<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160; </div>
-<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;uint8_t <a class="code" href="group__w25qxx__interface__driver.html#ga091f3607fcdd47f9e5f94cf1397bd46a">w25qxx_interface_spi_qspi_deinit</a>(<span class="keywordtype">void</span>);</div>
-<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160; </div>
-<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;uint8_t <a class="code" href="group__w25qxx__interface__driver.html#ga3d76ea1f431978f6b55edfd0628c94cd">w25qxx_interface_spi_qspi_write_read</a>(uint8_t instruction, uint8_t instruction_line,</div>
-<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;                                             uint32_t address, uint8_t address_line, uint8_t address_len,</div>
-<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;                                             uint32_t alternate, uint8_t alternate_line, uint8_t alternate_len,</div>
-<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;                                             uint8_t dummy, uint8_t *in_buf, uint32_t in_len,</div>
-<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;                                             uint8_t *out_buf, uint32_t out_len, uint8_t data_line);</div>
-<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160; </div>
-<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__w25qxx__interface__driver.html#ga964fa232abf98737cb98458eebfff82c">w25qxx_interface_delay_ms</a>(uint32_t ms);</div>
-<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160; </div>
-<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__w25qxx__interface__driver.html#ga38e79039b913154c9dd1036ff52bb420">w25qxx_interface_delay_us</a>(uint32_t us);</div>
-<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160; </div>
-<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *<span class="keyword">const</span> fmt, ...);</div>
-<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;}</div>
-<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160; </div>
-<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;<span class="preprocessor">#endif</span></div>
+<a href="driver__w25qxx__interface_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno">    1</span> </div>
+<div class="line"><a id="l00037" name="l00037"></a><span class="lineno">   37</span><span class="preprocessor">#ifndef DRIVER_W25QXX_INTERFACE_H</span></div>
+<div class="line"><a id="l00038" name="l00038"></a><span class="lineno">   38</span><span class="preprocessor">#define DRIVER_W25QXX_INTERFACE_H</span></div>
+<div class="line"><a id="l00039" name="l00039"></a><span class="lineno">   39</span> </div>
+<div class="line"><a id="l00040" name="l00040"></a><span class="lineno">   40</span><span class="preprocessor">#include &quot;<a class="code" href="driver__w25qxx_8h.html">driver_w25qxx.h</a>&quot;</span></div>
+<div class="line"><a id="l00041" name="l00041"></a><span class="lineno">   41</span> </div>
+<div class="line"><a id="l00042" name="l00042"></a><span class="lineno">   42</span><span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a id="l00043" name="l00043"></a><span class="lineno">   43</span><span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span>{</div>
+<div class="line"><a id="l00044" name="l00044"></a><span class="lineno">   44</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l00045" name="l00045"></a><span class="lineno">   45</span> </div>
+<div class="line"><a id="l00060" name="l00060"></a><span class="lineno">   60</span>uint8_t <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga2bdc17a556f1c801a38656331f3bb7b6">w25qxx_interface_spi_qspi_init</a>(<span class="keywordtype">void</span>);</div>
+<div class="line"><a id="l00061" name="l00061"></a><span class="lineno">   61</span> </div>
+<div class="line"><a id="l00069" name="l00069"></a><span class="lineno">   69</span>uint8_t <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga091f3607fcdd47f9e5f94cf1397bd46a">w25qxx_interface_spi_qspi_deinit</a>(<span class="keywordtype">void</span>);</div>
+<div class="line"><a id="l00070" name="l00070"></a><span class="lineno">   70</span> </div>
+<div class="line"><a id="l00092" name="l00092"></a><span class="lineno">   92</span>uint8_t <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga3d76ea1f431978f6b55edfd0628c94cd">w25qxx_interface_spi_qspi_write_read</a>(uint8_t instruction, uint8_t instruction_line,</div>
+<div class="line"><a id="l00093" name="l00093"></a><span class="lineno">   93</span>                                             uint32_t address, uint8_t address_line, uint8_t address_len,</div>
+<div class="line"><a id="l00094" name="l00094"></a><span class="lineno">   94</span>                                             uint32_t alternate, uint8_t alternate_line, uint8_t alternate_len,</div>
+<div class="line"><a id="l00095" name="l00095"></a><span class="lineno">   95</span>                                             uint8_t dummy, uint8_t *in_buf, uint32_t in_len,</div>
+<div class="line"><a id="l00096" name="l00096"></a><span class="lineno">   96</span>                                             uint8_t *out_buf, uint32_t out_len, uint8_t data_line);</div>
+<div class="line"><a id="l00097" name="l00097"></a><span class="lineno">   97</span> </div>
+<div class="line"><a id="l00103" name="l00103"></a><span class="lineno">  103</span><span class="keywordtype">void</span> <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga964fa232abf98737cb98458eebfff82c">w25qxx_interface_delay_ms</a>(uint32_t ms);</div>
+<div class="line"><a id="l00104" name="l00104"></a><span class="lineno">  104</span> </div>
+<div class="line"><a id="l00110" name="l00110"></a><span class="lineno">  110</span><span class="keywordtype">void</span> <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga38e79039b913154c9dd1036ff52bb420">w25qxx_interface_delay_us</a>(uint32_t us);</div>
+<div class="line"><a id="l00111" name="l00111"></a><span class="lineno">  111</span> </div>
+<div class="line"><a id="l00117" name="l00117"></a><span class="lineno">  117</span><span class="keywordtype">void</span> <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *<span class="keyword">const</span> fmt, ...);</div>
+<div class="line"><a id="l00122" name="l00122"></a><span class="lineno">  122</span><span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a id="l00123" name="l00123"></a><span class="lineno">  123</span>}</div>
+<div class="line"><a id="l00124" name="l00124"></a><span class="lineno">  124</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l00125" name="l00125"></a><span class="lineno">  125</span> </div>
+<div class="line"><a id="l00126" name="l00126"></a><span class="lineno">  126</span><span class="preprocessor">#endif</span></div>
 <div class="ttc" id="adriver__w25qxx_8h_html"><div class="ttname"><a href="driver__w25qxx_8h.html">driver_w25qxx.h</a></div><div class="ttdoc">driver w25qxx header file</div></div>
-<div class="ttc" id="agroup__w25qxx__interface__driver_html_ga091f3607fcdd47f9e5f94cf1397bd46a"><div class="ttname"><a href="group__w25qxx__interface__driver.html#ga091f3607fcdd47f9e5f94cf1397bd46a">w25qxx_interface_spi_qspi_deinit</a></div><div class="ttdeci">uint8_t w25qxx_interface_spi_qspi_deinit(void)</div><div class="ttdoc">interface spi qspi bus deinit</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__interface__template_8c_source.html#l00058">driver_w25qxx_interface_template.c:58</a></div></div>
-<div class="ttc" id="agroup__w25qxx__interface__driver_html_ga2bdc17a556f1c801a38656331f3bb7b6"><div class="ttname"><a href="group__w25qxx__interface__driver.html#ga2bdc17a556f1c801a38656331f3bb7b6">w25qxx_interface_spi_qspi_init</a></div><div class="ttdeci">uint8_t w25qxx_interface_spi_qspi_init(void)</div><div class="ttdoc">interface spi qspi bus init</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__interface__template_8c_source.html#l00046">driver_w25qxx_interface_template.c:46</a></div></div>
-<div class="ttc" id="agroup__w25qxx__interface__driver_html_ga38e79039b913154c9dd1036ff52bb420"><div class="ttname"><a href="group__w25qxx__interface__driver.html#ga38e79039b913154c9dd1036ff52bb420">w25qxx_interface_delay_us</a></div><div class="ttdeci">void w25qxx_interface_delay_us(uint32_t us)</div><div class="ttdoc">interface delay us</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__interface__template_8c_source.html#l00108">driver_w25qxx_interface_template.c:108</a></div></div>
-<div class="ttc" id="agroup__w25qxx__interface__driver_html_ga3d76ea1f431978f6b55edfd0628c94cd"><div class="ttname"><a href="group__w25qxx__interface__driver.html#ga3d76ea1f431978f6b55edfd0628c94cd">w25qxx_interface_spi_qspi_write_read</a></div><div class="ttdeci">uint8_t w25qxx_interface_spi_qspi_write_read(uint8_t instruction, uint8_t instruction_line, uint32_t address, uint8_t address_line, uint8_t address_len, uint32_t alternate, uint8_t alternate_line, uint8_t alternate_len, uint8_t dummy, uint8_t *in_buf, uint32_t in_len, uint8_t *out_buf, uint32_t out_len, uint8_t data_line)</div><div class="ttdoc">interface spi qspi bus write read</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__interface__template_8c_source.html#l00084">driver_w25qxx_interface_template.c:84</a></div></div>
-<div class="ttc" id="agroup__w25qxx__interface__driver_html_ga5325474fa17f6833744e631613fd2a0e"><div class="ttname"><a href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a></div><div class="ttdeci">void w25qxx_interface_debug_print(const char *const fmt,...)</div><div class="ttdoc">interface print format data</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__interface__template_8c_source.html#l00118">driver_w25qxx_interface_template.c:118</a></div></div>
-<div class="ttc" id="agroup__w25qxx__interface__driver_html_ga964fa232abf98737cb98458eebfff82c"><div class="ttname"><a href="group__w25qxx__interface__driver.html#ga964fa232abf98737cb98458eebfff82c">w25qxx_interface_delay_ms</a></div><div class="ttdeci">void w25qxx_interface_delay_ms(uint32_t ms)</div><div class="ttdoc">interface delay ms</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__interface__template_8c_source.html#l00098">driver_w25qxx_interface_template.c:98</a></div></div>
+<div class="ttc" id="agroup__w25qxx__interface__driver_html_ga091f3607fcdd47f9e5f94cf1397bd46a"><div class="ttname"><a href="group__w25qxx__interface__driver.html#ga091f3607fcdd47f9e5f94cf1397bd46a">w25qxx_interface_spi_qspi_deinit</a></div><div class="ttdeci">uint8_t w25qxx_interface_spi_qspi_deinit(void)</div><div class="ttdoc">interface spi qspi bus deinit</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__interface__template_8c_source.html#l00058">driver_w25qxx_interface_template.c:58</a></div></div>
+<div class="ttc" id="agroup__w25qxx__interface__driver_html_ga2bdc17a556f1c801a38656331f3bb7b6"><div class="ttname"><a href="group__w25qxx__interface__driver.html#ga2bdc17a556f1c801a38656331f3bb7b6">w25qxx_interface_spi_qspi_init</a></div><div class="ttdeci">uint8_t w25qxx_interface_spi_qspi_init(void)</div><div class="ttdoc">interface spi qspi bus init</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__interface__template_8c_source.html#l00046">driver_w25qxx_interface_template.c:46</a></div></div>
+<div class="ttc" id="agroup__w25qxx__interface__driver_html_ga38e79039b913154c9dd1036ff52bb420"><div class="ttname"><a href="group__w25qxx__interface__driver.html#ga38e79039b913154c9dd1036ff52bb420">w25qxx_interface_delay_us</a></div><div class="ttdeci">void w25qxx_interface_delay_us(uint32_t us)</div><div class="ttdoc">interface delay us</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__interface__template_8c_source.html#l00108">driver_w25qxx_interface_template.c:108</a></div></div>
+<div class="ttc" id="agroup__w25qxx__interface__driver_html_ga3d76ea1f431978f6b55edfd0628c94cd"><div class="ttname"><a href="group__w25qxx__interface__driver.html#ga3d76ea1f431978f6b55edfd0628c94cd">w25qxx_interface_spi_qspi_write_read</a></div><div class="ttdeci">uint8_t w25qxx_interface_spi_qspi_write_read(uint8_t instruction, uint8_t instruction_line, uint32_t address, uint8_t address_line, uint8_t address_len, uint32_t alternate, uint8_t alternate_line, uint8_t alternate_len, uint8_t dummy, uint8_t *in_buf, uint32_t in_len, uint8_t *out_buf, uint32_t out_len, uint8_t data_line)</div><div class="ttdoc">interface spi qspi bus write read</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__interface__template_8c_source.html#l00084">driver_w25qxx_interface_template.c:84</a></div></div>
+<div class="ttc" id="agroup__w25qxx__interface__driver_html_ga5325474fa17f6833744e631613fd2a0e"><div class="ttname"><a href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a></div><div class="ttdeci">void w25qxx_interface_debug_print(const char *const fmt,...)</div><div class="ttdoc">interface print format data</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__interface__template_8c_source.html#l00118">driver_w25qxx_interface_template.c:118</a></div></div>
+<div class="ttc" id="agroup__w25qxx__interface__driver_html_ga964fa232abf98737cb98458eebfff82c"><div class="ttname"><a href="group__w25qxx__interface__driver.html#ga964fa232abf98737cb98458eebfff82c">w25qxx_interface_delay_ms</a></div><div class="ttdeci">void w25qxx_interface_delay_ms(uint32_t ms)</div><div class="ttdoc">interface delay ms</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__interface__template_8c_source.html#l00098">driver_w25qxx_interface_template.c:98</a></div></div>
 </div><!-- fragment --></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
     <li class="navelem"><a class="el" href="dir_b31d54d5631803016a26f28213a41162.html">interface</a></li><li class="navelem"><a class="el" href="driver__w25qxx__interface_8h.html">driver_w25qxx_interface.h</a></li>
-    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
+    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/driver__w25qxx__interface__template_8c.html b/doc/html/driver__w25qxx__interface__template_8c.html
index 2148d98..078636d 100644
--- a/doc/html/driver__w25qxx__interface__template_8c.html
+++ b/doc/html/driver__w25qxx__interface__template_8c.html
@@ -1,9 +1,9 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.8"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>LibDriver W25QXX: interface/driver_w25qxx_interface_template.c File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -23,11 +23,10 @@
 <div id="titlearea">
 <table cellspacing="0" cellpadding="0">
  <tbody>
- <tr style="height: 56px;">
+ <tr id="projectrow">
   <td id="projectlogo"><img alt="Logo" src="doxygen.png"/></td>
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">LibDriver W25QXX
-   &#160;<span id="projectnumber">1.0.0</span>
+  <td id="projectalign">
+   <div id="projectname">LibDriver W25QXX<span id="projectnumber">&#160;1.0.0</span>
    </div>
    <div id="projectbrief">W25QXX full function driver</div>
   </td>
@@ -36,21 +35,22 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.8 -->
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search/",'.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
 <script type="text/javascript" src="menu.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(function() {
   initMenu('',true,false,'search.php','Search');
   $(document).ready(function() { init_search(); });
 });
-/* @license-end */</script>
+/* @license-end */
+</script>
 <div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
@@ -64,7 +64,7 @@
   </div>
 </div>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(document).ready(function(){initNavTree('driver__w25qxx__interface__template_8c.html',''); initResizable(); });
 /* @license-end */
 </script>
@@ -78,16 +78,22 @@
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
 </div>
 
 <div class="header">
   <div class="summary">
 <a href="#func-members">Functions</a>  </div>
-  <div class="headertitle">
-<div class="title">driver_w25qxx_interface_template.c File Reference</div>  </div>
+  <div class="headertitle"><div class="title">driver_w25qxx_interface_template.c File Reference</div></div>
 </div><!--header-->
 <div class="contents">
 
@@ -97,25 +103,25 @@
 </div>
 <p><a href="driver__w25qxx__interface__template_8c_source.html">Go to the source code of this file.</a></p>
 <table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
 Functions</h2></td></tr>
-<tr class="memitem:ga2bdc17a556f1c801a38656331f3bb7b6"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__interface__driver.html#ga2bdc17a556f1c801a38656331f3bb7b6">w25qxx_interface_spi_qspi_init</a> (void)</td></tr>
-<tr class="memdesc:ga2bdc17a556f1c801a38656331f3bb7b6"><td class="mdescLeft">&#160;</td><td class="mdescRight">interface spi qspi bus init  <a href="group__w25qxx__interface__driver.html#ga2bdc17a556f1c801a38656331f3bb7b6">More...</a><br /></td></tr>
+<tr class="memitem:ga2bdc17a556f1c801a38656331f3bb7b6" id="r_ga2bdc17a556f1c801a38656331f3bb7b6"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__interface__driver.html#ga2bdc17a556f1c801a38656331f3bb7b6">w25qxx_interface_spi_qspi_init</a> (void)</td></tr>
+<tr class="memdesc:ga2bdc17a556f1c801a38656331f3bb7b6"><td class="mdescLeft">&#160;</td><td class="mdescRight">interface spi qspi bus init  <br /></td></tr>
 <tr class="separator:ga2bdc17a556f1c801a38656331f3bb7b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga091f3607fcdd47f9e5f94cf1397bd46a"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__interface__driver.html#ga091f3607fcdd47f9e5f94cf1397bd46a">w25qxx_interface_spi_qspi_deinit</a> (void)</td></tr>
-<tr class="memdesc:ga091f3607fcdd47f9e5f94cf1397bd46a"><td class="mdescLeft">&#160;</td><td class="mdescRight">interface spi qspi bus deinit  <a href="group__w25qxx__interface__driver.html#ga091f3607fcdd47f9e5f94cf1397bd46a">More...</a><br /></td></tr>
+<tr class="memitem:ga091f3607fcdd47f9e5f94cf1397bd46a" id="r_ga091f3607fcdd47f9e5f94cf1397bd46a"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__interface__driver.html#ga091f3607fcdd47f9e5f94cf1397bd46a">w25qxx_interface_spi_qspi_deinit</a> (void)</td></tr>
+<tr class="memdesc:ga091f3607fcdd47f9e5f94cf1397bd46a"><td class="mdescLeft">&#160;</td><td class="mdescRight">interface spi qspi bus deinit  <br /></td></tr>
 <tr class="separator:ga091f3607fcdd47f9e5f94cf1397bd46a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga3d76ea1f431978f6b55edfd0628c94cd"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__interface__driver.html#ga3d76ea1f431978f6b55edfd0628c94cd">w25qxx_interface_spi_qspi_write_read</a> (uint8_t instruction, uint8_t instruction_line, uint32_t address, uint8_t address_line, uint8_t address_len, uint32_t alternate, uint8_t alternate_line, uint8_t alternate_len, uint8_t dummy, uint8_t *in_buf, uint32_t in_len, uint8_t *out_buf, uint32_t out_len, uint8_t data_line)</td></tr>
-<tr class="memdesc:ga3d76ea1f431978f6b55edfd0628c94cd"><td class="mdescLeft">&#160;</td><td class="mdescRight">interface spi qspi bus write read  <a href="group__w25qxx__interface__driver.html#ga3d76ea1f431978f6b55edfd0628c94cd">More...</a><br /></td></tr>
+<tr class="memitem:ga3d76ea1f431978f6b55edfd0628c94cd" id="r_ga3d76ea1f431978f6b55edfd0628c94cd"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__interface__driver.html#ga3d76ea1f431978f6b55edfd0628c94cd">w25qxx_interface_spi_qspi_write_read</a> (uint8_t instruction, uint8_t instruction_line, uint32_t address, uint8_t address_line, uint8_t address_len, uint32_t alternate, uint8_t alternate_line, uint8_t alternate_len, uint8_t dummy, uint8_t *in_buf, uint32_t in_len, uint8_t *out_buf, uint32_t out_len, uint8_t data_line)</td></tr>
+<tr class="memdesc:ga3d76ea1f431978f6b55edfd0628c94cd"><td class="mdescLeft">&#160;</td><td class="mdescRight">interface spi qspi bus write read  <br /></td></tr>
 <tr class="separator:ga3d76ea1f431978f6b55edfd0628c94cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga964fa232abf98737cb98458eebfff82c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__interface__driver.html#ga964fa232abf98737cb98458eebfff82c">w25qxx_interface_delay_ms</a> (uint32_t ms)</td></tr>
-<tr class="memdesc:ga964fa232abf98737cb98458eebfff82c"><td class="mdescLeft">&#160;</td><td class="mdescRight">interface delay ms  <a href="group__w25qxx__interface__driver.html#ga964fa232abf98737cb98458eebfff82c">More...</a><br /></td></tr>
+<tr class="memitem:ga964fa232abf98737cb98458eebfff82c" id="r_ga964fa232abf98737cb98458eebfff82c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__interface__driver.html#ga964fa232abf98737cb98458eebfff82c">w25qxx_interface_delay_ms</a> (uint32_t ms)</td></tr>
+<tr class="memdesc:ga964fa232abf98737cb98458eebfff82c"><td class="mdescLeft">&#160;</td><td class="mdescRight">interface delay ms  <br /></td></tr>
 <tr class="separator:ga964fa232abf98737cb98458eebfff82c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga38e79039b913154c9dd1036ff52bb420"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__interface__driver.html#ga38e79039b913154c9dd1036ff52bb420">w25qxx_interface_delay_us</a> (uint32_t us)</td></tr>
-<tr class="memdesc:ga38e79039b913154c9dd1036ff52bb420"><td class="mdescLeft">&#160;</td><td class="mdescRight">interface delay us  <a href="group__w25qxx__interface__driver.html#ga38e79039b913154c9dd1036ff52bb420">More...</a><br /></td></tr>
+<tr class="memitem:ga38e79039b913154c9dd1036ff52bb420" id="r_ga38e79039b913154c9dd1036ff52bb420"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__interface__driver.html#ga38e79039b913154c9dd1036ff52bb420">w25qxx_interface_delay_us</a> (uint32_t us)</td></tr>
+<tr class="memdesc:ga38e79039b913154c9dd1036ff52bb420"><td class="mdescLeft">&#160;</td><td class="mdescRight">interface delay us  <br /></td></tr>
 <tr class="separator:ga38e79039b913154c9dd1036ff52bb420"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga5325474fa17f6833744e631613fd2a0e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a> (const char *const fmt,...)</td></tr>
-<tr class="memdesc:ga5325474fa17f6833744e631613fd2a0e"><td class="mdescLeft">&#160;</td><td class="mdescRight">interface print format data  <a href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">More...</a><br /></td></tr>
+<tr class="memitem:ga5325474fa17f6833744e631613fd2a0e" id="r_ga5325474fa17f6833744e631613fd2a0e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a> (const char *const fmt,...)</td></tr>
+<tr class="memdesc:ga5325474fa17f6833744e631613fd2a0e"><td class="mdescLeft">&#160;</td><td class="mdescRight">interface print format data  <br /></td></tr>
 <tr class="separator:ga5325474fa17f6833744e631613fd2a0e"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
@@ -143,7 +149,7 @@ <h3>history</h3>
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
     <li class="navelem"><a class="el" href="dir_b31d54d5631803016a26f28213a41162.html">interface</a></li><li class="navelem"><a class="el" href="driver__w25qxx__interface__template_8c.html">driver_w25qxx_interface_template.c</a></li>
-    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
+    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/driver__w25qxx__interface__template_8c_source.html b/doc/html/driver__w25qxx__interface__template_8c_source.html
index 09f49c6..1d81725 100644
--- a/doc/html/driver__w25qxx__interface__template_8c_source.html
+++ b/doc/html/driver__w25qxx__interface__template_8c_source.html
@@ -1,9 +1,9 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.8"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>LibDriver W25QXX: interface/driver_w25qxx_interface_template.c Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -23,11 +23,10 @@
 <div id="titlearea">
 <table cellspacing="0" cellpadding="0">
  <tbody>
- <tr style="height: 56px;">
+ <tr id="projectrow">
   <td id="projectlogo"><img alt="Logo" src="doxygen.png"/></td>
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">LibDriver W25QXX
-   &#160;<span id="projectnumber">1.0.0</span>
+  <td id="projectalign">
+   <div id="projectname">LibDriver W25QXX<span id="projectnumber">&#160;1.0.0</span>
    </div>
    <div id="projectbrief">W25QXX full function driver</div>
   </td>
@@ -36,22 +35,28 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.8 -->
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search/",'.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
 <script type="text/javascript" src="menu.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(function() {
   initMenu('',true,false,'search.php','Search');
   $(document).ready(function() { init_search(); });
 });
-/* @license-end */</script>
+/* @license-end */
+</script>
 <div id="main-nav"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(document).ready(function() { init_codefold(0); });
+/* @license-end */
+</script>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -64,7 +69,7 @@
   </div>
 </div>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(document).ready(function(){initNavTree('driver__w25qxx__interface__template_8c_source.html',''); initResizable(); });
 /* @license-end */
 </script>
@@ -78,66 +83,84 @@
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
 </div>
 
 <div class="header">
-  <div class="headertitle">
-<div class="title">driver_w25qxx_interface_template.c</div>  </div>
+  <div class="headertitle"><div class="title">driver_w25qxx_interface_template.c</div></div>
 </div><!--header-->
 <div class="contents">
-<a href="driver__w25qxx__interface__template_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160; </div>
-<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="driver__w25qxx__interface_8h.html">driver_w25qxx_interface.h</a>&quot;</span></div>
-<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160; </div>
-<div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="group__w25qxx__interface__driver.html#ga2bdc17a556f1c801a38656331f3bb7b6">   46</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__interface__driver.html#ga2bdc17a556f1c801a38656331f3bb7b6">w25qxx_interface_spi_qspi_init</a>(<span class="keywordtype">void</span>)</div>
-<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;{</div>
-<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;    <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;}</div>
-<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160; </div>
-<div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="group__w25qxx__interface__driver.html#ga091f3607fcdd47f9e5f94cf1397bd46a">   58</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__interface__driver.html#ga091f3607fcdd47f9e5f94cf1397bd46a">w25qxx_interface_spi_qspi_deinit</a>(<span class="keywordtype">void</span>)</div>
-<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;{</div>
-<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;    <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;}</div>
-<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160; </div>
-<div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="group__w25qxx__interface__driver.html#ga3d76ea1f431978f6b55edfd0628c94cd">   84</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__interface__driver.html#ga3d76ea1f431978f6b55edfd0628c94cd">w25qxx_interface_spi_qspi_write_read</a>(uint8_t instruction, uint8_t instruction_line,</div>
-<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;                                             uint32_t address, uint8_t address_line, uint8_t address_len,</div>
-<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;                                             uint32_t alternate, uint8_t alternate_line, uint8_t alternate_len,</div>
-<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;                                             uint8_t dummy, uint8_t *in_buf, uint32_t in_len,</div>
-<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;                                             uint8_t *out_buf, uint32_t out_len, uint8_t data_line)</div>
-<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;{</div>
-<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;    <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;}</div>
-<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160; </div>
-<div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="group__w25qxx__interface__driver.html#ga964fa232abf98737cb98458eebfff82c">   98</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__w25qxx__interface__driver.html#ga964fa232abf98737cb98458eebfff82c">w25qxx_interface_delay_ms</a>(uint32_t ms)</div>
-<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;{</div>
-<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160; </div>
-<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;}</div>
-<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160; </div>
-<div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="group__w25qxx__interface__driver.html#ga38e79039b913154c9dd1036ff52bb420">  108</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__w25qxx__interface__driver.html#ga38e79039b913154c9dd1036ff52bb420">w25qxx_interface_delay_us</a>(uint32_t us)</div>
-<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;{</div>
-<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160; </div>
-<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;}</div>
-<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160; </div>
-<div class="line"><a name="l00118"></a><span class="lineno"><a class="line" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">  118</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *<span class="keyword">const</span> fmt, ...)</div>
-<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;{</div>
-<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;    </div>
-<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;}</div>
+<a href="driver__w25qxx__interface__template_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno">    1</span> </div>
+<div class="line"><a id="l00037" name="l00037"></a><span class="lineno">   37</span><span class="preprocessor">#include &quot;<a class="code" href="driver__w25qxx__interface_8h.html">driver_w25qxx_interface.h</a>&quot;</span></div>
+<div class="line"><a id="l00038" name="l00038"></a><span class="lineno">   38</span> </div>
+<div class="foldopen" id="foldopen00046" data-start="{" data-end="}">
+<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"><a class="line" href="group__w25qxx__interface__driver.html#ga2bdc17a556f1c801a38656331f3bb7b6">   46</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga2bdc17a556f1c801a38656331f3bb7b6">w25qxx_interface_spi_qspi_init</a>(<span class="keywordtype">void</span>)</div>
+<div class="line"><a id="l00047" name="l00047"></a><span class="lineno">   47</span>{</div>
+<div class="line"><a id="l00048" name="l00048"></a><span class="lineno">   48</span>    <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a id="l00049" name="l00049"></a><span class="lineno">   49</span>}</div>
+</div>
+<div class="line"><a id="l00050" name="l00050"></a><span class="lineno">   50</span> </div>
+<div class="foldopen" id="foldopen00058" data-start="{" data-end="}">
+<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"><a class="line" href="group__w25qxx__interface__driver.html#ga091f3607fcdd47f9e5f94cf1397bd46a">   58</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga091f3607fcdd47f9e5f94cf1397bd46a">w25qxx_interface_spi_qspi_deinit</a>(<span class="keywordtype">void</span>)</div>
+<div class="line"><a id="l00059" name="l00059"></a><span class="lineno">   59</span>{</div>
+<div class="line"><a id="l00060" name="l00060"></a><span class="lineno">   60</span>    <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a id="l00061" name="l00061"></a><span class="lineno">   61</span>}</div>
+</div>
+<div class="line"><a id="l00062" name="l00062"></a><span class="lineno">   62</span> </div>
+<div class="foldopen" id="foldopen00084" data-start="{" data-end="}">
+<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"><a class="line" href="group__w25qxx__interface__driver.html#ga3d76ea1f431978f6b55edfd0628c94cd">   84</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga3d76ea1f431978f6b55edfd0628c94cd">w25qxx_interface_spi_qspi_write_read</a>(uint8_t instruction, uint8_t instruction_line,</div>
+<div class="line"><a id="l00085" name="l00085"></a><span class="lineno">   85</span>                                             uint32_t address, uint8_t address_line, uint8_t address_len,</div>
+<div class="line"><a id="l00086" name="l00086"></a><span class="lineno">   86</span>                                             uint32_t alternate, uint8_t alternate_line, uint8_t alternate_len,</div>
+<div class="line"><a id="l00087" name="l00087"></a><span class="lineno">   87</span>                                             uint8_t dummy, uint8_t *in_buf, uint32_t in_len,</div>
+<div class="line"><a id="l00088" name="l00088"></a><span class="lineno">   88</span>                                             uint8_t *out_buf, uint32_t out_len, uint8_t data_line)</div>
+<div class="line"><a id="l00089" name="l00089"></a><span class="lineno">   89</span>{</div>
+<div class="line"><a id="l00090" name="l00090"></a><span class="lineno">   90</span>    <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a id="l00091" name="l00091"></a><span class="lineno">   91</span>}</div>
+</div>
+<div class="line"><a id="l00092" name="l00092"></a><span class="lineno">   92</span> </div>
+<div class="foldopen" id="foldopen00098" data-start="{" data-end="}">
+<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"><a class="line" href="group__w25qxx__interface__driver.html#ga964fa232abf98737cb98458eebfff82c">   98</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga964fa232abf98737cb98458eebfff82c">w25qxx_interface_delay_ms</a>(uint32_t ms)</div>
+<div class="line"><a id="l00099" name="l00099"></a><span class="lineno">   99</span>{</div>
+<div class="line"><a id="l00100" name="l00100"></a><span class="lineno">  100</span> </div>
+<div class="line"><a id="l00101" name="l00101"></a><span class="lineno">  101</span>}</div>
+</div>
+<div class="line"><a id="l00102" name="l00102"></a><span class="lineno">  102</span> </div>
+<div class="foldopen" id="foldopen00108" data-start="{" data-end="}">
+<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"><a class="line" href="group__w25qxx__interface__driver.html#ga38e79039b913154c9dd1036ff52bb420">  108</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga38e79039b913154c9dd1036ff52bb420">w25qxx_interface_delay_us</a>(uint32_t us)</div>
+<div class="line"><a id="l00109" name="l00109"></a><span class="lineno">  109</span>{</div>
+<div class="line"><a id="l00110" name="l00110"></a><span class="lineno">  110</span> </div>
+<div class="line"><a id="l00111" name="l00111"></a><span class="lineno">  111</span>}</div>
+</div>
+<div class="line"><a id="l00112" name="l00112"></a><span class="lineno">  112</span> </div>
+<div class="foldopen" id="foldopen00118" data-start="{" data-end="}">
+<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"><a class="line" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">  118</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *<span class="keyword">const</span> fmt, ...)</div>
+<div class="line"><a id="l00119" name="l00119"></a><span class="lineno">  119</span>{</div>
+<div class="line"><a id="l00120" name="l00120"></a><span class="lineno">  120</span>    </div>
+<div class="line"><a id="l00121" name="l00121"></a><span class="lineno">  121</span>}</div>
+</div>
 <div class="ttc" id="adriver__w25qxx__interface_8h_html"><div class="ttname"><a href="driver__w25qxx__interface_8h.html">driver_w25qxx_interface.h</a></div><div class="ttdoc">driver w25qxx interface header file</div></div>
-<div class="ttc" id="agroup__w25qxx__interface__driver_html_ga091f3607fcdd47f9e5f94cf1397bd46a"><div class="ttname"><a href="group__w25qxx__interface__driver.html#ga091f3607fcdd47f9e5f94cf1397bd46a">w25qxx_interface_spi_qspi_deinit</a></div><div class="ttdeci">uint8_t w25qxx_interface_spi_qspi_deinit(void)</div><div class="ttdoc">interface spi qspi bus deinit</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__interface__template_8c_source.html#l00058">driver_w25qxx_interface_template.c:58</a></div></div>
-<div class="ttc" id="agroup__w25qxx__interface__driver_html_ga2bdc17a556f1c801a38656331f3bb7b6"><div class="ttname"><a href="group__w25qxx__interface__driver.html#ga2bdc17a556f1c801a38656331f3bb7b6">w25qxx_interface_spi_qspi_init</a></div><div class="ttdeci">uint8_t w25qxx_interface_spi_qspi_init(void)</div><div class="ttdoc">interface spi qspi bus init</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__interface__template_8c_source.html#l00046">driver_w25qxx_interface_template.c:46</a></div></div>
-<div class="ttc" id="agroup__w25qxx__interface__driver_html_ga38e79039b913154c9dd1036ff52bb420"><div class="ttname"><a href="group__w25qxx__interface__driver.html#ga38e79039b913154c9dd1036ff52bb420">w25qxx_interface_delay_us</a></div><div class="ttdeci">void w25qxx_interface_delay_us(uint32_t us)</div><div class="ttdoc">interface delay us</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__interface__template_8c_source.html#l00108">driver_w25qxx_interface_template.c:108</a></div></div>
-<div class="ttc" id="agroup__w25qxx__interface__driver_html_ga3d76ea1f431978f6b55edfd0628c94cd"><div class="ttname"><a href="group__w25qxx__interface__driver.html#ga3d76ea1f431978f6b55edfd0628c94cd">w25qxx_interface_spi_qspi_write_read</a></div><div class="ttdeci">uint8_t w25qxx_interface_spi_qspi_write_read(uint8_t instruction, uint8_t instruction_line, uint32_t address, uint8_t address_line, uint8_t address_len, uint32_t alternate, uint8_t alternate_line, uint8_t alternate_len, uint8_t dummy, uint8_t *in_buf, uint32_t in_len, uint8_t *out_buf, uint32_t out_len, uint8_t data_line)</div><div class="ttdoc">interface spi qspi bus write read</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__interface__template_8c_source.html#l00084">driver_w25qxx_interface_template.c:84</a></div></div>
-<div class="ttc" id="agroup__w25qxx__interface__driver_html_ga5325474fa17f6833744e631613fd2a0e"><div class="ttname"><a href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a></div><div class="ttdeci">void w25qxx_interface_debug_print(const char *const fmt,...)</div><div class="ttdoc">interface print format data</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__interface__template_8c_source.html#l00118">driver_w25qxx_interface_template.c:118</a></div></div>
-<div class="ttc" id="agroup__w25qxx__interface__driver_html_ga964fa232abf98737cb98458eebfff82c"><div class="ttname"><a href="group__w25qxx__interface__driver.html#ga964fa232abf98737cb98458eebfff82c">w25qxx_interface_delay_ms</a></div><div class="ttdeci">void w25qxx_interface_delay_ms(uint32_t ms)</div><div class="ttdoc">interface delay ms</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__interface__template_8c_source.html#l00098">driver_w25qxx_interface_template.c:98</a></div></div>
+<div class="ttc" id="agroup__w25qxx__interface__driver_html_ga091f3607fcdd47f9e5f94cf1397bd46a"><div class="ttname"><a href="group__w25qxx__interface__driver.html#ga091f3607fcdd47f9e5f94cf1397bd46a">w25qxx_interface_spi_qspi_deinit</a></div><div class="ttdeci">uint8_t w25qxx_interface_spi_qspi_deinit(void)</div><div class="ttdoc">interface spi qspi bus deinit</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__interface__template_8c_source.html#l00058">driver_w25qxx_interface_template.c:58</a></div></div>
+<div class="ttc" id="agroup__w25qxx__interface__driver_html_ga2bdc17a556f1c801a38656331f3bb7b6"><div class="ttname"><a href="group__w25qxx__interface__driver.html#ga2bdc17a556f1c801a38656331f3bb7b6">w25qxx_interface_spi_qspi_init</a></div><div class="ttdeci">uint8_t w25qxx_interface_spi_qspi_init(void)</div><div class="ttdoc">interface spi qspi bus init</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__interface__template_8c_source.html#l00046">driver_w25qxx_interface_template.c:46</a></div></div>
+<div class="ttc" id="agroup__w25qxx__interface__driver_html_ga38e79039b913154c9dd1036ff52bb420"><div class="ttname"><a href="group__w25qxx__interface__driver.html#ga38e79039b913154c9dd1036ff52bb420">w25qxx_interface_delay_us</a></div><div class="ttdeci">void w25qxx_interface_delay_us(uint32_t us)</div><div class="ttdoc">interface delay us</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__interface__template_8c_source.html#l00108">driver_w25qxx_interface_template.c:108</a></div></div>
+<div class="ttc" id="agroup__w25qxx__interface__driver_html_ga3d76ea1f431978f6b55edfd0628c94cd"><div class="ttname"><a href="group__w25qxx__interface__driver.html#ga3d76ea1f431978f6b55edfd0628c94cd">w25qxx_interface_spi_qspi_write_read</a></div><div class="ttdeci">uint8_t w25qxx_interface_spi_qspi_write_read(uint8_t instruction, uint8_t instruction_line, uint32_t address, uint8_t address_line, uint8_t address_len, uint32_t alternate, uint8_t alternate_line, uint8_t alternate_len, uint8_t dummy, uint8_t *in_buf, uint32_t in_len, uint8_t *out_buf, uint32_t out_len, uint8_t data_line)</div><div class="ttdoc">interface spi qspi bus write read</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__interface__template_8c_source.html#l00084">driver_w25qxx_interface_template.c:84</a></div></div>
+<div class="ttc" id="agroup__w25qxx__interface__driver_html_ga5325474fa17f6833744e631613fd2a0e"><div class="ttname"><a href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a></div><div class="ttdeci">void w25qxx_interface_debug_print(const char *const fmt,...)</div><div class="ttdoc">interface print format data</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__interface__template_8c_source.html#l00118">driver_w25qxx_interface_template.c:118</a></div></div>
+<div class="ttc" id="agroup__w25qxx__interface__driver_html_ga964fa232abf98737cb98458eebfff82c"><div class="ttname"><a href="group__w25qxx__interface__driver.html#ga964fa232abf98737cb98458eebfff82c">w25qxx_interface_delay_ms</a></div><div class="ttdeci">void w25qxx_interface_delay_ms(uint32_t ms)</div><div class="ttdoc">interface delay ms</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__interface__template_8c_source.html#l00098">driver_w25qxx_interface_template.c:98</a></div></div>
 </div><!-- fragment --></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
     <li class="navelem"><a class="el" href="dir_b31d54d5631803016a26f28213a41162.html">interface</a></li><li class="navelem"><a class="el" href="driver__w25qxx__interface__template_8c.html">driver_w25qxx_interface_template.c</a></li>
-    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
+    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/driver__w25qxx__read__test_8c.html b/doc/html/driver__w25qxx__read__test_8c.html
index 0d7a42f..bba0764 100644
--- a/doc/html/driver__w25qxx__read__test_8c.html
+++ b/doc/html/driver__w25qxx__read__test_8c.html
@@ -1,9 +1,9 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.8"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>LibDriver W25QXX: test/driver_w25qxx_read_test.c File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -23,11 +23,10 @@
 <div id="titlearea">
 <table cellspacing="0" cellpadding="0">
  <tbody>
- <tr style="height: 56px;">
+ <tr id="projectrow">
   <td id="projectlogo"><img alt="Logo" src="doxygen.png"/></td>
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">LibDriver W25QXX
-   &#160;<span id="projectnumber">1.0.0</span>
+  <td id="projectalign">
+   <div id="projectname">LibDriver W25QXX<span id="projectnumber">&#160;1.0.0</span>
    </div>
    <div id="projectbrief">W25QXX full function driver</div>
   </td>
@@ -36,21 +35,22 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.8 -->
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search/",'.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
 <script type="text/javascript" src="menu.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(function() {
   initMenu('',true,false,'search.php','Search');
   $(document).ready(function() { init_search(); });
 });
-/* @license-end */</script>
+/* @license-end */
+</script>
 <div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
@@ -64,7 +64,7 @@
   </div>
 </div>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(document).ready(function(){initNavTree('driver__w25qxx__read__test_8c.html',''); initResizable(); });
 /* @license-end */
 </script>
@@ -78,16 +78,22 @@
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
 </div>
 
 <div class="header">
   <div class="summary">
 <a href="#func-members">Functions</a>  </div>
-  <div class="headertitle">
-<div class="title">driver_w25qxx_read_test.c File Reference</div>  </div>
+  <div class="headertitle"><div class="title">driver_w25qxx_read_test.c File Reference</div></div>
 </div><!--header-->
 <div class="contents">
 
@@ -98,10 +104,10 @@
 </div>
 <p><a href="driver__w25qxx__read__test_8c_source.html">Go to the source code of this file.</a></p>
 <table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
 Functions</h2></td></tr>
-<tr class="memitem:ga4ce42ca34d33cd64cb823040780999af"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__test__driver.html#ga4ce42ca34d33cd64cb823040780999af">w25qxx_read_test</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga6cb4e5164464df549201dd96cb7a58b1">w25qxx_type_t</a> type, <a class="el" href="group__w25qxx__basic__driver.html#gacbf327a42336baf10713a1796ff4f2fe">w25qxx_interface_t</a> interface, <a class="el" href="group__w25qxx__basic__driver.html#gafb2690946f5baf4be6f3a63dde5491fb">w25qxx_bool_t</a> dual_quad_spi_enable)</td></tr>
-<tr class="memdesc:ga4ce42ca34d33cd64cb823040780999af"><td class="mdescLeft">&#160;</td><td class="mdescRight">read test  <a href="group__w25qxx__test__driver.html#ga4ce42ca34d33cd64cb823040780999af">More...</a><br /></td></tr>
+<tr class="memitem:ga4ce42ca34d33cd64cb823040780999af" id="r_ga4ce42ca34d33cd64cb823040780999af"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__test__driver.html#ga4ce42ca34d33cd64cb823040780999af">w25qxx_read_test</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga6cb4e5164464df549201dd96cb7a58b1">w25qxx_type_t</a> type, <a class="el" href="group__w25qxx__basic__driver.html#gacbf327a42336baf10713a1796ff4f2fe">w25qxx_interface_t</a> interface, <a class="el" href="group__w25qxx__basic__driver.html#gafb2690946f5baf4be6f3a63dde5491fb">w25qxx_bool_t</a> dual_quad_spi_enable)</td></tr>
+<tr class="memdesc:ga4ce42ca34d33cd64cb823040780999af"><td class="mdescLeft">&#160;</td><td class="mdescRight">read test  <br /></td></tr>
 <tr class="separator:ga4ce42ca34d33cd64cb823040780999af"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
@@ -129,7 +135,7 @@ <h3>history</h3>
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
     <li class="navelem"><a class="el" href="dir_13e138d54eb8818da29c3992edef070a.html">test</a></li><li class="navelem"><a class="el" href="driver__w25qxx__read__test_8c.html">driver_w25qxx_read_test.c</a></li>
-    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
+    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/driver__w25qxx__read__test_8c_source.html b/doc/html/driver__w25qxx__read__test_8c_source.html
index d3fa830..8656a98 100644
--- a/doc/html/driver__w25qxx__read__test_8c_source.html
+++ b/doc/html/driver__w25qxx__read__test_8c_source.html
@@ -1,9 +1,9 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.8"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>LibDriver W25QXX: test/driver_w25qxx_read_test.c Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -23,11 +23,10 @@
 <div id="titlearea">
 <table cellspacing="0" cellpadding="0">
  <tbody>
- <tr style="height: 56px;">
+ <tr id="projectrow">
   <td id="projectlogo"><img alt="Logo" src="doxygen.png"/></td>
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">LibDriver W25QXX
-   &#160;<span id="projectnumber">1.0.0</span>
+  <td id="projectalign">
+   <div id="projectname">LibDriver W25QXX<span id="projectnumber">&#160;1.0.0</span>
    </div>
    <div id="projectbrief">W25QXX full function driver</div>
   </td>
@@ -36,22 +35,28 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.8 -->
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search/",'.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
 <script type="text/javascript" src="menu.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(function() {
   initMenu('',true,false,'search.php','Search');
   $(document).ready(function() { init_search(); });
 });
-/* @license-end */</script>
+/* @license-end */
+</script>
 <div id="main-nav"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(document).ready(function() { init_codefold(0); });
+/* @license-end */
+</script>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -64,7 +69,7 @@
   </div>
 </div>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(document).ready(function(){initNavTree('driver__w25qxx__read__test_8c_source.html',''); initResizable(); });
 /* @license-end */
 </script>
@@ -78,2102 +83,2110 @@
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
 </div>
 
 <div class="header">
-  <div class="headertitle">
-<div class="title">driver_w25qxx_read_test.c</div>  </div>
+  <div class="headertitle"><div class="title">driver_w25qxx_read_test.c</div></div>
 </div><!--header-->
 <div class="contents">
-<a href="driver__w25qxx__read__test_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160; </div>
-<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="driver__w25qxx__read__test_8h.html">driver_w25qxx_read_test.h</a>&quot;</span></div>
-<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;<span class="preprocessor">#include &lt;stdlib.h&gt;</span></div>
-<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160; </div>
-<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;<span class="keyword">static</span> <a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> gs_handle;            </div>
-<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;<span class="keyword">static</span> uint8_t gs_buffer_input[600];         </div>
-<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;<span class="keyword">static</span> uint8_t gs_buffer_output[600];        </div>
-<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;<span class="keyword">static</span> <span class="keyword">const</span> uint32_t gsc_size[] = {0x100000, 0x200000, 0x400000, 0x800000, 0x1000000, 0x2000000};        </div>
-<div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="group__w25qxx__test__driver.html#ga4ce42ca34d33cd64cb823040780999af">   55</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__test__driver.html#ga4ce42ca34d33cd64cb823040780999af">w25qxx_read_test</a>(<a class="code" href="group__w25qxx__basic__driver.html#ga6cb4e5164464df549201dd96cb7a58b1">w25qxx_type_t</a> type, <a class="code" href="group__w25qxx__basic__driver.html#gacbf327a42336baf10713a1796ff4f2fe">w25qxx_interface_t</a> interface, <a class="code" href="group__w25qxx__basic__driver.html#gafb2690946f5baf4be6f3a63dde5491fb">w25qxx_bool_t</a> dual_quad_spi_enable)</div>
-<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;{</div>
-<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;    uint8_t res;</div>
-<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;    <a class="code" href="structw25qxx__info__s.html">w25qxx_info_t</a> info;</div>
-<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;    </div>
-<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;    <span class="comment">/* link interface function */</span></div>
-<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;    <a class="code" href="group__w25qxx__link__driver.html#ga995378489f95bc6bbddbe710557e3384">DRIVER_W25QXX_LINK_INIT</a>(&amp;gs_handle, <a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a>);</div>
-<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;    <a class="code" href="group__w25qxx__link__driver.html#gab2587de93f1dba5664eede8cd787a88a">DRIVER_W25QXX_LINK_SPI_QSPI_INIT</a>(&amp;gs_handle, <a class="code" href="group__w25qxx__interface__driver.html#ga2bdc17a556f1c801a38656331f3bb7b6">w25qxx_interface_spi_qspi_init</a>);</div>
-<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;    <a class="code" href="group__w25qxx__link__driver.html#gaec8b55e83b46907be1dd9e7c50be550d">DRIVER_W25QXX_LINK_SPI_QSPI_DEINIT</a>(&amp;gs_handle, <a class="code" href="group__w25qxx__interface__driver.html#ga091f3607fcdd47f9e5f94cf1397bd46a">w25qxx_interface_spi_qspi_deinit</a>);</div>
-<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;    <a class="code" href="group__w25qxx__link__driver.html#gac8f0ca0a725790bace3241d1d616e3d1">DRIVER_W25QXX_LINK_SPI_QSPI_WRITE_READ</a>(&amp;gs_handle, <a class="code" href="group__w25qxx__interface__driver.html#ga3d76ea1f431978f6b55edfd0628c94cd">w25qxx_interface_spi_qspi_write_read</a>);</div>
-<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;    <a class="code" href="group__w25qxx__link__driver.html#ga7555618f13d2de0003ae6d9483085180">DRIVER_W25QXX_LINK_DELAY_MS</a>(&amp;gs_handle, <a class="code" href="group__w25qxx__interface__driver.html#ga964fa232abf98737cb98458eebfff82c">w25qxx_interface_delay_ms</a>);</div>
-<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;    <a class="code" href="group__w25qxx__link__driver.html#gafc81bf850c80dfa316f0c6ab40be6e67">DRIVER_W25QXX_LINK_DELAY_US</a>(&amp;gs_handle, <a class="code" href="group__w25qxx__interface__driver.html#ga38e79039b913154c9dd1036ff52bb420">w25qxx_interface_delay_us</a>);</div>
-<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;    <a class="code" href="group__w25qxx__link__driver.html#gab8d49ef9dca942fe5f37c30dcd7e22a6">DRIVER_W25QXX_LINK_DEBUG_PRINT</a>(&amp;gs_handle, <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>);</div>
-<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;    </div>
-<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;    <span class="comment">/* get information */</span></div>
-<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;    res = <a class="code" href="group__w25qxx__basic__driver.html#ga996e2d3009432e7f8c1a5175c4438a57">w25qxx_info</a>(&amp;info);</div>
-<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;    <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;    {</div>
-<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: get info failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;       </div>
-<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;        <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;    }</div>
-<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;    <span class="keywordflow">else</span></div>
-<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;    {</div>
-<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;        <span class="comment">/* print chip information */</span></div>
-<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: chip is %s.\n&quot;</span>, info.<a class="code" href="structw25qxx__info__s.html#af890958c72bd715cc6454a10dc846ae6">chip_name</a>);</div>
-<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: manufacturer is %s.\n&quot;</span>, info.<a class="code" href="structw25qxx__info__s.html#ad25285dbf810c90f8eaf3fcef6f2b2ea">manufacturer_name</a>);</div>
-<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: interface is %s.\n&quot;</span>, info.<a class="code" href="structw25qxx__info__s.html#a5778305279cae46b2ecf862e97f73600">interface</a>);</div>
-<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: driver version is %d.%d.\n&quot;</span>, info.<a class="code" href="structw25qxx__info__s.html#a41b0bd442708b70d252c50b92c75265a">driver_version</a> / 1000, (info.<a class="code" href="structw25qxx__info__s.html#a41b0bd442708b70d252c50b92c75265a">driver_version</a> % 1000) / 100);</div>
-<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: min supply voltage is %0.1fV.\n&quot;</span>, info.<a class="code" href="structw25qxx__info__s.html#ad8bde6ddadaf43d951e62f3befb9d35a">supply_voltage_min_v</a>);</div>
-<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: max supply voltage is %0.1fV.\n&quot;</span>, info.<a class="code" href="structw25qxx__info__s.html#a3d2b12bcac7a85ea8646bff9debe8660">supply_voltage_max_v</a>);</div>
-<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: max current is %0.2fmA.\n&quot;</span>, info.<a class="code" href="structw25qxx__info__s.html#a9db82802561bf22d799b03a345f1d1dc">max_current_ma</a>);</div>
-<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: max temperature is %0.1fC.\n&quot;</span>, info.<a class="code" href="structw25qxx__info__s.html#a3366a5dce9b829e03c3d321c2b4df3f6">temperature_max</a>);</div>
-<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: min temperature is %0.1fC.\n&quot;</span>, info.<a class="code" href="structw25qxx__info__s.html#a8f9dbe66ac0b66ebae0a36fcb4ba368e">temperature_min</a>);</div>
-<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;    }</div>
-<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;    </div>
-<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;    <span class="comment">/* set chip type */</span></div>
-<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;    res = <a class="code" href="group__w25qxx__basic__driver.html#gaa57189cd4170b73f8b1300ca15e27de6">w25qxx_set_type</a>(&amp;gs_handle, type);</div>
-<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;    <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;    {</div>
-<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set type failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;       </div>
-<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;        <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;    }</div>
-<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;    </div>
-<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;    <span class="comment">/* set chip interface */</span></div>
-<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;    res = <a class="code" href="group__w25qxx__basic__driver.html#ga50a62003d566402d46ada2f272c41eb5">w25qxx_set_interface</a>(&amp;gs_handle, interface);</div>
-<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;    <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;    {</div>
-<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set interface failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;       </div>
-<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;        <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;    }</div>
-<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;    </div>
-<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;    <span class="comment">/* set dual quad spi */</span></div>
-<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;    res = <a class="code" href="group__w25qxx__basic__driver.html#ga665139209b0abc386474a78d89cce6f2">w25qxx_set_dual_quad_spi</a>(&amp;gs_handle, dual_quad_spi_enable);</div>
-<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;    <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;    {</div>
-<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set dual quad spi failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;        (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;       </div>
-<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;        <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;    }</div>
-<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;    </div>
-<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;    <span class="comment">/* chip init */</span></div>
-<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;    res = <a class="code" href="group__w25qxx__basic__driver.html#ga8e7a163b3d255b8c7fc035d0d60f2491">w25qxx_init</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;    <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;    {</div>
-<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: init failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;       </div>
-<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;        <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;    }</div>
-<div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;    </div>
-<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;    <span class="comment">/* start read test */</span></div>
-<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;    <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: start read test.\n&quot;</span>);</div>
-<div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;    </div>
-<div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;    <span class="keywordflow">if</span> (interface == <a class="code" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>)</div>
-<div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;    {</div>
-<div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;        uint32_t size;</div>
-<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;        uint32_t addr, step, j;</div>
-<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;        </div>
-<div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;        size = gsc_size[type - <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a1ad4f72437de5f26cb7b212d4d91e7c2">W25Q80</a>];</div>
-<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;        step = size / 16;</div>
-<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;        </div>
-<div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;        <span class="comment">/* w25qxx_write/w25qxx_read test */</span></div>
-<div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_write/w25qxx_read test.\n&quot;</span>);</div>
-<div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;        </div>
-<div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;        <span class="keywordflow">for</span> (addr = 0; addr &lt; size; addr += step)</div>
-<div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;        {</div>
-<div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;            <span class="keywordflow">for</span> (j = 0; j &lt; 600; j++)</div>
-<div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;            {</div>
-<div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;                gs_buffer_input[j] = rand() %256;</div>
-<div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;            }</div>
-<div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;            res = <a class="code" href="group__w25qxx__basic__driver.html#gaaee8264d840e51460821cb6e609338ee">w25qxx_write</a>(&amp;gs_handle, addr, gs_buffer_input, 600);</div>
-<div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;            <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;            {</div>
-<div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: write failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;                (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;               </div>
-<div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;                <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;            }</div>
-<div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;            res = <a class="code" href="group__w25qxx__basic__driver.html#gae7479fc9ce911a52e3c5b6f1a615b879">w25qxx_read</a>(&amp;gs_handle, addr, gs_buffer_output, 600);</div>
-<div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;            <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;            {</div>
-<div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: read failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;                (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;               </div>
-<div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;                <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;            }</div>
-<div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;            <span class="keywordflow">for</span> (j = 0; j &lt; 600; j++)</div>
-<div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;            {</div>
-<div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;                <span class="keywordflow">if</span> (gs_buffer_input[j] != gs_buffer_output[j])</div>
-<div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;                {</div>
-<div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;                    <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: write read check failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;                    (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;                    </div>
-<div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;                    <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;                }</div>
-<div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;            }</div>
-<div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: 0x%08X/0x%08X successful.\n&quot;</span>, addr, size);</div>
-<div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;        }</div>
-<div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;        </div>
-<div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;        <span class="comment">/* w25qxx_sector_erase_4k test */</span></div>
-<div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;        addr = (rand() % 10) * 4 * 1024;</div>
-<div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_sector_erase_4k test with address 0x%X.\n&quot;</span>, addr);</div>
-<div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;        res = <a class="code" href="group__w25qxx__basic__driver.html#ga9a03c51b4c84655350c15fbfce0a6b40">w25qxx_sector_erase_4k</a>(&amp;gs_handle, addr);</div>
-<div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;        <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;        {</div>
-<div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: sector erase 4k failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;            (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;           </div>
-<div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;            <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;        }</div>
-<div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;        <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
-<div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;        {</div>
-<div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;            gs_buffer_input[j] = rand() %256;</div>
-<div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;        }</div>
-<div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;        </div>
-<div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;        <span class="comment">/* w25qxx_page_program */</span></div>
-<div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;        res = <a class="code" href="group__w25qxx__basic__driver.html#ga6280e7e4ab26306436e2c210617a28b3">w25qxx_page_program</a>(&amp;gs_handle, addr, gs_buffer_input, 256);</div>
-<div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;        <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;        {</div>
-<div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: page program failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;            (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;           </div>
-<div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;            <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;        }</div>
-<div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;        </div>
-<div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;        <span class="comment">/* w25qxx_only_spi_read */</span></div>
-<div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;        res = <a class="code" href="group__w25qxx__basic__driver.html#ga1e9ebf198137d23558dbf6470213c472">w25qxx_only_spi_read</a>(&amp;gs_handle, addr, gs_buffer_output, 256);</div>
-<div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;        <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;        {</div>
-<div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: only spi read failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;            (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;           </div>
-<div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;            <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;        }</div>
-<div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;        <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
-<div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;        {</div>
-<div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;            <span class="keywordflow">if</span> (gs_buffer_input[j] != gs_buffer_output[j])</div>
-<div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;            {</div>
-<div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: write read check failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;                (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;                </div>
-<div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;                <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;            }</div>
-<div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;        }</div>
-<div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: only spi read test passed.\n&quot;</span>);</div>
-<div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;        </div>
-<div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;        <span class="comment">/* w25qxx_fast_read */</span></div>
-<div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;        res = <a class="code" href="group__w25qxx__basic__driver.html#gac345ba10af5ad355578fa97697487123">w25qxx_fast_read</a>(&amp;gs_handle, addr, gs_buffer_output, 256);</div>
-<div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;        <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;        {</div>
-<div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;            (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160;           </div>
-<div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160;            <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;        }</div>
-<div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;        <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
-<div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;        {</div>
-<div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;            <span class="keywordflow">if</span> (gs_buffer_input[j] != gs_buffer_output[j])</div>
-<div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;            {</div>
-<div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: write read check failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;                (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;                </div>
-<div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;                <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160;            }</div>
-<div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;        }</div>
-<div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read test passed.\n&quot;</span>);</div>
-<div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160;        </div>
-<div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;        <span class="comment">/* w25qxx_block_erase_32k test */</span></div>
-<div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160;        addr = (rand() % 10) * 32 * 1024;</div>
-<div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_block_erase_32k test with address 0x%X.\n&quot;</span>, addr);</div>
-<div class="line"><a name="l00248"></a><span class="lineno">  248</span>&#160;        res = <a class="code" href="group__w25qxx__basic__driver.html#ga39c8fb382e8c3e4d57232dfa79af781c">w25qxx_block_erase_32k</a>(&amp;gs_handle, addr);</div>
-<div class="line"><a name="l00249"></a><span class="lineno">  249</span>&#160;        <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00250"></a><span class="lineno">  250</span>&#160;        {</div>
-<div class="line"><a name="l00251"></a><span class="lineno">  251</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: sector erase 32k failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00252"></a><span class="lineno">  252</span>&#160;            (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160;           </div>
-<div class="line"><a name="l00254"></a><span class="lineno">  254</span>&#160;            <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00255"></a><span class="lineno">  255</span>&#160;        }</div>
-<div class="line"><a name="l00256"></a><span class="lineno">  256</span>&#160;        <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
-<div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160;        {</div>
-<div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160;            gs_buffer_input[j] = rand() %256;</div>
-<div class="line"><a name="l00259"></a><span class="lineno">  259</span>&#160;        }</div>
-<div class="line"><a name="l00260"></a><span class="lineno">  260</span>&#160;        </div>
-<div class="line"><a name="l00261"></a><span class="lineno">  261</span>&#160;        <span class="comment">/* w25qxx_page_program */</span></div>
-<div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160;        res = <a class="code" href="group__w25qxx__basic__driver.html#ga6280e7e4ab26306436e2c210617a28b3">w25qxx_page_program</a>(&amp;gs_handle, addr, gs_buffer_input, 256);</div>
-<div class="line"><a name="l00263"></a><span class="lineno">  263</span>&#160;        <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00264"></a><span class="lineno">  264</span>&#160;        {</div>
-<div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: page program failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00266"></a><span class="lineno">  266</span>&#160;            (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160;           </div>
-<div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160;            <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160;        }</div>
-<div class="line"><a name="l00270"></a><span class="lineno">  270</span>&#160;        </div>
-<div class="line"><a name="l00271"></a><span class="lineno">  271</span>&#160;        <span class="comment">/* w25qxx_only_spi_read */</span></div>
-<div class="line"><a name="l00272"></a><span class="lineno">  272</span>&#160;        res = <a class="code" href="group__w25qxx__basic__driver.html#ga1e9ebf198137d23558dbf6470213c472">w25qxx_only_spi_read</a>(&amp;gs_handle, addr, gs_buffer_output, 256);</div>
-<div class="line"><a name="l00273"></a><span class="lineno">  273</span>&#160;        <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00274"></a><span class="lineno">  274</span>&#160;        {</div>
-<div class="line"><a name="l00275"></a><span class="lineno">  275</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: only spi read failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160;            (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160;           </div>
-<div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160;            <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00279"></a><span class="lineno">  279</span>&#160;        }</div>
-<div class="line"><a name="l00280"></a><span class="lineno">  280</span>&#160;        <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
-<div class="line"><a name="l00281"></a><span class="lineno">  281</span>&#160;        {</div>
-<div class="line"><a name="l00282"></a><span class="lineno">  282</span>&#160;            <span class="keywordflow">if</span> (gs_buffer_input[j] != gs_buffer_output[j])</div>
-<div class="line"><a name="l00283"></a><span class="lineno">  283</span>&#160;            {</div>
-<div class="line"><a name="l00284"></a><span class="lineno">  284</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: write read check failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00285"></a><span class="lineno">  285</span>&#160;                (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00286"></a><span class="lineno">  286</span>&#160;                </div>
-<div class="line"><a name="l00287"></a><span class="lineno">  287</span>&#160;                <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00288"></a><span class="lineno">  288</span>&#160;            }</div>
-<div class="line"><a name="l00289"></a><span class="lineno">  289</span>&#160;        }</div>
-<div class="line"><a name="l00290"></a><span class="lineno">  290</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: only spi read test passed.\n&quot;</span>);</div>
-<div class="line"><a name="l00291"></a><span class="lineno">  291</span>&#160;        </div>
-<div class="line"><a name="l00292"></a><span class="lineno">  292</span>&#160;        <span class="comment">/* w25qxx_fast_read */</span></div>
-<div class="line"><a name="l00293"></a><span class="lineno">  293</span>&#160;        res = <a class="code" href="group__w25qxx__basic__driver.html#gac345ba10af5ad355578fa97697487123">w25qxx_fast_read</a>(&amp;gs_handle, addr, gs_buffer_output, 256);</div>
-<div class="line"><a name="l00294"></a><span class="lineno">  294</span>&#160;        <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00295"></a><span class="lineno">  295</span>&#160;        {</div>
-<div class="line"><a name="l00296"></a><span class="lineno">  296</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00297"></a><span class="lineno">  297</span>&#160;            (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00298"></a><span class="lineno">  298</span>&#160;           </div>
-<div class="line"><a name="l00299"></a><span class="lineno">  299</span>&#160;            <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00300"></a><span class="lineno">  300</span>&#160;        }</div>
-<div class="line"><a name="l00301"></a><span class="lineno">  301</span>&#160;        <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
-<div class="line"><a name="l00302"></a><span class="lineno">  302</span>&#160;        {</div>
-<div class="line"><a name="l00303"></a><span class="lineno">  303</span>&#160;            <span class="keywordflow">if</span> (gs_buffer_input[j] != gs_buffer_output[j])</div>
-<div class="line"><a name="l00304"></a><span class="lineno">  304</span>&#160;            {</div>
-<div class="line"><a name="l00305"></a><span class="lineno">  305</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: write read check failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00306"></a><span class="lineno">  306</span>&#160;                (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00307"></a><span class="lineno">  307</span>&#160;                </div>
-<div class="line"><a name="l00308"></a><span class="lineno">  308</span>&#160;                <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00309"></a><span class="lineno">  309</span>&#160;            }</div>
-<div class="line"><a name="l00310"></a><span class="lineno">  310</span>&#160;        }</div>
-<div class="line"><a name="l00311"></a><span class="lineno">  311</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read test passed.\n&quot;</span>);</div>
-<div class="line"><a name="l00312"></a><span class="lineno">  312</span>&#160;        </div>
-<div class="line"><a name="l00313"></a><span class="lineno">  313</span>&#160;        <span class="comment">/* w25qxx_block_erase_64k test */</span></div>
-<div class="line"><a name="l00314"></a><span class="lineno">  314</span>&#160;        addr = (rand() % 10) * 64 * 1024;</div>
-<div class="line"><a name="l00315"></a><span class="lineno">  315</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_block_erase_64k test with address 0x%X.\n&quot;</span>, addr);</div>
-<div class="line"><a name="l00316"></a><span class="lineno">  316</span>&#160;        res = <a class="code" href="group__w25qxx__basic__driver.html#gaf53bc5f6073482b9b74efd417ec7ac83">w25qxx_block_erase_64k</a>(&amp;gs_handle, addr);</div>
-<div class="line"><a name="l00317"></a><span class="lineno">  317</span>&#160;        <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00318"></a><span class="lineno">  318</span>&#160;        {</div>
-<div class="line"><a name="l00319"></a><span class="lineno">  319</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: sector erase 64k failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00320"></a><span class="lineno">  320</span>&#160;            (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00321"></a><span class="lineno">  321</span>&#160;           </div>
-<div class="line"><a name="l00322"></a><span class="lineno">  322</span>&#160;            <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00323"></a><span class="lineno">  323</span>&#160;        }</div>
-<div class="line"><a name="l00324"></a><span class="lineno">  324</span>&#160;        <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
-<div class="line"><a name="l00325"></a><span class="lineno">  325</span>&#160;        {</div>
-<div class="line"><a name="l00326"></a><span class="lineno">  326</span>&#160;            gs_buffer_input[j] = rand() %256;</div>
-<div class="line"><a name="l00327"></a><span class="lineno">  327</span>&#160;        }</div>
-<div class="line"><a name="l00328"></a><span class="lineno">  328</span>&#160;        </div>
-<div class="line"><a name="l00329"></a><span class="lineno">  329</span>&#160;        <span class="comment">/* w25qxx_page_program */</span></div>
-<div class="line"><a name="l00330"></a><span class="lineno">  330</span>&#160;        res = <a class="code" href="group__w25qxx__basic__driver.html#ga6280e7e4ab26306436e2c210617a28b3">w25qxx_page_program</a>(&amp;gs_handle, addr, gs_buffer_input, 256);</div>
-<div class="line"><a name="l00331"></a><span class="lineno">  331</span>&#160;        <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00332"></a><span class="lineno">  332</span>&#160;        {</div>
-<div class="line"><a name="l00333"></a><span class="lineno">  333</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: page program failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00334"></a><span class="lineno">  334</span>&#160;            (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00335"></a><span class="lineno">  335</span>&#160;           </div>
-<div class="line"><a name="l00336"></a><span class="lineno">  336</span>&#160;            <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00337"></a><span class="lineno">  337</span>&#160;        }</div>
-<div class="line"><a name="l00338"></a><span class="lineno">  338</span>&#160;        </div>
-<div class="line"><a name="l00339"></a><span class="lineno">  339</span>&#160;        <span class="comment">/* w25qxx_only_spi_read */</span></div>
-<div class="line"><a name="l00340"></a><span class="lineno">  340</span>&#160;        res = <a class="code" href="group__w25qxx__basic__driver.html#ga1e9ebf198137d23558dbf6470213c472">w25qxx_only_spi_read</a>(&amp;gs_handle, addr, gs_buffer_output, 256);</div>
-<div class="line"><a name="l00341"></a><span class="lineno">  341</span>&#160;        <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00342"></a><span class="lineno">  342</span>&#160;        {</div>
-<div class="line"><a name="l00343"></a><span class="lineno">  343</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: only spi read failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00344"></a><span class="lineno">  344</span>&#160;            (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00345"></a><span class="lineno">  345</span>&#160;           </div>
-<div class="line"><a name="l00346"></a><span class="lineno">  346</span>&#160;            <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00347"></a><span class="lineno">  347</span>&#160;        }</div>
-<div class="line"><a name="l00348"></a><span class="lineno">  348</span>&#160;        <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
-<div class="line"><a name="l00349"></a><span class="lineno">  349</span>&#160;        {</div>
-<div class="line"><a name="l00350"></a><span class="lineno">  350</span>&#160;            <span class="keywordflow">if</span> (gs_buffer_input[j] != gs_buffer_output[j])</div>
-<div class="line"><a name="l00351"></a><span class="lineno">  351</span>&#160;            {</div>
-<div class="line"><a name="l00352"></a><span class="lineno">  352</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: write read check failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00353"></a><span class="lineno">  353</span>&#160;                (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00354"></a><span class="lineno">  354</span>&#160;                </div>
-<div class="line"><a name="l00355"></a><span class="lineno">  355</span>&#160;                <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00356"></a><span class="lineno">  356</span>&#160;            }</div>
-<div class="line"><a name="l00357"></a><span class="lineno">  357</span>&#160;        }</div>
-<div class="line"><a name="l00358"></a><span class="lineno">  358</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: only spi read test passed.\n&quot;</span>);</div>
-<div class="line"><a name="l00359"></a><span class="lineno">  359</span>&#160;        </div>
-<div class="line"><a name="l00360"></a><span class="lineno">  360</span>&#160;        <span class="comment">/* w25qxx_fast_read */</span></div>
-<div class="line"><a name="l00361"></a><span class="lineno">  361</span>&#160;        res = <a class="code" href="group__w25qxx__basic__driver.html#gac345ba10af5ad355578fa97697487123">w25qxx_fast_read</a>(&amp;gs_handle, addr, gs_buffer_output, 256);</div>
-<div class="line"><a name="l00362"></a><span class="lineno">  362</span>&#160;        <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00363"></a><span class="lineno">  363</span>&#160;        {</div>
-<div class="line"><a name="l00364"></a><span class="lineno">  364</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00365"></a><span class="lineno">  365</span>&#160;            (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00366"></a><span class="lineno">  366</span>&#160;           </div>
-<div class="line"><a name="l00367"></a><span class="lineno">  367</span>&#160;            <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00368"></a><span class="lineno">  368</span>&#160;        }</div>
-<div class="line"><a name="l00369"></a><span class="lineno">  369</span>&#160;        <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
-<div class="line"><a name="l00370"></a><span class="lineno">  370</span>&#160;        {</div>
-<div class="line"><a name="l00371"></a><span class="lineno">  371</span>&#160;            <span class="keywordflow">if</span> (gs_buffer_input[j] != gs_buffer_output[j])</div>
-<div class="line"><a name="l00372"></a><span class="lineno">  372</span>&#160;            {</div>
-<div class="line"><a name="l00373"></a><span class="lineno">  373</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: write read check failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00374"></a><span class="lineno">  374</span>&#160;                (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00375"></a><span class="lineno">  375</span>&#160;                </div>
-<div class="line"><a name="l00376"></a><span class="lineno">  376</span>&#160;                <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00377"></a><span class="lineno">  377</span>&#160;            }</div>
-<div class="line"><a name="l00378"></a><span class="lineno">  378</span>&#160;        }</div>
-<div class="line"><a name="l00379"></a><span class="lineno">  379</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read test passed.\n&quot;</span>);</div>
-<div class="line"><a name="l00380"></a><span class="lineno">  380</span>&#160;        </div>
-<div class="line"><a name="l00381"></a><span class="lineno">  381</span>&#160;        <span class="comment">/* get sfdp */</span></div>
-<div class="line"><a name="l00382"></a><span class="lineno">  382</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: get sfdp.\n&quot;</span>);</div>
-<div class="line"><a name="l00383"></a><span class="lineno">  383</span>&#160;        memset(gs_buffer_output, 0, <span class="keyword">sizeof</span>(uint8_t) * 256);</div>
-<div class="line"><a name="l00384"></a><span class="lineno">  384</span>&#160;        res = <a class="code" href="group__w25qxx__advance__driver.html#ga244a91b9c0c32e899ca89e1943045624">w25qxx_get_sfdp</a>(&amp;gs_handle, (uint8_t *)gs_buffer_output);</div>
-<div class="line"><a name="l00385"></a><span class="lineno">  385</span>&#160;        <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00386"></a><span class="lineno">  386</span>&#160;        {</div>
-<div class="line"><a name="l00387"></a><span class="lineno">  387</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: get sfdp failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00388"></a><span class="lineno">  388</span>&#160;            (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00389"></a><span class="lineno">  389</span>&#160;           </div>
-<div class="line"><a name="l00390"></a><span class="lineno">  390</span>&#160;            <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00391"></a><span class="lineno">  391</span>&#160;        }</div>
-<div class="line"><a name="l00392"></a><span class="lineno">  392</span>&#160;        <span class="keywordflow">for</span> (j = 0; j &lt; 256; j += 8)</div>
-<div class="line"><a name="l00393"></a><span class="lineno">  393</span>&#160;        {</div>
-<div class="line"><a name="l00394"></a><span class="lineno">  394</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: sdfp[%d-%d] is 0x%02X 0x%02X 0x%02X 0x%02X 0x%02X 0x%02X 0x%02X 0x%02X.\n&quot;</span>, </div>
-<div class="line"><a name="l00395"></a><span class="lineno">  395</span>&#160;                                         j , j + 7,</div>
-<div class="line"><a name="l00396"></a><span class="lineno">  396</span>&#160;                                         gs_buffer_output[j + 0], gs_buffer_output[j + 1], gs_buffer_output[j + 2],</div>
-<div class="line"><a name="l00397"></a><span class="lineno">  397</span>&#160;                                         gs_buffer_output[j + 3], gs_buffer_output[j + 4], gs_buffer_output[j + 5],</div>
-<div class="line"><a name="l00398"></a><span class="lineno">  398</span>&#160;                                         gs_buffer_output[j + 6], gs_buffer_output[j + 7]);</div>
-<div class="line"><a name="l00399"></a><span class="lineno">  399</span>&#160;        }</div>
-<div class="line"><a name="l00400"></a><span class="lineno">  400</span>&#160;        </div>
-<div class="line"><a name="l00401"></a><span class="lineno">  401</span>&#160;        <span class="comment">/*  security register1 write and read test */</span></div>
-<div class="line"><a name="l00402"></a><span class="lineno">  402</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: security register1 write and read test.\n&quot;</span>);</div>
-<div class="line"><a name="l00403"></a><span class="lineno">  403</span>&#160;        </div>
-<div class="line"><a name="l00404"></a><span class="lineno">  404</span>&#160;        <span class="comment">/* security register1 write and read test */</span></div>
-<div class="line"><a name="l00405"></a><span class="lineno">  405</span>&#160;        res = <a class="code" href="group__w25qxx__advance__driver.html#gaf297e2c6877c64f8fd10a555f783ddaf">w25qxx_erase_security_register</a>(&amp;gs_handle, <a class="code" href="group__w25qxx__advance__driver.html#gga81ddc7d4b9f4f124163beea19cc33c7eaaf27484a497c13915c8acb0161cf137d">W25QXX_SECURITY_REGISTER_1</a>);</div>
-<div class="line"><a name="l00406"></a><span class="lineno">  406</span>&#160;        <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00407"></a><span class="lineno">  407</span>&#160;        {</div>
-<div class="line"><a name="l00408"></a><span class="lineno">  408</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: erase security register failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00409"></a><span class="lineno">  409</span>&#160;            (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00410"></a><span class="lineno">  410</span>&#160;           </div>
-<div class="line"><a name="l00411"></a><span class="lineno">  411</span>&#160;            <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00412"></a><span class="lineno">  412</span>&#160;        }</div>
-<div class="line"><a name="l00413"></a><span class="lineno">  413</span>&#160;        <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
-<div class="line"><a name="l00414"></a><span class="lineno">  414</span>&#160;        {</div>
-<div class="line"><a name="l00415"></a><span class="lineno">  415</span>&#160;            gs_buffer_input[j] = rand() %256;</div>
-<div class="line"><a name="l00416"></a><span class="lineno">  416</span>&#160;        }</div>
-<div class="line"><a name="l00417"></a><span class="lineno">  417</span>&#160;        res = <a class="code" href="group__w25qxx__advance__driver.html#ga4e9c059ff78866e478e835cb27a92899">w25qxx_program_security_register</a>(&amp;gs_handle, <a class="code" href="group__w25qxx__advance__driver.html#gga81ddc7d4b9f4f124163beea19cc33c7eaaf27484a497c13915c8acb0161cf137d">W25QXX_SECURITY_REGISTER_1</a>, gs_buffer_input);</div>
-<div class="line"><a name="l00418"></a><span class="lineno">  418</span>&#160;        <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00419"></a><span class="lineno">  419</span>&#160;        {</div>
-<div class="line"><a name="l00420"></a><span class="lineno">  420</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: program security register failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00421"></a><span class="lineno">  421</span>&#160;            (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00422"></a><span class="lineno">  422</span>&#160;           </div>
-<div class="line"><a name="l00423"></a><span class="lineno">  423</span>&#160;            <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00424"></a><span class="lineno">  424</span>&#160;        }</div>
-<div class="line"><a name="l00425"></a><span class="lineno">  425</span>&#160;        res = <a class="code" href="group__w25qxx__advance__driver.html#ga4c65debc4947bd9a61e0073105164b9c">w25qxx_read_security_register</a>(&amp;gs_handle, <a class="code" href="group__w25qxx__advance__driver.html#gga81ddc7d4b9f4f124163beea19cc33c7eaaf27484a497c13915c8acb0161cf137d">W25QXX_SECURITY_REGISTER_1</a>, gs_buffer_output);</div>
-<div class="line"><a name="l00426"></a><span class="lineno">  426</span>&#160;        <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00427"></a><span class="lineno">  427</span>&#160;        {</div>
-<div class="line"><a name="l00428"></a><span class="lineno">  428</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: read security register failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00429"></a><span class="lineno">  429</span>&#160;            (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00430"></a><span class="lineno">  430</span>&#160;           </div>
-<div class="line"><a name="l00431"></a><span class="lineno">  431</span>&#160;            <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00432"></a><span class="lineno">  432</span>&#160;        }</div>
-<div class="line"><a name="l00433"></a><span class="lineno">  433</span>&#160;        <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
-<div class="line"><a name="l00434"></a><span class="lineno">  434</span>&#160;        {</div>
-<div class="line"><a name="l00435"></a><span class="lineno">  435</span>&#160;            <span class="keywordflow">if</span> (gs_buffer_input[j] != gs_buffer_output[j])</div>
-<div class="line"><a name="l00436"></a><span class="lineno">  436</span>&#160;            {</div>
-<div class="line"><a name="l00437"></a><span class="lineno">  437</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: write read check failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00438"></a><span class="lineno">  438</span>&#160;                (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00439"></a><span class="lineno">  439</span>&#160;                </div>
-<div class="line"><a name="l00440"></a><span class="lineno">  440</span>&#160;                <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00441"></a><span class="lineno">  441</span>&#160;            }</div>
-<div class="line"><a name="l00442"></a><span class="lineno">  442</span>&#160;        }</div>
-<div class="line"><a name="l00443"></a><span class="lineno">  443</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: security register1 check passed.\n&quot;</span>);</div>
-<div class="line"><a name="l00444"></a><span class="lineno">  444</span>&#160;        </div>
-<div class="line"><a name="l00445"></a><span class="lineno">  445</span>&#160;        <span class="comment">/*  security register2 write and read test */</span></div>
-<div class="line"><a name="l00446"></a><span class="lineno">  446</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: security register2 write and read test.\n&quot;</span>);</div>
-<div class="line"><a name="l00447"></a><span class="lineno">  447</span>&#160;        </div>
-<div class="line"><a name="l00448"></a><span class="lineno">  448</span>&#160;        <span class="comment">/* security register2 write and read test */</span></div>
-<div class="line"><a name="l00449"></a><span class="lineno">  449</span>&#160;        res = <a class="code" href="group__w25qxx__advance__driver.html#gaf297e2c6877c64f8fd10a555f783ddaf">w25qxx_erase_security_register</a>(&amp;gs_handle, <a class="code" href="group__w25qxx__advance__driver.html#gga81ddc7d4b9f4f124163beea19cc33c7ea3353a88090850174ca163d56e4d7089c">W25QXX_SECURITY_REGISTER_2</a>);</div>
-<div class="line"><a name="l00450"></a><span class="lineno">  450</span>&#160;        <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00451"></a><span class="lineno">  451</span>&#160;        {</div>
-<div class="line"><a name="l00452"></a><span class="lineno">  452</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: erase security register failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00453"></a><span class="lineno">  453</span>&#160;            (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00454"></a><span class="lineno">  454</span>&#160;           </div>
-<div class="line"><a name="l00455"></a><span class="lineno">  455</span>&#160;            <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00456"></a><span class="lineno">  456</span>&#160;        }</div>
-<div class="line"><a name="l00457"></a><span class="lineno">  457</span>&#160;        <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
-<div class="line"><a name="l00458"></a><span class="lineno">  458</span>&#160;        {</div>
-<div class="line"><a name="l00459"></a><span class="lineno">  459</span>&#160;            gs_buffer_input[j] = rand() %256;</div>
-<div class="line"><a name="l00460"></a><span class="lineno">  460</span>&#160;        }</div>
-<div class="line"><a name="l00461"></a><span class="lineno">  461</span>&#160;        res = <a class="code" href="group__w25qxx__advance__driver.html#ga4e9c059ff78866e478e835cb27a92899">w25qxx_program_security_register</a>(&amp;gs_handle, <a class="code" href="group__w25qxx__advance__driver.html#gga81ddc7d4b9f4f124163beea19cc33c7ea3353a88090850174ca163d56e4d7089c">W25QXX_SECURITY_REGISTER_2</a>, gs_buffer_input);</div>
-<div class="line"><a name="l00462"></a><span class="lineno">  462</span>&#160;        <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00463"></a><span class="lineno">  463</span>&#160;        {</div>
-<div class="line"><a name="l00464"></a><span class="lineno">  464</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: program security register failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00465"></a><span class="lineno">  465</span>&#160;            (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00466"></a><span class="lineno">  466</span>&#160;           </div>
-<div class="line"><a name="l00467"></a><span class="lineno">  467</span>&#160;            <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00468"></a><span class="lineno">  468</span>&#160;        }</div>
-<div class="line"><a name="l00469"></a><span class="lineno">  469</span>&#160;        res = <a class="code" href="group__w25qxx__advance__driver.html#ga4c65debc4947bd9a61e0073105164b9c">w25qxx_read_security_register</a>(&amp;gs_handle, <a class="code" href="group__w25qxx__advance__driver.html#gga81ddc7d4b9f4f124163beea19cc33c7ea3353a88090850174ca163d56e4d7089c">W25QXX_SECURITY_REGISTER_2</a>, gs_buffer_output);</div>
-<div class="line"><a name="l00470"></a><span class="lineno">  470</span>&#160;        <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00471"></a><span class="lineno">  471</span>&#160;        {</div>
-<div class="line"><a name="l00472"></a><span class="lineno">  472</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: read security register failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00473"></a><span class="lineno">  473</span>&#160;            (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00474"></a><span class="lineno">  474</span>&#160;           </div>
-<div class="line"><a name="l00475"></a><span class="lineno">  475</span>&#160;            <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00476"></a><span class="lineno">  476</span>&#160;        }</div>
-<div class="line"><a name="l00477"></a><span class="lineno">  477</span>&#160;        <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
-<div class="line"><a name="l00478"></a><span class="lineno">  478</span>&#160;        {</div>
-<div class="line"><a name="l00479"></a><span class="lineno">  479</span>&#160;            <span class="keywordflow">if</span> (gs_buffer_input[j] != gs_buffer_output[j])</div>
-<div class="line"><a name="l00480"></a><span class="lineno">  480</span>&#160;            {</div>
-<div class="line"><a name="l00481"></a><span class="lineno">  481</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: write read check failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00482"></a><span class="lineno">  482</span>&#160;                (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00483"></a><span class="lineno">  483</span>&#160;                </div>
-<div class="line"><a name="l00484"></a><span class="lineno">  484</span>&#160;                <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00485"></a><span class="lineno">  485</span>&#160;            }</div>
-<div class="line"><a name="l00486"></a><span class="lineno">  486</span>&#160;        }</div>
-<div class="line"><a name="l00487"></a><span class="lineno">  487</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: security register2 check passed.\n&quot;</span>);</div>
-<div class="line"><a name="l00488"></a><span class="lineno">  488</span>&#160; </div>
-<div class="line"><a name="l00489"></a><span class="lineno">  489</span>&#160;        <span class="comment">/*  security register3 write and read test */</span></div>
-<div class="line"><a name="l00490"></a><span class="lineno">  490</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: security register3 write and read test.\n&quot;</span>);</div>
-<div class="line"><a name="l00491"></a><span class="lineno">  491</span>&#160;        </div>
-<div class="line"><a name="l00492"></a><span class="lineno">  492</span>&#160;        <span class="comment">/* security register3 write and read test */</span></div>
-<div class="line"><a name="l00493"></a><span class="lineno">  493</span>&#160;        res = <a class="code" href="group__w25qxx__advance__driver.html#gaf297e2c6877c64f8fd10a555f783ddaf">w25qxx_erase_security_register</a>(&amp;gs_handle, <a class="code" href="group__w25qxx__advance__driver.html#gga81ddc7d4b9f4f124163beea19cc33c7ea65b73162d921075bed8cb8d848948900">W25QXX_SECURITY_REGISTER_3</a>);</div>
-<div class="line"><a name="l00494"></a><span class="lineno">  494</span>&#160;        <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00495"></a><span class="lineno">  495</span>&#160;        {</div>
-<div class="line"><a name="l00496"></a><span class="lineno">  496</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: erase security register failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00497"></a><span class="lineno">  497</span>&#160;            (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00498"></a><span class="lineno">  498</span>&#160;           </div>
-<div class="line"><a name="l00499"></a><span class="lineno">  499</span>&#160;            <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00500"></a><span class="lineno">  500</span>&#160;        }</div>
-<div class="line"><a name="l00501"></a><span class="lineno">  501</span>&#160;        <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
-<div class="line"><a name="l00502"></a><span class="lineno">  502</span>&#160;        {</div>
-<div class="line"><a name="l00503"></a><span class="lineno">  503</span>&#160;            gs_buffer_input[j] = rand() %256;</div>
-<div class="line"><a name="l00504"></a><span class="lineno">  504</span>&#160;        }</div>
-<div class="line"><a name="l00505"></a><span class="lineno">  505</span>&#160;        res = <a class="code" href="group__w25qxx__advance__driver.html#ga4e9c059ff78866e478e835cb27a92899">w25qxx_program_security_register</a>(&amp;gs_handle, <a class="code" href="group__w25qxx__advance__driver.html#gga81ddc7d4b9f4f124163beea19cc33c7ea65b73162d921075bed8cb8d848948900">W25QXX_SECURITY_REGISTER_3</a>, gs_buffer_input);</div>
-<div class="line"><a name="l00506"></a><span class="lineno">  506</span>&#160;        <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00507"></a><span class="lineno">  507</span>&#160;        {</div>
-<div class="line"><a name="l00508"></a><span class="lineno">  508</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: program security register failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00509"></a><span class="lineno">  509</span>&#160;            (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00510"></a><span class="lineno">  510</span>&#160;           </div>
-<div class="line"><a name="l00511"></a><span class="lineno">  511</span>&#160;            <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00512"></a><span class="lineno">  512</span>&#160;        }</div>
-<div class="line"><a name="l00513"></a><span class="lineno">  513</span>&#160;        res = <a class="code" href="group__w25qxx__advance__driver.html#ga4c65debc4947bd9a61e0073105164b9c">w25qxx_read_security_register</a>(&amp;gs_handle, <a class="code" href="group__w25qxx__advance__driver.html#gga81ddc7d4b9f4f124163beea19cc33c7ea65b73162d921075bed8cb8d848948900">W25QXX_SECURITY_REGISTER_3</a>, gs_buffer_output);</div>
-<div class="line"><a name="l00514"></a><span class="lineno">  514</span>&#160;        <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00515"></a><span class="lineno">  515</span>&#160;        {</div>
-<div class="line"><a name="l00516"></a><span class="lineno">  516</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: read security register failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00517"></a><span class="lineno">  517</span>&#160;            (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00518"></a><span class="lineno">  518</span>&#160;           </div>
-<div class="line"><a name="l00519"></a><span class="lineno">  519</span>&#160;            <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00520"></a><span class="lineno">  520</span>&#160;        }</div>
-<div class="line"><a name="l00521"></a><span class="lineno">  521</span>&#160;        <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
-<div class="line"><a name="l00522"></a><span class="lineno">  522</span>&#160;        {</div>
-<div class="line"><a name="l00523"></a><span class="lineno">  523</span>&#160;            <span class="keywordflow">if</span> (gs_buffer_input[j] != gs_buffer_output[j])</div>
-<div class="line"><a name="l00524"></a><span class="lineno">  524</span>&#160;            {</div>
-<div class="line"><a name="l00525"></a><span class="lineno">  525</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: write read check failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00526"></a><span class="lineno">  526</span>&#160;                (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00527"></a><span class="lineno">  527</span>&#160;                </div>
-<div class="line"><a name="l00528"></a><span class="lineno">  528</span>&#160;                <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00529"></a><span class="lineno">  529</span>&#160;            }</div>
-<div class="line"><a name="l00530"></a><span class="lineno">  530</span>&#160;        }</div>
-<div class="line"><a name="l00531"></a><span class="lineno">  531</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: security register3 check passed.\n&quot;</span>);</div>
-<div class="line"><a name="l00532"></a><span class="lineno">  532</span>&#160;        </div>
-<div class="line"><a name="l00533"></a><span class="lineno">  533</span>&#160;<span class="preprocessor">        #if (W25QXX_ENABLE_ERASE_READ_TEST == 1)</span></div>
-<div class="line"><a name="l00534"></a><span class="lineno">  534</span>&#160;            <span class="comment">/* start chip erasing */</span></div>
-<div class="line"><a name="l00535"></a><span class="lineno">  535</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: start chip erasing.\n&quot;</span>);</div>
-<div class="line"><a name="l00536"></a><span class="lineno">  536</span>&#160;            </div>
-<div class="line"><a name="l00537"></a><span class="lineno">  537</span>&#160;            <span class="comment">/* chip erase */</span></div>
-<div class="line"><a name="l00538"></a><span class="lineno">  538</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_chip_erase test.\n&quot;</span>);</div>
-<div class="line"><a name="l00539"></a><span class="lineno">  539</span>&#160;            res = <a class="code" href="group__w25qxx__basic__driver.html#ga0862833b36831f92684980b2e21f2e39">w25qxx_chip_erase</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00540"></a><span class="lineno">  540</span>&#160;            <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00541"></a><span class="lineno">  541</span>&#160;            {</div>
-<div class="line"><a name="l00542"></a><span class="lineno">  542</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: chip erase failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00543"></a><span class="lineno">  543</span>&#160;                (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00544"></a><span class="lineno">  544</span>&#160;               </div>
-<div class="line"><a name="l00545"></a><span class="lineno">  545</span>&#160;                <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00546"></a><span class="lineno">  546</span>&#160;            }</div>
-<div class="line"><a name="l00547"></a><span class="lineno">  547</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: chip erase successful.\n&quot;</span>);</div>
-<div class="line"><a name="l00548"></a><span class="lineno">  548</span>&#160;<span class="preprocessor">        #endif</span></div>
-<div class="line"><a name="l00549"></a><span class="lineno">  549</span>&#160;        </div>
-<div class="line"><a name="l00550"></a><span class="lineno">  550</span>&#160;        <span class="keywordflow">if</span> (type &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)</div>
-<div class="line"><a name="l00551"></a><span class="lineno">  551</span>&#160;        {</div>
-<div class="line"><a name="l00552"></a><span class="lineno">  552</span>&#160;            <span class="comment">/* set address mode 4 byte */</span></div>
-<div class="line"><a name="l00553"></a><span class="lineno">  553</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set address mode 4 byte.\n&quot;</span>);</div>
-<div class="line"><a name="l00554"></a><span class="lineno">  554</span>&#160;            </div>
-<div class="line"><a name="l00555"></a><span class="lineno">  555</span>&#160;            <span class="comment">/* set address mode 4 byte */</span></div>
-<div class="line"><a name="l00556"></a><span class="lineno">  556</span>&#160;            res = <a class="code" href="group__w25qxx__basic__driver.html#gad0e125eff304ce66fb3956d2c8c80656">w25qxx_set_address_mode</a>(&amp;gs_handle, <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>);</div>
-<div class="line"><a name="l00557"></a><span class="lineno">  557</span>&#160;            <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00558"></a><span class="lineno">  558</span>&#160;            {</div>
-<div class="line"><a name="l00559"></a><span class="lineno">  559</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set address mode failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00560"></a><span class="lineno">  560</span>&#160;                (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00561"></a><span class="lineno">  561</span>&#160;               </div>
-<div class="line"><a name="l00562"></a><span class="lineno">  562</span>&#160;                <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00563"></a><span class="lineno">  563</span>&#160;            }</div>
-<div class="line"><a name="l00564"></a><span class="lineno">  564</span>&#160;            </div>
-<div class="line"><a name="l00565"></a><span class="lineno">  565</span>&#160;            <span class="comment">/* w25qxx_write/w25qxx_read test */</span></div>
-<div class="line"><a name="l00566"></a><span class="lineno">  566</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_write/w25qxx_read test.\n&quot;</span>);</div>
-<div class="line"><a name="l00567"></a><span class="lineno">  567</span>&#160;            </div>
-<div class="line"><a name="l00568"></a><span class="lineno">  568</span>&#160;            <span class="keywordflow">for</span> (addr = 0; addr &lt; size; addr += step)</div>
-<div class="line"><a name="l00569"></a><span class="lineno">  569</span>&#160;            {</div>
-<div class="line"><a name="l00570"></a><span class="lineno">  570</span>&#160;                <span class="keywordflow">for</span> (j = 0; j &lt; 600; j++)</div>
-<div class="line"><a name="l00571"></a><span class="lineno">  571</span>&#160;                {</div>
-<div class="line"><a name="l00572"></a><span class="lineno">  572</span>&#160;                    gs_buffer_input[j] = rand() %256;</div>
-<div class="line"><a name="l00573"></a><span class="lineno">  573</span>&#160;                }</div>
-<div class="line"><a name="l00574"></a><span class="lineno">  574</span>&#160;                res = <a class="code" href="group__w25qxx__basic__driver.html#gaaee8264d840e51460821cb6e609338ee">w25qxx_write</a>(&amp;gs_handle, addr, gs_buffer_input, 600);</div>
-<div class="line"><a name="l00575"></a><span class="lineno">  575</span>&#160;                <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00576"></a><span class="lineno">  576</span>&#160;                {</div>
-<div class="line"><a name="l00577"></a><span class="lineno">  577</span>&#160;                    <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: write failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00578"></a><span class="lineno">  578</span>&#160;                    (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00579"></a><span class="lineno">  579</span>&#160;                   </div>
-<div class="line"><a name="l00580"></a><span class="lineno">  580</span>&#160;                    <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00581"></a><span class="lineno">  581</span>&#160;                }</div>
-<div class="line"><a name="l00582"></a><span class="lineno">  582</span>&#160;                res = <a class="code" href="group__w25qxx__basic__driver.html#gae7479fc9ce911a52e3c5b6f1a615b879">w25qxx_read</a>(&amp;gs_handle, addr, gs_buffer_output, 600);</div>
-<div class="line"><a name="l00583"></a><span class="lineno">  583</span>&#160;                <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00584"></a><span class="lineno">  584</span>&#160;                {</div>
-<div class="line"><a name="l00585"></a><span class="lineno">  585</span>&#160;                    <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: read failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00586"></a><span class="lineno">  586</span>&#160;                    (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00587"></a><span class="lineno">  587</span>&#160;                   </div>
-<div class="line"><a name="l00588"></a><span class="lineno">  588</span>&#160;                    <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00589"></a><span class="lineno">  589</span>&#160;                }</div>
-<div class="line"><a name="l00590"></a><span class="lineno">  590</span>&#160;                <span class="keywordflow">for</span> (j = 0; j &lt; 600; j++)</div>
-<div class="line"><a name="l00591"></a><span class="lineno">  591</span>&#160;                {</div>
-<div class="line"><a name="l00592"></a><span class="lineno">  592</span>&#160;                    <span class="keywordflow">if</span> (gs_buffer_input[j] != gs_buffer_output[j])</div>
-<div class="line"><a name="l00593"></a><span class="lineno">  593</span>&#160;                    {</div>
-<div class="line"><a name="l00594"></a><span class="lineno">  594</span>&#160;                        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: write read check failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00595"></a><span class="lineno">  595</span>&#160;                        (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00596"></a><span class="lineno">  596</span>&#160;                        </div>
-<div class="line"><a name="l00597"></a><span class="lineno">  597</span>&#160;                        <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00598"></a><span class="lineno">  598</span>&#160;                    }</div>
-<div class="line"><a name="l00599"></a><span class="lineno">  599</span>&#160;                }</div>
-<div class="line"><a name="l00600"></a><span class="lineno">  600</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: %d/%d successful.\n&quot;</span>, addr, size);</div>
-<div class="line"><a name="l00601"></a><span class="lineno">  601</span>&#160;            }</div>
-<div class="line"><a name="l00602"></a><span class="lineno">  602</span>&#160;            </div>
-<div class="line"><a name="l00603"></a><span class="lineno">  603</span>&#160;            <span class="comment">/* w25qxx_sector_erase_4k test */</span></div>
-<div class="line"><a name="l00604"></a><span class="lineno">  604</span>&#160;            addr = (rand() % 10) * 4 * 1024;</div>
-<div class="line"><a name="l00605"></a><span class="lineno">  605</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_sector_erase_4k test with address 0x%X.\n&quot;</span>, addr);</div>
-<div class="line"><a name="l00606"></a><span class="lineno">  606</span>&#160;            res = <a class="code" href="group__w25qxx__basic__driver.html#ga9a03c51b4c84655350c15fbfce0a6b40">w25qxx_sector_erase_4k</a>(&amp;gs_handle, addr);</div>
-<div class="line"><a name="l00607"></a><span class="lineno">  607</span>&#160;            <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00608"></a><span class="lineno">  608</span>&#160;            {</div>
-<div class="line"><a name="l00609"></a><span class="lineno">  609</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: sector erase 4k failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00610"></a><span class="lineno">  610</span>&#160;                (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00611"></a><span class="lineno">  611</span>&#160;               </div>
-<div class="line"><a name="l00612"></a><span class="lineno">  612</span>&#160;                <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00613"></a><span class="lineno">  613</span>&#160;            }</div>
-<div class="line"><a name="l00614"></a><span class="lineno">  614</span>&#160;            <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
-<div class="line"><a name="l00615"></a><span class="lineno">  615</span>&#160;            {</div>
-<div class="line"><a name="l00616"></a><span class="lineno">  616</span>&#160;                gs_buffer_input[j] = rand() %256;</div>
-<div class="line"><a name="l00617"></a><span class="lineno">  617</span>&#160;            }</div>
-<div class="line"><a name="l00618"></a><span class="lineno">  618</span>&#160;            </div>
-<div class="line"><a name="l00619"></a><span class="lineno">  619</span>&#160;            <span class="comment">/* w25qxx_page_program */</span></div>
-<div class="line"><a name="l00620"></a><span class="lineno">  620</span>&#160;            res = <a class="code" href="group__w25qxx__basic__driver.html#ga6280e7e4ab26306436e2c210617a28b3">w25qxx_page_program</a>(&amp;gs_handle, addr, gs_buffer_input, 256);</div>
-<div class="line"><a name="l00621"></a><span class="lineno">  621</span>&#160;            <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00622"></a><span class="lineno">  622</span>&#160;            {</div>
-<div class="line"><a name="l00623"></a><span class="lineno">  623</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: page program failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00624"></a><span class="lineno">  624</span>&#160;                (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00625"></a><span class="lineno">  625</span>&#160;               </div>
-<div class="line"><a name="l00626"></a><span class="lineno">  626</span>&#160;                <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00627"></a><span class="lineno">  627</span>&#160;            }</div>
-<div class="line"><a name="l00628"></a><span class="lineno">  628</span>&#160;            </div>
-<div class="line"><a name="l00629"></a><span class="lineno">  629</span>&#160;            <span class="comment">/* w25qxx_only_spi_read */</span></div>
-<div class="line"><a name="l00630"></a><span class="lineno">  630</span>&#160;            res = <a class="code" href="group__w25qxx__basic__driver.html#ga1e9ebf198137d23558dbf6470213c472">w25qxx_only_spi_read</a>(&amp;gs_handle, addr, gs_buffer_output, 256);</div>
-<div class="line"><a name="l00631"></a><span class="lineno">  631</span>&#160;            <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00632"></a><span class="lineno">  632</span>&#160;            {</div>
-<div class="line"><a name="l00633"></a><span class="lineno">  633</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: only spi read failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00634"></a><span class="lineno">  634</span>&#160;                (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00635"></a><span class="lineno">  635</span>&#160;               </div>
-<div class="line"><a name="l00636"></a><span class="lineno">  636</span>&#160;                <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00637"></a><span class="lineno">  637</span>&#160;            }</div>
-<div class="line"><a name="l00638"></a><span class="lineno">  638</span>&#160;            <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
-<div class="line"><a name="l00639"></a><span class="lineno">  639</span>&#160;            {</div>
-<div class="line"><a name="l00640"></a><span class="lineno">  640</span>&#160;                <span class="keywordflow">if</span> (gs_buffer_input[j] != gs_buffer_output[j])</div>
-<div class="line"><a name="l00641"></a><span class="lineno">  641</span>&#160;                {</div>
-<div class="line"><a name="l00642"></a><span class="lineno">  642</span>&#160;                    <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: write read check failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00643"></a><span class="lineno">  643</span>&#160;                    (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00644"></a><span class="lineno">  644</span>&#160;                    </div>
-<div class="line"><a name="l00645"></a><span class="lineno">  645</span>&#160;                    <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00646"></a><span class="lineno">  646</span>&#160;                }</div>
-<div class="line"><a name="l00647"></a><span class="lineno">  647</span>&#160;            }</div>
-<div class="line"><a name="l00648"></a><span class="lineno">  648</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: only spi read test passed.\n&quot;</span>);</div>
-<div class="line"><a name="l00649"></a><span class="lineno">  649</span>&#160;            </div>
-<div class="line"><a name="l00650"></a><span class="lineno">  650</span>&#160;            <span class="comment">/* w25qxx_fast_read */</span></div>
-<div class="line"><a name="l00651"></a><span class="lineno">  651</span>&#160;            res = <a class="code" href="group__w25qxx__basic__driver.html#gac345ba10af5ad355578fa97697487123">w25qxx_fast_read</a>(&amp;gs_handle, addr, gs_buffer_output, 256);</div>
-<div class="line"><a name="l00652"></a><span class="lineno">  652</span>&#160;            <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00653"></a><span class="lineno">  653</span>&#160;            {</div>
-<div class="line"><a name="l00654"></a><span class="lineno">  654</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00655"></a><span class="lineno">  655</span>&#160;                (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00656"></a><span class="lineno">  656</span>&#160;               </div>
-<div class="line"><a name="l00657"></a><span class="lineno">  657</span>&#160;                <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00658"></a><span class="lineno">  658</span>&#160;            }</div>
-<div class="line"><a name="l00659"></a><span class="lineno">  659</span>&#160;            <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
-<div class="line"><a name="l00660"></a><span class="lineno">  660</span>&#160;            {</div>
-<div class="line"><a name="l00661"></a><span class="lineno">  661</span>&#160;                <span class="keywordflow">if</span> (gs_buffer_input[j] != gs_buffer_output[j])</div>
-<div class="line"><a name="l00662"></a><span class="lineno">  662</span>&#160;                {</div>
-<div class="line"><a name="l00663"></a><span class="lineno">  663</span>&#160;                    <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: write read check failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00664"></a><span class="lineno">  664</span>&#160;                    (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00665"></a><span class="lineno">  665</span>&#160;                    </div>
-<div class="line"><a name="l00666"></a><span class="lineno">  666</span>&#160;                    <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00667"></a><span class="lineno">  667</span>&#160;                }</div>
-<div class="line"><a name="l00668"></a><span class="lineno">  668</span>&#160;            }</div>
-<div class="line"><a name="l00669"></a><span class="lineno">  669</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read test passed.\n&quot;</span>);</div>
-<div class="line"><a name="l00670"></a><span class="lineno">  670</span>&#160;            </div>
-<div class="line"><a name="l00671"></a><span class="lineno">  671</span>&#160;            <span class="comment">/* w25qxx_block_erase_32k test */</span></div>
-<div class="line"><a name="l00672"></a><span class="lineno">  672</span>&#160;            addr = (rand() % 10) * 32 * 1024;</div>
-<div class="line"><a name="l00673"></a><span class="lineno">  673</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_block_erase_32k test with address 0x%X.\n&quot;</span>, addr);</div>
-<div class="line"><a name="l00674"></a><span class="lineno">  674</span>&#160;            res = <a class="code" href="group__w25qxx__basic__driver.html#ga39c8fb382e8c3e4d57232dfa79af781c">w25qxx_block_erase_32k</a>(&amp;gs_handle, addr);</div>
-<div class="line"><a name="l00675"></a><span class="lineno">  675</span>&#160;            <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00676"></a><span class="lineno">  676</span>&#160;            {</div>
-<div class="line"><a name="l00677"></a><span class="lineno">  677</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: sector erase 32k failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00678"></a><span class="lineno">  678</span>&#160;                (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00679"></a><span class="lineno">  679</span>&#160;               </div>
-<div class="line"><a name="l00680"></a><span class="lineno">  680</span>&#160;                <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00681"></a><span class="lineno">  681</span>&#160;            }</div>
-<div class="line"><a name="l00682"></a><span class="lineno">  682</span>&#160;            <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
-<div class="line"><a name="l00683"></a><span class="lineno">  683</span>&#160;            {</div>
-<div class="line"><a name="l00684"></a><span class="lineno">  684</span>&#160;                gs_buffer_input[j] = rand() %256;</div>
-<div class="line"><a name="l00685"></a><span class="lineno">  685</span>&#160;            }</div>
-<div class="line"><a name="l00686"></a><span class="lineno">  686</span>&#160;            </div>
-<div class="line"><a name="l00687"></a><span class="lineno">  687</span>&#160;            <span class="comment">/* w25qxx_page_program */</span></div>
-<div class="line"><a name="l00688"></a><span class="lineno">  688</span>&#160;            res = <a class="code" href="group__w25qxx__basic__driver.html#ga6280e7e4ab26306436e2c210617a28b3">w25qxx_page_program</a>(&amp;gs_handle, addr, gs_buffer_input, 256);</div>
-<div class="line"><a name="l00689"></a><span class="lineno">  689</span>&#160;            <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00690"></a><span class="lineno">  690</span>&#160;            {</div>
-<div class="line"><a name="l00691"></a><span class="lineno">  691</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: page program failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00692"></a><span class="lineno">  692</span>&#160;                (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00693"></a><span class="lineno">  693</span>&#160;               </div>
-<div class="line"><a name="l00694"></a><span class="lineno">  694</span>&#160;                <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00695"></a><span class="lineno">  695</span>&#160;            }</div>
-<div class="line"><a name="l00696"></a><span class="lineno">  696</span>&#160;            </div>
-<div class="line"><a name="l00697"></a><span class="lineno">  697</span>&#160;            <span class="comment">/* w25qxx_only_spi_read */</span></div>
-<div class="line"><a name="l00698"></a><span class="lineno">  698</span>&#160;            res = <a class="code" href="group__w25qxx__basic__driver.html#ga1e9ebf198137d23558dbf6470213c472">w25qxx_only_spi_read</a>(&amp;gs_handle, addr, gs_buffer_output, 256);</div>
-<div class="line"><a name="l00699"></a><span class="lineno">  699</span>&#160;            <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00700"></a><span class="lineno">  700</span>&#160;            {</div>
-<div class="line"><a name="l00701"></a><span class="lineno">  701</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: only spi read failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00702"></a><span class="lineno">  702</span>&#160;                (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00703"></a><span class="lineno">  703</span>&#160;               </div>
-<div class="line"><a name="l00704"></a><span class="lineno">  704</span>&#160;                <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00705"></a><span class="lineno">  705</span>&#160;            }</div>
-<div class="line"><a name="l00706"></a><span class="lineno">  706</span>&#160;            <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
-<div class="line"><a name="l00707"></a><span class="lineno">  707</span>&#160;            {</div>
-<div class="line"><a name="l00708"></a><span class="lineno">  708</span>&#160;                <span class="keywordflow">if</span> (gs_buffer_input[j] != gs_buffer_output[j])</div>
-<div class="line"><a name="l00709"></a><span class="lineno">  709</span>&#160;                {</div>
-<div class="line"><a name="l00710"></a><span class="lineno">  710</span>&#160;                    <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: write read check failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00711"></a><span class="lineno">  711</span>&#160;                    (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00712"></a><span class="lineno">  712</span>&#160;                    </div>
-<div class="line"><a name="l00713"></a><span class="lineno">  713</span>&#160;                    <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00714"></a><span class="lineno">  714</span>&#160;                }</div>
-<div class="line"><a name="l00715"></a><span class="lineno">  715</span>&#160;            }</div>
-<div class="line"><a name="l00716"></a><span class="lineno">  716</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: only spi read test passed.\n&quot;</span>);</div>
-<div class="line"><a name="l00717"></a><span class="lineno">  717</span>&#160;            </div>
-<div class="line"><a name="l00718"></a><span class="lineno">  718</span>&#160;            <span class="comment">/* w25qxx_fast_read */</span></div>
-<div class="line"><a name="l00719"></a><span class="lineno">  719</span>&#160;            res = <a class="code" href="group__w25qxx__basic__driver.html#gac345ba10af5ad355578fa97697487123">w25qxx_fast_read</a>(&amp;gs_handle, addr, gs_buffer_output, 256);</div>
-<div class="line"><a name="l00720"></a><span class="lineno">  720</span>&#160;            <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00721"></a><span class="lineno">  721</span>&#160;            {</div>
-<div class="line"><a name="l00722"></a><span class="lineno">  722</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00723"></a><span class="lineno">  723</span>&#160;                (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00724"></a><span class="lineno">  724</span>&#160;               </div>
-<div class="line"><a name="l00725"></a><span class="lineno">  725</span>&#160;                <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00726"></a><span class="lineno">  726</span>&#160;            }</div>
-<div class="line"><a name="l00727"></a><span class="lineno">  727</span>&#160;            <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
-<div class="line"><a name="l00728"></a><span class="lineno">  728</span>&#160;            {</div>
-<div class="line"><a name="l00729"></a><span class="lineno">  729</span>&#160;                <span class="keywordflow">if</span> (gs_buffer_input[j] != gs_buffer_output[j])</div>
-<div class="line"><a name="l00730"></a><span class="lineno">  730</span>&#160;                {</div>
-<div class="line"><a name="l00731"></a><span class="lineno">  731</span>&#160;                    <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: write read check failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00732"></a><span class="lineno">  732</span>&#160;                    (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00733"></a><span class="lineno">  733</span>&#160;                    </div>
-<div class="line"><a name="l00734"></a><span class="lineno">  734</span>&#160;                    <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00735"></a><span class="lineno">  735</span>&#160;                }</div>
-<div class="line"><a name="l00736"></a><span class="lineno">  736</span>&#160;            }</div>
-<div class="line"><a name="l00737"></a><span class="lineno">  737</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read test passed.\n&quot;</span>);</div>
-<div class="line"><a name="l00738"></a><span class="lineno">  738</span>&#160;            </div>
-<div class="line"><a name="l00739"></a><span class="lineno">  739</span>&#160;            <span class="comment">/* w25qxx_block_erase_64k test */</span></div>
-<div class="line"><a name="l00740"></a><span class="lineno">  740</span>&#160;            addr = (rand() % 10) * 64 * 1024;</div>
-<div class="line"><a name="l00741"></a><span class="lineno">  741</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_block_erase_64k test with address 0x%X.\n&quot;</span>, addr);</div>
-<div class="line"><a name="l00742"></a><span class="lineno">  742</span>&#160;            res = <a class="code" href="group__w25qxx__basic__driver.html#gaf53bc5f6073482b9b74efd417ec7ac83">w25qxx_block_erase_64k</a>(&amp;gs_handle, addr);</div>
-<div class="line"><a name="l00743"></a><span class="lineno">  743</span>&#160;            <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00744"></a><span class="lineno">  744</span>&#160;            {</div>
-<div class="line"><a name="l00745"></a><span class="lineno">  745</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: sector erase 64k failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00746"></a><span class="lineno">  746</span>&#160;                (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00747"></a><span class="lineno">  747</span>&#160;               </div>
-<div class="line"><a name="l00748"></a><span class="lineno">  748</span>&#160;                <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00749"></a><span class="lineno">  749</span>&#160;            }</div>
-<div class="line"><a name="l00750"></a><span class="lineno">  750</span>&#160;            <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
-<div class="line"><a name="l00751"></a><span class="lineno">  751</span>&#160;            {</div>
-<div class="line"><a name="l00752"></a><span class="lineno">  752</span>&#160;                gs_buffer_input[j] = rand() %256;</div>
-<div class="line"><a name="l00753"></a><span class="lineno">  753</span>&#160;            }</div>
-<div class="line"><a name="l00754"></a><span class="lineno">  754</span>&#160;            </div>
-<div class="line"><a name="l00755"></a><span class="lineno">  755</span>&#160;            <span class="comment">/* w25qxx_page_program */</span></div>
-<div class="line"><a name="l00756"></a><span class="lineno">  756</span>&#160;            res = <a class="code" href="group__w25qxx__basic__driver.html#ga6280e7e4ab26306436e2c210617a28b3">w25qxx_page_program</a>(&amp;gs_handle, addr, gs_buffer_input, 256);</div>
-<div class="line"><a name="l00757"></a><span class="lineno">  757</span>&#160;            <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00758"></a><span class="lineno">  758</span>&#160;            {</div>
-<div class="line"><a name="l00759"></a><span class="lineno">  759</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: page program failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00760"></a><span class="lineno">  760</span>&#160;                (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00761"></a><span class="lineno">  761</span>&#160;               </div>
-<div class="line"><a name="l00762"></a><span class="lineno">  762</span>&#160;                <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00763"></a><span class="lineno">  763</span>&#160;            }</div>
-<div class="line"><a name="l00764"></a><span class="lineno">  764</span>&#160;            </div>
-<div class="line"><a name="l00765"></a><span class="lineno">  765</span>&#160;            <span class="comment">/* w25qxx_only_spi_read */</span></div>
-<div class="line"><a name="l00766"></a><span class="lineno">  766</span>&#160;            res = <a class="code" href="group__w25qxx__basic__driver.html#ga1e9ebf198137d23558dbf6470213c472">w25qxx_only_spi_read</a>(&amp;gs_handle, addr, gs_buffer_output, 256);</div>
-<div class="line"><a name="l00767"></a><span class="lineno">  767</span>&#160;            <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00768"></a><span class="lineno">  768</span>&#160;            {</div>
-<div class="line"><a name="l00769"></a><span class="lineno">  769</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: only spi read failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00770"></a><span class="lineno">  770</span>&#160;                (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00771"></a><span class="lineno">  771</span>&#160;               </div>
-<div class="line"><a name="l00772"></a><span class="lineno">  772</span>&#160;                <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00773"></a><span class="lineno">  773</span>&#160;            }</div>
-<div class="line"><a name="l00774"></a><span class="lineno">  774</span>&#160;            <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
-<div class="line"><a name="l00775"></a><span class="lineno">  775</span>&#160;            {</div>
-<div class="line"><a name="l00776"></a><span class="lineno">  776</span>&#160;                <span class="keywordflow">if</span> (gs_buffer_input[j] != gs_buffer_output[j])</div>
-<div class="line"><a name="l00777"></a><span class="lineno">  777</span>&#160;                {</div>
-<div class="line"><a name="l00778"></a><span class="lineno">  778</span>&#160;                    <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: write read check failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00779"></a><span class="lineno">  779</span>&#160;                    (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00780"></a><span class="lineno">  780</span>&#160;                    </div>
-<div class="line"><a name="l00781"></a><span class="lineno">  781</span>&#160;                    <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00782"></a><span class="lineno">  782</span>&#160;                }</div>
-<div class="line"><a name="l00783"></a><span class="lineno">  783</span>&#160;            }</div>
-<div class="line"><a name="l00784"></a><span class="lineno">  784</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: only spi read test passed.\n&quot;</span>);</div>
-<div class="line"><a name="l00785"></a><span class="lineno">  785</span>&#160;            </div>
-<div class="line"><a name="l00786"></a><span class="lineno">  786</span>&#160;            <span class="comment">/* w25qxx_fast_read */</span></div>
-<div class="line"><a name="l00787"></a><span class="lineno">  787</span>&#160;            res = <a class="code" href="group__w25qxx__basic__driver.html#gac345ba10af5ad355578fa97697487123">w25qxx_fast_read</a>(&amp;gs_handle, addr, gs_buffer_output, 256);</div>
-<div class="line"><a name="l00788"></a><span class="lineno">  788</span>&#160;            <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00789"></a><span class="lineno">  789</span>&#160;            {</div>
-<div class="line"><a name="l00790"></a><span class="lineno">  790</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00791"></a><span class="lineno">  791</span>&#160;                (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00792"></a><span class="lineno">  792</span>&#160;               </div>
-<div class="line"><a name="l00793"></a><span class="lineno">  793</span>&#160;                <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00794"></a><span class="lineno">  794</span>&#160;            }</div>
-<div class="line"><a name="l00795"></a><span class="lineno">  795</span>&#160;            <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
-<div class="line"><a name="l00796"></a><span class="lineno">  796</span>&#160;            {</div>
-<div class="line"><a name="l00797"></a><span class="lineno">  797</span>&#160;                <span class="keywordflow">if</span> (gs_buffer_input[j] != gs_buffer_output[j])</div>
-<div class="line"><a name="l00798"></a><span class="lineno">  798</span>&#160;                {</div>
-<div class="line"><a name="l00799"></a><span class="lineno">  799</span>&#160;                    <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: write read check failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00800"></a><span class="lineno">  800</span>&#160;                    (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00801"></a><span class="lineno">  801</span>&#160;                    </div>
-<div class="line"><a name="l00802"></a><span class="lineno">  802</span>&#160;                    <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00803"></a><span class="lineno">  803</span>&#160;                }</div>
-<div class="line"><a name="l00804"></a><span class="lineno">  804</span>&#160;            }</div>
-<div class="line"><a name="l00805"></a><span class="lineno">  805</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read test passed.\n&quot;</span>);</div>
-<div class="line"><a name="l00806"></a><span class="lineno">  806</span>&#160;            </div>
-<div class="line"><a name="l00807"></a><span class="lineno">  807</span>&#160;            <span class="comment">/* get sfdp */</span></div>
-<div class="line"><a name="l00808"></a><span class="lineno">  808</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: get sfdp.\n&quot;</span>);</div>
-<div class="line"><a name="l00809"></a><span class="lineno">  809</span>&#160;            memset(gs_buffer_output, 0, <span class="keyword">sizeof</span>(uint8_t) * 256);</div>
-<div class="line"><a name="l00810"></a><span class="lineno">  810</span>&#160;            res = <a class="code" href="group__w25qxx__advance__driver.html#ga244a91b9c0c32e899ca89e1943045624">w25qxx_get_sfdp</a>(&amp;gs_handle, (uint8_t *)gs_buffer_output);</div>
-<div class="line"><a name="l00811"></a><span class="lineno">  811</span>&#160;            <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00812"></a><span class="lineno">  812</span>&#160;            {</div>
-<div class="line"><a name="l00813"></a><span class="lineno">  813</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: get sfdp failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00814"></a><span class="lineno">  814</span>&#160;                (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00815"></a><span class="lineno">  815</span>&#160;               </div>
-<div class="line"><a name="l00816"></a><span class="lineno">  816</span>&#160;                <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00817"></a><span class="lineno">  817</span>&#160;            }</div>
-<div class="line"><a name="l00818"></a><span class="lineno">  818</span>&#160;            <span class="keywordflow">for</span> (j = 0; j &lt; 256; j += 8)</div>
-<div class="line"><a name="l00819"></a><span class="lineno">  819</span>&#160;            {</div>
-<div class="line"><a name="l00820"></a><span class="lineno">  820</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: sdfp[%d-%d] is 0x%02X 0x%02X 0x%02X 0x%02X 0x%02X 0x%02X 0x%02X 0x%02X.\n&quot;</span>, </div>
-<div class="line"><a name="l00821"></a><span class="lineno">  821</span>&#160;                                             j , j + 7,</div>
-<div class="line"><a name="l00822"></a><span class="lineno">  822</span>&#160;                                             gs_buffer_output[j + 0], gs_buffer_output[j + 1], gs_buffer_output[j + 2],</div>
-<div class="line"><a name="l00823"></a><span class="lineno">  823</span>&#160;                                             gs_buffer_output[j + 3], gs_buffer_output[j + 4], gs_buffer_output[j + 5],</div>
-<div class="line"><a name="l00824"></a><span class="lineno">  824</span>&#160;                                             gs_buffer_output[j + 6], gs_buffer_output[j + 7]);</div>
-<div class="line"><a name="l00825"></a><span class="lineno">  825</span>&#160;            }</div>
-<div class="line"><a name="l00826"></a><span class="lineno">  826</span>&#160;            </div>
-<div class="line"><a name="l00827"></a><span class="lineno">  827</span>&#160;            <span class="comment">/*  security register1 write and read test */</span></div>
-<div class="line"><a name="l00828"></a><span class="lineno">  828</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: security register1 write and read test.\n&quot;</span>);</div>
-<div class="line"><a name="l00829"></a><span class="lineno">  829</span>&#160;            </div>
-<div class="line"><a name="l00830"></a><span class="lineno">  830</span>&#160;            <span class="comment">/* security register1 write and read test */</span></div>
-<div class="line"><a name="l00831"></a><span class="lineno">  831</span>&#160;            res = <a class="code" href="group__w25qxx__advance__driver.html#gaf297e2c6877c64f8fd10a555f783ddaf">w25qxx_erase_security_register</a>(&amp;gs_handle, <a class="code" href="group__w25qxx__advance__driver.html#gga81ddc7d4b9f4f124163beea19cc33c7eaaf27484a497c13915c8acb0161cf137d">W25QXX_SECURITY_REGISTER_1</a>);</div>
-<div class="line"><a name="l00832"></a><span class="lineno">  832</span>&#160;            <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00833"></a><span class="lineno">  833</span>&#160;            {</div>
-<div class="line"><a name="l00834"></a><span class="lineno">  834</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: erase security register failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00835"></a><span class="lineno">  835</span>&#160;                (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00836"></a><span class="lineno">  836</span>&#160;               </div>
-<div class="line"><a name="l00837"></a><span class="lineno">  837</span>&#160;                <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00838"></a><span class="lineno">  838</span>&#160;            }</div>
-<div class="line"><a name="l00839"></a><span class="lineno">  839</span>&#160;            <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
-<div class="line"><a name="l00840"></a><span class="lineno">  840</span>&#160;            {</div>
-<div class="line"><a name="l00841"></a><span class="lineno">  841</span>&#160;                gs_buffer_input[j] = rand() %256;</div>
-<div class="line"><a name="l00842"></a><span class="lineno">  842</span>&#160;            }</div>
-<div class="line"><a name="l00843"></a><span class="lineno">  843</span>&#160;            res = <a class="code" href="group__w25qxx__advance__driver.html#ga4e9c059ff78866e478e835cb27a92899">w25qxx_program_security_register</a>(&amp;gs_handle, <a class="code" href="group__w25qxx__advance__driver.html#gga81ddc7d4b9f4f124163beea19cc33c7eaaf27484a497c13915c8acb0161cf137d">W25QXX_SECURITY_REGISTER_1</a>, gs_buffer_input);</div>
-<div class="line"><a name="l00844"></a><span class="lineno">  844</span>&#160;            <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00845"></a><span class="lineno">  845</span>&#160;            {</div>
-<div class="line"><a name="l00846"></a><span class="lineno">  846</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: program security register failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00847"></a><span class="lineno">  847</span>&#160;                (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00848"></a><span class="lineno">  848</span>&#160;               </div>
-<div class="line"><a name="l00849"></a><span class="lineno">  849</span>&#160;                <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00850"></a><span class="lineno">  850</span>&#160;            }</div>
-<div class="line"><a name="l00851"></a><span class="lineno">  851</span>&#160;            res = <a class="code" href="group__w25qxx__advance__driver.html#ga4c65debc4947bd9a61e0073105164b9c">w25qxx_read_security_register</a>(&amp;gs_handle, <a class="code" href="group__w25qxx__advance__driver.html#gga81ddc7d4b9f4f124163beea19cc33c7eaaf27484a497c13915c8acb0161cf137d">W25QXX_SECURITY_REGISTER_1</a>, gs_buffer_output);</div>
-<div class="line"><a name="l00852"></a><span class="lineno">  852</span>&#160;            <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00853"></a><span class="lineno">  853</span>&#160;            {</div>
-<div class="line"><a name="l00854"></a><span class="lineno">  854</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: read security register failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00855"></a><span class="lineno">  855</span>&#160;                (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00856"></a><span class="lineno">  856</span>&#160;               </div>
-<div class="line"><a name="l00857"></a><span class="lineno">  857</span>&#160;                <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00858"></a><span class="lineno">  858</span>&#160;            }</div>
-<div class="line"><a name="l00859"></a><span class="lineno">  859</span>&#160;            <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
-<div class="line"><a name="l00860"></a><span class="lineno">  860</span>&#160;            {</div>
-<div class="line"><a name="l00861"></a><span class="lineno">  861</span>&#160;                <span class="keywordflow">if</span> (gs_buffer_input[j] != gs_buffer_output[j])</div>
-<div class="line"><a name="l00862"></a><span class="lineno">  862</span>&#160;                {</div>
-<div class="line"><a name="l00863"></a><span class="lineno">  863</span>&#160;                    <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: write read check failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00864"></a><span class="lineno">  864</span>&#160;                    (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00865"></a><span class="lineno">  865</span>&#160;                    </div>
-<div class="line"><a name="l00866"></a><span class="lineno">  866</span>&#160;                    <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00867"></a><span class="lineno">  867</span>&#160;                }</div>
-<div class="line"><a name="l00868"></a><span class="lineno">  868</span>&#160;            }</div>
-<div class="line"><a name="l00869"></a><span class="lineno">  869</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: security register1 check passed.\n&quot;</span>);</div>
-<div class="line"><a name="l00870"></a><span class="lineno">  870</span>&#160;            </div>
-<div class="line"><a name="l00871"></a><span class="lineno">  871</span>&#160;            <span class="comment">/*  security register2 write and read test */</span></div>
-<div class="line"><a name="l00872"></a><span class="lineno">  872</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: security register2 write and read test.\n&quot;</span>);</div>
-<div class="line"><a name="l00873"></a><span class="lineno">  873</span>&#160;            </div>
-<div class="line"><a name="l00874"></a><span class="lineno">  874</span>&#160;            <span class="comment">/* security register2 write and read test */</span></div>
-<div class="line"><a name="l00875"></a><span class="lineno">  875</span>&#160;            res = <a class="code" href="group__w25qxx__advance__driver.html#gaf297e2c6877c64f8fd10a555f783ddaf">w25qxx_erase_security_register</a>(&amp;gs_handle, <a class="code" href="group__w25qxx__advance__driver.html#gga81ddc7d4b9f4f124163beea19cc33c7ea3353a88090850174ca163d56e4d7089c">W25QXX_SECURITY_REGISTER_2</a>);</div>
-<div class="line"><a name="l00876"></a><span class="lineno">  876</span>&#160;            <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00877"></a><span class="lineno">  877</span>&#160;            {</div>
-<div class="line"><a name="l00878"></a><span class="lineno">  878</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: erase security register failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00879"></a><span class="lineno">  879</span>&#160;                (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00880"></a><span class="lineno">  880</span>&#160;               </div>
-<div class="line"><a name="l00881"></a><span class="lineno">  881</span>&#160;                <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00882"></a><span class="lineno">  882</span>&#160;            }</div>
-<div class="line"><a name="l00883"></a><span class="lineno">  883</span>&#160;            <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
-<div class="line"><a name="l00884"></a><span class="lineno">  884</span>&#160;            {</div>
-<div class="line"><a name="l00885"></a><span class="lineno">  885</span>&#160;                gs_buffer_input[j] = rand() %256;</div>
-<div class="line"><a name="l00886"></a><span class="lineno">  886</span>&#160;            }</div>
-<div class="line"><a name="l00887"></a><span class="lineno">  887</span>&#160;            res = <a class="code" href="group__w25qxx__advance__driver.html#ga4e9c059ff78866e478e835cb27a92899">w25qxx_program_security_register</a>(&amp;gs_handle, <a class="code" href="group__w25qxx__advance__driver.html#gga81ddc7d4b9f4f124163beea19cc33c7ea3353a88090850174ca163d56e4d7089c">W25QXX_SECURITY_REGISTER_2</a>, gs_buffer_input);</div>
-<div class="line"><a name="l00888"></a><span class="lineno">  888</span>&#160;            <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00889"></a><span class="lineno">  889</span>&#160;            {</div>
-<div class="line"><a name="l00890"></a><span class="lineno">  890</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: program security register failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00891"></a><span class="lineno">  891</span>&#160;                (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00892"></a><span class="lineno">  892</span>&#160;               </div>
-<div class="line"><a name="l00893"></a><span class="lineno">  893</span>&#160;                <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00894"></a><span class="lineno">  894</span>&#160;            }</div>
-<div class="line"><a name="l00895"></a><span class="lineno">  895</span>&#160;            res = <a class="code" href="group__w25qxx__advance__driver.html#ga4c65debc4947bd9a61e0073105164b9c">w25qxx_read_security_register</a>(&amp;gs_handle, <a class="code" href="group__w25qxx__advance__driver.html#gga81ddc7d4b9f4f124163beea19cc33c7ea3353a88090850174ca163d56e4d7089c">W25QXX_SECURITY_REGISTER_2</a>, gs_buffer_output);</div>
-<div class="line"><a name="l00896"></a><span class="lineno">  896</span>&#160;            <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00897"></a><span class="lineno">  897</span>&#160;            {</div>
-<div class="line"><a name="l00898"></a><span class="lineno">  898</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: read security register failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00899"></a><span class="lineno">  899</span>&#160;                (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00900"></a><span class="lineno">  900</span>&#160;               </div>
-<div class="line"><a name="l00901"></a><span class="lineno">  901</span>&#160;                <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00902"></a><span class="lineno">  902</span>&#160;            }</div>
-<div class="line"><a name="l00903"></a><span class="lineno">  903</span>&#160;            <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
-<div class="line"><a name="l00904"></a><span class="lineno">  904</span>&#160;            {</div>
-<div class="line"><a name="l00905"></a><span class="lineno">  905</span>&#160;                <span class="keywordflow">if</span> (gs_buffer_input[j] != gs_buffer_output[j])</div>
-<div class="line"><a name="l00906"></a><span class="lineno">  906</span>&#160;                {</div>
-<div class="line"><a name="l00907"></a><span class="lineno">  907</span>&#160;                    <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: write read check failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00908"></a><span class="lineno">  908</span>&#160;                    (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00909"></a><span class="lineno">  909</span>&#160;                    </div>
-<div class="line"><a name="l00910"></a><span class="lineno">  910</span>&#160;                    <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00911"></a><span class="lineno">  911</span>&#160;                }</div>
-<div class="line"><a name="l00912"></a><span class="lineno">  912</span>&#160;            }</div>
-<div class="line"><a name="l00913"></a><span class="lineno">  913</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: security register2 check passed.\n&quot;</span>);</div>
-<div class="line"><a name="l00914"></a><span class="lineno">  914</span>&#160; </div>
-<div class="line"><a name="l00915"></a><span class="lineno">  915</span>&#160;            <span class="comment">/*  security register3 write and read test */</span></div>
-<div class="line"><a name="l00916"></a><span class="lineno">  916</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: security register3 write and read test.\n&quot;</span>);</div>
-<div class="line"><a name="l00917"></a><span class="lineno">  917</span>&#160;            </div>
-<div class="line"><a name="l00918"></a><span class="lineno">  918</span>&#160;            <span class="comment">/* security register3 write and read test */</span></div>
-<div class="line"><a name="l00919"></a><span class="lineno">  919</span>&#160;            res = <a class="code" href="group__w25qxx__advance__driver.html#gaf297e2c6877c64f8fd10a555f783ddaf">w25qxx_erase_security_register</a>(&amp;gs_handle, <a class="code" href="group__w25qxx__advance__driver.html#gga81ddc7d4b9f4f124163beea19cc33c7ea65b73162d921075bed8cb8d848948900">W25QXX_SECURITY_REGISTER_3</a>);</div>
-<div class="line"><a name="l00920"></a><span class="lineno">  920</span>&#160;            <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00921"></a><span class="lineno">  921</span>&#160;            {</div>
-<div class="line"><a name="l00922"></a><span class="lineno">  922</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: erase security register failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00923"></a><span class="lineno">  923</span>&#160;                (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00924"></a><span class="lineno">  924</span>&#160;               </div>
-<div class="line"><a name="l00925"></a><span class="lineno">  925</span>&#160;                <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00926"></a><span class="lineno">  926</span>&#160;            }</div>
-<div class="line"><a name="l00927"></a><span class="lineno">  927</span>&#160;            <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
-<div class="line"><a name="l00928"></a><span class="lineno">  928</span>&#160;            {</div>
-<div class="line"><a name="l00929"></a><span class="lineno">  929</span>&#160;                gs_buffer_input[j] = rand() %256;</div>
-<div class="line"><a name="l00930"></a><span class="lineno">  930</span>&#160;            }</div>
-<div class="line"><a name="l00931"></a><span class="lineno">  931</span>&#160;            res = <a class="code" href="group__w25qxx__advance__driver.html#ga4e9c059ff78866e478e835cb27a92899">w25qxx_program_security_register</a>(&amp;gs_handle, <a class="code" href="group__w25qxx__advance__driver.html#gga81ddc7d4b9f4f124163beea19cc33c7ea65b73162d921075bed8cb8d848948900">W25QXX_SECURITY_REGISTER_3</a>, gs_buffer_input);</div>
-<div class="line"><a name="l00932"></a><span class="lineno">  932</span>&#160;            <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00933"></a><span class="lineno">  933</span>&#160;            {</div>
-<div class="line"><a name="l00934"></a><span class="lineno">  934</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: program security register failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00935"></a><span class="lineno">  935</span>&#160;                (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00936"></a><span class="lineno">  936</span>&#160;               </div>
-<div class="line"><a name="l00937"></a><span class="lineno">  937</span>&#160;                <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00938"></a><span class="lineno">  938</span>&#160;            }</div>
-<div class="line"><a name="l00939"></a><span class="lineno">  939</span>&#160;            res = <a class="code" href="group__w25qxx__advance__driver.html#ga4c65debc4947bd9a61e0073105164b9c">w25qxx_read_security_register</a>(&amp;gs_handle, <a class="code" href="group__w25qxx__advance__driver.html#gga81ddc7d4b9f4f124163beea19cc33c7ea65b73162d921075bed8cb8d848948900">W25QXX_SECURITY_REGISTER_3</a>, gs_buffer_output);</div>
-<div class="line"><a name="l00940"></a><span class="lineno">  940</span>&#160;            <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00941"></a><span class="lineno">  941</span>&#160;            {</div>
-<div class="line"><a name="l00942"></a><span class="lineno">  942</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: read security register failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00943"></a><span class="lineno">  943</span>&#160;                (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00944"></a><span class="lineno">  944</span>&#160;               </div>
-<div class="line"><a name="l00945"></a><span class="lineno">  945</span>&#160;                <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00946"></a><span class="lineno">  946</span>&#160;            }</div>
-<div class="line"><a name="l00947"></a><span class="lineno">  947</span>&#160;            <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
-<div class="line"><a name="l00948"></a><span class="lineno">  948</span>&#160;            {</div>
-<div class="line"><a name="l00949"></a><span class="lineno">  949</span>&#160;                <span class="keywordflow">if</span> (gs_buffer_input[j] != gs_buffer_output[j])</div>
-<div class="line"><a name="l00950"></a><span class="lineno">  950</span>&#160;                {</div>
-<div class="line"><a name="l00951"></a><span class="lineno">  951</span>&#160;                    <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: write read check failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00952"></a><span class="lineno">  952</span>&#160;                    (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00953"></a><span class="lineno">  953</span>&#160;                    </div>
-<div class="line"><a name="l00954"></a><span class="lineno">  954</span>&#160;                    <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00955"></a><span class="lineno">  955</span>&#160;                }</div>
-<div class="line"><a name="l00956"></a><span class="lineno">  956</span>&#160;            }</div>
-<div class="line"><a name="l00957"></a><span class="lineno">  957</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: security register3 check passed.\n&quot;</span>);</div>
-<div class="line"><a name="l00958"></a><span class="lineno">  958</span>&#160;            </div>
-<div class="line"><a name="l00959"></a><span class="lineno">  959</span>&#160;            <span class="comment">/* set address mode 3 byte */</span></div>
-<div class="line"><a name="l00960"></a><span class="lineno">  960</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set address mode 3 byte.\n&quot;</span>);</div>
-<div class="line"><a name="l00961"></a><span class="lineno">  961</span>&#160;            </div>
-<div class="line"><a name="l00962"></a><span class="lineno">  962</span>&#160;            <span class="comment">/* set address mode 3 byte */</span></div>
-<div class="line"><a name="l00963"></a><span class="lineno">  963</span>&#160;            res = <a class="code" href="group__w25qxx__basic__driver.html#gad0e125eff304ce66fb3956d2c8c80656">w25qxx_set_address_mode</a>(&amp;gs_handle, <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>);</div>
-<div class="line"><a name="l00964"></a><span class="lineno">  964</span>&#160;            <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00965"></a><span class="lineno">  965</span>&#160;            {</div>
-<div class="line"><a name="l00966"></a><span class="lineno">  966</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set address mode failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00967"></a><span class="lineno">  967</span>&#160;                (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00968"></a><span class="lineno">  968</span>&#160;               </div>
-<div class="line"><a name="l00969"></a><span class="lineno">  969</span>&#160;                <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00970"></a><span class="lineno">  970</span>&#160;            }</div>
-<div class="line"><a name="l00971"></a><span class="lineno">  971</span>&#160;        }</div>
-<div class="line"><a name="l00972"></a><span class="lineno">  972</span>&#160;    }</div>
-<div class="line"><a name="l00973"></a><span class="lineno">  973</span>&#160;    <span class="keywordflow">else</span></div>
-<div class="line"><a name="l00974"></a><span class="lineno">  974</span>&#160;    {</div>
-<div class="line"><a name="l00975"></a><span class="lineno">  975</span>&#160;        uint32_t size;</div>
-<div class="line"><a name="l00976"></a><span class="lineno">  976</span>&#160;        uint32_t addr, step, j;</div>
-<div class="line"><a name="l00977"></a><span class="lineno">  977</span>&#160;        </div>
-<div class="line"><a name="l00978"></a><span class="lineno">  978</span>&#160;        size = gsc_size[type - <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a1ad4f72437de5f26cb7b212d4d91e7c2">W25Q80</a>];</div>
-<div class="line"><a name="l00979"></a><span class="lineno">  979</span>&#160;        step = size / 16;</div>
-<div class="line"><a name="l00980"></a><span class="lineno">  980</span>&#160;        </div>
-<div class="line"><a name="l00981"></a><span class="lineno">  981</span>&#160;        <span class="comment">/* w25qxx_write/w25qxx_read test */</span></div>
-<div class="line"><a name="l00982"></a><span class="lineno">  982</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_write/w25qxx_read test.\n&quot;</span>);</div>
-<div class="line"><a name="l00983"></a><span class="lineno">  983</span>&#160;        </div>
-<div class="line"><a name="l00984"></a><span class="lineno">  984</span>&#160;        <span class="keywordflow">for</span> (addr = 0; addr &lt; size; addr += step)</div>
-<div class="line"><a name="l00985"></a><span class="lineno">  985</span>&#160;        {</div>
-<div class="line"><a name="l00986"></a><span class="lineno">  986</span>&#160;            <span class="keywordflow">for</span> (j = 0; j &lt; 600; j++)</div>
-<div class="line"><a name="l00987"></a><span class="lineno">  987</span>&#160;            {</div>
-<div class="line"><a name="l00988"></a><span class="lineno">  988</span>&#160;                gs_buffer_input[j] = rand() %256;</div>
-<div class="line"><a name="l00989"></a><span class="lineno">  989</span>&#160;            }</div>
-<div class="line"><a name="l00990"></a><span class="lineno">  990</span>&#160;            res = <a class="code" href="group__w25qxx__basic__driver.html#gaaee8264d840e51460821cb6e609338ee">w25qxx_write</a>(&amp;gs_handle, addr, gs_buffer_input, 600);</div>
-<div class="line"><a name="l00991"></a><span class="lineno">  991</span>&#160;            <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00992"></a><span class="lineno">  992</span>&#160;            {</div>
-<div class="line"><a name="l00993"></a><span class="lineno">  993</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: write failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00994"></a><span class="lineno">  994</span>&#160;                (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00995"></a><span class="lineno">  995</span>&#160;               </div>
-<div class="line"><a name="l00996"></a><span class="lineno">  996</span>&#160;                <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00997"></a><span class="lineno">  997</span>&#160;            }</div>
-<div class="line"><a name="l00998"></a><span class="lineno">  998</span>&#160;            res = <a class="code" href="group__w25qxx__basic__driver.html#gae7479fc9ce911a52e3c5b6f1a615b879">w25qxx_read</a>(&amp;gs_handle, addr, gs_buffer_output, 600);</div>
-<div class="line"><a name="l00999"></a><span class="lineno">  999</span>&#160;            <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>&#160;            {</div>
-<div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: read failed.\n&quot;</span>);</div>
-<div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>&#160;                (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>&#160;               </div>
-<div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>&#160;                <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>&#160;            }</div>
-<div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>&#160;            <span class="keywordflow">for</span> (j = 0; j &lt; 600; j++)</div>
-<div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>&#160;            {</div>
-<div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>&#160;                <span class="keywordflow">if</span> (gs_buffer_input[j] != gs_buffer_output[j])</div>
-<div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>&#160;                {</div>
-<div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>&#160;                    <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: write read check failed.\n&quot;</span>);</div>
-<div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>&#160;                    (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>&#160;                    </div>
-<div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>&#160;                    <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>&#160;                }</div>
-<div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>&#160;            }</div>
-<div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: 0x%08X/0x%08X successful.\n&quot;</span>, addr, size);</div>
-<div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>&#160;        }</div>
-<div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>&#160;        </div>
-<div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>&#160;        <span class="comment">/* w25qxx_sector_erase_4k test */</span></div>
-<div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>&#160;        addr = (rand() % 10) * 4 * 1024;</div>
-<div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_sector_erase_4k test with address 0x%X.\n&quot;</span>, addr);</div>
-<div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>&#160;        res = <a class="code" href="group__w25qxx__basic__driver.html#ga9a03c51b4c84655350c15fbfce0a6b40">w25qxx_sector_erase_4k</a>(&amp;gs_handle, addr);</div>
-<div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>&#160;        <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>&#160;        {</div>
-<div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: sector erase 4k failed.\n&quot;</span>);</div>
-<div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>&#160;            (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>&#160;           </div>
-<div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>&#160;            <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>&#160;        }</div>
-<div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>&#160;        <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
-<div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>&#160;        {</div>
-<div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>&#160;            gs_buffer_input[j] = rand() %256;</div>
-<div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>&#160;        }</div>
-<div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>&#160;        </div>
-<div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>&#160;        <span class="comment">/* w25qxx_page_program */</span></div>
-<div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>&#160;        res = <a class="code" href="group__w25qxx__basic__driver.html#ga6280e7e4ab26306436e2c210617a28b3">w25qxx_page_program</a>(&amp;gs_handle, addr, gs_buffer_input, 256);</div>
-<div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>&#160;        <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>&#160;        {</div>
-<div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: page program failed.\n&quot;</span>);</div>
-<div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>&#160;            (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>&#160;           </div>
-<div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>&#160;            <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>&#160;        }</div>
-<div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>&#160;        </div>
-<div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>&#160;        <span class="comment">/* w25qxx_fast_read */</span></div>
-<div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>&#160;        res = <a class="code" href="group__w25qxx__basic__driver.html#gac345ba10af5ad355578fa97697487123">w25qxx_fast_read</a>(&amp;gs_handle, addr, gs_buffer_output, 256);</div>
-<div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>&#160;        <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>&#160;        {</div>
-<div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read failed.\n&quot;</span>);</div>
-<div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>&#160;            (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>&#160;           </div>
-<div class="line"><a name="l01052"></a><span class="lineno"> 1052</span>&#160;            <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l01053"></a><span class="lineno"> 1053</span>&#160;        }</div>
-<div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>&#160;        <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
-<div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>&#160;        {</div>
-<div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>&#160;            <span class="keywordflow">if</span> (gs_buffer_input[j] != gs_buffer_output[j])</div>
-<div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>&#160;            {</div>
-<div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: write read check failed.\n&quot;</span>);</div>
-<div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>&#160;                (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>&#160;                </div>
-<div class="line"><a name="l01061"></a><span class="lineno"> 1061</span>&#160;                <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l01062"></a><span class="lineno"> 1062</span>&#160;            }</div>
-<div class="line"><a name="l01063"></a><span class="lineno"> 1063</span>&#160;        }</div>
-<div class="line"><a name="l01064"></a><span class="lineno"> 1064</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read test passed.\n&quot;</span>);</div>
-<div class="line"><a name="l01065"></a><span class="lineno"> 1065</span>&#160;        </div>
-<div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>&#160;        <span class="comment">/* w25qxx_block_erase_32k test */</span></div>
-<div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>&#160;        addr = (rand() % 10) * 32 * 1024;</div>
-<div class="line"><a name="l01068"></a><span class="lineno"> 1068</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_block_erase_32k test with address 0x%X.\n&quot;</span>, addr);</div>
-<div class="line"><a name="l01069"></a><span class="lineno"> 1069</span>&#160;        res = <a class="code" href="group__w25qxx__basic__driver.html#ga39c8fb382e8c3e4d57232dfa79af781c">w25qxx_block_erase_32k</a>(&amp;gs_handle, addr);</div>
-<div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>&#160;        <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>&#160;        {</div>
-<div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: sector erase 32k failed.\n&quot;</span>);</div>
-<div class="line"><a name="l01073"></a><span class="lineno"> 1073</span>&#160;            (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l01074"></a><span class="lineno"> 1074</span>&#160;           </div>
-<div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>&#160;            <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>&#160;        }</div>
-<div class="line"><a name="l01077"></a><span class="lineno"> 1077</span>&#160;        <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
-<div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>&#160;        {</div>
-<div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>&#160;            gs_buffer_input[j] = rand() %256;</div>
-<div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>&#160;        }</div>
-<div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>&#160;        </div>
-<div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>&#160;        <span class="comment">/* w25qxx_page_program */</span></div>
-<div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>&#160;        res = <a class="code" href="group__w25qxx__basic__driver.html#ga6280e7e4ab26306436e2c210617a28b3">w25qxx_page_program</a>(&amp;gs_handle, addr, gs_buffer_input, 256);</div>
-<div class="line"><a name="l01084"></a><span class="lineno"> 1084</span>&#160;        <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l01085"></a><span class="lineno"> 1085</span>&#160;        {</div>
-<div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: page program failed.\n&quot;</span>);</div>
-<div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>&#160;            (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l01088"></a><span class="lineno"> 1088</span>&#160;           </div>
-<div class="line"><a name="l01089"></a><span class="lineno"> 1089</span>&#160;            <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l01090"></a><span class="lineno"> 1090</span>&#160;        }</div>
-<div class="line"><a name="l01091"></a><span class="lineno"> 1091</span>&#160;        </div>
-<div class="line"><a name="l01092"></a><span class="lineno"> 1092</span>&#160;        <span class="comment">/* w25qxx_fast_read */</span></div>
-<div class="line"><a name="l01093"></a><span class="lineno"> 1093</span>&#160;        res = <a class="code" href="group__w25qxx__basic__driver.html#gac345ba10af5ad355578fa97697487123">w25qxx_fast_read</a>(&amp;gs_handle, addr, gs_buffer_output, 256);</div>
-<div class="line"><a name="l01094"></a><span class="lineno"> 1094</span>&#160;        <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l01095"></a><span class="lineno"> 1095</span>&#160;        {</div>
-<div class="line"><a name="l01096"></a><span class="lineno"> 1096</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read failed.\n&quot;</span>);</div>
-<div class="line"><a name="l01097"></a><span class="lineno"> 1097</span>&#160;            (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>&#160;           </div>
-<div class="line"><a name="l01099"></a><span class="lineno"> 1099</span>&#160;            <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l01100"></a><span class="lineno"> 1100</span>&#160;        }</div>
-<div class="line"><a name="l01101"></a><span class="lineno"> 1101</span>&#160;        <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
-<div class="line"><a name="l01102"></a><span class="lineno"> 1102</span>&#160;        {</div>
-<div class="line"><a name="l01103"></a><span class="lineno"> 1103</span>&#160;            <span class="keywordflow">if</span> (gs_buffer_input[j] != gs_buffer_output[j])</div>
-<div class="line"><a name="l01104"></a><span class="lineno"> 1104</span>&#160;            {</div>
-<div class="line"><a name="l01105"></a><span class="lineno"> 1105</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: write read check failed.\n&quot;</span>);</div>
-<div class="line"><a name="l01106"></a><span class="lineno"> 1106</span>&#160;                (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>&#160;                </div>
-<div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>&#160;                <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>&#160;            }</div>
-<div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>&#160;        }</div>
-<div class="line"><a name="l01111"></a><span class="lineno"> 1111</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read test passed.\n&quot;</span>);</div>
-<div class="line"><a name="l01112"></a><span class="lineno"> 1112</span>&#160;        </div>
-<div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>&#160;        <span class="comment">/* w25qxx_block_erase_64k test */</span></div>
-<div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>&#160;        addr = (rand() % 10) * 64 * 1024;</div>
-<div class="line"><a name="l01115"></a><span class="lineno"> 1115</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_block_erase_64k test with address 0x%X.\n&quot;</span>, addr);</div>
-<div class="line"><a name="l01116"></a><span class="lineno"> 1116</span>&#160;        res = <a class="code" href="group__w25qxx__basic__driver.html#gaf53bc5f6073482b9b74efd417ec7ac83">w25qxx_block_erase_64k</a>(&amp;gs_handle, addr);</div>
-<div class="line"><a name="l01117"></a><span class="lineno"> 1117</span>&#160;        <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l01118"></a><span class="lineno"> 1118</span>&#160;        {</div>
-<div class="line"><a name="l01119"></a><span class="lineno"> 1119</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: sector erase 64k failed.\n&quot;</span>);</div>
-<div class="line"><a name="l01120"></a><span class="lineno"> 1120</span>&#160;            (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l01121"></a><span class="lineno"> 1121</span>&#160;           </div>
-<div class="line"><a name="l01122"></a><span class="lineno"> 1122</span>&#160;            <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>&#160;        }</div>
-<div class="line"><a name="l01124"></a><span class="lineno"> 1124</span>&#160;        <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
-<div class="line"><a name="l01125"></a><span class="lineno"> 1125</span>&#160;        {</div>
-<div class="line"><a name="l01126"></a><span class="lineno"> 1126</span>&#160;            gs_buffer_input[j] = rand() %256;</div>
-<div class="line"><a name="l01127"></a><span class="lineno"> 1127</span>&#160;        }</div>
-<div class="line"><a name="l01128"></a><span class="lineno"> 1128</span>&#160;        </div>
-<div class="line"><a name="l01129"></a><span class="lineno"> 1129</span>&#160;        <span class="comment">/* w25qxx_page_program */</span></div>
-<div class="line"><a name="l01130"></a><span class="lineno"> 1130</span>&#160;        res = <a class="code" href="group__w25qxx__basic__driver.html#ga6280e7e4ab26306436e2c210617a28b3">w25qxx_page_program</a>(&amp;gs_handle, addr, gs_buffer_input, 256);</div>
-<div class="line"><a name="l01131"></a><span class="lineno"> 1131</span>&#160;        <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l01132"></a><span class="lineno"> 1132</span>&#160;        {</div>
-<div class="line"><a name="l01133"></a><span class="lineno"> 1133</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: page program failed.\n&quot;</span>);</div>
-<div class="line"><a name="l01134"></a><span class="lineno"> 1134</span>&#160;            (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l01135"></a><span class="lineno"> 1135</span>&#160;           </div>
-<div class="line"><a name="l01136"></a><span class="lineno"> 1136</span>&#160;            <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l01137"></a><span class="lineno"> 1137</span>&#160;        }</div>
-<div class="line"><a name="l01138"></a><span class="lineno"> 1138</span>&#160;        </div>
-<div class="line"><a name="l01139"></a><span class="lineno"> 1139</span>&#160;        <span class="comment">/* w25qxx_fast_read */</span></div>
-<div class="line"><a name="l01140"></a><span class="lineno"> 1140</span>&#160;        res = <a class="code" href="group__w25qxx__basic__driver.html#gac345ba10af5ad355578fa97697487123">w25qxx_fast_read</a>(&amp;gs_handle, addr, gs_buffer_output, 256);</div>
-<div class="line"><a name="l01141"></a><span class="lineno"> 1141</span>&#160;        <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l01142"></a><span class="lineno"> 1142</span>&#160;        {</div>
-<div class="line"><a name="l01143"></a><span class="lineno"> 1143</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read failed.\n&quot;</span>);</div>
-<div class="line"><a name="l01144"></a><span class="lineno"> 1144</span>&#160;            (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l01145"></a><span class="lineno"> 1145</span>&#160;           </div>
-<div class="line"><a name="l01146"></a><span class="lineno"> 1146</span>&#160;            <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l01147"></a><span class="lineno"> 1147</span>&#160;        }</div>
-<div class="line"><a name="l01148"></a><span class="lineno"> 1148</span>&#160;        <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
-<div class="line"><a name="l01149"></a><span class="lineno"> 1149</span>&#160;        {</div>
-<div class="line"><a name="l01150"></a><span class="lineno"> 1150</span>&#160;            <span class="keywordflow">if</span> (gs_buffer_input[j] != gs_buffer_output[j])</div>
-<div class="line"><a name="l01151"></a><span class="lineno"> 1151</span>&#160;            {</div>
-<div class="line"><a name="l01152"></a><span class="lineno"> 1152</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: write read check failed.\n&quot;</span>);</div>
-<div class="line"><a name="l01153"></a><span class="lineno"> 1153</span>&#160;                (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l01154"></a><span class="lineno"> 1154</span>&#160;                </div>
-<div class="line"><a name="l01155"></a><span class="lineno"> 1155</span>&#160;                <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l01156"></a><span class="lineno"> 1156</span>&#160;            }</div>
-<div class="line"><a name="l01157"></a><span class="lineno"> 1157</span>&#160;        }</div>
-<div class="line"><a name="l01158"></a><span class="lineno"> 1158</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read test passed.\n&quot;</span>);</div>
-<div class="line"><a name="l01159"></a><span class="lineno"> 1159</span>&#160;        </div>
-<div class="line"><a name="l01160"></a><span class="lineno"> 1160</span>&#160;<span class="preprocessor">        #if (W25QXX_ENABLE_ERASE_READ_TEST == 1)</span></div>
-<div class="line"><a name="l01161"></a><span class="lineno"> 1161</span>&#160;            <span class="comment">/* start chip erasing */</span></div>
-<div class="line"><a name="l01162"></a><span class="lineno"> 1162</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: start chip erasing.\n&quot;</span>);</div>
-<div class="line"><a name="l01163"></a><span class="lineno"> 1163</span>&#160;            </div>
-<div class="line"><a name="l01164"></a><span class="lineno"> 1164</span>&#160;            <span class="comment">/* chip erase */</span></div>
-<div class="line"><a name="l01165"></a><span class="lineno"> 1165</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_chip_erase test.\n&quot;</span>);</div>
-<div class="line"><a name="l01166"></a><span class="lineno"> 1166</span>&#160;            res = <a class="code" href="group__w25qxx__basic__driver.html#ga0862833b36831f92684980b2e21f2e39">w25qxx_chip_erase</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l01167"></a><span class="lineno"> 1167</span>&#160;            <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l01168"></a><span class="lineno"> 1168</span>&#160;            {</div>
-<div class="line"><a name="l01169"></a><span class="lineno"> 1169</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: chip erase failed.\n&quot;</span>);</div>
-<div class="line"><a name="l01170"></a><span class="lineno"> 1170</span>&#160;                (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l01171"></a><span class="lineno"> 1171</span>&#160;               </div>
-<div class="line"><a name="l01172"></a><span class="lineno"> 1172</span>&#160;                <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l01173"></a><span class="lineno"> 1173</span>&#160;            }</div>
-<div class="line"><a name="l01174"></a><span class="lineno"> 1174</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: chip erase successful.\n&quot;</span>);</div>
-<div class="line"><a name="l01175"></a><span class="lineno"> 1175</span>&#160;<span class="preprocessor">        #endif</span></div>
-<div class="line"><a name="l01176"></a><span class="lineno"> 1176</span>&#160;        </div>
-<div class="line"><a name="l01177"></a><span class="lineno"> 1177</span>&#160;        <span class="keywordflow">if</span> (type &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)</div>
-<div class="line"><a name="l01178"></a><span class="lineno"> 1178</span>&#160;        {</div>
-<div class="line"><a name="l01179"></a><span class="lineno"> 1179</span>&#160;            <span class="comment">/* set address mode 4 byte */</span></div>
-<div class="line"><a name="l01180"></a><span class="lineno"> 1180</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set address mode 4 byte.\n&quot;</span>);</div>
-<div class="line"><a name="l01181"></a><span class="lineno"> 1181</span>&#160;            </div>
-<div class="line"><a name="l01182"></a><span class="lineno"> 1182</span>&#160;            <span class="comment">/* set address mode 4 byte */</span></div>
-<div class="line"><a name="l01183"></a><span class="lineno"> 1183</span>&#160;            res = <a class="code" href="group__w25qxx__basic__driver.html#gad0e125eff304ce66fb3956d2c8c80656">w25qxx_set_address_mode</a>(&amp;gs_handle, <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>);</div>
-<div class="line"><a name="l01184"></a><span class="lineno"> 1184</span>&#160;            <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l01185"></a><span class="lineno"> 1185</span>&#160;            {</div>
-<div class="line"><a name="l01186"></a><span class="lineno"> 1186</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set address mode failed.\n&quot;</span>);</div>
-<div class="line"><a name="l01187"></a><span class="lineno"> 1187</span>&#160;                (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l01188"></a><span class="lineno"> 1188</span>&#160;               </div>
-<div class="line"><a name="l01189"></a><span class="lineno"> 1189</span>&#160;                <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l01190"></a><span class="lineno"> 1190</span>&#160;            }</div>
-<div class="line"><a name="l01191"></a><span class="lineno"> 1191</span>&#160;            </div>
-<div class="line"><a name="l01192"></a><span class="lineno"> 1192</span>&#160;            <span class="comment">/* w25qxx_write/w25qxx_read test */</span></div>
-<div class="line"><a name="l01193"></a><span class="lineno"> 1193</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_write/w25qxx_read test.\n&quot;</span>);</div>
-<div class="line"><a name="l01194"></a><span class="lineno"> 1194</span>&#160;            </div>
-<div class="line"><a name="l01195"></a><span class="lineno"> 1195</span>&#160;            <span class="keywordflow">for</span> (addr = 0; addr &lt; size; addr += step)</div>
-<div class="line"><a name="l01196"></a><span class="lineno"> 1196</span>&#160;            {</div>
-<div class="line"><a name="l01197"></a><span class="lineno"> 1197</span>&#160;                <span class="keywordflow">for</span> (j = 0; j &lt; 600; j++)</div>
-<div class="line"><a name="l01198"></a><span class="lineno"> 1198</span>&#160;                {</div>
-<div class="line"><a name="l01199"></a><span class="lineno"> 1199</span>&#160;                    gs_buffer_input[j] = rand() %256;</div>
-<div class="line"><a name="l01200"></a><span class="lineno"> 1200</span>&#160;                }</div>
-<div class="line"><a name="l01201"></a><span class="lineno"> 1201</span>&#160;                res = <a class="code" href="group__w25qxx__basic__driver.html#gaaee8264d840e51460821cb6e609338ee">w25qxx_write</a>(&amp;gs_handle, addr, gs_buffer_input, 600);</div>
-<div class="line"><a name="l01202"></a><span class="lineno"> 1202</span>&#160;                <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l01203"></a><span class="lineno"> 1203</span>&#160;                {</div>
-<div class="line"><a name="l01204"></a><span class="lineno"> 1204</span>&#160;                    <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: write failed.\n&quot;</span>);</div>
-<div class="line"><a name="l01205"></a><span class="lineno"> 1205</span>&#160;                    (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l01206"></a><span class="lineno"> 1206</span>&#160;                   </div>
-<div class="line"><a name="l01207"></a><span class="lineno"> 1207</span>&#160;                    <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l01208"></a><span class="lineno"> 1208</span>&#160;                }</div>
-<div class="line"><a name="l01209"></a><span class="lineno"> 1209</span>&#160;                res = <a class="code" href="group__w25qxx__basic__driver.html#gae7479fc9ce911a52e3c5b6f1a615b879">w25qxx_read</a>(&amp;gs_handle, addr, gs_buffer_output, 600);</div>
-<div class="line"><a name="l01210"></a><span class="lineno"> 1210</span>&#160;                <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l01211"></a><span class="lineno"> 1211</span>&#160;                {</div>
-<div class="line"><a name="l01212"></a><span class="lineno"> 1212</span>&#160;                    <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: read failed.\n&quot;</span>);</div>
-<div class="line"><a name="l01213"></a><span class="lineno"> 1213</span>&#160;                    (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l01214"></a><span class="lineno"> 1214</span>&#160;                   </div>
-<div class="line"><a name="l01215"></a><span class="lineno"> 1215</span>&#160;                    <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l01216"></a><span class="lineno"> 1216</span>&#160;                }</div>
-<div class="line"><a name="l01217"></a><span class="lineno"> 1217</span>&#160;                <span class="keywordflow">for</span> (j = 0; j &lt; 600; j++)</div>
-<div class="line"><a name="l01218"></a><span class="lineno"> 1218</span>&#160;                {</div>
-<div class="line"><a name="l01219"></a><span class="lineno"> 1219</span>&#160;                    <span class="keywordflow">if</span> (gs_buffer_input[j] != gs_buffer_output[j])</div>
-<div class="line"><a name="l01220"></a><span class="lineno"> 1220</span>&#160;                    {</div>
-<div class="line"><a name="l01221"></a><span class="lineno"> 1221</span>&#160;                        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: write read check failed.\n&quot;</span>);</div>
-<div class="line"><a name="l01222"></a><span class="lineno"> 1222</span>&#160;                        (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l01223"></a><span class="lineno"> 1223</span>&#160;                        </div>
-<div class="line"><a name="l01224"></a><span class="lineno"> 1224</span>&#160;                        <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l01225"></a><span class="lineno"> 1225</span>&#160;                    }</div>
-<div class="line"><a name="l01226"></a><span class="lineno"> 1226</span>&#160;                }</div>
-<div class="line"><a name="l01227"></a><span class="lineno"> 1227</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: 0x%08X/0x%08X successful.\n&quot;</span>, addr, size);</div>
-<div class="line"><a name="l01228"></a><span class="lineno"> 1228</span>&#160;            }</div>
-<div class="line"><a name="l01229"></a><span class="lineno"> 1229</span>&#160;            </div>
-<div class="line"><a name="l01230"></a><span class="lineno"> 1230</span>&#160;            <span class="comment">/* w25qxx_sector_erase_4k test */</span></div>
-<div class="line"><a name="l01231"></a><span class="lineno"> 1231</span>&#160;            addr = (rand() % 10) * 4 * 1024;</div>
-<div class="line"><a name="l01232"></a><span class="lineno"> 1232</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_sector_erase_4k test with address 0x%X.\n&quot;</span>, addr);</div>
-<div class="line"><a name="l01233"></a><span class="lineno"> 1233</span>&#160;            res = <a class="code" href="group__w25qxx__basic__driver.html#ga9a03c51b4c84655350c15fbfce0a6b40">w25qxx_sector_erase_4k</a>(&amp;gs_handle, addr);</div>
-<div class="line"><a name="l01234"></a><span class="lineno"> 1234</span>&#160;            <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l01235"></a><span class="lineno"> 1235</span>&#160;            {</div>
-<div class="line"><a name="l01236"></a><span class="lineno"> 1236</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: sector erase 4k failed.\n&quot;</span>);</div>
-<div class="line"><a name="l01237"></a><span class="lineno"> 1237</span>&#160;                (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l01238"></a><span class="lineno"> 1238</span>&#160;               </div>
-<div class="line"><a name="l01239"></a><span class="lineno"> 1239</span>&#160;                <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l01240"></a><span class="lineno"> 1240</span>&#160;            }</div>
-<div class="line"><a name="l01241"></a><span class="lineno"> 1241</span>&#160;            <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
-<div class="line"><a name="l01242"></a><span class="lineno"> 1242</span>&#160;            {</div>
-<div class="line"><a name="l01243"></a><span class="lineno"> 1243</span>&#160;                gs_buffer_input[j] = rand() %256;</div>
-<div class="line"><a name="l01244"></a><span class="lineno"> 1244</span>&#160;            }</div>
-<div class="line"><a name="l01245"></a><span class="lineno"> 1245</span>&#160;            </div>
-<div class="line"><a name="l01246"></a><span class="lineno"> 1246</span>&#160;            <span class="comment">/* w25qxx_page_program */</span></div>
-<div class="line"><a name="l01247"></a><span class="lineno"> 1247</span>&#160;            res = <a class="code" href="group__w25qxx__basic__driver.html#ga6280e7e4ab26306436e2c210617a28b3">w25qxx_page_program</a>(&amp;gs_handle, addr, gs_buffer_input, 256);</div>
-<div class="line"><a name="l01248"></a><span class="lineno"> 1248</span>&#160;            <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l01249"></a><span class="lineno"> 1249</span>&#160;            {</div>
-<div class="line"><a name="l01250"></a><span class="lineno"> 1250</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: page program failed.\n&quot;</span>);</div>
-<div class="line"><a name="l01251"></a><span class="lineno"> 1251</span>&#160;                (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l01252"></a><span class="lineno"> 1252</span>&#160;               </div>
-<div class="line"><a name="l01253"></a><span class="lineno"> 1253</span>&#160;                <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l01254"></a><span class="lineno"> 1254</span>&#160;            }</div>
-<div class="line"><a name="l01255"></a><span class="lineno"> 1255</span>&#160;            </div>
-<div class="line"><a name="l01256"></a><span class="lineno"> 1256</span>&#160;            <span class="comment">/* w25qxx_fast_read */</span></div>
-<div class="line"><a name="l01257"></a><span class="lineno"> 1257</span>&#160;            res = <a class="code" href="group__w25qxx__basic__driver.html#gac345ba10af5ad355578fa97697487123">w25qxx_fast_read</a>(&amp;gs_handle, addr, gs_buffer_output, 256);</div>
-<div class="line"><a name="l01258"></a><span class="lineno"> 1258</span>&#160;            <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l01259"></a><span class="lineno"> 1259</span>&#160;            {</div>
-<div class="line"><a name="l01260"></a><span class="lineno"> 1260</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read failed.\n&quot;</span>);</div>
-<div class="line"><a name="l01261"></a><span class="lineno"> 1261</span>&#160;                (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l01262"></a><span class="lineno"> 1262</span>&#160;               </div>
-<div class="line"><a name="l01263"></a><span class="lineno"> 1263</span>&#160;                <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l01264"></a><span class="lineno"> 1264</span>&#160;            }</div>
-<div class="line"><a name="l01265"></a><span class="lineno"> 1265</span>&#160;            <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
-<div class="line"><a name="l01266"></a><span class="lineno"> 1266</span>&#160;            {</div>
-<div class="line"><a name="l01267"></a><span class="lineno"> 1267</span>&#160;                <span class="keywordflow">if</span> (gs_buffer_input[j] != gs_buffer_output[j])</div>
-<div class="line"><a name="l01268"></a><span class="lineno"> 1268</span>&#160;                {</div>
-<div class="line"><a name="l01269"></a><span class="lineno"> 1269</span>&#160;                    <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: write read check failed.\n&quot;</span>);</div>
-<div class="line"><a name="l01270"></a><span class="lineno"> 1270</span>&#160;                    (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l01271"></a><span class="lineno"> 1271</span>&#160;                    </div>
-<div class="line"><a name="l01272"></a><span class="lineno"> 1272</span>&#160;                    <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l01273"></a><span class="lineno"> 1273</span>&#160;                }</div>
-<div class="line"><a name="l01274"></a><span class="lineno"> 1274</span>&#160;            }</div>
-<div class="line"><a name="l01275"></a><span class="lineno"> 1275</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read test passed.\n&quot;</span>);</div>
-<div class="line"><a name="l01276"></a><span class="lineno"> 1276</span>&#160;            </div>
-<div class="line"><a name="l01277"></a><span class="lineno"> 1277</span>&#160;            <span class="comment">/* w25qxx_block_erase_32k test */</span></div>
-<div class="line"><a name="l01278"></a><span class="lineno"> 1278</span>&#160;            addr = (rand() % 10) * 32 * 1024;</div>
-<div class="line"><a name="l01279"></a><span class="lineno"> 1279</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_block_erase_32k test with address 0x%X.\n&quot;</span>, addr);</div>
-<div class="line"><a name="l01280"></a><span class="lineno"> 1280</span>&#160;            res = <a class="code" href="group__w25qxx__basic__driver.html#ga39c8fb382e8c3e4d57232dfa79af781c">w25qxx_block_erase_32k</a>(&amp;gs_handle, addr);</div>
-<div class="line"><a name="l01281"></a><span class="lineno"> 1281</span>&#160;            <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l01282"></a><span class="lineno"> 1282</span>&#160;            {</div>
-<div class="line"><a name="l01283"></a><span class="lineno"> 1283</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: sector erase 32k failed.\n&quot;</span>);</div>
-<div class="line"><a name="l01284"></a><span class="lineno"> 1284</span>&#160;                (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l01285"></a><span class="lineno"> 1285</span>&#160;               </div>
-<div class="line"><a name="l01286"></a><span class="lineno"> 1286</span>&#160;                <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l01287"></a><span class="lineno"> 1287</span>&#160;            }</div>
-<div class="line"><a name="l01288"></a><span class="lineno"> 1288</span>&#160;            <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
-<div class="line"><a name="l01289"></a><span class="lineno"> 1289</span>&#160;            {</div>
-<div class="line"><a name="l01290"></a><span class="lineno"> 1290</span>&#160;                gs_buffer_input[j] = rand() %256;</div>
-<div class="line"><a name="l01291"></a><span class="lineno"> 1291</span>&#160;            }</div>
-<div class="line"><a name="l01292"></a><span class="lineno"> 1292</span>&#160;            </div>
-<div class="line"><a name="l01293"></a><span class="lineno"> 1293</span>&#160;            <span class="comment">/* w25qxx_page_program */</span></div>
-<div class="line"><a name="l01294"></a><span class="lineno"> 1294</span>&#160;            res = <a class="code" href="group__w25qxx__basic__driver.html#ga6280e7e4ab26306436e2c210617a28b3">w25qxx_page_program</a>(&amp;gs_handle, addr, gs_buffer_input, 256);</div>
-<div class="line"><a name="l01295"></a><span class="lineno"> 1295</span>&#160;            <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l01296"></a><span class="lineno"> 1296</span>&#160;            {</div>
-<div class="line"><a name="l01297"></a><span class="lineno"> 1297</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: page program failed.\n&quot;</span>);</div>
-<div class="line"><a name="l01298"></a><span class="lineno"> 1298</span>&#160;                (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l01299"></a><span class="lineno"> 1299</span>&#160;               </div>
-<div class="line"><a name="l01300"></a><span class="lineno"> 1300</span>&#160;                <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l01301"></a><span class="lineno"> 1301</span>&#160;            }</div>
-<div class="line"><a name="l01302"></a><span class="lineno"> 1302</span>&#160;            </div>
-<div class="line"><a name="l01303"></a><span class="lineno"> 1303</span>&#160;            <span class="comment">/* w25qxx_fast_read */</span></div>
-<div class="line"><a name="l01304"></a><span class="lineno"> 1304</span>&#160;            res = <a class="code" href="group__w25qxx__basic__driver.html#gac345ba10af5ad355578fa97697487123">w25qxx_fast_read</a>(&amp;gs_handle, addr, gs_buffer_output, 256);</div>
-<div class="line"><a name="l01305"></a><span class="lineno"> 1305</span>&#160;            <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l01306"></a><span class="lineno"> 1306</span>&#160;            {</div>
-<div class="line"><a name="l01307"></a><span class="lineno"> 1307</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read failed.\n&quot;</span>);</div>
-<div class="line"><a name="l01308"></a><span class="lineno"> 1308</span>&#160;                (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l01309"></a><span class="lineno"> 1309</span>&#160;               </div>
-<div class="line"><a name="l01310"></a><span class="lineno"> 1310</span>&#160;                <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l01311"></a><span class="lineno"> 1311</span>&#160;            }</div>
-<div class="line"><a name="l01312"></a><span class="lineno"> 1312</span>&#160;            <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
-<div class="line"><a name="l01313"></a><span class="lineno"> 1313</span>&#160;            {</div>
-<div class="line"><a name="l01314"></a><span class="lineno"> 1314</span>&#160;                <span class="keywordflow">if</span> (gs_buffer_input[j] != gs_buffer_output[j])</div>
-<div class="line"><a name="l01315"></a><span class="lineno"> 1315</span>&#160;                {</div>
-<div class="line"><a name="l01316"></a><span class="lineno"> 1316</span>&#160;                    <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: write read check failed.\n&quot;</span>);</div>
-<div class="line"><a name="l01317"></a><span class="lineno"> 1317</span>&#160;                    (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l01318"></a><span class="lineno"> 1318</span>&#160;                    </div>
-<div class="line"><a name="l01319"></a><span class="lineno"> 1319</span>&#160;                    <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l01320"></a><span class="lineno"> 1320</span>&#160;                }</div>
-<div class="line"><a name="l01321"></a><span class="lineno"> 1321</span>&#160;            }</div>
-<div class="line"><a name="l01322"></a><span class="lineno"> 1322</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read test passed.\n&quot;</span>);</div>
-<div class="line"><a name="l01323"></a><span class="lineno"> 1323</span>&#160;            </div>
-<div class="line"><a name="l01324"></a><span class="lineno"> 1324</span>&#160;            <span class="comment">/* w25qxx_block_erase_64k test */</span></div>
-<div class="line"><a name="l01325"></a><span class="lineno"> 1325</span>&#160;            addr = (rand() % 10) * 64 * 1024;</div>
-<div class="line"><a name="l01326"></a><span class="lineno"> 1326</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_block_erase_64k test with address 0x%X.\n&quot;</span>, addr);</div>
-<div class="line"><a name="l01327"></a><span class="lineno"> 1327</span>&#160;            res = <a class="code" href="group__w25qxx__basic__driver.html#gaf53bc5f6073482b9b74efd417ec7ac83">w25qxx_block_erase_64k</a>(&amp;gs_handle, addr);</div>
-<div class="line"><a name="l01328"></a><span class="lineno"> 1328</span>&#160;            <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l01329"></a><span class="lineno"> 1329</span>&#160;            {</div>
-<div class="line"><a name="l01330"></a><span class="lineno"> 1330</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: sector erase 64k failed.\n&quot;</span>);</div>
-<div class="line"><a name="l01331"></a><span class="lineno"> 1331</span>&#160;                (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l01332"></a><span class="lineno"> 1332</span>&#160;               </div>
-<div class="line"><a name="l01333"></a><span class="lineno"> 1333</span>&#160;                <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l01334"></a><span class="lineno"> 1334</span>&#160;            }</div>
-<div class="line"><a name="l01335"></a><span class="lineno"> 1335</span>&#160;            <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
-<div class="line"><a name="l01336"></a><span class="lineno"> 1336</span>&#160;            {</div>
-<div class="line"><a name="l01337"></a><span class="lineno"> 1337</span>&#160;                gs_buffer_input[j] = rand() %256;</div>
-<div class="line"><a name="l01338"></a><span class="lineno"> 1338</span>&#160;            }</div>
-<div class="line"><a name="l01339"></a><span class="lineno"> 1339</span>&#160;            </div>
-<div class="line"><a name="l01340"></a><span class="lineno"> 1340</span>&#160;            <span class="comment">/* w25qxx_page_program */</span></div>
-<div class="line"><a name="l01341"></a><span class="lineno"> 1341</span>&#160;            res = <a class="code" href="group__w25qxx__basic__driver.html#ga6280e7e4ab26306436e2c210617a28b3">w25qxx_page_program</a>(&amp;gs_handle, addr, gs_buffer_input, 256);</div>
-<div class="line"><a name="l01342"></a><span class="lineno"> 1342</span>&#160;            <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l01343"></a><span class="lineno"> 1343</span>&#160;            {</div>
-<div class="line"><a name="l01344"></a><span class="lineno"> 1344</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: page program failed.\n&quot;</span>);</div>
-<div class="line"><a name="l01345"></a><span class="lineno"> 1345</span>&#160;                (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l01346"></a><span class="lineno"> 1346</span>&#160;               </div>
-<div class="line"><a name="l01347"></a><span class="lineno"> 1347</span>&#160;                <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l01348"></a><span class="lineno"> 1348</span>&#160;            }</div>
-<div class="line"><a name="l01349"></a><span class="lineno"> 1349</span>&#160;            </div>
-<div class="line"><a name="l01350"></a><span class="lineno"> 1350</span>&#160;            <span class="comment">/* w25qxx_fast_read */</span></div>
-<div class="line"><a name="l01351"></a><span class="lineno"> 1351</span>&#160;            res = <a class="code" href="group__w25qxx__basic__driver.html#gac345ba10af5ad355578fa97697487123">w25qxx_fast_read</a>(&amp;gs_handle, addr, gs_buffer_output, 256);</div>
-<div class="line"><a name="l01352"></a><span class="lineno"> 1352</span>&#160;            <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l01353"></a><span class="lineno"> 1353</span>&#160;            {</div>
-<div class="line"><a name="l01354"></a><span class="lineno"> 1354</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read failed.\n&quot;</span>);</div>
-<div class="line"><a name="l01355"></a><span class="lineno"> 1355</span>&#160;                (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l01356"></a><span class="lineno"> 1356</span>&#160;               </div>
-<div class="line"><a name="l01357"></a><span class="lineno"> 1357</span>&#160;                <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l01358"></a><span class="lineno"> 1358</span>&#160;            }</div>
-<div class="line"><a name="l01359"></a><span class="lineno"> 1359</span>&#160;            <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
-<div class="line"><a name="l01360"></a><span class="lineno"> 1360</span>&#160;            {</div>
-<div class="line"><a name="l01361"></a><span class="lineno"> 1361</span>&#160;                <span class="keywordflow">if</span> (gs_buffer_input[j] != gs_buffer_output[j])</div>
-<div class="line"><a name="l01362"></a><span class="lineno"> 1362</span>&#160;                {</div>
-<div class="line"><a name="l01363"></a><span class="lineno"> 1363</span>&#160;                    <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: write read check failed.\n&quot;</span>);</div>
-<div class="line"><a name="l01364"></a><span class="lineno"> 1364</span>&#160;                    (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l01365"></a><span class="lineno"> 1365</span>&#160;                    </div>
-<div class="line"><a name="l01366"></a><span class="lineno"> 1366</span>&#160;                    <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l01367"></a><span class="lineno"> 1367</span>&#160;                }</div>
-<div class="line"><a name="l01368"></a><span class="lineno"> 1368</span>&#160;            }</div>
-<div class="line"><a name="l01369"></a><span class="lineno"> 1369</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read test passed.\n&quot;</span>);</div>
-<div class="line"><a name="l01370"></a><span class="lineno"> 1370</span>&#160;            </div>
-<div class="line"><a name="l01371"></a><span class="lineno"> 1371</span>&#160;            <span class="comment">/* set address mode 3 byte */</span></div>
-<div class="line"><a name="l01372"></a><span class="lineno"> 1372</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set address mode 3 byte.\n&quot;</span>);</div>
-<div class="line"><a name="l01373"></a><span class="lineno"> 1373</span>&#160;            </div>
-<div class="line"><a name="l01374"></a><span class="lineno"> 1374</span>&#160;            <span class="comment">/* set address mode 3 byte */</span></div>
-<div class="line"><a name="l01375"></a><span class="lineno"> 1375</span>&#160;            res = <a class="code" href="group__w25qxx__basic__driver.html#gad0e125eff304ce66fb3956d2c8c80656">w25qxx_set_address_mode</a>(&amp;gs_handle, <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>);</div>
-<div class="line"><a name="l01376"></a><span class="lineno"> 1376</span>&#160;            <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l01377"></a><span class="lineno"> 1377</span>&#160;            {</div>
-<div class="line"><a name="l01378"></a><span class="lineno"> 1378</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set address mode failed.\n&quot;</span>);</div>
-<div class="line"><a name="l01379"></a><span class="lineno"> 1379</span>&#160;                (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l01380"></a><span class="lineno"> 1380</span>&#160;               </div>
-<div class="line"><a name="l01381"></a><span class="lineno"> 1381</span>&#160;                <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l01382"></a><span class="lineno"> 1382</span>&#160;            }</div>
-<div class="line"><a name="l01383"></a><span class="lineno"> 1383</span>&#160;        }</div>
-<div class="line"><a name="l01384"></a><span class="lineno"> 1384</span>&#160;        </div>
-<div class="line"><a name="l01385"></a><span class="lineno"> 1385</span>&#160;        <span class="keywordflow">if</span> (dual_quad_spi_enable != 0)</div>
-<div class="line"><a name="l01386"></a><span class="lineno"> 1386</span>&#160;        {</div>
-<div class="line"><a name="l01387"></a><span class="lineno"> 1387</span>&#160;            <span class="comment">/* enter to spi mode */</span></div>
-<div class="line"><a name="l01388"></a><span class="lineno"> 1388</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: enter to spi mode.\n&quot;</span>);</div>
-<div class="line"><a name="l01389"></a><span class="lineno"> 1389</span>&#160;            </div>
-<div class="line"><a name="l01390"></a><span class="lineno"> 1390</span>&#160;            <span class="comment">/* exit qspi */</span></div>
-<div class="line"><a name="l01391"></a><span class="lineno"> 1391</span>&#160;            res = <a class="code" href="group__w25qxx__advance__driver.html#ga6b9f75f7426a54ffdb1f5a057f8188f4">w25qxx_exit_qspi_mode</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l01392"></a><span class="lineno"> 1392</span>&#160;            <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l01393"></a><span class="lineno"> 1393</span>&#160;            {</div>
-<div class="line"><a name="l01394"></a><span class="lineno"> 1394</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: exit qspi mode failed.\n&quot;</span>);</div>
-<div class="line"><a name="l01395"></a><span class="lineno"> 1395</span>&#160;                (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l01396"></a><span class="lineno"> 1396</span>&#160;               </div>
-<div class="line"><a name="l01397"></a><span class="lineno"> 1397</span>&#160;                <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l01398"></a><span class="lineno"> 1398</span>&#160;            }</div>
-<div class="line"><a name="l01399"></a><span class="lineno"> 1399</span>&#160;            </div>
-<div class="line"><a name="l01400"></a><span class="lineno"> 1400</span>&#160;            <span class="comment">/* set chip interface spi */</span></div>
-<div class="line"><a name="l01401"></a><span class="lineno"> 1401</span>&#160;            res = <a class="code" href="group__w25qxx__basic__driver.html#ga50a62003d566402d46ada2f272c41eb5">w25qxx_set_interface</a>(&amp;gs_handle, <a class="code" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>);</div>
-<div class="line"><a name="l01402"></a><span class="lineno"> 1402</span>&#160;            <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l01403"></a><span class="lineno"> 1403</span>&#160;            {</div>
-<div class="line"><a name="l01404"></a><span class="lineno"> 1404</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set interface failed.\n&quot;</span>);</div>
-<div class="line"><a name="l01405"></a><span class="lineno"> 1405</span>&#160;               </div>
-<div class="line"><a name="l01406"></a><span class="lineno"> 1406</span>&#160;                <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l01407"></a><span class="lineno"> 1407</span>&#160;            }</div>
-<div class="line"><a name="l01408"></a><span class="lineno"> 1408</span>&#160;            </div>
-<div class="line"><a name="l01409"></a><span class="lineno"> 1409</span>&#160;            <span class="comment">/* random data */</span></div>
-<div class="line"><a name="l01410"></a><span class="lineno"> 1410</span>&#160;            <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
-<div class="line"><a name="l01411"></a><span class="lineno"> 1411</span>&#160;            {</div>
-<div class="line"><a name="l01412"></a><span class="lineno"> 1412</span>&#160;                gs_buffer_input[j] = rand() %256;</div>
-<div class="line"><a name="l01413"></a><span class="lineno"> 1413</span>&#160;            }</div>
-<div class="line"><a name="l01414"></a><span class="lineno"> 1414</span>&#160;            </div>
-<div class="line"><a name="l01415"></a><span class="lineno"> 1415</span>&#160;            <span class="comment">/* w25qxx_sector_erase_4k */</span></div>
-<div class="line"><a name="l01416"></a><span class="lineno"> 1416</span>&#160;            res = <a class="code" href="group__w25qxx__basic__driver.html#ga9a03c51b4c84655350c15fbfce0a6b40">w25qxx_sector_erase_4k</a>(&amp;gs_handle, 0x00000000);</div>
-<div class="line"><a name="l01417"></a><span class="lineno"> 1417</span>&#160;            <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l01418"></a><span class="lineno"> 1418</span>&#160;            {</div>
-<div class="line"><a name="l01419"></a><span class="lineno"> 1419</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: sector erase 4k failed.\n&quot;</span>);</div>
-<div class="line"><a name="l01420"></a><span class="lineno"> 1420</span>&#160;                (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l01421"></a><span class="lineno"> 1421</span>&#160;               </div>
-<div class="line"><a name="l01422"></a><span class="lineno"> 1422</span>&#160;                <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l01423"></a><span class="lineno"> 1423</span>&#160;            }</div>
-<div class="line"><a name="l01424"></a><span class="lineno"> 1424</span>&#160;            </div>
-<div class="line"><a name="l01425"></a><span class="lineno"> 1425</span>&#160;            <span class="comment">/* w25qxx_page_program */</span></div>
-<div class="line"><a name="l01426"></a><span class="lineno"> 1426</span>&#160;            res = <a class="code" href="group__w25qxx__basic__driver.html#ga6280e7e4ab26306436e2c210617a28b3">w25qxx_page_program</a>(&amp;gs_handle, 0x00000000, gs_buffer_input, 256);</div>
-<div class="line"><a name="l01427"></a><span class="lineno"> 1427</span>&#160;            <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l01428"></a><span class="lineno"> 1428</span>&#160;            {</div>
-<div class="line"><a name="l01429"></a><span class="lineno"> 1429</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: page program failed.\n&quot;</span>);</div>
-<div class="line"><a name="l01430"></a><span class="lineno"> 1430</span>&#160;                (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l01431"></a><span class="lineno"> 1431</span>&#160;               </div>
-<div class="line"><a name="l01432"></a><span class="lineno"> 1432</span>&#160;                <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l01433"></a><span class="lineno"> 1433</span>&#160;            }</div>
-<div class="line"><a name="l01434"></a><span class="lineno"> 1434</span>&#160;            </div>
-<div class="line"><a name="l01435"></a><span class="lineno"> 1435</span>&#160;            <span class="comment">/* fast read dual output */</span></div>
-<div class="line"><a name="l01436"></a><span class="lineno"> 1436</span>&#160;            res = <a class="code" href="group__w25qxx__advance__driver.html#ga7a19230ca3916816ea8fb7421483d293">w25qxx_fast_read_dual_output</a>(&amp;gs_handle, 0x00000000, gs_buffer_output, 256);</div>
-<div class="line"><a name="l01437"></a><span class="lineno"> 1437</span>&#160;            <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l01438"></a><span class="lineno"> 1438</span>&#160;            {</div>
-<div class="line"><a name="l01439"></a><span class="lineno"> 1439</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read dual output failed.\n&quot;</span>);</div>
-<div class="line"><a name="l01440"></a><span class="lineno"> 1440</span>&#160;                (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l01441"></a><span class="lineno"> 1441</span>&#160;               </div>
-<div class="line"><a name="l01442"></a><span class="lineno"> 1442</span>&#160;                <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l01443"></a><span class="lineno"> 1443</span>&#160;            }</div>
-<div class="line"><a name="l01444"></a><span class="lineno"> 1444</span>&#160;            <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
-<div class="line"><a name="l01445"></a><span class="lineno"> 1445</span>&#160;            {</div>
-<div class="line"><a name="l01446"></a><span class="lineno"> 1446</span>&#160;                <span class="keywordflow">if</span> (gs_buffer_input[j] != gs_buffer_output[j])</div>
-<div class="line"><a name="l01447"></a><span class="lineno"> 1447</span>&#160;                {</div>
-<div class="line"><a name="l01448"></a><span class="lineno"> 1448</span>&#160;                    <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: write read check failed.\n&quot;</span>);</div>
-<div class="line"><a name="l01449"></a><span class="lineno"> 1449</span>&#160;                    (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l01450"></a><span class="lineno"> 1450</span>&#160;                    </div>
-<div class="line"><a name="l01451"></a><span class="lineno"> 1451</span>&#160;                    <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l01452"></a><span class="lineno"> 1452</span>&#160;                }</div>
-<div class="line"><a name="l01453"></a><span class="lineno"> 1453</span>&#160;            }</div>
-<div class="line"><a name="l01454"></a><span class="lineno"> 1454</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast_read_dual_output check passed.\n&quot;</span>);</div>
-<div class="line"><a name="l01455"></a><span class="lineno"> 1455</span>&#160;            </div>
-<div class="line"><a name="l01456"></a><span class="lineno"> 1456</span>&#160;            <span class="comment">/* fast read quad output */</span></div>
-<div class="line"><a name="l01457"></a><span class="lineno"> 1457</span>&#160;            res = <a class="code" href="group__w25qxx__advance__driver.html#gaf4bfafd1f80aa0316a4b1a15183dcd50">w25qxx_fast_read_quad_output</a>(&amp;gs_handle, 0x00000000, gs_buffer_output, 256);</div>
-<div class="line"><a name="l01458"></a><span class="lineno"> 1458</span>&#160;            <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l01459"></a><span class="lineno"> 1459</span>&#160;            {</div>
-<div class="line"><a name="l01460"></a><span class="lineno"> 1460</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read quad output failed.\n&quot;</span>);</div>
-<div class="line"><a name="l01461"></a><span class="lineno"> 1461</span>&#160;                (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l01462"></a><span class="lineno"> 1462</span>&#160;               </div>
-<div class="line"><a name="l01463"></a><span class="lineno"> 1463</span>&#160;                <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l01464"></a><span class="lineno"> 1464</span>&#160;            }</div>
-<div class="line"><a name="l01465"></a><span class="lineno"> 1465</span>&#160;            <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
-<div class="line"><a name="l01466"></a><span class="lineno"> 1466</span>&#160;            {</div>
-<div class="line"><a name="l01467"></a><span class="lineno"> 1467</span>&#160;                <span class="keywordflow">if</span> (gs_buffer_input[j] != gs_buffer_output[j])</div>
-<div class="line"><a name="l01468"></a><span class="lineno"> 1468</span>&#160;                {</div>
-<div class="line"><a name="l01469"></a><span class="lineno"> 1469</span>&#160;                    <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: write read check failed.\n&quot;</span>);</div>
-<div class="line"><a name="l01470"></a><span class="lineno"> 1470</span>&#160;                    (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l01471"></a><span class="lineno"> 1471</span>&#160;                    </div>
-<div class="line"><a name="l01472"></a><span class="lineno"> 1472</span>&#160;                    <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l01473"></a><span class="lineno"> 1473</span>&#160;                }</div>
-<div class="line"><a name="l01474"></a><span class="lineno"> 1474</span>&#160;            }</div>
-<div class="line"><a name="l01475"></a><span class="lineno"> 1475</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast_read_quad_output check passed.\n&quot;</span>);</div>
-<div class="line"><a name="l01476"></a><span class="lineno"> 1476</span>&#160;            </div>
-<div class="line"><a name="l01477"></a><span class="lineno"> 1477</span>&#160;            <span class="comment">/* fast read dual io */</span></div>
-<div class="line"><a name="l01478"></a><span class="lineno"> 1478</span>&#160;            res = <a class="code" href="group__w25qxx__advance__driver.html#gac894f4650905cba10dd3a31284de6d5e">w25qxx_fast_read_dual_io</a>(&amp;gs_handle, 0x00000000, gs_buffer_output, 256);</div>
-<div class="line"><a name="l01479"></a><span class="lineno"> 1479</span>&#160;            <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l01480"></a><span class="lineno"> 1480</span>&#160;            {</div>
-<div class="line"><a name="l01481"></a><span class="lineno"> 1481</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read dual io failed.\n&quot;</span>);</div>
-<div class="line"><a name="l01482"></a><span class="lineno"> 1482</span>&#160;                (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l01483"></a><span class="lineno"> 1483</span>&#160;               </div>
-<div class="line"><a name="l01484"></a><span class="lineno"> 1484</span>&#160;                <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l01485"></a><span class="lineno"> 1485</span>&#160;            }</div>
-<div class="line"><a name="l01486"></a><span class="lineno"> 1486</span>&#160;            <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
-<div class="line"><a name="l01487"></a><span class="lineno"> 1487</span>&#160;            {</div>
-<div class="line"><a name="l01488"></a><span class="lineno"> 1488</span>&#160;                <span class="keywordflow">if</span> (gs_buffer_input[j] != gs_buffer_output[j])</div>
-<div class="line"><a name="l01489"></a><span class="lineno"> 1489</span>&#160;                {</div>
-<div class="line"><a name="l01490"></a><span class="lineno"> 1490</span>&#160;                    <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: write read check failed.\n&quot;</span>);</div>
-<div class="line"><a name="l01491"></a><span class="lineno"> 1491</span>&#160;                    (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l01492"></a><span class="lineno"> 1492</span>&#160;                    </div>
-<div class="line"><a name="l01493"></a><span class="lineno"> 1493</span>&#160;                    <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l01494"></a><span class="lineno"> 1494</span>&#160;                }</div>
-<div class="line"><a name="l01495"></a><span class="lineno"> 1495</span>&#160;            }</div>
-<div class="line"><a name="l01496"></a><span class="lineno"> 1496</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_fast_read_dual_io check passed.\n&quot;</span>);</div>
-<div class="line"><a name="l01497"></a><span class="lineno"> 1497</span>&#160;            </div>
-<div class="line"><a name="l01498"></a><span class="lineno"> 1498</span>&#160;            <span class="comment">/* fast read quad io */</span></div>
-<div class="line"><a name="l01499"></a><span class="lineno"> 1499</span>&#160;            res = <a class="code" href="group__w25qxx__advance__driver.html#gab97a64bd3776874518f60381d921ae41">w25qxx_fast_read_quad_io</a>(&amp;gs_handle, 0x00000000, gs_buffer_output, 256);</div>
-<div class="line"><a name="l01500"></a><span class="lineno"> 1500</span>&#160;            <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l01501"></a><span class="lineno"> 1501</span>&#160;            {</div>
-<div class="line"><a name="l01502"></a><span class="lineno"> 1502</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read quad io failed.\n&quot;</span>);</div>
-<div class="line"><a name="l01503"></a><span class="lineno"> 1503</span>&#160;                (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l01504"></a><span class="lineno"> 1504</span>&#160;               </div>
-<div class="line"><a name="l01505"></a><span class="lineno"> 1505</span>&#160;                <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l01506"></a><span class="lineno"> 1506</span>&#160;            }</div>
-<div class="line"><a name="l01507"></a><span class="lineno"> 1507</span>&#160;            <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
-<div class="line"><a name="l01508"></a><span class="lineno"> 1508</span>&#160;            {</div>
-<div class="line"><a name="l01509"></a><span class="lineno"> 1509</span>&#160;                <span class="keywordflow">if</span> (gs_buffer_input[j] != gs_buffer_output[j])</div>
-<div class="line"><a name="l01510"></a><span class="lineno"> 1510</span>&#160;                {</div>
-<div class="line"><a name="l01511"></a><span class="lineno"> 1511</span>&#160;                    <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: write read check failed.\n&quot;</span>);</div>
-<div class="line"><a name="l01512"></a><span class="lineno"> 1512</span>&#160;                    (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l01513"></a><span class="lineno"> 1513</span>&#160;                    </div>
-<div class="line"><a name="l01514"></a><span class="lineno"> 1514</span>&#160;                    <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l01515"></a><span class="lineno"> 1515</span>&#160;                }</div>
-<div class="line"><a name="l01516"></a><span class="lineno"> 1516</span>&#160;            }</div>
-<div class="line"><a name="l01517"></a><span class="lineno"> 1517</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_fast_read_quad_io check passed.\n&quot;</span>);</div>
-<div class="line"><a name="l01518"></a><span class="lineno"> 1518</span>&#160;            </div>
-<div class="line"><a name="l01519"></a><span class="lineno"> 1519</span>&#160;            <span class="comment">/* word read quad io */</span></div>
-<div class="line"><a name="l01520"></a><span class="lineno"> 1520</span>&#160;            res = <a class="code" href="group__w25qxx__advance__driver.html#gad97d7e410dd77c49334097a0fd332660">w25qxx_word_read_quad_io</a>(&amp;gs_handle, 0x00000000, gs_buffer_output, 256);</div>
-<div class="line"><a name="l01521"></a><span class="lineno"> 1521</span>&#160;            <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l01522"></a><span class="lineno"> 1522</span>&#160;            {</div>
-<div class="line"><a name="l01523"></a><span class="lineno"> 1523</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: word read quad io failed.\n&quot;</span>);</div>
-<div class="line"><a name="l01524"></a><span class="lineno"> 1524</span>&#160;                (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l01525"></a><span class="lineno"> 1525</span>&#160;               </div>
-<div class="line"><a name="l01526"></a><span class="lineno"> 1526</span>&#160;                <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l01527"></a><span class="lineno"> 1527</span>&#160;            }</div>
-<div class="line"><a name="l01528"></a><span class="lineno"> 1528</span>&#160;            <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
-<div class="line"><a name="l01529"></a><span class="lineno"> 1529</span>&#160;            {</div>
-<div class="line"><a name="l01530"></a><span class="lineno"> 1530</span>&#160;                <span class="keywordflow">if</span> (gs_buffer_input[j] != gs_buffer_output[j])</div>
-<div class="line"><a name="l01531"></a><span class="lineno"> 1531</span>&#160;                {</div>
-<div class="line"><a name="l01532"></a><span class="lineno"> 1532</span>&#160;                    <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: write read check failed.\n&quot;</span>);</div>
-<div class="line"><a name="l01533"></a><span class="lineno"> 1533</span>&#160;                    (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l01534"></a><span class="lineno"> 1534</span>&#160;                    </div>
-<div class="line"><a name="l01535"></a><span class="lineno"> 1535</span>&#160;                    <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l01536"></a><span class="lineno"> 1536</span>&#160;                }</div>
-<div class="line"><a name="l01537"></a><span class="lineno"> 1537</span>&#160;            }</div>
-<div class="line"><a name="l01538"></a><span class="lineno"> 1538</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_word_read_quad_io check passed.\n&quot;</span>);</div>
-<div class="line"><a name="l01539"></a><span class="lineno"> 1539</span>&#160;            </div>
-<div class="line"><a name="l01540"></a><span class="lineno"> 1540</span>&#160;            <span class="comment">/* octal read quad io */</span></div>
-<div class="line"><a name="l01541"></a><span class="lineno"> 1541</span>&#160;            res = <a class="code" href="group__w25qxx__advance__driver.html#ga88a62ec42e86db821ff3f0d3ab541dbb">w25qxx_octal_word_read_quad_io</a>(&amp;gs_handle, 0x00000000, gs_buffer_output, 256);</div>
-<div class="line"><a name="l01542"></a><span class="lineno"> 1542</span>&#160;            <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l01543"></a><span class="lineno"> 1543</span>&#160;            {</div>
-<div class="line"><a name="l01544"></a><span class="lineno"> 1544</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: octal read quad io failed.\n&quot;</span>);</div>
-<div class="line"><a name="l01545"></a><span class="lineno"> 1545</span>&#160;                (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l01546"></a><span class="lineno"> 1546</span>&#160;               </div>
-<div class="line"><a name="l01547"></a><span class="lineno"> 1547</span>&#160;                <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l01548"></a><span class="lineno"> 1548</span>&#160;            }</div>
-<div class="line"><a name="l01549"></a><span class="lineno"> 1549</span>&#160;            <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
-<div class="line"><a name="l01550"></a><span class="lineno"> 1550</span>&#160;            {</div>
-<div class="line"><a name="l01551"></a><span class="lineno"> 1551</span>&#160;                <span class="keywordflow">if</span> (gs_buffer_input[j] != gs_buffer_output[j])</div>
-<div class="line"><a name="l01552"></a><span class="lineno"> 1552</span>&#160;                {</div>
-<div class="line"><a name="l01553"></a><span class="lineno"> 1553</span>&#160;                    <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: write read check failed.\n&quot;</span>);</div>
-<div class="line"><a name="l01554"></a><span class="lineno"> 1554</span>&#160;                    (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l01555"></a><span class="lineno"> 1555</span>&#160;                    </div>
-<div class="line"><a name="l01556"></a><span class="lineno"> 1556</span>&#160;                    <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l01557"></a><span class="lineno"> 1557</span>&#160;                }</div>
-<div class="line"><a name="l01558"></a><span class="lineno"> 1558</span>&#160;            }</div>
-<div class="line"><a name="l01559"></a><span class="lineno"> 1559</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_octal_word_read_quad_io check passed.\n&quot;</span>);</div>
-<div class="line"><a name="l01560"></a><span class="lineno"> 1560</span>&#160;            </div>
-<div class="line"><a name="l01561"></a><span class="lineno"> 1561</span>&#160;            <span class="comment">/* random data */</span></div>
-<div class="line"><a name="l01562"></a><span class="lineno"> 1562</span>&#160;            <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
-<div class="line"><a name="l01563"></a><span class="lineno"> 1563</span>&#160;            {</div>
-<div class="line"><a name="l01564"></a><span class="lineno"> 1564</span>&#160;                gs_buffer_input[j] = rand() %256;</div>
-<div class="line"><a name="l01565"></a><span class="lineno"> 1565</span>&#160;            }</div>
-<div class="line"><a name="l01566"></a><span class="lineno"> 1566</span>&#160;            </div>
-<div class="line"><a name="l01567"></a><span class="lineno"> 1567</span>&#160;            <span class="comment">/* w25qxx_sector_erase_4k */</span></div>
-<div class="line"><a name="l01568"></a><span class="lineno"> 1568</span>&#160;            res = <a class="code" href="group__w25qxx__basic__driver.html#ga9a03c51b4c84655350c15fbfce0a6b40">w25qxx_sector_erase_4k</a>(&amp;gs_handle, 0x00000000);</div>
-<div class="line"><a name="l01569"></a><span class="lineno"> 1569</span>&#160;            <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l01570"></a><span class="lineno"> 1570</span>&#160;            {</div>
-<div class="line"><a name="l01571"></a><span class="lineno"> 1571</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: sector erase 4k failed.\n&quot;</span>);</div>
-<div class="line"><a name="l01572"></a><span class="lineno"> 1572</span>&#160;                (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l01573"></a><span class="lineno"> 1573</span>&#160;               </div>
-<div class="line"><a name="l01574"></a><span class="lineno"> 1574</span>&#160;                <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l01575"></a><span class="lineno"> 1575</span>&#160;            }</div>
-<div class="line"><a name="l01576"></a><span class="lineno"> 1576</span>&#160;            </div>
-<div class="line"><a name="l01577"></a><span class="lineno"> 1577</span>&#160;            <span class="comment">/* w25qxx_page_program_quad_input */</span></div>
-<div class="line"><a name="l01578"></a><span class="lineno"> 1578</span>&#160;            res = <a class="code" href="group__w25qxx__advance__driver.html#ga1f80bbbaaa852eecfffb87737889363d">w25qxx_page_program_quad_input</a>(&amp;gs_handle, 0x00000000, gs_buffer_input, 256);</div>
-<div class="line"><a name="l01579"></a><span class="lineno"> 1579</span>&#160;            <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l01580"></a><span class="lineno"> 1580</span>&#160;            {</div>
-<div class="line"><a name="l01581"></a><span class="lineno"> 1581</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: page program quad input failed.\n&quot;</span>);</div>
-<div class="line"><a name="l01582"></a><span class="lineno"> 1582</span>&#160;                (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l01583"></a><span class="lineno"> 1583</span>&#160;               </div>
-<div class="line"><a name="l01584"></a><span class="lineno"> 1584</span>&#160;                <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l01585"></a><span class="lineno"> 1585</span>&#160;            }</div>
-<div class="line"><a name="l01586"></a><span class="lineno"> 1586</span>&#160;            </div>
-<div class="line"><a name="l01587"></a><span class="lineno"> 1587</span>&#160;            <span class="comment">/* fast read */</span></div>
-<div class="line"><a name="l01588"></a><span class="lineno"> 1588</span>&#160;            res = <a class="code" href="group__w25qxx__basic__driver.html#gac345ba10af5ad355578fa97697487123">w25qxx_fast_read</a>(&amp;gs_handle, 0x00000000, gs_buffer_output, 256);</div>
-<div class="line"><a name="l01589"></a><span class="lineno"> 1589</span>&#160;            <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l01590"></a><span class="lineno"> 1590</span>&#160;            {</div>
-<div class="line"><a name="l01591"></a><span class="lineno"> 1591</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read failed.\n&quot;</span>);</div>
-<div class="line"><a name="l01592"></a><span class="lineno"> 1592</span>&#160;                (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l01593"></a><span class="lineno"> 1593</span>&#160;               </div>
-<div class="line"><a name="l01594"></a><span class="lineno"> 1594</span>&#160;                <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l01595"></a><span class="lineno"> 1595</span>&#160;            }</div>
-<div class="line"><a name="l01596"></a><span class="lineno"> 1596</span>&#160;            <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
-<div class="line"><a name="l01597"></a><span class="lineno"> 1597</span>&#160;            {</div>
-<div class="line"><a name="l01598"></a><span class="lineno"> 1598</span>&#160;                <span class="keywordflow">if</span> (gs_buffer_input[j] != gs_buffer_output[j])</div>
-<div class="line"><a name="l01599"></a><span class="lineno"> 1599</span>&#160;                {</div>
-<div class="line"><a name="l01600"></a><span class="lineno"> 1600</span>&#160;                    <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: write read check failed.\n&quot;</span>);</div>
-<div class="line"><a name="l01601"></a><span class="lineno"> 1601</span>&#160;                    (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l01602"></a><span class="lineno"> 1602</span>&#160;                    </div>
-<div class="line"><a name="l01603"></a><span class="lineno"> 1603</span>&#160;                    <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l01604"></a><span class="lineno"> 1604</span>&#160;                }</div>
-<div class="line"><a name="l01605"></a><span class="lineno"> 1605</span>&#160;            }</div>
-<div class="line"><a name="l01606"></a><span class="lineno"> 1606</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_page_program_quad_input check passed.\n&quot;</span>);</div>
-<div class="line"><a name="l01607"></a><span class="lineno"> 1607</span>&#160;            </div>
-<div class="line"><a name="l01608"></a><span class="lineno"> 1608</span>&#160;            <span class="keywordflow">if</span> (type &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)</div>
-<div class="line"><a name="l01609"></a><span class="lineno"> 1609</span>&#160;            {</div>
-<div class="line"><a name="l01610"></a><span class="lineno"> 1610</span>&#160;                <span class="comment">/* set address mode 4 byte */</span></div>
-<div class="line"><a name="l01611"></a><span class="lineno"> 1611</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set address mode 4 byte.\n&quot;</span>);</div>
-<div class="line"><a name="l01612"></a><span class="lineno"> 1612</span>&#160;                </div>
-<div class="line"><a name="l01613"></a><span class="lineno"> 1613</span>&#160;                <span class="comment">/* set address mode 4 byte */</span></div>
-<div class="line"><a name="l01614"></a><span class="lineno"> 1614</span>&#160;                res = <a class="code" href="group__w25qxx__basic__driver.html#gad0e125eff304ce66fb3956d2c8c80656">w25qxx_set_address_mode</a>(&amp;gs_handle, <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>);</div>
-<div class="line"><a name="l01615"></a><span class="lineno"> 1615</span>&#160;                <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l01616"></a><span class="lineno"> 1616</span>&#160;                {</div>
-<div class="line"><a name="l01617"></a><span class="lineno"> 1617</span>&#160;                    <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set address mode failed.\n&quot;</span>);</div>
-<div class="line"><a name="l01618"></a><span class="lineno"> 1618</span>&#160;                    (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l01619"></a><span class="lineno"> 1619</span>&#160;                   </div>
-<div class="line"><a name="l01620"></a><span class="lineno"> 1620</span>&#160;                    <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l01621"></a><span class="lineno"> 1621</span>&#160;                }</div>
-<div class="line"><a name="l01622"></a><span class="lineno"> 1622</span>&#160;                </div>
-<div class="line"><a name="l01623"></a><span class="lineno"> 1623</span>&#160;                <span class="comment">/* random data */</span></div>
-<div class="line"><a name="l01624"></a><span class="lineno"> 1624</span>&#160;                <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
-<div class="line"><a name="l01625"></a><span class="lineno"> 1625</span>&#160;                {</div>
-<div class="line"><a name="l01626"></a><span class="lineno"> 1626</span>&#160;                    gs_buffer_input[j] = rand() %256;</div>
-<div class="line"><a name="l01627"></a><span class="lineno"> 1627</span>&#160;                }</div>
-<div class="line"><a name="l01628"></a><span class="lineno"> 1628</span>&#160;                </div>
-<div class="line"><a name="l01629"></a><span class="lineno"> 1629</span>&#160;                <span class="comment">/* w25qxx_sector_erase_4k */</span></div>
-<div class="line"><a name="l01630"></a><span class="lineno"> 1630</span>&#160;                res = <a class="code" href="group__w25qxx__basic__driver.html#ga9a03c51b4c84655350c15fbfce0a6b40">w25qxx_sector_erase_4k</a>(&amp;gs_handle, 0x00000000);</div>
-<div class="line"><a name="l01631"></a><span class="lineno"> 1631</span>&#160;                <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l01632"></a><span class="lineno"> 1632</span>&#160;                {</div>
-<div class="line"><a name="l01633"></a><span class="lineno"> 1633</span>&#160;                    <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: sector erase 4k failed.\n&quot;</span>);</div>
-<div class="line"><a name="l01634"></a><span class="lineno"> 1634</span>&#160;                    (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l01635"></a><span class="lineno"> 1635</span>&#160;                   </div>
-<div class="line"><a name="l01636"></a><span class="lineno"> 1636</span>&#160;                    <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l01637"></a><span class="lineno"> 1637</span>&#160;                }</div>
-<div class="line"><a name="l01638"></a><span class="lineno"> 1638</span>&#160;                </div>
-<div class="line"><a name="l01639"></a><span class="lineno"> 1639</span>&#160;                <span class="comment">/* w25qxx_page_program */</span></div>
-<div class="line"><a name="l01640"></a><span class="lineno"> 1640</span>&#160;                res = <a class="code" href="group__w25qxx__basic__driver.html#ga6280e7e4ab26306436e2c210617a28b3">w25qxx_page_program</a>(&amp;gs_handle, 0x00000000, gs_buffer_input, 256);</div>
-<div class="line"><a name="l01641"></a><span class="lineno"> 1641</span>&#160;                <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l01642"></a><span class="lineno"> 1642</span>&#160;                {</div>
-<div class="line"><a name="l01643"></a><span class="lineno"> 1643</span>&#160;                    <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: page program failed.\n&quot;</span>);</div>
-<div class="line"><a name="l01644"></a><span class="lineno"> 1644</span>&#160;                    (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l01645"></a><span class="lineno"> 1645</span>&#160;                   </div>
-<div class="line"><a name="l01646"></a><span class="lineno"> 1646</span>&#160;                    <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l01647"></a><span class="lineno"> 1647</span>&#160;                }</div>
-<div class="line"><a name="l01648"></a><span class="lineno"> 1648</span>&#160;                </div>
-<div class="line"><a name="l01649"></a><span class="lineno"> 1649</span>&#160;                <span class="comment">/* fast read dual output */</span></div>
-<div class="line"><a name="l01650"></a><span class="lineno"> 1650</span>&#160;                res = <a class="code" href="group__w25qxx__advance__driver.html#ga7a19230ca3916816ea8fb7421483d293">w25qxx_fast_read_dual_output</a>(&amp;gs_handle, 0x00000000, gs_buffer_output, 256);</div>
-<div class="line"><a name="l01651"></a><span class="lineno"> 1651</span>&#160;                <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l01652"></a><span class="lineno"> 1652</span>&#160;                {</div>
-<div class="line"><a name="l01653"></a><span class="lineno"> 1653</span>&#160;                    <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read dual output failed.\n&quot;</span>);</div>
-<div class="line"><a name="l01654"></a><span class="lineno"> 1654</span>&#160;                    (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l01655"></a><span class="lineno"> 1655</span>&#160;                   </div>
-<div class="line"><a name="l01656"></a><span class="lineno"> 1656</span>&#160;                    <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l01657"></a><span class="lineno"> 1657</span>&#160;                }</div>
-<div class="line"><a name="l01658"></a><span class="lineno"> 1658</span>&#160;                <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
-<div class="line"><a name="l01659"></a><span class="lineno"> 1659</span>&#160;                {</div>
-<div class="line"><a name="l01660"></a><span class="lineno"> 1660</span>&#160;                    <span class="keywordflow">if</span> (gs_buffer_input[j] != gs_buffer_output[j])</div>
-<div class="line"><a name="l01661"></a><span class="lineno"> 1661</span>&#160;                    {</div>
-<div class="line"><a name="l01662"></a><span class="lineno"> 1662</span>&#160;                        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: write read check failed.\n&quot;</span>);</div>
-<div class="line"><a name="l01663"></a><span class="lineno"> 1663</span>&#160;                        (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l01664"></a><span class="lineno"> 1664</span>&#160;                        </div>
-<div class="line"><a name="l01665"></a><span class="lineno"> 1665</span>&#160;                        <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l01666"></a><span class="lineno"> 1666</span>&#160;                    }</div>
-<div class="line"><a name="l01667"></a><span class="lineno"> 1667</span>&#160;                }</div>
-<div class="line"><a name="l01668"></a><span class="lineno"> 1668</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast_read_dual_output check passed.\n&quot;</span>);</div>
-<div class="line"><a name="l01669"></a><span class="lineno"> 1669</span>&#160;                </div>
-<div class="line"><a name="l01670"></a><span class="lineno"> 1670</span>&#160;                <span class="comment">/* fast read quad output */</span></div>
-<div class="line"><a name="l01671"></a><span class="lineno"> 1671</span>&#160;                res = <a class="code" href="group__w25qxx__advance__driver.html#gaf4bfafd1f80aa0316a4b1a15183dcd50">w25qxx_fast_read_quad_output</a>(&amp;gs_handle, 0x00000000, gs_buffer_output, 256);</div>
-<div class="line"><a name="l01672"></a><span class="lineno"> 1672</span>&#160;                <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l01673"></a><span class="lineno"> 1673</span>&#160;                {</div>
-<div class="line"><a name="l01674"></a><span class="lineno"> 1674</span>&#160;                    <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read quad output failed.\n&quot;</span>);</div>
-<div class="line"><a name="l01675"></a><span class="lineno"> 1675</span>&#160;                    (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l01676"></a><span class="lineno"> 1676</span>&#160;                   </div>
-<div class="line"><a name="l01677"></a><span class="lineno"> 1677</span>&#160;                    <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l01678"></a><span class="lineno"> 1678</span>&#160;                }</div>
-<div class="line"><a name="l01679"></a><span class="lineno"> 1679</span>&#160;                <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
-<div class="line"><a name="l01680"></a><span class="lineno"> 1680</span>&#160;                {</div>
-<div class="line"><a name="l01681"></a><span class="lineno"> 1681</span>&#160;                    <span class="keywordflow">if</span> (gs_buffer_input[j] != gs_buffer_output[j])</div>
-<div class="line"><a name="l01682"></a><span class="lineno"> 1682</span>&#160;                    {</div>
-<div class="line"><a name="l01683"></a><span class="lineno"> 1683</span>&#160;                        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: write read check failed.\n&quot;</span>);</div>
-<div class="line"><a name="l01684"></a><span class="lineno"> 1684</span>&#160;                        (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l01685"></a><span class="lineno"> 1685</span>&#160;                        </div>
-<div class="line"><a name="l01686"></a><span class="lineno"> 1686</span>&#160;                        <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l01687"></a><span class="lineno"> 1687</span>&#160;                    }</div>
-<div class="line"><a name="l01688"></a><span class="lineno"> 1688</span>&#160;                }</div>
-<div class="line"><a name="l01689"></a><span class="lineno"> 1689</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast_read_quad_output check passed.\n&quot;</span>);</div>
-<div class="line"><a name="l01690"></a><span class="lineno"> 1690</span>&#160;                </div>
-<div class="line"><a name="l01691"></a><span class="lineno"> 1691</span>&#160;                <span class="comment">/* fast read dual io */</span></div>
-<div class="line"><a name="l01692"></a><span class="lineno"> 1692</span>&#160;                res = <a class="code" href="group__w25qxx__advance__driver.html#gac894f4650905cba10dd3a31284de6d5e">w25qxx_fast_read_dual_io</a>(&amp;gs_handle, 0x00000000, gs_buffer_output, 256);</div>
-<div class="line"><a name="l01693"></a><span class="lineno"> 1693</span>&#160;                <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l01694"></a><span class="lineno"> 1694</span>&#160;                {</div>
-<div class="line"><a name="l01695"></a><span class="lineno"> 1695</span>&#160;                    <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read dual io failed.\n&quot;</span>);</div>
-<div class="line"><a name="l01696"></a><span class="lineno"> 1696</span>&#160;                    (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l01697"></a><span class="lineno"> 1697</span>&#160;                   </div>
-<div class="line"><a name="l01698"></a><span class="lineno"> 1698</span>&#160;                    <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l01699"></a><span class="lineno"> 1699</span>&#160;                }</div>
-<div class="line"><a name="l01700"></a><span class="lineno"> 1700</span>&#160;                <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
-<div class="line"><a name="l01701"></a><span class="lineno"> 1701</span>&#160;                {</div>
-<div class="line"><a name="l01702"></a><span class="lineno"> 1702</span>&#160;                    <span class="keywordflow">if</span> (gs_buffer_input[j] != gs_buffer_output[j])</div>
-<div class="line"><a name="l01703"></a><span class="lineno"> 1703</span>&#160;                    {</div>
-<div class="line"><a name="l01704"></a><span class="lineno"> 1704</span>&#160;                        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: write read check failed.\n&quot;</span>);</div>
-<div class="line"><a name="l01705"></a><span class="lineno"> 1705</span>&#160;                        (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l01706"></a><span class="lineno"> 1706</span>&#160;                        </div>
-<div class="line"><a name="l01707"></a><span class="lineno"> 1707</span>&#160;                        <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l01708"></a><span class="lineno"> 1708</span>&#160;                    }</div>
-<div class="line"><a name="l01709"></a><span class="lineno"> 1709</span>&#160;                }</div>
-<div class="line"><a name="l01710"></a><span class="lineno"> 1710</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_fast_read_dual_io check passed.\n&quot;</span>);</div>
-<div class="line"><a name="l01711"></a><span class="lineno"> 1711</span>&#160;                </div>
-<div class="line"><a name="l01712"></a><span class="lineno"> 1712</span>&#160;                <span class="comment">/* fast read quad io */</span></div>
-<div class="line"><a name="l01713"></a><span class="lineno"> 1713</span>&#160;                res = <a class="code" href="group__w25qxx__advance__driver.html#gab97a64bd3776874518f60381d921ae41">w25qxx_fast_read_quad_io</a>(&amp;gs_handle, 0x00000000, gs_buffer_output, 256);</div>
-<div class="line"><a name="l01714"></a><span class="lineno"> 1714</span>&#160;                <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l01715"></a><span class="lineno"> 1715</span>&#160;                {</div>
-<div class="line"><a name="l01716"></a><span class="lineno"> 1716</span>&#160;                    <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read quad io failed.\n&quot;</span>);</div>
-<div class="line"><a name="l01717"></a><span class="lineno"> 1717</span>&#160;                    (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l01718"></a><span class="lineno"> 1718</span>&#160;                   </div>
-<div class="line"><a name="l01719"></a><span class="lineno"> 1719</span>&#160;                    <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l01720"></a><span class="lineno"> 1720</span>&#160;                }</div>
-<div class="line"><a name="l01721"></a><span class="lineno"> 1721</span>&#160;                <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
-<div class="line"><a name="l01722"></a><span class="lineno"> 1722</span>&#160;                {</div>
-<div class="line"><a name="l01723"></a><span class="lineno"> 1723</span>&#160;                    <span class="keywordflow">if</span> (gs_buffer_input[j] != gs_buffer_output[j])</div>
-<div class="line"><a name="l01724"></a><span class="lineno"> 1724</span>&#160;                    {</div>
-<div class="line"><a name="l01725"></a><span class="lineno"> 1725</span>&#160;                        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: write read check failed.\n&quot;</span>);</div>
-<div class="line"><a name="l01726"></a><span class="lineno"> 1726</span>&#160;                        (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l01727"></a><span class="lineno"> 1727</span>&#160;                        </div>
-<div class="line"><a name="l01728"></a><span class="lineno"> 1728</span>&#160;                        <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l01729"></a><span class="lineno"> 1729</span>&#160;                    }</div>
-<div class="line"><a name="l01730"></a><span class="lineno"> 1730</span>&#160;                }</div>
-<div class="line"><a name="l01731"></a><span class="lineno"> 1731</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_fast_read_quad_io check passed.\n&quot;</span>);</div>
-<div class="line"><a name="l01732"></a><span class="lineno"> 1732</span>&#160;                </div>
-<div class="line"><a name="l01733"></a><span class="lineno"> 1733</span>&#160;                <span class="comment">/* word read quad io */</span></div>
-<div class="line"><a name="l01734"></a><span class="lineno"> 1734</span>&#160;                res = <a class="code" href="group__w25qxx__advance__driver.html#gad97d7e410dd77c49334097a0fd332660">w25qxx_word_read_quad_io</a>(&amp;gs_handle, 0x00000000, gs_buffer_output, 256);</div>
-<div class="line"><a name="l01735"></a><span class="lineno"> 1735</span>&#160;                <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l01736"></a><span class="lineno"> 1736</span>&#160;                {</div>
-<div class="line"><a name="l01737"></a><span class="lineno"> 1737</span>&#160;                    <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: word read quad io failed.\n&quot;</span>);</div>
-<div class="line"><a name="l01738"></a><span class="lineno"> 1738</span>&#160;                    (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l01739"></a><span class="lineno"> 1739</span>&#160;                   </div>
-<div class="line"><a name="l01740"></a><span class="lineno"> 1740</span>&#160;                    <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l01741"></a><span class="lineno"> 1741</span>&#160;                }</div>
-<div class="line"><a name="l01742"></a><span class="lineno"> 1742</span>&#160;                <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
-<div class="line"><a name="l01743"></a><span class="lineno"> 1743</span>&#160;                {</div>
-<div class="line"><a name="l01744"></a><span class="lineno"> 1744</span>&#160;                    <span class="keywordflow">if</span> (gs_buffer_input[j] != gs_buffer_output[j])</div>
-<div class="line"><a name="l01745"></a><span class="lineno"> 1745</span>&#160;                    {</div>
-<div class="line"><a name="l01746"></a><span class="lineno"> 1746</span>&#160;                        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: write read check failed.\n&quot;</span>);</div>
-<div class="line"><a name="l01747"></a><span class="lineno"> 1747</span>&#160;                        (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l01748"></a><span class="lineno"> 1748</span>&#160;                        </div>
-<div class="line"><a name="l01749"></a><span class="lineno"> 1749</span>&#160;                        <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l01750"></a><span class="lineno"> 1750</span>&#160;                    }</div>
-<div class="line"><a name="l01751"></a><span class="lineno"> 1751</span>&#160;                }</div>
-<div class="line"><a name="l01752"></a><span class="lineno"> 1752</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_word_read_quad_io check passed.\n&quot;</span>);</div>
-<div class="line"><a name="l01753"></a><span class="lineno"> 1753</span>&#160;                </div>
-<div class="line"><a name="l01754"></a><span class="lineno"> 1754</span>&#160;                <span class="comment">/* octal read quad io */</span></div>
-<div class="line"><a name="l01755"></a><span class="lineno"> 1755</span>&#160;                res = <a class="code" href="group__w25qxx__advance__driver.html#ga88a62ec42e86db821ff3f0d3ab541dbb">w25qxx_octal_word_read_quad_io</a>(&amp;gs_handle, 0x00000000, gs_buffer_output, 256);</div>
-<div class="line"><a name="l01756"></a><span class="lineno"> 1756</span>&#160;                <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l01757"></a><span class="lineno"> 1757</span>&#160;                {</div>
-<div class="line"><a name="l01758"></a><span class="lineno"> 1758</span>&#160;                    <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: octal read quad io failed.\n&quot;</span>);</div>
-<div class="line"><a name="l01759"></a><span class="lineno"> 1759</span>&#160;                    (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l01760"></a><span class="lineno"> 1760</span>&#160;                   </div>
-<div class="line"><a name="l01761"></a><span class="lineno"> 1761</span>&#160;                    <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l01762"></a><span class="lineno"> 1762</span>&#160;                }</div>
-<div class="line"><a name="l01763"></a><span class="lineno"> 1763</span>&#160;                <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
-<div class="line"><a name="l01764"></a><span class="lineno"> 1764</span>&#160;                {</div>
-<div class="line"><a name="l01765"></a><span class="lineno"> 1765</span>&#160;                    <span class="keywordflow">if</span> (gs_buffer_input[j] != gs_buffer_output[j])</div>
-<div class="line"><a name="l01766"></a><span class="lineno"> 1766</span>&#160;                    {</div>
-<div class="line"><a name="l01767"></a><span class="lineno"> 1767</span>&#160;                        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: write read check failed.\n&quot;</span>);</div>
-<div class="line"><a name="l01768"></a><span class="lineno"> 1768</span>&#160;                        (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l01769"></a><span class="lineno"> 1769</span>&#160;                        </div>
-<div class="line"><a name="l01770"></a><span class="lineno"> 1770</span>&#160;                        <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l01771"></a><span class="lineno"> 1771</span>&#160;                    }</div>
-<div class="line"><a name="l01772"></a><span class="lineno"> 1772</span>&#160;                }</div>
-<div class="line"><a name="l01773"></a><span class="lineno"> 1773</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_octal_word_read_quad_io check passed.\n&quot;</span>);</div>
-<div class="line"><a name="l01774"></a><span class="lineno"> 1774</span>&#160;                </div>
-<div class="line"><a name="l01775"></a><span class="lineno"> 1775</span>&#160;                <span class="comment">/* random data */</span></div>
-<div class="line"><a name="l01776"></a><span class="lineno"> 1776</span>&#160;                <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
-<div class="line"><a name="l01777"></a><span class="lineno"> 1777</span>&#160;                {</div>
-<div class="line"><a name="l01778"></a><span class="lineno"> 1778</span>&#160;                    gs_buffer_input[j] = rand() %256;</div>
-<div class="line"><a name="l01779"></a><span class="lineno"> 1779</span>&#160;                }</div>
-<div class="line"><a name="l01780"></a><span class="lineno"> 1780</span>&#160;                </div>
-<div class="line"><a name="l01781"></a><span class="lineno"> 1781</span>&#160;                <span class="comment">/* w25qxx_sector_erase_4k */</span></div>
-<div class="line"><a name="l01782"></a><span class="lineno"> 1782</span>&#160;                res = <a class="code" href="group__w25qxx__basic__driver.html#ga9a03c51b4c84655350c15fbfce0a6b40">w25qxx_sector_erase_4k</a>(&amp;gs_handle, 0x00000000);</div>
-<div class="line"><a name="l01783"></a><span class="lineno"> 1783</span>&#160;                <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l01784"></a><span class="lineno"> 1784</span>&#160;                {</div>
-<div class="line"><a name="l01785"></a><span class="lineno"> 1785</span>&#160;                    <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: sector erase 4k failed.\n&quot;</span>);</div>
-<div class="line"><a name="l01786"></a><span class="lineno"> 1786</span>&#160;                    (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l01787"></a><span class="lineno"> 1787</span>&#160;                   </div>
-<div class="line"><a name="l01788"></a><span class="lineno"> 1788</span>&#160;                    <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l01789"></a><span class="lineno"> 1789</span>&#160;                }</div>
-<div class="line"><a name="l01790"></a><span class="lineno"> 1790</span>&#160;                </div>
-<div class="line"><a name="l01791"></a><span class="lineno"> 1791</span>&#160;                <span class="comment">/* w25qxx_page_program_quad_input */</span></div>
-<div class="line"><a name="l01792"></a><span class="lineno"> 1792</span>&#160;                res = <a class="code" href="group__w25qxx__advance__driver.html#ga1f80bbbaaa852eecfffb87737889363d">w25qxx_page_program_quad_input</a>(&amp;gs_handle, 0x00000000, gs_buffer_input, 256);</div>
-<div class="line"><a name="l01793"></a><span class="lineno"> 1793</span>&#160;                <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l01794"></a><span class="lineno"> 1794</span>&#160;                {</div>
-<div class="line"><a name="l01795"></a><span class="lineno"> 1795</span>&#160;                    <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: page program quad input failed.\n&quot;</span>);</div>
-<div class="line"><a name="l01796"></a><span class="lineno"> 1796</span>&#160;                    (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l01797"></a><span class="lineno"> 1797</span>&#160;                   </div>
-<div class="line"><a name="l01798"></a><span class="lineno"> 1798</span>&#160;                    <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l01799"></a><span class="lineno"> 1799</span>&#160;                }</div>
-<div class="line"><a name="l01800"></a><span class="lineno"> 1800</span>&#160;                </div>
-<div class="line"><a name="l01801"></a><span class="lineno"> 1801</span>&#160;                <span class="comment">/* fast read */</span></div>
-<div class="line"><a name="l01802"></a><span class="lineno"> 1802</span>&#160;                res = <a class="code" href="group__w25qxx__basic__driver.html#gac345ba10af5ad355578fa97697487123">w25qxx_fast_read</a>(&amp;gs_handle, 0x00000000, gs_buffer_output, 256);</div>
-<div class="line"><a name="l01803"></a><span class="lineno"> 1803</span>&#160;                <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l01804"></a><span class="lineno"> 1804</span>&#160;                {</div>
-<div class="line"><a name="l01805"></a><span class="lineno"> 1805</span>&#160;                    <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read failed.\n&quot;</span>);</div>
-<div class="line"><a name="l01806"></a><span class="lineno"> 1806</span>&#160;                    (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l01807"></a><span class="lineno"> 1807</span>&#160;                   </div>
-<div class="line"><a name="l01808"></a><span class="lineno"> 1808</span>&#160;                    <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l01809"></a><span class="lineno"> 1809</span>&#160;                }</div>
-<div class="line"><a name="l01810"></a><span class="lineno"> 1810</span>&#160;                <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
-<div class="line"><a name="l01811"></a><span class="lineno"> 1811</span>&#160;                {</div>
-<div class="line"><a name="l01812"></a><span class="lineno"> 1812</span>&#160;                    <span class="keywordflow">if</span> (gs_buffer_input[j] != gs_buffer_output[j])</div>
-<div class="line"><a name="l01813"></a><span class="lineno"> 1813</span>&#160;                    {</div>
-<div class="line"><a name="l01814"></a><span class="lineno"> 1814</span>&#160;                        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: write read check failed.\n&quot;</span>);</div>
-<div class="line"><a name="l01815"></a><span class="lineno"> 1815</span>&#160;                        (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l01816"></a><span class="lineno"> 1816</span>&#160;                        </div>
-<div class="line"><a name="l01817"></a><span class="lineno"> 1817</span>&#160;                        <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l01818"></a><span class="lineno"> 1818</span>&#160;                    }</div>
-<div class="line"><a name="l01819"></a><span class="lineno"> 1819</span>&#160;                }</div>
-<div class="line"><a name="l01820"></a><span class="lineno"> 1820</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_page_program_quad_input check passed.\n&quot;</span>);</div>
-<div class="line"><a name="l01821"></a><span class="lineno"> 1821</span>&#160;                </div>
-<div class="line"><a name="l01822"></a><span class="lineno"> 1822</span>&#160;                <span class="comment">/* set address mode 3 byte */</span></div>
-<div class="line"><a name="l01823"></a><span class="lineno"> 1823</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set address mode 3 byte.\n&quot;</span>);</div>
-<div class="line"><a name="l01824"></a><span class="lineno"> 1824</span>&#160;                </div>
-<div class="line"><a name="l01825"></a><span class="lineno"> 1825</span>&#160;                <span class="comment">/* set address mode 3 byte */</span></div>
-<div class="line"><a name="l01826"></a><span class="lineno"> 1826</span>&#160;                res = <a class="code" href="group__w25qxx__basic__driver.html#gad0e125eff304ce66fb3956d2c8c80656">w25qxx_set_address_mode</a>(&amp;gs_handle, <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>);</div>
-<div class="line"><a name="l01827"></a><span class="lineno"> 1827</span>&#160;                <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l01828"></a><span class="lineno"> 1828</span>&#160;                {</div>
-<div class="line"><a name="l01829"></a><span class="lineno"> 1829</span>&#160;                    <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set address mode failed.\n&quot;</span>);</div>
-<div class="line"><a name="l01830"></a><span class="lineno"> 1830</span>&#160;                    (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l01831"></a><span class="lineno"> 1831</span>&#160;                   </div>
-<div class="line"><a name="l01832"></a><span class="lineno"> 1832</span>&#160;                    <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l01833"></a><span class="lineno"> 1833</span>&#160;                }</div>
-<div class="line"><a name="l01834"></a><span class="lineno"> 1834</span>&#160;            }</div>
-<div class="line"><a name="l01835"></a><span class="lineno"> 1835</span>&#160;            </div>
-<div class="line"><a name="l01836"></a><span class="lineno"> 1836</span>&#160;            <span class="comment">/* enter to qspi mode */</span></div>
-<div class="line"><a name="l01837"></a><span class="lineno"> 1837</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: enter to qspi mode.\n&quot;</span>);</div>
-<div class="line"><a name="l01838"></a><span class="lineno"> 1838</span>&#160;            </div>
-<div class="line"><a name="l01839"></a><span class="lineno"> 1839</span>&#160;            <span class="comment">/* enter qspi */</span></div>
-<div class="line"><a name="l01840"></a><span class="lineno"> 1840</span>&#160;            res = <a class="code" href="group__w25qxx__advance__driver.html#gaa5ab3548707a95ded115255432224c5a">w25qxx_enter_qspi_mode</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l01841"></a><span class="lineno"> 1841</span>&#160;            <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l01842"></a><span class="lineno"> 1842</span>&#160;            {</div>
-<div class="line"><a name="l01843"></a><span class="lineno"> 1843</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: enter qspi mode failed.\n&quot;</span>);</div>
-<div class="line"><a name="l01844"></a><span class="lineno"> 1844</span>&#160;                (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l01845"></a><span class="lineno"> 1845</span>&#160;               </div>
-<div class="line"><a name="l01846"></a><span class="lineno"> 1846</span>&#160;                <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l01847"></a><span class="lineno"> 1847</span>&#160;            }</div>
-<div class="line"><a name="l01848"></a><span class="lineno"> 1848</span>&#160;            </div>
-<div class="line"><a name="l01849"></a><span class="lineno"> 1849</span>&#160;            <span class="comment">/* set chip interface spi */</span></div>
-<div class="line"><a name="l01850"></a><span class="lineno"> 1850</span>&#160;            res = <a class="code" href="group__w25qxx__basic__driver.html#ga50a62003d566402d46ada2f272c41eb5">w25qxx_set_interface</a>(&amp;gs_handle, <a class="code" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2fea895dcb5c91da89fad1c12161ffd2d5d4">W25QXX_INTERFACE_QSPI</a>);</div>
-<div class="line"><a name="l01851"></a><span class="lineno"> 1851</span>&#160;            <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l01852"></a><span class="lineno"> 1852</span>&#160;            {</div>
-<div class="line"><a name="l01853"></a><span class="lineno"> 1853</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set interface failed.\n&quot;</span>);</div>
-<div class="line"><a name="l01854"></a><span class="lineno"> 1854</span>&#160;               </div>
-<div class="line"><a name="l01855"></a><span class="lineno"> 1855</span>&#160;                <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l01856"></a><span class="lineno"> 1856</span>&#160;            }</div>
-<div class="line"><a name="l01857"></a><span class="lineno"> 1857</span>&#160;        }</div>
-<div class="line"><a name="l01858"></a><span class="lineno"> 1858</span>&#160;        </div>
-<div class="line"><a name="l01859"></a><span class="lineno"> 1859</span>&#160;        <span class="comment">/* w25qxx_set_read_parameters test */</span></div>
-<div class="line"><a name="l01860"></a><span class="lineno"> 1860</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_set_read_parameters test.\n&quot;</span>);</div>
-<div class="line"><a name="l01861"></a><span class="lineno"> 1861</span>&#160;        </div>
-<div class="line"><a name="l01862"></a><span class="lineno"> 1862</span>&#160;        <span class="comment">/* 8 dummy max 80MHz test */</span></div>
-<div class="line"><a name="l01863"></a><span class="lineno"> 1863</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set 8 dummy max 80MHz test.\n&quot;</span>);</div>
-<div class="line"><a name="l01864"></a><span class="lineno"> 1864</span>&#160;        </div>
-<div class="line"><a name="l01865"></a><span class="lineno"> 1865</span>&#160;        res = <a class="code" href="group__w25qxx__advance__driver.html#ga9ad10781d888b32b43b9eba45d049624">w25qxx_set_read_parameters</a>(&amp;gs_handle, <a class="code" href="group__w25qxx__advance__driver.html#gga6ff284154302248f00db269146545443ade1d3511f15c7d92de8c5d8967c471c3">W25QXX_QSPI_READ_DUMMY_8_80MHZ</a>, <a class="code" href="group__w25qxx__advance__driver.html#gga2fd3023819e1aebe089a4a72eb136da3a5b8fa1026c564fe83f3f0f0edb89d1dd">W25QXX_QSPI_READ_WRAP_LENGTH_8_BYTE</a>);</div>
-<div class="line"><a name="l01866"></a><span class="lineno"> 1866</span>&#160;        <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l01867"></a><span class="lineno"> 1867</span>&#160;        {</div>
-<div class="line"><a name="l01868"></a><span class="lineno"> 1868</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set read parameters.\n&quot;</span>);</div>
-<div class="line"><a name="l01869"></a><span class="lineno"> 1869</span>&#160;           </div>
-<div class="line"><a name="l01870"></a><span class="lineno"> 1870</span>&#160;            <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l01871"></a><span class="lineno"> 1871</span>&#160;        }</div>
-<div class="line"><a name="l01872"></a><span class="lineno"> 1872</span>&#160;        </div>
-<div class="line"><a name="l01873"></a><span class="lineno"> 1873</span>&#160;        <span class="keywordflow">for</span> (addr = 0; addr &lt; size; addr += step)</div>
-<div class="line"><a name="l01874"></a><span class="lineno"> 1874</span>&#160;        {</div>
-<div class="line"><a name="l01875"></a><span class="lineno"> 1875</span>&#160;            <span class="keywordflow">for</span> (j = 0; j &lt; 600; j++)</div>
-<div class="line"><a name="l01876"></a><span class="lineno"> 1876</span>&#160;            {</div>
-<div class="line"><a name="l01877"></a><span class="lineno"> 1877</span>&#160;                gs_buffer_input[j] = rand() %256;</div>
-<div class="line"><a name="l01878"></a><span class="lineno"> 1878</span>&#160;            }</div>
-<div class="line"><a name="l01879"></a><span class="lineno"> 1879</span>&#160;            res = <a class="code" href="group__w25qxx__basic__driver.html#gaaee8264d840e51460821cb6e609338ee">w25qxx_write</a>(&amp;gs_handle, addr, gs_buffer_input, 600);</div>
-<div class="line"><a name="l01880"></a><span class="lineno"> 1880</span>&#160;            <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l01881"></a><span class="lineno"> 1881</span>&#160;            {</div>
-<div class="line"><a name="l01882"></a><span class="lineno"> 1882</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: write failed.\n&quot;</span>);</div>
-<div class="line"><a name="l01883"></a><span class="lineno"> 1883</span>&#160;                (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l01884"></a><span class="lineno"> 1884</span>&#160;               </div>
-<div class="line"><a name="l01885"></a><span class="lineno"> 1885</span>&#160;                <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l01886"></a><span class="lineno"> 1886</span>&#160;            }</div>
-<div class="line"><a name="l01887"></a><span class="lineno"> 1887</span>&#160;            res = <a class="code" href="group__w25qxx__basic__driver.html#gae7479fc9ce911a52e3c5b6f1a615b879">w25qxx_read</a>(&amp;gs_handle, addr, gs_buffer_output, 600);</div>
-<div class="line"><a name="l01888"></a><span class="lineno"> 1888</span>&#160;            <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l01889"></a><span class="lineno"> 1889</span>&#160;            {</div>
-<div class="line"><a name="l01890"></a><span class="lineno"> 1890</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: read failed.\n&quot;</span>);</div>
-<div class="line"><a name="l01891"></a><span class="lineno"> 1891</span>&#160;                (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l01892"></a><span class="lineno"> 1892</span>&#160;               </div>
-<div class="line"><a name="l01893"></a><span class="lineno"> 1893</span>&#160;                <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l01894"></a><span class="lineno"> 1894</span>&#160;            }</div>
-<div class="line"><a name="l01895"></a><span class="lineno"> 1895</span>&#160;            <span class="keywordflow">for</span> (j = 0; j &lt; 600; j++)</div>
-<div class="line"><a name="l01896"></a><span class="lineno"> 1896</span>&#160;            {</div>
-<div class="line"><a name="l01897"></a><span class="lineno"> 1897</span>&#160;                <span class="keywordflow">if</span> (gs_buffer_input[j] != gs_buffer_output[j])</div>
-<div class="line"><a name="l01898"></a><span class="lineno"> 1898</span>&#160;                {</div>
-<div class="line"><a name="l01899"></a><span class="lineno"> 1899</span>&#160;                    <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: write read check failed.\n&quot;</span>);</div>
-<div class="line"><a name="l01900"></a><span class="lineno"> 1900</span>&#160;                    (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l01901"></a><span class="lineno"> 1901</span>&#160;                    </div>
-<div class="line"><a name="l01902"></a><span class="lineno"> 1902</span>&#160;                    <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l01903"></a><span class="lineno"> 1903</span>&#160;                }</div>
-<div class="line"><a name="l01904"></a><span class="lineno"> 1904</span>&#160;            }</div>
-<div class="line"><a name="l01905"></a><span class="lineno"> 1905</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: 0x%08X/0x%08X successful.\n&quot;</span>, addr, size);</div>
-<div class="line"><a name="l01906"></a><span class="lineno"> 1906</span>&#160;        }</div>
-<div class="line"><a name="l01907"></a><span class="lineno"> 1907</span>&#160;        </div>
-<div class="line"><a name="l01908"></a><span class="lineno"> 1908</span>&#160;        <span class="comment">/* 6 dummy max 80MHz test */</span></div>
-<div class="line"><a name="l01909"></a><span class="lineno"> 1909</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set 6 dummy max 80MHz test.\n&quot;</span>);</div>
-<div class="line"><a name="l01910"></a><span class="lineno"> 1910</span>&#160;        </div>
-<div class="line"><a name="l01911"></a><span class="lineno"> 1911</span>&#160;        res = <a class="code" href="group__w25qxx__advance__driver.html#ga9ad10781d888b32b43b9eba45d049624">w25qxx_set_read_parameters</a>(&amp;gs_handle, <a class="code" href="group__w25qxx__advance__driver.html#gga6ff284154302248f00db269146545443a78393debe12bbb3efb710e38e3c1d550">W25QXX_QSPI_READ_DUMMY_6_80MHZ</a>, <a class="code" href="group__w25qxx__advance__driver.html#gga2fd3023819e1aebe089a4a72eb136da3a5b8fa1026c564fe83f3f0f0edb89d1dd">W25QXX_QSPI_READ_WRAP_LENGTH_8_BYTE</a>);</div>
-<div class="line"><a name="l01912"></a><span class="lineno"> 1912</span>&#160;        <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l01913"></a><span class="lineno"> 1913</span>&#160;        {</div>
-<div class="line"><a name="l01914"></a><span class="lineno"> 1914</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set read parameters.\n&quot;</span>);</div>
-<div class="line"><a name="l01915"></a><span class="lineno"> 1915</span>&#160;           </div>
-<div class="line"><a name="l01916"></a><span class="lineno"> 1916</span>&#160;            <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l01917"></a><span class="lineno"> 1917</span>&#160;        }</div>
-<div class="line"><a name="l01918"></a><span class="lineno"> 1918</span>&#160;        </div>
-<div class="line"><a name="l01919"></a><span class="lineno"> 1919</span>&#160;        <span class="keywordflow">for</span> (addr = 0; addr &lt; size; addr += step)</div>
-<div class="line"><a name="l01920"></a><span class="lineno"> 1920</span>&#160;        {</div>
-<div class="line"><a name="l01921"></a><span class="lineno"> 1921</span>&#160;            <span class="keywordflow">for</span> (j = 0; j &lt; 600; j++)</div>
-<div class="line"><a name="l01922"></a><span class="lineno"> 1922</span>&#160;            {</div>
-<div class="line"><a name="l01923"></a><span class="lineno"> 1923</span>&#160;                gs_buffer_input[j] = rand() %256;</div>
-<div class="line"><a name="l01924"></a><span class="lineno"> 1924</span>&#160;            }</div>
-<div class="line"><a name="l01925"></a><span class="lineno"> 1925</span>&#160;            res = <a class="code" href="group__w25qxx__basic__driver.html#gaaee8264d840e51460821cb6e609338ee">w25qxx_write</a>(&amp;gs_handle, addr, gs_buffer_input, 600);</div>
-<div class="line"><a name="l01926"></a><span class="lineno"> 1926</span>&#160;            <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l01927"></a><span class="lineno"> 1927</span>&#160;            {</div>
-<div class="line"><a name="l01928"></a><span class="lineno"> 1928</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: write failed.\n&quot;</span>);</div>
-<div class="line"><a name="l01929"></a><span class="lineno"> 1929</span>&#160;                (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l01930"></a><span class="lineno"> 1930</span>&#160;               </div>
-<div class="line"><a name="l01931"></a><span class="lineno"> 1931</span>&#160;                <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l01932"></a><span class="lineno"> 1932</span>&#160;            }</div>
-<div class="line"><a name="l01933"></a><span class="lineno"> 1933</span>&#160;            res = <a class="code" href="group__w25qxx__basic__driver.html#gae7479fc9ce911a52e3c5b6f1a615b879">w25qxx_read</a>(&amp;gs_handle, addr, gs_buffer_output, 600);</div>
-<div class="line"><a name="l01934"></a><span class="lineno"> 1934</span>&#160;            <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l01935"></a><span class="lineno"> 1935</span>&#160;            {</div>
-<div class="line"><a name="l01936"></a><span class="lineno"> 1936</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: read failed.\n&quot;</span>);</div>
-<div class="line"><a name="l01937"></a><span class="lineno"> 1937</span>&#160;                (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l01938"></a><span class="lineno"> 1938</span>&#160;               </div>
-<div class="line"><a name="l01939"></a><span class="lineno"> 1939</span>&#160;                <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l01940"></a><span class="lineno"> 1940</span>&#160;            }</div>
-<div class="line"><a name="l01941"></a><span class="lineno"> 1941</span>&#160;            <span class="keywordflow">for</span> (j = 0; j &lt; 600; j++)</div>
-<div class="line"><a name="l01942"></a><span class="lineno"> 1942</span>&#160;            {</div>
-<div class="line"><a name="l01943"></a><span class="lineno"> 1943</span>&#160;                <span class="keywordflow">if</span> (gs_buffer_input[j] != gs_buffer_output[j])</div>
-<div class="line"><a name="l01944"></a><span class="lineno"> 1944</span>&#160;                {</div>
-<div class="line"><a name="l01945"></a><span class="lineno"> 1945</span>&#160;                    <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: write read check failed.\n&quot;</span>);</div>
-<div class="line"><a name="l01946"></a><span class="lineno"> 1946</span>&#160;                    (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l01947"></a><span class="lineno"> 1947</span>&#160;                    </div>
-<div class="line"><a name="l01948"></a><span class="lineno"> 1948</span>&#160;                    <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l01949"></a><span class="lineno"> 1949</span>&#160;                }</div>
-<div class="line"><a name="l01950"></a><span class="lineno"> 1950</span>&#160;            }</div>
-<div class="line"><a name="l01951"></a><span class="lineno"> 1951</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: 0x%08X/0x%08X successful.\n&quot;</span>, addr, size);</div>
-<div class="line"><a name="l01952"></a><span class="lineno"> 1952</span>&#160;        }</div>
-<div class="line"><a name="l01953"></a><span class="lineno"> 1953</span>&#160;        </div>
-<div class="line"><a name="l01954"></a><span class="lineno"> 1954</span>&#160;        <span class="comment">/* 4 dummy max 55MHz test */</span></div>
-<div class="line"><a name="l01955"></a><span class="lineno"> 1955</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set 4 dummy max 55MHz test.\n&quot;</span>);</div>
-<div class="line"><a name="l01956"></a><span class="lineno"> 1956</span>&#160;        </div>
-<div class="line"><a name="l01957"></a><span class="lineno"> 1957</span>&#160;        res = <a class="code" href="group__w25qxx__advance__driver.html#ga9ad10781d888b32b43b9eba45d049624">w25qxx_set_read_parameters</a>(&amp;gs_handle, <a class="code" href="group__w25qxx__advance__driver.html#gga6ff284154302248f00db269146545443a6423b5606e72af6479fe31a6a9883aeb">W25QXX_QSPI_READ_DUMMY_4_55MHZ</a>, <a class="code" href="group__w25qxx__advance__driver.html#gga2fd3023819e1aebe089a4a72eb136da3a5b8fa1026c564fe83f3f0f0edb89d1dd">W25QXX_QSPI_READ_WRAP_LENGTH_8_BYTE</a>);</div>
-<div class="line"><a name="l01958"></a><span class="lineno"> 1958</span>&#160;        <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l01959"></a><span class="lineno"> 1959</span>&#160;        {</div>
-<div class="line"><a name="l01960"></a><span class="lineno"> 1960</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set read parameters.\n&quot;</span>);</div>
-<div class="line"><a name="l01961"></a><span class="lineno"> 1961</span>&#160;           </div>
-<div class="line"><a name="l01962"></a><span class="lineno"> 1962</span>&#160;            <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l01963"></a><span class="lineno"> 1963</span>&#160;        }</div>
-<div class="line"><a name="l01964"></a><span class="lineno"> 1964</span>&#160;        </div>
-<div class="line"><a name="l01965"></a><span class="lineno"> 1965</span>&#160;        <span class="keywordflow">for</span> (addr = 0; addr &lt; size; addr += step)</div>
-<div class="line"><a name="l01966"></a><span class="lineno"> 1966</span>&#160;        {</div>
-<div class="line"><a name="l01967"></a><span class="lineno"> 1967</span>&#160;            <span class="keywordflow">for</span> (j = 0; j &lt; 600; j++)</div>
-<div class="line"><a name="l01968"></a><span class="lineno"> 1968</span>&#160;            {</div>
-<div class="line"><a name="l01969"></a><span class="lineno"> 1969</span>&#160;                gs_buffer_input[j] = rand() %256;</div>
-<div class="line"><a name="l01970"></a><span class="lineno"> 1970</span>&#160;            }</div>
-<div class="line"><a name="l01971"></a><span class="lineno"> 1971</span>&#160;            res = <a class="code" href="group__w25qxx__basic__driver.html#gaaee8264d840e51460821cb6e609338ee">w25qxx_write</a>(&amp;gs_handle, addr, gs_buffer_input, 600);</div>
-<div class="line"><a name="l01972"></a><span class="lineno"> 1972</span>&#160;            <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l01973"></a><span class="lineno"> 1973</span>&#160;            {</div>
-<div class="line"><a name="l01974"></a><span class="lineno"> 1974</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: write failed.\n&quot;</span>);</div>
-<div class="line"><a name="l01975"></a><span class="lineno"> 1975</span>&#160;                (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l01976"></a><span class="lineno"> 1976</span>&#160;               </div>
-<div class="line"><a name="l01977"></a><span class="lineno"> 1977</span>&#160;                <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l01978"></a><span class="lineno"> 1978</span>&#160;            }</div>
-<div class="line"><a name="l01979"></a><span class="lineno"> 1979</span>&#160;            res = <a class="code" href="group__w25qxx__basic__driver.html#gae7479fc9ce911a52e3c5b6f1a615b879">w25qxx_read</a>(&amp;gs_handle, addr, gs_buffer_output, 600);</div>
-<div class="line"><a name="l01980"></a><span class="lineno"> 1980</span>&#160;            <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l01981"></a><span class="lineno"> 1981</span>&#160;            {</div>
-<div class="line"><a name="l01982"></a><span class="lineno"> 1982</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: read failed.\n&quot;</span>);</div>
-<div class="line"><a name="l01983"></a><span class="lineno"> 1983</span>&#160;                (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l01984"></a><span class="lineno"> 1984</span>&#160;               </div>
-<div class="line"><a name="l01985"></a><span class="lineno"> 1985</span>&#160;                <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l01986"></a><span class="lineno"> 1986</span>&#160;            }</div>
-<div class="line"><a name="l01987"></a><span class="lineno"> 1987</span>&#160;            <span class="keywordflow">for</span> (j = 0; j &lt; 600; j++)</div>
-<div class="line"><a name="l01988"></a><span class="lineno"> 1988</span>&#160;            {</div>
-<div class="line"><a name="l01989"></a><span class="lineno"> 1989</span>&#160;                <span class="keywordflow">if</span> (gs_buffer_input[j] != gs_buffer_output[j])</div>
-<div class="line"><a name="l01990"></a><span class="lineno"> 1990</span>&#160;                {</div>
-<div class="line"><a name="l01991"></a><span class="lineno"> 1991</span>&#160;                    <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: write read check failed.\n&quot;</span>);</div>
-<div class="line"><a name="l01992"></a><span class="lineno"> 1992</span>&#160;                    (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l01993"></a><span class="lineno"> 1993</span>&#160;                    </div>
-<div class="line"><a name="l01994"></a><span class="lineno"> 1994</span>&#160;                    <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l01995"></a><span class="lineno"> 1995</span>&#160;                }</div>
-<div class="line"><a name="l01996"></a><span class="lineno"> 1996</span>&#160;            }</div>
-<div class="line"><a name="l01997"></a><span class="lineno"> 1997</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: 0x%08X/0x%08X successful.\n&quot;</span>, addr, size);</div>
-<div class="line"><a name="l01998"></a><span class="lineno"> 1998</span>&#160;        }</div>
-<div class="line"><a name="l01999"></a><span class="lineno"> 1999</span>&#160;        </div>
-<div class="line"><a name="l02000"></a><span class="lineno"> 2000</span>&#160;        <span class="comment">/* 2 dummy max 33MHz test */</span></div>
-<div class="line"><a name="l02001"></a><span class="lineno"> 2001</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set 2 dummy max 33MHz test.\n&quot;</span>);</div>
-<div class="line"><a name="l02002"></a><span class="lineno"> 2002</span>&#160;        </div>
-<div class="line"><a name="l02003"></a><span class="lineno"> 2003</span>&#160;        res = <a class="code" href="group__w25qxx__advance__driver.html#ga9ad10781d888b32b43b9eba45d049624">w25qxx_set_read_parameters</a>(&amp;gs_handle, <a class="code" href="group__w25qxx__advance__driver.html#gga6ff284154302248f00db269146545443ad73634a0f4534c3ae35d4242b2bc8f13">W25QXX_QSPI_READ_DUMMY_2_33MHZ</a>, <a class="code" href="group__w25qxx__advance__driver.html#gga2fd3023819e1aebe089a4a72eb136da3a5b8fa1026c564fe83f3f0f0edb89d1dd">W25QXX_QSPI_READ_WRAP_LENGTH_8_BYTE</a>);</div>
-<div class="line"><a name="l02004"></a><span class="lineno"> 2004</span>&#160;        <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l02005"></a><span class="lineno"> 2005</span>&#160;        {</div>
-<div class="line"><a name="l02006"></a><span class="lineno"> 2006</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set read parameters.\n&quot;</span>);</div>
-<div class="line"><a name="l02007"></a><span class="lineno"> 2007</span>&#160;           </div>
-<div class="line"><a name="l02008"></a><span class="lineno"> 2008</span>&#160;            <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l02009"></a><span class="lineno"> 2009</span>&#160;        }</div>
-<div class="line"><a name="l02010"></a><span class="lineno"> 2010</span>&#160;        </div>
-<div class="line"><a name="l02011"></a><span class="lineno"> 2011</span>&#160;        <span class="keywordflow">for</span> (addr = 0; addr &lt; size; addr += step)</div>
-<div class="line"><a name="l02012"></a><span class="lineno"> 2012</span>&#160;        {</div>
-<div class="line"><a name="l02013"></a><span class="lineno"> 2013</span>&#160;            <span class="keywordflow">for</span> (j = 0; j &lt; 600; j++)</div>
-<div class="line"><a name="l02014"></a><span class="lineno"> 2014</span>&#160;            {</div>
-<div class="line"><a name="l02015"></a><span class="lineno"> 2015</span>&#160;                gs_buffer_input[j] = rand() %256;</div>
-<div class="line"><a name="l02016"></a><span class="lineno"> 2016</span>&#160;            }</div>
-<div class="line"><a name="l02017"></a><span class="lineno"> 2017</span>&#160;            res = <a class="code" href="group__w25qxx__basic__driver.html#gaaee8264d840e51460821cb6e609338ee">w25qxx_write</a>(&amp;gs_handle, addr, gs_buffer_input, 600);</div>
-<div class="line"><a name="l02018"></a><span class="lineno"> 2018</span>&#160;            <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l02019"></a><span class="lineno"> 2019</span>&#160;            {</div>
-<div class="line"><a name="l02020"></a><span class="lineno"> 2020</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: write failed.\n&quot;</span>);</div>
-<div class="line"><a name="l02021"></a><span class="lineno"> 2021</span>&#160;                (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l02022"></a><span class="lineno"> 2022</span>&#160;               </div>
-<div class="line"><a name="l02023"></a><span class="lineno"> 2023</span>&#160;                <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l02024"></a><span class="lineno"> 2024</span>&#160;            }</div>
-<div class="line"><a name="l02025"></a><span class="lineno"> 2025</span>&#160;            res = <a class="code" href="group__w25qxx__basic__driver.html#gae7479fc9ce911a52e3c5b6f1a615b879">w25qxx_read</a>(&amp;gs_handle, addr, gs_buffer_output, 600);</div>
-<div class="line"><a name="l02026"></a><span class="lineno"> 2026</span>&#160;            <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l02027"></a><span class="lineno"> 2027</span>&#160;            {</div>
-<div class="line"><a name="l02028"></a><span class="lineno"> 2028</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: read failed.\n&quot;</span>);</div>
-<div class="line"><a name="l02029"></a><span class="lineno"> 2029</span>&#160;                (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l02030"></a><span class="lineno"> 2030</span>&#160;               </div>
-<div class="line"><a name="l02031"></a><span class="lineno"> 2031</span>&#160;                <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l02032"></a><span class="lineno"> 2032</span>&#160;            }</div>
-<div class="line"><a name="l02033"></a><span class="lineno"> 2033</span>&#160;            <span class="keywordflow">for</span> (j = 0; j &lt; 600; j++)</div>
-<div class="line"><a name="l02034"></a><span class="lineno"> 2034</span>&#160;            {</div>
-<div class="line"><a name="l02035"></a><span class="lineno"> 2035</span>&#160;                <span class="keywordflow">if</span> (gs_buffer_input[j] != gs_buffer_output[j])</div>
-<div class="line"><a name="l02036"></a><span class="lineno"> 2036</span>&#160;                {</div>
-<div class="line"><a name="l02037"></a><span class="lineno"> 2037</span>&#160;                    <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: write read check failed.\n&quot;</span>);</div>
-<div class="line"><a name="l02038"></a><span class="lineno"> 2038</span>&#160;                    (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l02039"></a><span class="lineno"> 2039</span>&#160;                    </div>
-<div class="line"><a name="l02040"></a><span class="lineno"> 2040</span>&#160;                    <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l02041"></a><span class="lineno"> 2041</span>&#160;                }</div>
-<div class="line"><a name="l02042"></a><span class="lineno"> 2042</span>&#160;            }</div>
-<div class="line"><a name="l02043"></a><span class="lineno"> 2043</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: 0x%08X/0x%08X successful.\n&quot;</span>, addr, size);</div>
-<div class="line"><a name="l02044"></a><span class="lineno"> 2044</span>&#160;        }</div>
-<div class="line"><a name="l02045"></a><span class="lineno"> 2045</span>&#160;    }</div>
-<div class="line"><a name="l02046"></a><span class="lineno"> 2046</span>&#160;    </div>
-<div class="line"><a name="l02047"></a><span class="lineno"> 2047</span>&#160;    <span class="comment">/* finish read test */</span></div>
-<div class="line"><a name="l02048"></a><span class="lineno"> 2048</span>&#160;    <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: finish read test.\n&quot;</span>);</div>
-<div class="line"><a name="l02049"></a><span class="lineno"> 2049</span>&#160;    (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l02050"></a><span class="lineno"> 2050</span>&#160;    </div>
-<div class="line"><a name="l02051"></a><span class="lineno"> 2051</span>&#160;    <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l02052"></a><span class="lineno"> 2052</span>&#160;}</div>
+<a href="driver__w25qxx__read__test_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno">    1</span> </div>
+<div class="line"><a id="l00037" name="l00037"></a><span class="lineno">   37</span><span class="preprocessor">#include &quot;<a class="code" href="driver__w25qxx__read__test_8h.html">driver_w25qxx_read_test.h</a>&quot;</span></div>
+<div class="line"><a id="l00038" name="l00038"></a><span class="lineno">   38</span><span class="preprocessor">#include &lt;stdlib.h&gt;</span></div>
+<div class="line"><a id="l00039" name="l00039"></a><span class="lineno">   39</span> </div>
+<div class="line"><a id="l00040" name="l00040"></a><span class="lineno">   40</span><span class="keyword">static</span> <a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> gs_handle;            </div>
+<div class="line"><a id="l00041" name="l00041"></a><span class="lineno">   41</span><span class="keyword">static</span> uint8_t gs_buffer_input[600];         </div>
+<div class="line"><a id="l00042" name="l00042"></a><span class="lineno">   42</span><span class="keyword">static</span> uint8_t gs_buffer_output[600];        </div>
+<div class="line"><a id="l00043" name="l00043"></a><span class="lineno">   43</span><span class="keyword">static</span> <span class="keyword">const</span> uint32_t gsc_size[] = {0x100000, 0x200000, 0x400000, 0x800000, 0x1000000, 0x2000000};        </div>
+<div class="foldopen" id="foldopen00055" data-start="{" data-end="}">
+<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"><a class="line" href="group__w25qxx__test__driver.html#ga4ce42ca34d33cd64cb823040780999af">   55</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__test__driver.html#ga4ce42ca34d33cd64cb823040780999af">w25qxx_read_test</a>(<a class="code hl_enumeration" href="group__w25qxx__basic__driver.html#ga6cb4e5164464df549201dd96cb7a58b1">w25qxx_type_t</a> type, <a class="code hl_enumeration" href="group__w25qxx__basic__driver.html#gacbf327a42336baf10713a1796ff4f2fe">w25qxx_interface_t</a> interface, <a class="code hl_enumeration" href="group__w25qxx__basic__driver.html#gafb2690946f5baf4be6f3a63dde5491fb">w25qxx_bool_t</a> dual_quad_spi_enable)</div>
+<div class="line"><a id="l00056" name="l00056"></a><span class="lineno">   56</span>{</div>
+<div class="line"><a id="l00057" name="l00057"></a><span class="lineno">   57</span>    uint8_t res;</div>
+<div class="line"><a id="l00058" name="l00058"></a><span class="lineno">   58</span>    <a class="code hl_struct" href="structw25qxx__info__s.html">w25qxx_info_t</a> info;</div>
+<div class="line"><a id="l00059" name="l00059"></a><span class="lineno">   59</span>    </div>
+<div class="line"><a id="l00060" name="l00060"></a><span class="lineno">   60</span>    <span class="comment">/* link interface function */</span></div>
+<div class="line"><a id="l00061" name="l00061"></a><span class="lineno">   61</span>    <a class="code hl_define" href="group__w25qxx__link__driver.html#ga995378489f95bc6bbddbe710557e3384">DRIVER_W25QXX_LINK_INIT</a>(&amp;gs_handle, <a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a>);</div>
+<div class="line"><a id="l00062" name="l00062"></a><span class="lineno">   62</span>    <a class="code hl_define" href="group__w25qxx__link__driver.html#gab2587de93f1dba5664eede8cd787a88a">DRIVER_W25QXX_LINK_SPI_QSPI_INIT</a>(&amp;gs_handle, <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga2bdc17a556f1c801a38656331f3bb7b6">w25qxx_interface_spi_qspi_init</a>);</div>
+<div class="line"><a id="l00063" name="l00063"></a><span class="lineno">   63</span>    <a class="code hl_define" href="group__w25qxx__link__driver.html#gaec8b55e83b46907be1dd9e7c50be550d">DRIVER_W25QXX_LINK_SPI_QSPI_DEINIT</a>(&amp;gs_handle, <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga091f3607fcdd47f9e5f94cf1397bd46a">w25qxx_interface_spi_qspi_deinit</a>);</div>
+<div class="line"><a id="l00064" name="l00064"></a><span class="lineno">   64</span>    <a class="code hl_define" href="group__w25qxx__link__driver.html#gac8f0ca0a725790bace3241d1d616e3d1">DRIVER_W25QXX_LINK_SPI_QSPI_WRITE_READ</a>(&amp;gs_handle, <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga3d76ea1f431978f6b55edfd0628c94cd">w25qxx_interface_spi_qspi_write_read</a>);</div>
+<div class="line"><a id="l00065" name="l00065"></a><span class="lineno">   65</span>    <a class="code hl_define" href="group__w25qxx__link__driver.html#ga7555618f13d2de0003ae6d9483085180">DRIVER_W25QXX_LINK_DELAY_MS</a>(&amp;gs_handle, <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga964fa232abf98737cb98458eebfff82c">w25qxx_interface_delay_ms</a>);</div>
+<div class="line"><a id="l00066" name="l00066"></a><span class="lineno">   66</span>    <a class="code hl_define" href="group__w25qxx__link__driver.html#gafc81bf850c80dfa316f0c6ab40be6e67">DRIVER_W25QXX_LINK_DELAY_US</a>(&amp;gs_handle, <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga38e79039b913154c9dd1036ff52bb420">w25qxx_interface_delay_us</a>);</div>
+<div class="line"><a id="l00067" name="l00067"></a><span class="lineno">   67</span>    <a class="code hl_define" href="group__w25qxx__link__driver.html#gab8d49ef9dca942fe5f37c30dcd7e22a6">DRIVER_W25QXX_LINK_DEBUG_PRINT</a>(&amp;gs_handle, <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>);</div>
+<div class="line"><a id="l00068" name="l00068"></a><span class="lineno">   68</span>    </div>
+<div class="line"><a id="l00069" name="l00069"></a><span class="lineno">   69</span>    <span class="comment">/* get information */</span></div>
+<div class="line"><a id="l00070" name="l00070"></a><span class="lineno">   70</span>    res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#ga996e2d3009432e7f8c1a5175c4438a57">w25qxx_info</a>(&amp;info);</div>
+<div class="line"><a id="l00071" name="l00071"></a><span class="lineno">   71</span>    <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00072" name="l00072"></a><span class="lineno">   72</span>    {</div>
+<div class="line"><a id="l00073" name="l00073"></a><span class="lineno">   73</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: get info failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00074" name="l00074"></a><span class="lineno">   74</span>       </div>
+<div class="line"><a id="l00075" name="l00075"></a><span class="lineno">   75</span>        <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00076" name="l00076"></a><span class="lineno">   76</span>    }</div>
+<div class="line"><a id="l00077" name="l00077"></a><span class="lineno">   77</span>    <span class="keywordflow">else</span></div>
+<div class="line"><a id="l00078" name="l00078"></a><span class="lineno">   78</span>    {</div>
+<div class="line"><a id="l00079" name="l00079"></a><span class="lineno">   79</span>        <span class="comment">/* print chip information */</span></div>
+<div class="line"><a id="l00080" name="l00080"></a><span class="lineno">   80</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: chip is %s.\n&quot;</span>, info.<a class="code hl_variable" href="structw25qxx__info__s.html#af890958c72bd715cc6454a10dc846ae6">chip_name</a>);</div>
+<div class="line"><a id="l00081" name="l00081"></a><span class="lineno">   81</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: manufacturer is %s.\n&quot;</span>, info.<a class="code hl_variable" href="structw25qxx__info__s.html#ad25285dbf810c90f8eaf3fcef6f2b2ea">manufacturer_name</a>);</div>
+<div class="line"><a id="l00082" name="l00082"></a><span class="lineno">   82</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: interface is %s.\n&quot;</span>, info.<a class="code hl_variable" href="structw25qxx__info__s.html#a5778305279cae46b2ecf862e97f73600">interface</a>);</div>
+<div class="line"><a id="l00083" name="l00083"></a><span class="lineno">   83</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: driver version is %d.%d.\n&quot;</span>, info.<a class="code hl_variable" href="structw25qxx__info__s.html#a41b0bd442708b70d252c50b92c75265a">driver_version</a> / 1000, (info.<a class="code hl_variable" href="structw25qxx__info__s.html#a41b0bd442708b70d252c50b92c75265a">driver_version</a> % 1000) / 100);</div>
+<div class="line"><a id="l00084" name="l00084"></a><span class="lineno">   84</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: min supply voltage is %0.1fV.\n&quot;</span>, info.<a class="code hl_variable" href="structw25qxx__info__s.html#ad8bde6ddadaf43d951e62f3befb9d35a">supply_voltage_min_v</a>);</div>
+<div class="line"><a id="l00085" name="l00085"></a><span class="lineno">   85</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: max supply voltage is %0.1fV.\n&quot;</span>, info.<a class="code hl_variable" href="structw25qxx__info__s.html#a3d2b12bcac7a85ea8646bff9debe8660">supply_voltage_max_v</a>);</div>
+<div class="line"><a id="l00086" name="l00086"></a><span class="lineno">   86</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: max current is %0.2fmA.\n&quot;</span>, info.<a class="code hl_variable" href="structw25qxx__info__s.html#a9db82802561bf22d799b03a345f1d1dc">max_current_ma</a>);</div>
+<div class="line"><a id="l00087" name="l00087"></a><span class="lineno">   87</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: max temperature is %0.1fC.\n&quot;</span>, info.<a class="code hl_variable" href="structw25qxx__info__s.html#a3366a5dce9b829e03c3d321c2b4df3f6">temperature_max</a>);</div>
+<div class="line"><a id="l00088" name="l00088"></a><span class="lineno">   88</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: min temperature is %0.1fC.\n&quot;</span>, info.<a class="code hl_variable" href="structw25qxx__info__s.html#a8f9dbe66ac0b66ebae0a36fcb4ba368e">temperature_min</a>);</div>
+<div class="line"><a id="l00089" name="l00089"></a><span class="lineno">   89</span>    }</div>
+<div class="line"><a id="l00090" name="l00090"></a><span class="lineno">   90</span>    </div>
+<div class="line"><a id="l00091" name="l00091"></a><span class="lineno">   91</span>    <span class="comment">/* set chip type */</span></div>
+<div class="line"><a id="l00092" name="l00092"></a><span class="lineno">   92</span>    res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa57189cd4170b73f8b1300ca15e27de6">w25qxx_set_type</a>(&amp;gs_handle, type);</div>
+<div class="line"><a id="l00093" name="l00093"></a><span class="lineno">   93</span>    <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00094" name="l00094"></a><span class="lineno">   94</span>    {</div>
+<div class="line"><a id="l00095" name="l00095"></a><span class="lineno">   95</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set type failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00096" name="l00096"></a><span class="lineno">   96</span>       </div>
+<div class="line"><a id="l00097" name="l00097"></a><span class="lineno">   97</span>        <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00098" name="l00098"></a><span class="lineno">   98</span>    }</div>
+<div class="line"><a id="l00099" name="l00099"></a><span class="lineno">   99</span>    </div>
+<div class="line"><a id="l00100" name="l00100"></a><span class="lineno">  100</span>    <span class="comment">/* set chip interface */</span></div>
+<div class="line"><a id="l00101" name="l00101"></a><span class="lineno">  101</span>    res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#ga50a62003d566402d46ada2f272c41eb5">w25qxx_set_interface</a>(&amp;gs_handle, interface);</div>
+<div class="line"><a id="l00102" name="l00102"></a><span class="lineno">  102</span>    <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00103" name="l00103"></a><span class="lineno">  103</span>    {</div>
+<div class="line"><a id="l00104" name="l00104"></a><span class="lineno">  104</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set interface failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00105" name="l00105"></a><span class="lineno">  105</span>       </div>
+<div class="line"><a id="l00106" name="l00106"></a><span class="lineno">  106</span>        <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00107" name="l00107"></a><span class="lineno">  107</span>    }</div>
+<div class="line"><a id="l00108" name="l00108"></a><span class="lineno">  108</span>    </div>
+<div class="line"><a id="l00109" name="l00109"></a><span class="lineno">  109</span>    <span class="comment">/* set dual quad spi */</span></div>
+<div class="line"><a id="l00110" name="l00110"></a><span class="lineno">  110</span>    res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#ga665139209b0abc386474a78d89cce6f2">w25qxx_set_dual_quad_spi</a>(&amp;gs_handle, dual_quad_spi_enable);</div>
+<div class="line"><a id="l00111" name="l00111"></a><span class="lineno">  111</span>    <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00112" name="l00112"></a><span class="lineno">  112</span>    {</div>
+<div class="line"><a id="l00113" name="l00113"></a><span class="lineno">  113</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set dual quad spi failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00114" name="l00114"></a><span class="lineno">  114</span>        (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00115" name="l00115"></a><span class="lineno">  115</span>       </div>
+<div class="line"><a id="l00116" name="l00116"></a><span class="lineno">  116</span>        <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00117" name="l00117"></a><span class="lineno">  117</span>    }</div>
+<div class="line"><a id="l00118" name="l00118"></a><span class="lineno">  118</span>    </div>
+<div class="line"><a id="l00119" name="l00119"></a><span class="lineno">  119</span>    <span class="comment">/* chip init */</span></div>
+<div class="line"><a id="l00120" name="l00120"></a><span class="lineno">  120</span>    res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#ga8e7a163b3d255b8c7fc035d0d60f2491">w25qxx_init</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00121" name="l00121"></a><span class="lineno">  121</span>    <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00122" name="l00122"></a><span class="lineno">  122</span>    {</div>
+<div class="line"><a id="l00123" name="l00123"></a><span class="lineno">  123</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: init failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00124" name="l00124"></a><span class="lineno">  124</span>       </div>
+<div class="line"><a id="l00125" name="l00125"></a><span class="lineno">  125</span>        <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00126" name="l00126"></a><span class="lineno">  126</span>    }</div>
+<div class="line"><a id="l00127" name="l00127"></a><span class="lineno">  127</span>    </div>
+<div class="line"><a id="l00128" name="l00128"></a><span class="lineno">  128</span>    <span class="comment">/* start read test */</span></div>
+<div class="line"><a id="l00129" name="l00129"></a><span class="lineno">  129</span>    <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: start read test.\n&quot;</span>);</div>
+<div class="line"><a id="l00130" name="l00130"></a><span class="lineno">  130</span>    </div>
+<div class="line"><a id="l00131" name="l00131"></a><span class="lineno">  131</span>    <span class="keywordflow">if</span> (interface == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>)</div>
+<div class="line"><a id="l00132" name="l00132"></a><span class="lineno">  132</span>    {</div>
+<div class="line"><a id="l00133" name="l00133"></a><span class="lineno">  133</span>        uint32_t size;</div>
+<div class="line"><a id="l00134" name="l00134"></a><span class="lineno">  134</span>        uint32_t addr, step, j;</div>
+<div class="line"><a id="l00135" name="l00135"></a><span class="lineno">  135</span>        </div>
+<div class="line"><a id="l00136" name="l00136"></a><span class="lineno">  136</span>        size = gsc_size[type - <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a1ad4f72437de5f26cb7b212d4d91e7c2">W25Q80</a>];</div>
+<div class="line"><a id="l00137" name="l00137"></a><span class="lineno">  137</span>        step = size / 16;</div>
+<div class="line"><a id="l00138" name="l00138"></a><span class="lineno">  138</span>        </div>
+<div class="line"><a id="l00139" name="l00139"></a><span class="lineno">  139</span>        <span class="comment">/* w25qxx_write/w25qxx_read test */</span></div>
+<div class="line"><a id="l00140" name="l00140"></a><span class="lineno">  140</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_write/w25qxx_read test.\n&quot;</span>);</div>
+<div class="line"><a id="l00141" name="l00141"></a><span class="lineno">  141</span>        </div>
+<div class="line"><a id="l00142" name="l00142"></a><span class="lineno">  142</span>        <span class="keywordflow">for</span> (addr = 0; addr &lt; size; addr += step)</div>
+<div class="line"><a id="l00143" name="l00143"></a><span class="lineno">  143</span>        {</div>
+<div class="line"><a id="l00144" name="l00144"></a><span class="lineno">  144</span>            <span class="keywordflow">for</span> (j = 0; j &lt; 600; j++)</div>
+<div class="line"><a id="l00145" name="l00145"></a><span class="lineno">  145</span>            {</div>
+<div class="line"><a id="l00146" name="l00146"></a><span class="lineno">  146</span>                gs_buffer_input[j] = rand() %256;</div>
+<div class="line"><a id="l00147" name="l00147"></a><span class="lineno">  147</span>            }</div>
+<div class="line"><a id="l00148" name="l00148"></a><span class="lineno">  148</span>            res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#gaaee8264d840e51460821cb6e609338ee">w25qxx_write</a>(&amp;gs_handle, addr, gs_buffer_input, 600);</div>
+<div class="line"><a id="l00149" name="l00149"></a><span class="lineno">  149</span>            <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00150" name="l00150"></a><span class="lineno">  150</span>            {</div>
+<div class="line"><a id="l00151" name="l00151"></a><span class="lineno">  151</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: write failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00152" name="l00152"></a><span class="lineno">  152</span>                (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00153" name="l00153"></a><span class="lineno">  153</span>               </div>
+<div class="line"><a id="l00154" name="l00154"></a><span class="lineno">  154</span>                <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00155" name="l00155"></a><span class="lineno">  155</span>            }</div>
+<div class="line"><a id="l00156" name="l00156"></a><span class="lineno">  156</span>            res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#gae7479fc9ce911a52e3c5b6f1a615b879">w25qxx_read</a>(&amp;gs_handle, addr, gs_buffer_output, 600);</div>
+<div class="line"><a id="l00157" name="l00157"></a><span class="lineno">  157</span>            <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00158" name="l00158"></a><span class="lineno">  158</span>            {</div>
+<div class="line"><a id="l00159" name="l00159"></a><span class="lineno">  159</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: read failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00160" name="l00160"></a><span class="lineno">  160</span>                (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00161" name="l00161"></a><span class="lineno">  161</span>               </div>
+<div class="line"><a id="l00162" name="l00162"></a><span class="lineno">  162</span>                <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00163" name="l00163"></a><span class="lineno">  163</span>            }</div>
+<div class="line"><a id="l00164" name="l00164"></a><span class="lineno">  164</span>            <span class="keywordflow">for</span> (j = 0; j &lt; 600; j++)</div>
+<div class="line"><a id="l00165" name="l00165"></a><span class="lineno">  165</span>            {</div>
+<div class="line"><a id="l00166" name="l00166"></a><span class="lineno">  166</span>                <span class="keywordflow">if</span> (gs_buffer_input[j] != gs_buffer_output[j])</div>
+<div class="line"><a id="l00167" name="l00167"></a><span class="lineno">  167</span>                {</div>
+<div class="line"><a id="l00168" name="l00168"></a><span class="lineno">  168</span>                    <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: write read check failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00169" name="l00169"></a><span class="lineno">  169</span>                    (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00170" name="l00170"></a><span class="lineno">  170</span>                    </div>
+<div class="line"><a id="l00171" name="l00171"></a><span class="lineno">  171</span>                    <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00172" name="l00172"></a><span class="lineno">  172</span>                }</div>
+<div class="line"><a id="l00173" name="l00173"></a><span class="lineno">  173</span>            }</div>
+<div class="line"><a id="l00174" name="l00174"></a><span class="lineno">  174</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: 0x%08X/0x%08X successful.\n&quot;</span>, addr, size);</div>
+<div class="line"><a id="l00175" name="l00175"></a><span class="lineno">  175</span>        }</div>
+<div class="line"><a id="l00176" name="l00176"></a><span class="lineno">  176</span>        </div>
+<div class="line"><a id="l00177" name="l00177"></a><span class="lineno">  177</span>        <span class="comment">/* w25qxx_sector_erase_4k test */</span></div>
+<div class="line"><a id="l00178" name="l00178"></a><span class="lineno">  178</span>        addr = (rand() % 10) * 4 * 1024;</div>
+<div class="line"><a id="l00179" name="l00179"></a><span class="lineno">  179</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_sector_erase_4k test with address 0x%X.\n&quot;</span>, addr);</div>
+<div class="line"><a id="l00180" name="l00180"></a><span class="lineno">  180</span>        res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#ga9a03c51b4c84655350c15fbfce0a6b40">w25qxx_sector_erase_4k</a>(&amp;gs_handle, addr);</div>
+<div class="line"><a id="l00181" name="l00181"></a><span class="lineno">  181</span>        <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00182" name="l00182"></a><span class="lineno">  182</span>        {</div>
+<div class="line"><a id="l00183" name="l00183"></a><span class="lineno">  183</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: sector erase 4k failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00184" name="l00184"></a><span class="lineno">  184</span>            (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00185" name="l00185"></a><span class="lineno">  185</span>           </div>
+<div class="line"><a id="l00186" name="l00186"></a><span class="lineno">  186</span>            <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00187" name="l00187"></a><span class="lineno">  187</span>        }</div>
+<div class="line"><a id="l00188" name="l00188"></a><span class="lineno">  188</span>        <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
+<div class="line"><a id="l00189" name="l00189"></a><span class="lineno">  189</span>        {</div>
+<div class="line"><a id="l00190" name="l00190"></a><span class="lineno">  190</span>            gs_buffer_input[j] = rand() %256;</div>
+<div class="line"><a id="l00191" name="l00191"></a><span class="lineno">  191</span>        }</div>
+<div class="line"><a id="l00192" name="l00192"></a><span class="lineno">  192</span>        </div>
+<div class="line"><a id="l00193" name="l00193"></a><span class="lineno">  193</span>        <span class="comment">/* w25qxx_page_program */</span></div>
+<div class="line"><a id="l00194" name="l00194"></a><span class="lineno">  194</span>        res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#ga6280e7e4ab26306436e2c210617a28b3">w25qxx_page_program</a>(&amp;gs_handle, addr, gs_buffer_input, 256);</div>
+<div class="line"><a id="l00195" name="l00195"></a><span class="lineno">  195</span>        <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00196" name="l00196"></a><span class="lineno">  196</span>        {</div>
+<div class="line"><a id="l00197" name="l00197"></a><span class="lineno">  197</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: page program failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00198" name="l00198"></a><span class="lineno">  198</span>            (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00199" name="l00199"></a><span class="lineno">  199</span>           </div>
+<div class="line"><a id="l00200" name="l00200"></a><span class="lineno">  200</span>            <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00201" name="l00201"></a><span class="lineno">  201</span>        }</div>
+<div class="line"><a id="l00202" name="l00202"></a><span class="lineno">  202</span>        </div>
+<div class="line"><a id="l00203" name="l00203"></a><span class="lineno">  203</span>        <span class="comment">/* w25qxx_only_spi_read */</span></div>
+<div class="line"><a id="l00204" name="l00204"></a><span class="lineno">  204</span>        res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#ga1e9ebf198137d23558dbf6470213c472">w25qxx_only_spi_read</a>(&amp;gs_handle, addr, gs_buffer_output, 256);</div>
+<div class="line"><a id="l00205" name="l00205"></a><span class="lineno">  205</span>        <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00206" name="l00206"></a><span class="lineno">  206</span>        {</div>
+<div class="line"><a id="l00207" name="l00207"></a><span class="lineno">  207</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: only spi read failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00208" name="l00208"></a><span class="lineno">  208</span>            (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00209" name="l00209"></a><span class="lineno">  209</span>           </div>
+<div class="line"><a id="l00210" name="l00210"></a><span class="lineno">  210</span>            <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00211" name="l00211"></a><span class="lineno">  211</span>        }</div>
+<div class="line"><a id="l00212" name="l00212"></a><span class="lineno">  212</span>        <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
+<div class="line"><a id="l00213" name="l00213"></a><span class="lineno">  213</span>        {</div>
+<div class="line"><a id="l00214" name="l00214"></a><span class="lineno">  214</span>            <span class="keywordflow">if</span> (gs_buffer_input[j] != gs_buffer_output[j])</div>
+<div class="line"><a id="l00215" name="l00215"></a><span class="lineno">  215</span>            {</div>
+<div class="line"><a id="l00216" name="l00216"></a><span class="lineno">  216</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: write read check failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00217" name="l00217"></a><span class="lineno">  217</span>                (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00218" name="l00218"></a><span class="lineno">  218</span>                </div>
+<div class="line"><a id="l00219" name="l00219"></a><span class="lineno">  219</span>                <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00220" name="l00220"></a><span class="lineno">  220</span>            }</div>
+<div class="line"><a id="l00221" name="l00221"></a><span class="lineno">  221</span>        }</div>
+<div class="line"><a id="l00222" name="l00222"></a><span class="lineno">  222</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: only spi read test passed.\n&quot;</span>);</div>
+<div class="line"><a id="l00223" name="l00223"></a><span class="lineno">  223</span>        </div>
+<div class="line"><a id="l00224" name="l00224"></a><span class="lineno">  224</span>        <span class="comment">/* w25qxx_fast_read */</span></div>
+<div class="line"><a id="l00225" name="l00225"></a><span class="lineno">  225</span>        res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#gac345ba10af5ad355578fa97697487123">w25qxx_fast_read</a>(&amp;gs_handle, addr, gs_buffer_output, 256);</div>
+<div class="line"><a id="l00226" name="l00226"></a><span class="lineno">  226</span>        <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00227" name="l00227"></a><span class="lineno">  227</span>        {</div>
+<div class="line"><a id="l00228" name="l00228"></a><span class="lineno">  228</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00229" name="l00229"></a><span class="lineno">  229</span>            (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00230" name="l00230"></a><span class="lineno">  230</span>           </div>
+<div class="line"><a id="l00231" name="l00231"></a><span class="lineno">  231</span>            <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00232" name="l00232"></a><span class="lineno">  232</span>        }</div>
+<div class="line"><a id="l00233" name="l00233"></a><span class="lineno">  233</span>        <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
+<div class="line"><a id="l00234" name="l00234"></a><span class="lineno">  234</span>        {</div>
+<div class="line"><a id="l00235" name="l00235"></a><span class="lineno">  235</span>            <span class="keywordflow">if</span> (gs_buffer_input[j] != gs_buffer_output[j])</div>
+<div class="line"><a id="l00236" name="l00236"></a><span class="lineno">  236</span>            {</div>
+<div class="line"><a id="l00237" name="l00237"></a><span class="lineno">  237</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: write read check failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00238" name="l00238"></a><span class="lineno">  238</span>                (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00239" name="l00239"></a><span class="lineno">  239</span>                </div>
+<div class="line"><a id="l00240" name="l00240"></a><span class="lineno">  240</span>                <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00241" name="l00241"></a><span class="lineno">  241</span>            }</div>
+<div class="line"><a id="l00242" name="l00242"></a><span class="lineno">  242</span>        }</div>
+<div class="line"><a id="l00243" name="l00243"></a><span class="lineno">  243</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read test passed.\n&quot;</span>);</div>
+<div class="line"><a id="l00244" name="l00244"></a><span class="lineno">  244</span>        </div>
+<div class="line"><a id="l00245" name="l00245"></a><span class="lineno">  245</span>        <span class="comment">/* w25qxx_block_erase_32k test */</span></div>
+<div class="line"><a id="l00246" name="l00246"></a><span class="lineno">  246</span>        addr = (rand() % 10) * 32 * 1024;</div>
+<div class="line"><a id="l00247" name="l00247"></a><span class="lineno">  247</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_block_erase_32k test with address 0x%X.\n&quot;</span>, addr);</div>
+<div class="line"><a id="l00248" name="l00248"></a><span class="lineno">  248</span>        res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#ga39c8fb382e8c3e4d57232dfa79af781c">w25qxx_block_erase_32k</a>(&amp;gs_handle, addr);</div>
+<div class="line"><a id="l00249" name="l00249"></a><span class="lineno">  249</span>        <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00250" name="l00250"></a><span class="lineno">  250</span>        {</div>
+<div class="line"><a id="l00251" name="l00251"></a><span class="lineno">  251</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: sector erase 32k failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00252" name="l00252"></a><span class="lineno">  252</span>            (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00253" name="l00253"></a><span class="lineno">  253</span>           </div>
+<div class="line"><a id="l00254" name="l00254"></a><span class="lineno">  254</span>            <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00255" name="l00255"></a><span class="lineno">  255</span>        }</div>
+<div class="line"><a id="l00256" name="l00256"></a><span class="lineno">  256</span>        <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
+<div class="line"><a id="l00257" name="l00257"></a><span class="lineno">  257</span>        {</div>
+<div class="line"><a id="l00258" name="l00258"></a><span class="lineno">  258</span>            gs_buffer_input[j] = rand() %256;</div>
+<div class="line"><a id="l00259" name="l00259"></a><span class="lineno">  259</span>        }</div>
+<div class="line"><a id="l00260" name="l00260"></a><span class="lineno">  260</span>        </div>
+<div class="line"><a id="l00261" name="l00261"></a><span class="lineno">  261</span>        <span class="comment">/* w25qxx_page_program */</span></div>
+<div class="line"><a id="l00262" name="l00262"></a><span class="lineno">  262</span>        res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#ga6280e7e4ab26306436e2c210617a28b3">w25qxx_page_program</a>(&amp;gs_handle, addr, gs_buffer_input, 256);</div>
+<div class="line"><a id="l00263" name="l00263"></a><span class="lineno">  263</span>        <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00264" name="l00264"></a><span class="lineno">  264</span>        {</div>
+<div class="line"><a id="l00265" name="l00265"></a><span class="lineno">  265</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: page program failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00266" name="l00266"></a><span class="lineno">  266</span>            (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00267" name="l00267"></a><span class="lineno">  267</span>           </div>
+<div class="line"><a id="l00268" name="l00268"></a><span class="lineno">  268</span>            <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00269" name="l00269"></a><span class="lineno">  269</span>        }</div>
+<div class="line"><a id="l00270" name="l00270"></a><span class="lineno">  270</span>        </div>
+<div class="line"><a id="l00271" name="l00271"></a><span class="lineno">  271</span>        <span class="comment">/* w25qxx_only_spi_read */</span></div>
+<div class="line"><a id="l00272" name="l00272"></a><span class="lineno">  272</span>        res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#ga1e9ebf198137d23558dbf6470213c472">w25qxx_only_spi_read</a>(&amp;gs_handle, addr, gs_buffer_output, 256);</div>
+<div class="line"><a id="l00273" name="l00273"></a><span class="lineno">  273</span>        <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00274" name="l00274"></a><span class="lineno">  274</span>        {</div>
+<div class="line"><a id="l00275" name="l00275"></a><span class="lineno">  275</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: only spi read failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00276" name="l00276"></a><span class="lineno">  276</span>            (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00277" name="l00277"></a><span class="lineno">  277</span>           </div>
+<div class="line"><a id="l00278" name="l00278"></a><span class="lineno">  278</span>            <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00279" name="l00279"></a><span class="lineno">  279</span>        }</div>
+<div class="line"><a id="l00280" name="l00280"></a><span class="lineno">  280</span>        <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
+<div class="line"><a id="l00281" name="l00281"></a><span class="lineno">  281</span>        {</div>
+<div class="line"><a id="l00282" name="l00282"></a><span class="lineno">  282</span>            <span class="keywordflow">if</span> (gs_buffer_input[j] != gs_buffer_output[j])</div>
+<div class="line"><a id="l00283" name="l00283"></a><span class="lineno">  283</span>            {</div>
+<div class="line"><a id="l00284" name="l00284"></a><span class="lineno">  284</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: write read check failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00285" name="l00285"></a><span class="lineno">  285</span>                (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00286" name="l00286"></a><span class="lineno">  286</span>                </div>
+<div class="line"><a id="l00287" name="l00287"></a><span class="lineno">  287</span>                <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00288" name="l00288"></a><span class="lineno">  288</span>            }</div>
+<div class="line"><a id="l00289" name="l00289"></a><span class="lineno">  289</span>        }</div>
+<div class="line"><a id="l00290" name="l00290"></a><span class="lineno">  290</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: only spi read test passed.\n&quot;</span>);</div>
+<div class="line"><a id="l00291" name="l00291"></a><span class="lineno">  291</span>        </div>
+<div class="line"><a id="l00292" name="l00292"></a><span class="lineno">  292</span>        <span class="comment">/* w25qxx_fast_read */</span></div>
+<div class="line"><a id="l00293" name="l00293"></a><span class="lineno">  293</span>        res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#gac345ba10af5ad355578fa97697487123">w25qxx_fast_read</a>(&amp;gs_handle, addr, gs_buffer_output, 256);</div>
+<div class="line"><a id="l00294" name="l00294"></a><span class="lineno">  294</span>        <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00295" name="l00295"></a><span class="lineno">  295</span>        {</div>
+<div class="line"><a id="l00296" name="l00296"></a><span class="lineno">  296</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00297" name="l00297"></a><span class="lineno">  297</span>            (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00298" name="l00298"></a><span class="lineno">  298</span>           </div>
+<div class="line"><a id="l00299" name="l00299"></a><span class="lineno">  299</span>            <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00300" name="l00300"></a><span class="lineno">  300</span>        }</div>
+<div class="line"><a id="l00301" name="l00301"></a><span class="lineno">  301</span>        <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
+<div class="line"><a id="l00302" name="l00302"></a><span class="lineno">  302</span>        {</div>
+<div class="line"><a id="l00303" name="l00303"></a><span class="lineno">  303</span>            <span class="keywordflow">if</span> (gs_buffer_input[j] != gs_buffer_output[j])</div>
+<div class="line"><a id="l00304" name="l00304"></a><span class="lineno">  304</span>            {</div>
+<div class="line"><a id="l00305" name="l00305"></a><span class="lineno">  305</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: write read check failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00306" name="l00306"></a><span class="lineno">  306</span>                (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00307" name="l00307"></a><span class="lineno">  307</span>                </div>
+<div class="line"><a id="l00308" name="l00308"></a><span class="lineno">  308</span>                <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00309" name="l00309"></a><span class="lineno">  309</span>            }</div>
+<div class="line"><a id="l00310" name="l00310"></a><span class="lineno">  310</span>        }</div>
+<div class="line"><a id="l00311" name="l00311"></a><span class="lineno">  311</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read test passed.\n&quot;</span>);</div>
+<div class="line"><a id="l00312" name="l00312"></a><span class="lineno">  312</span>        </div>
+<div class="line"><a id="l00313" name="l00313"></a><span class="lineno">  313</span>        <span class="comment">/* w25qxx_block_erase_64k test */</span></div>
+<div class="line"><a id="l00314" name="l00314"></a><span class="lineno">  314</span>        addr = (rand() % 10) * 64 * 1024;</div>
+<div class="line"><a id="l00315" name="l00315"></a><span class="lineno">  315</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_block_erase_64k test with address 0x%X.\n&quot;</span>, addr);</div>
+<div class="line"><a id="l00316" name="l00316"></a><span class="lineno">  316</span>        res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#gaf53bc5f6073482b9b74efd417ec7ac83">w25qxx_block_erase_64k</a>(&amp;gs_handle, addr);</div>
+<div class="line"><a id="l00317" name="l00317"></a><span class="lineno">  317</span>        <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00318" name="l00318"></a><span class="lineno">  318</span>        {</div>
+<div class="line"><a id="l00319" name="l00319"></a><span class="lineno">  319</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: sector erase 64k failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00320" name="l00320"></a><span class="lineno">  320</span>            (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00321" name="l00321"></a><span class="lineno">  321</span>           </div>
+<div class="line"><a id="l00322" name="l00322"></a><span class="lineno">  322</span>            <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00323" name="l00323"></a><span class="lineno">  323</span>        }</div>
+<div class="line"><a id="l00324" name="l00324"></a><span class="lineno">  324</span>        <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
+<div class="line"><a id="l00325" name="l00325"></a><span class="lineno">  325</span>        {</div>
+<div class="line"><a id="l00326" name="l00326"></a><span class="lineno">  326</span>            gs_buffer_input[j] = rand() %256;</div>
+<div class="line"><a id="l00327" name="l00327"></a><span class="lineno">  327</span>        }</div>
+<div class="line"><a id="l00328" name="l00328"></a><span class="lineno">  328</span>        </div>
+<div class="line"><a id="l00329" name="l00329"></a><span class="lineno">  329</span>        <span class="comment">/* w25qxx_page_program */</span></div>
+<div class="line"><a id="l00330" name="l00330"></a><span class="lineno">  330</span>        res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#ga6280e7e4ab26306436e2c210617a28b3">w25qxx_page_program</a>(&amp;gs_handle, addr, gs_buffer_input, 256);</div>
+<div class="line"><a id="l00331" name="l00331"></a><span class="lineno">  331</span>        <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00332" name="l00332"></a><span class="lineno">  332</span>        {</div>
+<div class="line"><a id="l00333" name="l00333"></a><span class="lineno">  333</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: page program failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00334" name="l00334"></a><span class="lineno">  334</span>            (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00335" name="l00335"></a><span class="lineno">  335</span>           </div>
+<div class="line"><a id="l00336" name="l00336"></a><span class="lineno">  336</span>            <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00337" name="l00337"></a><span class="lineno">  337</span>        }</div>
+<div class="line"><a id="l00338" name="l00338"></a><span class="lineno">  338</span>        </div>
+<div class="line"><a id="l00339" name="l00339"></a><span class="lineno">  339</span>        <span class="comment">/* w25qxx_only_spi_read */</span></div>
+<div class="line"><a id="l00340" name="l00340"></a><span class="lineno">  340</span>        res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#ga1e9ebf198137d23558dbf6470213c472">w25qxx_only_spi_read</a>(&amp;gs_handle, addr, gs_buffer_output, 256);</div>
+<div class="line"><a id="l00341" name="l00341"></a><span class="lineno">  341</span>        <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00342" name="l00342"></a><span class="lineno">  342</span>        {</div>
+<div class="line"><a id="l00343" name="l00343"></a><span class="lineno">  343</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: only spi read failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00344" name="l00344"></a><span class="lineno">  344</span>            (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00345" name="l00345"></a><span class="lineno">  345</span>           </div>
+<div class="line"><a id="l00346" name="l00346"></a><span class="lineno">  346</span>            <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00347" name="l00347"></a><span class="lineno">  347</span>        }</div>
+<div class="line"><a id="l00348" name="l00348"></a><span class="lineno">  348</span>        <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
+<div class="line"><a id="l00349" name="l00349"></a><span class="lineno">  349</span>        {</div>
+<div class="line"><a id="l00350" name="l00350"></a><span class="lineno">  350</span>            <span class="keywordflow">if</span> (gs_buffer_input[j] != gs_buffer_output[j])</div>
+<div class="line"><a id="l00351" name="l00351"></a><span class="lineno">  351</span>            {</div>
+<div class="line"><a id="l00352" name="l00352"></a><span class="lineno">  352</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: write read check failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00353" name="l00353"></a><span class="lineno">  353</span>                (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00354" name="l00354"></a><span class="lineno">  354</span>                </div>
+<div class="line"><a id="l00355" name="l00355"></a><span class="lineno">  355</span>                <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00356" name="l00356"></a><span class="lineno">  356</span>            }</div>
+<div class="line"><a id="l00357" name="l00357"></a><span class="lineno">  357</span>        }</div>
+<div class="line"><a id="l00358" name="l00358"></a><span class="lineno">  358</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: only spi read test passed.\n&quot;</span>);</div>
+<div class="line"><a id="l00359" name="l00359"></a><span class="lineno">  359</span>        </div>
+<div class="line"><a id="l00360" name="l00360"></a><span class="lineno">  360</span>        <span class="comment">/* w25qxx_fast_read */</span></div>
+<div class="line"><a id="l00361" name="l00361"></a><span class="lineno">  361</span>        res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#gac345ba10af5ad355578fa97697487123">w25qxx_fast_read</a>(&amp;gs_handle, addr, gs_buffer_output, 256);</div>
+<div class="line"><a id="l00362" name="l00362"></a><span class="lineno">  362</span>        <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00363" name="l00363"></a><span class="lineno">  363</span>        {</div>
+<div class="line"><a id="l00364" name="l00364"></a><span class="lineno">  364</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00365" name="l00365"></a><span class="lineno">  365</span>            (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00366" name="l00366"></a><span class="lineno">  366</span>           </div>
+<div class="line"><a id="l00367" name="l00367"></a><span class="lineno">  367</span>            <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00368" name="l00368"></a><span class="lineno">  368</span>        }</div>
+<div class="line"><a id="l00369" name="l00369"></a><span class="lineno">  369</span>        <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
+<div class="line"><a id="l00370" name="l00370"></a><span class="lineno">  370</span>        {</div>
+<div class="line"><a id="l00371" name="l00371"></a><span class="lineno">  371</span>            <span class="keywordflow">if</span> (gs_buffer_input[j] != gs_buffer_output[j])</div>
+<div class="line"><a id="l00372" name="l00372"></a><span class="lineno">  372</span>            {</div>
+<div class="line"><a id="l00373" name="l00373"></a><span class="lineno">  373</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: write read check failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00374" name="l00374"></a><span class="lineno">  374</span>                (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00375" name="l00375"></a><span class="lineno">  375</span>                </div>
+<div class="line"><a id="l00376" name="l00376"></a><span class="lineno">  376</span>                <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00377" name="l00377"></a><span class="lineno">  377</span>            }</div>
+<div class="line"><a id="l00378" name="l00378"></a><span class="lineno">  378</span>        }</div>
+<div class="line"><a id="l00379" name="l00379"></a><span class="lineno">  379</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read test passed.\n&quot;</span>);</div>
+<div class="line"><a id="l00380" name="l00380"></a><span class="lineno">  380</span>        </div>
+<div class="line"><a id="l00381" name="l00381"></a><span class="lineno">  381</span>        <span class="comment">/* get sfdp */</span></div>
+<div class="line"><a id="l00382" name="l00382"></a><span class="lineno">  382</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: get sfdp.\n&quot;</span>);</div>
+<div class="line"><a id="l00383" name="l00383"></a><span class="lineno">  383</span>        memset(gs_buffer_output, 0, <span class="keyword">sizeof</span>(uint8_t) * 256);</div>
+<div class="line"><a id="l00384" name="l00384"></a><span class="lineno">  384</span>        res = <a class="code hl_function" href="group__w25qxx__advance__driver.html#ga244a91b9c0c32e899ca89e1943045624">w25qxx_get_sfdp</a>(&amp;gs_handle, (uint8_t *)gs_buffer_output);</div>
+<div class="line"><a id="l00385" name="l00385"></a><span class="lineno">  385</span>        <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00386" name="l00386"></a><span class="lineno">  386</span>        {</div>
+<div class="line"><a id="l00387" name="l00387"></a><span class="lineno">  387</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: get sfdp failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00388" name="l00388"></a><span class="lineno">  388</span>            (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00389" name="l00389"></a><span class="lineno">  389</span>           </div>
+<div class="line"><a id="l00390" name="l00390"></a><span class="lineno">  390</span>            <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00391" name="l00391"></a><span class="lineno">  391</span>        }</div>
+<div class="line"><a id="l00392" name="l00392"></a><span class="lineno">  392</span>        <span class="keywordflow">for</span> (j = 0; j &lt; 256; j += 8)</div>
+<div class="line"><a id="l00393" name="l00393"></a><span class="lineno">  393</span>        {</div>
+<div class="line"><a id="l00394" name="l00394"></a><span class="lineno">  394</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: sdfp[%d-%d] is 0x%02X 0x%02X 0x%02X 0x%02X 0x%02X 0x%02X 0x%02X 0x%02X.\n&quot;</span>, </div>
+<div class="line"><a id="l00395" name="l00395"></a><span class="lineno">  395</span>                                         j , j + 7,</div>
+<div class="line"><a id="l00396" name="l00396"></a><span class="lineno">  396</span>                                         gs_buffer_output[j + 0], gs_buffer_output[j + 1], gs_buffer_output[j + 2],</div>
+<div class="line"><a id="l00397" name="l00397"></a><span class="lineno">  397</span>                                         gs_buffer_output[j + 3], gs_buffer_output[j + 4], gs_buffer_output[j + 5],</div>
+<div class="line"><a id="l00398" name="l00398"></a><span class="lineno">  398</span>                                         gs_buffer_output[j + 6], gs_buffer_output[j + 7]);</div>
+<div class="line"><a id="l00399" name="l00399"></a><span class="lineno">  399</span>        }</div>
+<div class="line"><a id="l00400" name="l00400"></a><span class="lineno">  400</span>        </div>
+<div class="line"><a id="l00401" name="l00401"></a><span class="lineno">  401</span>        <span class="comment">/*  security register1 write and read test */</span></div>
+<div class="line"><a id="l00402" name="l00402"></a><span class="lineno">  402</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: security register1 write and read test.\n&quot;</span>);</div>
+<div class="line"><a id="l00403" name="l00403"></a><span class="lineno">  403</span>        </div>
+<div class="line"><a id="l00404" name="l00404"></a><span class="lineno">  404</span>        <span class="comment">/* security register1 write and read test */</span></div>
+<div class="line"><a id="l00405" name="l00405"></a><span class="lineno">  405</span>        res = <a class="code hl_function" href="group__w25qxx__advance__driver.html#gaf297e2c6877c64f8fd10a555f783ddaf">w25qxx_erase_security_register</a>(&amp;gs_handle, <a class="code hl_enumvalue" href="group__w25qxx__advance__driver.html#gga81ddc7d4b9f4f124163beea19cc33c7eaaf27484a497c13915c8acb0161cf137d">W25QXX_SECURITY_REGISTER_1</a>);</div>
+<div class="line"><a id="l00406" name="l00406"></a><span class="lineno">  406</span>        <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00407" name="l00407"></a><span class="lineno">  407</span>        {</div>
+<div class="line"><a id="l00408" name="l00408"></a><span class="lineno">  408</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: erase security register failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00409" name="l00409"></a><span class="lineno">  409</span>            (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00410" name="l00410"></a><span class="lineno">  410</span>           </div>
+<div class="line"><a id="l00411" name="l00411"></a><span class="lineno">  411</span>            <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00412" name="l00412"></a><span class="lineno">  412</span>        }</div>
+<div class="line"><a id="l00413" name="l00413"></a><span class="lineno">  413</span>        <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
+<div class="line"><a id="l00414" name="l00414"></a><span class="lineno">  414</span>        {</div>
+<div class="line"><a id="l00415" name="l00415"></a><span class="lineno">  415</span>            gs_buffer_input[j] = rand() %256;</div>
+<div class="line"><a id="l00416" name="l00416"></a><span class="lineno">  416</span>        }</div>
+<div class="line"><a id="l00417" name="l00417"></a><span class="lineno">  417</span>        res = <a class="code hl_function" href="group__w25qxx__advance__driver.html#ga4e9c059ff78866e478e835cb27a92899">w25qxx_program_security_register</a>(&amp;gs_handle, <a class="code hl_enumvalue" href="group__w25qxx__advance__driver.html#gga81ddc7d4b9f4f124163beea19cc33c7eaaf27484a497c13915c8acb0161cf137d">W25QXX_SECURITY_REGISTER_1</a>, gs_buffer_input);</div>
+<div class="line"><a id="l00418" name="l00418"></a><span class="lineno">  418</span>        <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00419" name="l00419"></a><span class="lineno">  419</span>        {</div>
+<div class="line"><a id="l00420" name="l00420"></a><span class="lineno">  420</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: program security register failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00421" name="l00421"></a><span class="lineno">  421</span>            (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00422" name="l00422"></a><span class="lineno">  422</span>           </div>
+<div class="line"><a id="l00423" name="l00423"></a><span class="lineno">  423</span>            <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00424" name="l00424"></a><span class="lineno">  424</span>        }</div>
+<div class="line"><a id="l00425" name="l00425"></a><span class="lineno">  425</span>        res = <a class="code hl_function" href="group__w25qxx__advance__driver.html#ga4c65debc4947bd9a61e0073105164b9c">w25qxx_read_security_register</a>(&amp;gs_handle, <a class="code hl_enumvalue" href="group__w25qxx__advance__driver.html#gga81ddc7d4b9f4f124163beea19cc33c7eaaf27484a497c13915c8acb0161cf137d">W25QXX_SECURITY_REGISTER_1</a>, gs_buffer_output);</div>
+<div class="line"><a id="l00426" name="l00426"></a><span class="lineno">  426</span>        <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00427" name="l00427"></a><span class="lineno">  427</span>        {</div>
+<div class="line"><a id="l00428" name="l00428"></a><span class="lineno">  428</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: read security register failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00429" name="l00429"></a><span class="lineno">  429</span>            (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00430" name="l00430"></a><span class="lineno">  430</span>           </div>
+<div class="line"><a id="l00431" name="l00431"></a><span class="lineno">  431</span>            <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00432" name="l00432"></a><span class="lineno">  432</span>        }</div>
+<div class="line"><a id="l00433" name="l00433"></a><span class="lineno">  433</span>        <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
+<div class="line"><a id="l00434" name="l00434"></a><span class="lineno">  434</span>        {</div>
+<div class="line"><a id="l00435" name="l00435"></a><span class="lineno">  435</span>            <span class="keywordflow">if</span> (gs_buffer_input[j] != gs_buffer_output[j])</div>
+<div class="line"><a id="l00436" name="l00436"></a><span class="lineno">  436</span>            {</div>
+<div class="line"><a id="l00437" name="l00437"></a><span class="lineno">  437</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: write read check failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00438" name="l00438"></a><span class="lineno">  438</span>                (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00439" name="l00439"></a><span class="lineno">  439</span>                </div>
+<div class="line"><a id="l00440" name="l00440"></a><span class="lineno">  440</span>                <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00441" name="l00441"></a><span class="lineno">  441</span>            }</div>
+<div class="line"><a id="l00442" name="l00442"></a><span class="lineno">  442</span>        }</div>
+<div class="line"><a id="l00443" name="l00443"></a><span class="lineno">  443</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: security register1 check passed.\n&quot;</span>);</div>
+<div class="line"><a id="l00444" name="l00444"></a><span class="lineno">  444</span>        </div>
+<div class="line"><a id="l00445" name="l00445"></a><span class="lineno">  445</span>        <span class="comment">/*  security register2 write and read test */</span></div>
+<div class="line"><a id="l00446" name="l00446"></a><span class="lineno">  446</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: security register2 write and read test.\n&quot;</span>);</div>
+<div class="line"><a id="l00447" name="l00447"></a><span class="lineno">  447</span>        </div>
+<div class="line"><a id="l00448" name="l00448"></a><span class="lineno">  448</span>        <span class="comment">/* security register2 write and read test */</span></div>
+<div class="line"><a id="l00449" name="l00449"></a><span class="lineno">  449</span>        res = <a class="code hl_function" href="group__w25qxx__advance__driver.html#gaf297e2c6877c64f8fd10a555f783ddaf">w25qxx_erase_security_register</a>(&amp;gs_handle, <a class="code hl_enumvalue" href="group__w25qxx__advance__driver.html#gga81ddc7d4b9f4f124163beea19cc33c7ea3353a88090850174ca163d56e4d7089c">W25QXX_SECURITY_REGISTER_2</a>);</div>
+<div class="line"><a id="l00450" name="l00450"></a><span class="lineno">  450</span>        <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00451" name="l00451"></a><span class="lineno">  451</span>        {</div>
+<div class="line"><a id="l00452" name="l00452"></a><span class="lineno">  452</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: erase security register failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00453" name="l00453"></a><span class="lineno">  453</span>            (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00454" name="l00454"></a><span class="lineno">  454</span>           </div>
+<div class="line"><a id="l00455" name="l00455"></a><span class="lineno">  455</span>            <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00456" name="l00456"></a><span class="lineno">  456</span>        }</div>
+<div class="line"><a id="l00457" name="l00457"></a><span class="lineno">  457</span>        <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
+<div class="line"><a id="l00458" name="l00458"></a><span class="lineno">  458</span>        {</div>
+<div class="line"><a id="l00459" name="l00459"></a><span class="lineno">  459</span>            gs_buffer_input[j] = rand() %256;</div>
+<div class="line"><a id="l00460" name="l00460"></a><span class="lineno">  460</span>        }</div>
+<div class="line"><a id="l00461" name="l00461"></a><span class="lineno">  461</span>        res = <a class="code hl_function" href="group__w25qxx__advance__driver.html#ga4e9c059ff78866e478e835cb27a92899">w25qxx_program_security_register</a>(&amp;gs_handle, <a class="code hl_enumvalue" href="group__w25qxx__advance__driver.html#gga81ddc7d4b9f4f124163beea19cc33c7ea3353a88090850174ca163d56e4d7089c">W25QXX_SECURITY_REGISTER_2</a>, gs_buffer_input);</div>
+<div class="line"><a id="l00462" name="l00462"></a><span class="lineno">  462</span>        <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00463" name="l00463"></a><span class="lineno">  463</span>        {</div>
+<div class="line"><a id="l00464" name="l00464"></a><span class="lineno">  464</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: program security register failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00465" name="l00465"></a><span class="lineno">  465</span>            (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00466" name="l00466"></a><span class="lineno">  466</span>           </div>
+<div class="line"><a id="l00467" name="l00467"></a><span class="lineno">  467</span>            <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00468" name="l00468"></a><span class="lineno">  468</span>        }</div>
+<div class="line"><a id="l00469" name="l00469"></a><span class="lineno">  469</span>        res = <a class="code hl_function" href="group__w25qxx__advance__driver.html#ga4c65debc4947bd9a61e0073105164b9c">w25qxx_read_security_register</a>(&amp;gs_handle, <a class="code hl_enumvalue" href="group__w25qxx__advance__driver.html#gga81ddc7d4b9f4f124163beea19cc33c7ea3353a88090850174ca163d56e4d7089c">W25QXX_SECURITY_REGISTER_2</a>, gs_buffer_output);</div>
+<div class="line"><a id="l00470" name="l00470"></a><span class="lineno">  470</span>        <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00471" name="l00471"></a><span class="lineno">  471</span>        {</div>
+<div class="line"><a id="l00472" name="l00472"></a><span class="lineno">  472</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: read security register failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00473" name="l00473"></a><span class="lineno">  473</span>            (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00474" name="l00474"></a><span class="lineno">  474</span>           </div>
+<div class="line"><a id="l00475" name="l00475"></a><span class="lineno">  475</span>            <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00476" name="l00476"></a><span class="lineno">  476</span>        }</div>
+<div class="line"><a id="l00477" name="l00477"></a><span class="lineno">  477</span>        <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
+<div class="line"><a id="l00478" name="l00478"></a><span class="lineno">  478</span>        {</div>
+<div class="line"><a id="l00479" name="l00479"></a><span class="lineno">  479</span>            <span class="keywordflow">if</span> (gs_buffer_input[j] != gs_buffer_output[j])</div>
+<div class="line"><a id="l00480" name="l00480"></a><span class="lineno">  480</span>            {</div>
+<div class="line"><a id="l00481" name="l00481"></a><span class="lineno">  481</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: write read check failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00482" name="l00482"></a><span class="lineno">  482</span>                (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00483" name="l00483"></a><span class="lineno">  483</span>                </div>
+<div class="line"><a id="l00484" name="l00484"></a><span class="lineno">  484</span>                <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00485" name="l00485"></a><span class="lineno">  485</span>            }</div>
+<div class="line"><a id="l00486" name="l00486"></a><span class="lineno">  486</span>        }</div>
+<div class="line"><a id="l00487" name="l00487"></a><span class="lineno">  487</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: security register2 check passed.\n&quot;</span>);</div>
+<div class="line"><a id="l00488" name="l00488"></a><span class="lineno">  488</span> </div>
+<div class="line"><a id="l00489" name="l00489"></a><span class="lineno">  489</span>        <span class="comment">/*  security register3 write and read test */</span></div>
+<div class="line"><a id="l00490" name="l00490"></a><span class="lineno">  490</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: security register3 write and read test.\n&quot;</span>);</div>
+<div class="line"><a id="l00491" name="l00491"></a><span class="lineno">  491</span>        </div>
+<div class="line"><a id="l00492" name="l00492"></a><span class="lineno">  492</span>        <span class="comment">/* security register3 write and read test */</span></div>
+<div class="line"><a id="l00493" name="l00493"></a><span class="lineno">  493</span>        res = <a class="code hl_function" href="group__w25qxx__advance__driver.html#gaf297e2c6877c64f8fd10a555f783ddaf">w25qxx_erase_security_register</a>(&amp;gs_handle, <a class="code hl_enumvalue" href="group__w25qxx__advance__driver.html#gga81ddc7d4b9f4f124163beea19cc33c7ea65b73162d921075bed8cb8d848948900">W25QXX_SECURITY_REGISTER_3</a>);</div>
+<div class="line"><a id="l00494" name="l00494"></a><span class="lineno">  494</span>        <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00495" name="l00495"></a><span class="lineno">  495</span>        {</div>
+<div class="line"><a id="l00496" name="l00496"></a><span class="lineno">  496</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: erase security register failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00497" name="l00497"></a><span class="lineno">  497</span>            (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00498" name="l00498"></a><span class="lineno">  498</span>           </div>
+<div class="line"><a id="l00499" name="l00499"></a><span class="lineno">  499</span>            <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00500" name="l00500"></a><span class="lineno">  500</span>        }</div>
+<div class="line"><a id="l00501" name="l00501"></a><span class="lineno">  501</span>        <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
+<div class="line"><a id="l00502" name="l00502"></a><span class="lineno">  502</span>        {</div>
+<div class="line"><a id="l00503" name="l00503"></a><span class="lineno">  503</span>            gs_buffer_input[j] = rand() %256;</div>
+<div class="line"><a id="l00504" name="l00504"></a><span class="lineno">  504</span>        }</div>
+<div class="line"><a id="l00505" name="l00505"></a><span class="lineno">  505</span>        res = <a class="code hl_function" href="group__w25qxx__advance__driver.html#ga4e9c059ff78866e478e835cb27a92899">w25qxx_program_security_register</a>(&amp;gs_handle, <a class="code hl_enumvalue" href="group__w25qxx__advance__driver.html#gga81ddc7d4b9f4f124163beea19cc33c7ea65b73162d921075bed8cb8d848948900">W25QXX_SECURITY_REGISTER_3</a>, gs_buffer_input);</div>
+<div class="line"><a id="l00506" name="l00506"></a><span class="lineno">  506</span>        <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00507" name="l00507"></a><span class="lineno">  507</span>        {</div>
+<div class="line"><a id="l00508" name="l00508"></a><span class="lineno">  508</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: program security register failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00509" name="l00509"></a><span class="lineno">  509</span>            (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00510" name="l00510"></a><span class="lineno">  510</span>           </div>
+<div class="line"><a id="l00511" name="l00511"></a><span class="lineno">  511</span>            <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00512" name="l00512"></a><span class="lineno">  512</span>        }</div>
+<div class="line"><a id="l00513" name="l00513"></a><span class="lineno">  513</span>        res = <a class="code hl_function" href="group__w25qxx__advance__driver.html#ga4c65debc4947bd9a61e0073105164b9c">w25qxx_read_security_register</a>(&amp;gs_handle, <a class="code hl_enumvalue" href="group__w25qxx__advance__driver.html#gga81ddc7d4b9f4f124163beea19cc33c7ea65b73162d921075bed8cb8d848948900">W25QXX_SECURITY_REGISTER_3</a>, gs_buffer_output);</div>
+<div class="line"><a id="l00514" name="l00514"></a><span class="lineno">  514</span>        <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00515" name="l00515"></a><span class="lineno">  515</span>        {</div>
+<div class="line"><a id="l00516" name="l00516"></a><span class="lineno">  516</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: read security register failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00517" name="l00517"></a><span class="lineno">  517</span>            (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00518" name="l00518"></a><span class="lineno">  518</span>           </div>
+<div class="line"><a id="l00519" name="l00519"></a><span class="lineno">  519</span>            <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00520" name="l00520"></a><span class="lineno">  520</span>        }</div>
+<div class="line"><a id="l00521" name="l00521"></a><span class="lineno">  521</span>        <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
+<div class="line"><a id="l00522" name="l00522"></a><span class="lineno">  522</span>        {</div>
+<div class="line"><a id="l00523" name="l00523"></a><span class="lineno">  523</span>            <span class="keywordflow">if</span> (gs_buffer_input[j] != gs_buffer_output[j])</div>
+<div class="line"><a id="l00524" name="l00524"></a><span class="lineno">  524</span>            {</div>
+<div class="line"><a id="l00525" name="l00525"></a><span class="lineno">  525</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: write read check failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00526" name="l00526"></a><span class="lineno">  526</span>                (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00527" name="l00527"></a><span class="lineno">  527</span>                </div>
+<div class="line"><a id="l00528" name="l00528"></a><span class="lineno">  528</span>                <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00529" name="l00529"></a><span class="lineno">  529</span>            }</div>
+<div class="line"><a id="l00530" name="l00530"></a><span class="lineno">  530</span>        }</div>
+<div class="line"><a id="l00531" name="l00531"></a><span class="lineno">  531</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: security register3 check passed.\n&quot;</span>);</div>
+<div class="line"><a id="l00532" name="l00532"></a><span class="lineno">  532</span>        </div>
+<div class="line"><a id="l00533" name="l00533"></a><span class="lineno">  533</span><span class="preprocessor">        #if (W25QXX_ENABLE_ERASE_READ_TEST == 1)</span></div>
+<div class="line"><a id="l00534" name="l00534"></a><span class="lineno">  534</span>            <span class="comment">/* start chip erasing */</span></div>
+<div class="line"><a id="l00535" name="l00535"></a><span class="lineno">  535</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: start chip erasing.\n&quot;</span>);</div>
+<div class="line"><a id="l00536" name="l00536"></a><span class="lineno">  536</span>            </div>
+<div class="line"><a id="l00537" name="l00537"></a><span class="lineno">  537</span>            <span class="comment">/* chip erase */</span></div>
+<div class="line"><a id="l00538" name="l00538"></a><span class="lineno">  538</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_chip_erase test.\n&quot;</span>);</div>
+<div class="line"><a id="l00539" name="l00539"></a><span class="lineno">  539</span>            res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#ga0862833b36831f92684980b2e21f2e39">w25qxx_chip_erase</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00540" name="l00540"></a><span class="lineno">  540</span>            <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00541" name="l00541"></a><span class="lineno">  541</span>            {</div>
+<div class="line"><a id="l00542" name="l00542"></a><span class="lineno">  542</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: chip erase failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00543" name="l00543"></a><span class="lineno">  543</span>                (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00544" name="l00544"></a><span class="lineno">  544</span>               </div>
+<div class="line"><a id="l00545" name="l00545"></a><span class="lineno">  545</span>                <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00546" name="l00546"></a><span class="lineno">  546</span>            }</div>
+<div class="line"><a id="l00547" name="l00547"></a><span class="lineno">  547</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: chip erase successful.\n&quot;</span>);</div>
+<div class="line"><a id="l00548" name="l00548"></a><span class="lineno">  548</span><span class="preprocessor">        #endif</span></div>
+<div class="line"><a id="l00549" name="l00549"></a><span class="lineno">  549</span>        </div>
+<div class="line"><a id="l00550" name="l00550"></a><span class="lineno">  550</span>        <span class="keywordflow">if</span> (type &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)</div>
+<div class="line"><a id="l00551" name="l00551"></a><span class="lineno">  551</span>        {</div>
+<div class="line"><a id="l00552" name="l00552"></a><span class="lineno">  552</span>            <span class="comment">/* set address mode 4 byte */</span></div>
+<div class="line"><a id="l00553" name="l00553"></a><span class="lineno">  553</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set address mode 4 byte.\n&quot;</span>);</div>
+<div class="line"><a id="l00554" name="l00554"></a><span class="lineno">  554</span>            </div>
+<div class="line"><a id="l00555" name="l00555"></a><span class="lineno">  555</span>            <span class="comment">/* set address mode 4 byte */</span></div>
+<div class="line"><a id="l00556" name="l00556"></a><span class="lineno">  556</span>            res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#gad0e125eff304ce66fb3956d2c8c80656">w25qxx_set_address_mode</a>(&amp;gs_handle, <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>);</div>
+<div class="line"><a id="l00557" name="l00557"></a><span class="lineno">  557</span>            <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00558" name="l00558"></a><span class="lineno">  558</span>            {</div>
+<div class="line"><a id="l00559" name="l00559"></a><span class="lineno">  559</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set address mode failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00560" name="l00560"></a><span class="lineno">  560</span>                (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00561" name="l00561"></a><span class="lineno">  561</span>               </div>
+<div class="line"><a id="l00562" name="l00562"></a><span class="lineno">  562</span>                <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00563" name="l00563"></a><span class="lineno">  563</span>            }</div>
+<div class="line"><a id="l00564" name="l00564"></a><span class="lineno">  564</span>            </div>
+<div class="line"><a id="l00565" name="l00565"></a><span class="lineno">  565</span>            <span class="comment">/* w25qxx_write/w25qxx_read test */</span></div>
+<div class="line"><a id="l00566" name="l00566"></a><span class="lineno">  566</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_write/w25qxx_read test.\n&quot;</span>);</div>
+<div class="line"><a id="l00567" name="l00567"></a><span class="lineno">  567</span>            </div>
+<div class="line"><a id="l00568" name="l00568"></a><span class="lineno">  568</span>            <span class="keywordflow">for</span> (addr = 0; addr &lt; size; addr += step)</div>
+<div class="line"><a id="l00569" name="l00569"></a><span class="lineno">  569</span>            {</div>
+<div class="line"><a id="l00570" name="l00570"></a><span class="lineno">  570</span>                <span class="keywordflow">for</span> (j = 0; j &lt; 600; j++)</div>
+<div class="line"><a id="l00571" name="l00571"></a><span class="lineno">  571</span>                {</div>
+<div class="line"><a id="l00572" name="l00572"></a><span class="lineno">  572</span>                    gs_buffer_input[j] = rand() %256;</div>
+<div class="line"><a id="l00573" name="l00573"></a><span class="lineno">  573</span>                }</div>
+<div class="line"><a id="l00574" name="l00574"></a><span class="lineno">  574</span>                res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#gaaee8264d840e51460821cb6e609338ee">w25qxx_write</a>(&amp;gs_handle, addr, gs_buffer_input, 600);</div>
+<div class="line"><a id="l00575" name="l00575"></a><span class="lineno">  575</span>                <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00576" name="l00576"></a><span class="lineno">  576</span>                {</div>
+<div class="line"><a id="l00577" name="l00577"></a><span class="lineno">  577</span>                    <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: write failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00578" name="l00578"></a><span class="lineno">  578</span>                    (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00579" name="l00579"></a><span class="lineno">  579</span>                   </div>
+<div class="line"><a id="l00580" name="l00580"></a><span class="lineno">  580</span>                    <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00581" name="l00581"></a><span class="lineno">  581</span>                }</div>
+<div class="line"><a id="l00582" name="l00582"></a><span class="lineno">  582</span>                res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#gae7479fc9ce911a52e3c5b6f1a615b879">w25qxx_read</a>(&amp;gs_handle, addr, gs_buffer_output, 600);</div>
+<div class="line"><a id="l00583" name="l00583"></a><span class="lineno">  583</span>                <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00584" name="l00584"></a><span class="lineno">  584</span>                {</div>
+<div class="line"><a id="l00585" name="l00585"></a><span class="lineno">  585</span>                    <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: read failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00586" name="l00586"></a><span class="lineno">  586</span>                    (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00587" name="l00587"></a><span class="lineno">  587</span>                   </div>
+<div class="line"><a id="l00588" name="l00588"></a><span class="lineno">  588</span>                    <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00589" name="l00589"></a><span class="lineno">  589</span>                }</div>
+<div class="line"><a id="l00590" name="l00590"></a><span class="lineno">  590</span>                <span class="keywordflow">for</span> (j = 0; j &lt; 600; j++)</div>
+<div class="line"><a id="l00591" name="l00591"></a><span class="lineno">  591</span>                {</div>
+<div class="line"><a id="l00592" name="l00592"></a><span class="lineno">  592</span>                    <span class="keywordflow">if</span> (gs_buffer_input[j] != gs_buffer_output[j])</div>
+<div class="line"><a id="l00593" name="l00593"></a><span class="lineno">  593</span>                    {</div>
+<div class="line"><a id="l00594" name="l00594"></a><span class="lineno">  594</span>                        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: write read check failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00595" name="l00595"></a><span class="lineno">  595</span>                        (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00596" name="l00596"></a><span class="lineno">  596</span>                        </div>
+<div class="line"><a id="l00597" name="l00597"></a><span class="lineno">  597</span>                        <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00598" name="l00598"></a><span class="lineno">  598</span>                    }</div>
+<div class="line"><a id="l00599" name="l00599"></a><span class="lineno">  599</span>                }</div>
+<div class="line"><a id="l00600" name="l00600"></a><span class="lineno">  600</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: %d/%d successful.\n&quot;</span>, addr, size);</div>
+<div class="line"><a id="l00601" name="l00601"></a><span class="lineno">  601</span>            }</div>
+<div class="line"><a id="l00602" name="l00602"></a><span class="lineno">  602</span>            </div>
+<div class="line"><a id="l00603" name="l00603"></a><span class="lineno">  603</span>            <span class="comment">/* w25qxx_sector_erase_4k test */</span></div>
+<div class="line"><a id="l00604" name="l00604"></a><span class="lineno">  604</span>            addr = (rand() % 10) * 4 * 1024;</div>
+<div class="line"><a id="l00605" name="l00605"></a><span class="lineno">  605</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_sector_erase_4k test with address 0x%X.\n&quot;</span>, addr);</div>
+<div class="line"><a id="l00606" name="l00606"></a><span class="lineno">  606</span>            res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#ga9a03c51b4c84655350c15fbfce0a6b40">w25qxx_sector_erase_4k</a>(&amp;gs_handle, addr);</div>
+<div class="line"><a id="l00607" name="l00607"></a><span class="lineno">  607</span>            <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00608" name="l00608"></a><span class="lineno">  608</span>            {</div>
+<div class="line"><a id="l00609" name="l00609"></a><span class="lineno">  609</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: sector erase 4k failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00610" name="l00610"></a><span class="lineno">  610</span>                (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00611" name="l00611"></a><span class="lineno">  611</span>               </div>
+<div class="line"><a id="l00612" name="l00612"></a><span class="lineno">  612</span>                <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00613" name="l00613"></a><span class="lineno">  613</span>            }</div>
+<div class="line"><a id="l00614" name="l00614"></a><span class="lineno">  614</span>            <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
+<div class="line"><a id="l00615" name="l00615"></a><span class="lineno">  615</span>            {</div>
+<div class="line"><a id="l00616" name="l00616"></a><span class="lineno">  616</span>                gs_buffer_input[j] = rand() %256;</div>
+<div class="line"><a id="l00617" name="l00617"></a><span class="lineno">  617</span>            }</div>
+<div class="line"><a id="l00618" name="l00618"></a><span class="lineno">  618</span>            </div>
+<div class="line"><a id="l00619" name="l00619"></a><span class="lineno">  619</span>            <span class="comment">/* w25qxx_page_program */</span></div>
+<div class="line"><a id="l00620" name="l00620"></a><span class="lineno">  620</span>            res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#ga6280e7e4ab26306436e2c210617a28b3">w25qxx_page_program</a>(&amp;gs_handle, addr, gs_buffer_input, 256);</div>
+<div class="line"><a id="l00621" name="l00621"></a><span class="lineno">  621</span>            <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00622" name="l00622"></a><span class="lineno">  622</span>            {</div>
+<div class="line"><a id="l00623" name="l00623"></a><span class="lineno">  623</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: page program failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00624" name="l00624"></a><span class="lineno">  624</span>                (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00625" name="l00625"></a><span class="lineno">  625</span>               </div>
+<div class="line"><a id="l00626" name="l00626"></a><span class="lineno">  626</span>                <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00627" name="l00627"></a><span class="lineno">  627</span>            }</div>
+<div class="line"><a id="l00628" name="l00628"></a><span class="lineno">  628</span>            </div>
+<div class="line"><a id="l00629" name="l00629"></a><span class="lineno">  629</span>            <span class="comment">/* w25qxx_only_spi_read */</span></div>
+<div class="line"><a id="l00630" name="l00630"></a><span class="lineno">  630</span>            res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#ga1e9ebf198137d23558dbf6470213c472">w25qxx_only_spi_read</a>(&amp;gs_handle, addr, gs_buffer_output, 256);</div>
+<div class="line"><a id="l00631" name="l00631"></a><span class="lineno">  631</span>            <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00632" name="l00632"></a><span class="lineno">  632</span>            {</div>
+<div class="line"><a id="l00633" name="l00633"></a><span class="lineno">  633</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: only spi read failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00634" name="l00634"></a><span class="lineno">  634</span>                (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00635" name="l00635"></a><span class="lineno">  635</span>               </div>
+<div class="line"><a id="l00636" name="l00636"></a><span class="lineno">  636</span>                <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00637" name="l00637"></a><span class="lineno">  637</span>            }</div>
+<div class="line"><a id="l00638" name="l00638"></a><span class="lineno">  638</span>            <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
+<div class="line"><a id="l00639" name="l00639"></a><span class="lineno">  639</span>            {</div>
+<div class="line"><a id="l00640" name="l00640"></a><span class="lineno">  640</span>                <span class="keywordflow">if</span> (gs_buffer_input[j] != gs_buffer_output[j])</div>
+<div class="line"><a id="l00641" name="l00641"></a><span class="lineno">  641</span>                {</div>
+<div class="line"><a id="l00642" name="l00642"></a><span class="lineno">  642</span>                    <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: write read check failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00643" name="l00643"></a><span class="lineno">  643</span>                    (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00644" name="l00644"></a><span class="lineno">  644</span>                    </div>
+<div class="line"><a id="l00645" name="l00645"></a><span class="lineno">  645</span>                    <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00646" name="l00646"></a><span class="lineno">  646</span>                }</div>
+<div class="line"><a id="l00647" name="l00647"></a><span class="lineno">  647</span>            }</div>
+<div class="line"><a id="l00648" name="l00648"></a><span class="lineno">  648</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: only spi read test passed.\n&quot;</span>);</div>
+<div class="line"><a id="l00649" name="l00649"></a><span class="lineno">  649</span>            </div>
+<div class="line"><a id="l00650" name="l00650"></a><span class="lineno">  650</span>            <span class="comment">/* w25qxx_fast_read */</span></div>
+<div class="line"><a id="l00651" name="l00651"></a><span class="lineno">  651</span>            res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#gac345ba10af5ad355578fa97697487123">w25qxx_fast_read</a>(&amp;gs_handle, addr, gs_buffer_output, 256);</div>
+<div class="line"><a id="l00652" name="l00652"></a><span class="lineno">  652</span>            <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00653" name="l00653"></a><span class="lineno">  653</span>            {</div>
+<div class="line"><a id="l00654" name="l00654"></a><span class="lineno">  654</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00655" name="l00655"></a><span class="lineno">  655</span>                (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00656" name="l00656"></a><span class="lineno">  656</span>               </div>
+<div class="line"><a id="l00657" name="l00657"></a><span class="lineno">  657</span>                <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00658" name="l00658"></a><span class="lineno">  658</span>            }</div>
+<div class="line"><a id="l00659" name="l00659"></a><span class="lineno">  659</span>            <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
+<div class="line"><a id="l00660" name="l00660"></a><span class="lineno">  660</span>            {</div>
+<div class="line"><a id="l00661" name="l00661"></a><span class="lineno">  661</span>                <span class="keywordflow">if</span> (gs_buffer_input[j] != gs_buffer_output[j])</div>
+<div class="line"><a id="l00662" name="l00662"></a><span class="lineno">  662</span>                {</div>
+<div class="line"><a id="l00663" name="l00663"></a><span class="lineno">  663</span>                    <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: write read check failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00664" name="l00664"></a><span class="lineno">  664</span>                    (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00665" name="l00665"></a><span class="lineno">  665</span>                    </div>
+<div class="line"><a id="l00666" name="l00666"></a><span class="lineno">  666</span>                    <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00667" name="l00667"></a><span class="lineno">  667</span>                }</div>
+<div class="line"><a id="l00668" name="l00668"></a><span class="lineno">  668</span>            }</div>
+<div class="line"><a id="l00669" name="l00669"></a><span class="lineno">  669</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read test passed.\n&quot;</span>);</div>
+<div class="line"><a id="l00670" name="l00670"></a><span class="lineno">  670</span>            </div>
+<div class="line"><a id="l00671" name="l00671"></a><span class="lineno">  671</span>            <span class="comment">/* w25qxx_block_erase_32k test */</span></div>
+<div class="line"><a id="l00672" name="l00672"></a><span class="lineno">  672</span>            addr = (rand() % 10) * 32 * 1024;</div>
+<div class="line"><a id="l00673" name="l00673"></a><span class="lineno">  673</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_block_erase_32k test with address 0x%X.\n&quot;</span>, addr);</div>
+<div class="line"><a id="l00674" name="l00674"></a><span class="lineno">  674</span>            res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#ga39c8fb382e8c3e4d57232dfa79af781c">w25qxx_block_erase_32k</a>(&amp;gs_handle, addr);</div>
+<div class="line"><a id="l00675" name="l00675"></a><span class="lineno">  675</span>            <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00676" name="l00676"></a><span class="lineno">  676</span>            {</div>
+<div class="line"><a id="l00677" name="l00677"></a><span class="lineno">  677</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: sector erase 32k failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00678" name="l00678"></a><span class="lineno">  678</span>                (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00679" name="l00679"></a><span class="lineno">  679</span>               </div>
+<div class="line"><a id="l00680" name="l00680"></a><span class="lineno">  680</span>                <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00681" name="l00681"></a><span class="lineno">  681</span>            }</div>
+<div class="line"><a id="l00682" name="l00682"></a><span class="lineno">  682</span>            <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
+<div class="line"><a id="l00683" name="l00683"></a><span class="lineno">  683</span>            {</div>
+<div class="line"><a id="l00684" name="l00684"></a><span class="lineno">  684</span>                gs_buffer_input[j] = rand() %256;</div>
+<div class="line"><a id="l00685" name="l00685"></a><span class="lineno">  685</span>            }</div>
+<div class="line"><a id="l00686" name="l00686"></a><span class="lineno">  686</span>            </div>
+<div class="line"><a id="l00687" name="l00687"></a><span class="lineno">  687</span>            <span class="comment">/* w25qxx_page_program */</span></div>
+<div class="line"><a id="l00688" name="l00688"></a><span class="lineno">  688</span>            res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#ga6280e7e4ab26306436e2c210617a28b3">w25qxx_page_program</a>(&amp;gs_handle, addr, gs_buffer_input, 256);</div>
+<div class="line"><a id="l00689" name="l00689"></a><span class="lineno">  689</span>            <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00690" name="l00690"></a><span class="lineno">  690</span>            {</div>
+<div class="line"><a id="l00691" name="l00691"></a><span class="lineno">  691</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: page program failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00692" name="l00692"></a><span class="lineno">  692</span>                (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00693" name="l00693"></a><span class="lineno">  693</span>               </div>
+<div class="line"><a id="l00694" name="l00694"></a><span class="lineno">  694</span>                <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00695" name="l00695"></a><span class="lineno">  695</span>            }</div>
+<div class="line"><a id="l00696" name="l00696"></a><span class="lineno">  696</span>            </div>
+<div class="line"><a id="l00697" name="l00697"></a><span class="lineno">  697</span>            <span class="comment">/* w25qxx_only_spi_read */</span></div>
+<div class="line"><a id="l00698" name="l00698"></a><span class="lineno">  698</span>            res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#ga1e9ebf198137d23558dbf6470213c472">w25qxx_only_spi_read</a>(&amp;gs_handle, addr, gs_buffer_output, 256);</div>
+<div class="line"><a id="l00699" name="l00699"></a><span class="lineno">  699</span>            <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00700" name="l00700"></a><span class="lineno">  700</span>            {</div>
+<div class="line"><a id="l00701" name="l00701"></a><span class="lineno">  701</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: only spi read failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00702" name="l00702"></a><span class="lineno">  702</span>                (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00703" name="l00703"></a><span class="lineno">  703</span>               </div>
+<div class="line"><a id="l00704" name="l00704"></a><span class="lineno">  704</span>                <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00705" name="l00705"></a><span class="lineno">  705</span>            }</div>
+<div class="line"><a id="l00706" name="l00706"></a><span class="lineno">  706</span>            <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
+<div class="line"><a id="l00707" name="l00707"></a><span class="lineno">  707</span>            {</div>
+<div class="line"><a id="l00708" name="l00708"></a><span class="lineno">  708</span>                <span class="keywordflow">if</span> (gs_buffer_input[j] != gs_buffer_output[j])</div>
+<div class="line"><a id="l00709" name="l00709"></a><span class="lineno">  709</span>                {</div>
+<div class="line"><a id="l00710" name="l00710"></a><span class="lineno">  710</span>                    <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: write read check failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00711" name="l00711"></a><span class="lineno">  711</span>                    (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00712" name="l00712"></a><span class="lineno">  712</span>                    </div>
+<div class="line"><a id="l00713" name="l00713"></a><span class="lineno">  713</span>                    <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00714" name="l00714"></a><span class="lineno">  714</span>                }</div>
+<div class="line"><a id="l00715" name="l00715"></a><span class="lineno">  715</span>            }</div>
+<div class="line"><a id="l00716" name="l00716"></a><span class="lineno">  716</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: only spi read test passed.\n&quot;</span>);</div>
+<div class="line"><a id="l00717" name="l00717"></a><span class="lineno">  717</span>            </div>
+<div class="line"><a id="l00718" name="l00718"></a><span class="lineno">  718</span>            <span class="comment">/* w25qxx_fast_read */</span></div>
+<div class="line"><a id="l00719" name="l00719"></a><span class="lineno">  719</span>            res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#gac345ba10af5ad355578fa97697487123">w25qxx_fast_read</a>(&amp;gs_handle, addr, gs_buffer_output, 256);</div>
+<div class="line"><a id="l00720" name="l00720"></a><span class="lineno">  720</span>            <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00721" name="l00721"></a><span class="lineno">  721</span>            {</div>
+<div class="line"><a id="l00722" name="l00722"></a><span class="lineno">  722</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00723" name="l00723"></a><span class="lineno">  723</span>                (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00724" name="l00724"></a><span class="lineno">  724</span>               </div>
+<div class="line"><a id="l00725" name="l00725"></a><span class="lineno">  725</span>                <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00726" name="l00726"></a><span class="lineno">  726</span>            }</div>
+<div class="line"><a id="l00727" name="l00727"></a><span class="lineno">  727</span>            <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
+<div class="line"><a id="l00728" name="l00728"></a><span class="lineno">  728</span>            {</div>
+<div class="line"><a id="l00729" name="l00729"></a><span class="lineno">  729</span>                <span class="keywordflow">if</span> (gs_buffer_input[j] != gs_buffer_output[j])</div>
+<div class="line"><a id="l00730" name="l00730"></a><span class="lineno">  730</span>                {</div>
+<div class="line"><a id="l00731" name="l00731"></a><span class="lineno">  731</span>                    <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: write read check failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00732" name="l00732"></a><span class="lineno">  732</span>                    (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00733" name="l00733"></a><span class="lineno">  733</span>                    </div>
+<div class="line"><a id="l00734" name="l00734"></a><span class="lineno">  734</span>                    <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00735" name="l00735"></a><span class="lineno">  735</span>                }</div>
+<div class="line"><a id="l00736" name="l00736"></a><span class="lineno">  736</span>            }</div>
+<div class="line"><a id="l00737" name="l00737"></a><span class="lineno">  737</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read test passed.\n&quot;</span>);</div>
+<div class="line"><a id="l00738" name="l00738"></a><span class="lineno">  738</span>            </div>
+<div class="line"><a id="l00739" name="l00739"></a><span class="lineno">  739</span>            <span class="comment">/* w25qxx_block_erase_64k test */</span></div>
+<div class="line"><a id="l00740" name="l00740"></a><span class="lineno">  740</span>            addr = (rand() % 10) * 64 * 1024;</div>
+<div class="line"><a id="l00741" name="l00741"></a><span class="lineno">  741</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_block_erase_64k test with address 0x%X.\n&quot;</span>, addr);</div>
+<div class="line"><a id="l00742" name="l00742"></a><span class="lineno">  742</span>            res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#gaf53bc5f6073482b9b74efd417ec7ac83">w25qxx_block_erase_64k</a>(&amp;gs_handle, addr);</div>
+<div class="line"><a id="l00743" name="l00743"></a><span class="lineno">  743</span>            <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00744" name="l00744"></a><span class="lineno">  744</span>            {</div>
+<div class="line"><a id="l00745" name="l00745"></a><span class="lineno">  745</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: sector erase 64k failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00746" name="l00746"></a><span class="lineno">  746</span>                (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00747" name="l00747"></a><span class="lineno">  747</span>               </div>
+<div class="line"><a id="l00748" name="l00748"></a><span class="lineno">  748</span>                <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00749" name="l00749"></a><span class="lineno">  749</span>            }</div>
+<div class="line"><a id="l00750" name="l00750"></a><span class="lineno">  750</span>            <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
+<div class="line"><a id="l00751" name="l00751"></a><span class="lineno">  751</span>            {</div>
+<div class="line"><a id="l00752" name="l00752"></a><span class="lineno">  752</span>                gs_buffer_input[j] = rand() %256;</div>
+<div class="line"><a id="l00753" name="l00753"></a><span class="lineno">  753</span>            }</div>
+<div class="line"><a id="l00754" name="l00754"></a><span class="lineno">  754</span>            </div>
+<div class="line"><a id="l00755" name="l00755"></a><span class="lineno">  755</span>            <span class="comment">/* w25qxx_page_program */</span></div>
+<div class="line"><a id="l00756" name="l00756"></a><span class="lineno">  756</span>            res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#ga6280e7e4ab26306436e2c210617a28b3">w25qxx_page_program</a>(&amp;gs_handle, addr, gs_buffer_input, 256);</div>
+<div class="line"><a id="l00757" name="l00757"></a><span class="lineno">  757</span>            <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00758" name="l00758"></a><span class="lineno">  758</span>            {</div>
+<div class="line"><a id="l00759" name="l00759"></a><span class="lineno">  759</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: page program failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00760" name="l00760"></a><span class="lineno">  760</span>                (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00761" name="l00761"></a><span class="lineno">  761</span>               </div>
+<div class="line"><a id="l00762" name="l00762"></a><span class="lineno">  762</span>                <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00763" name="l00763"></a><span class="lineno">  763</span>            }</div>
+<div class="line"><a id="l00764" name="l00764"></a><span class="lineno">  764</span>            </div>
+<div class="line"><a id="l00765" name="l00765"></a><span class="lineno">  765</span>            <span class="comment">/* w25qxx_only_spi_read */</span></div>
+<div class="line"><a id="l00766" name="l00766"></a><span class="lineno">  766</span>            res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#ga1e9ebf198137d23558dbf6470213c472">w25qxx_only_spi_read</a>(&amp;gs_handle, addr, gs_buffer_output, 256);</div>
+<div class="line"><a id="l00767" name="l00767"></a><span class="lineno">  767</span>            <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00768" name="l00768"></a><span class="lineno">  768</span>            {</div>
+<div class="line"><a id="l00769" name="l00769"></a><span class="lineno">  769</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: only spi read failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00770" name="l00770"></a><span class="lineno">  770</span>                (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00771" name="l00771"></a><span class="lineno">  771</span>               </div>
+<div class="line"><a id="l00772" name="l00772"></a><span class="lineno">  772</span>                <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00773" name="l00773"></a><span class="lineno">  773</span>            }</div>
+<div class="line"><a id="l00774" name="l00774"></a><span class="lineno">  774</span>            <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
+<div class="line"><a id="l00775" name="l00775"></a><span class="lineno">  775</span>            {</div>
+<div class="line"><a id="l00776" name="l00776"></a><span class="lineno">  776</span>                <span class="keywordflow">if</span> (gs_buffer_input[j] != gs_buffer_output[j])</div>
+<div class="line"><a id="l00777" name="l00777"></a><span class="lineno">  777</span>                {</div>
+<div class="line"><a id="l00778" name="l00778"></a><span class="lineno">  778</span>                    <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: write read check failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00779" name="l00779"></a><span class="lineno">  779</span>                    (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00780" name="l00780"></a><span class="lineno">  780</span>                    </div>
+<div class="line"><a id="l00781" name="l00781"></a><span class="lineno">  781</span>                    <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00782" name="l00782"></a><span class="lineno">  782</span>                }</div>
+<div class="line"><a id="l00783" name="l00783"></a><span class="lineno">  783</span>            }</div>
+<div class="line"><a id="l00784" name="l00784"></a><span class="lineno">  784</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: only spi read test passed.\n&quot;</span>);</div>
+<div class="line"><a id="l00785" name="l00785"></a><span class="lineno">  785</span>            </div>
+<div class="line"><a id="l00786" name="l00786"></a><span class="lineno">  786</span>            <span class="comment">/* w25qxx_fast_read */</span></div>
+<div class="line"><a id="l00787" name="l00787"></a><span class="lineno">  787</span>            res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#gac345ba10af5ad355578fa97697487123">w25qxx_fast_read</a>(&amp;gs_handle, addr, gs_buffer_output, 256);</div>
+<div class="line"><a id="l00788" name="l00788"></a><span class="lineno">  788</span>            <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00789" name="l00789"></a><span class="lineno">  789</span>            {</div>
+<div class="line"><a id="l00790" name="l00790"></a><span class="lineno">  790</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00791" name="l00791"></a><span class="lineno">  791</span>                (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00792" name="l00792"></a><span class="lineno">  792</span>               </div>
+<div class="line"><a id="l00793" name="l00793"></a><span class="lineno">  793</span>                <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00794" name="l00794"></a><span class="lineno">  794</span>            }</div>
+<div class="line"><a id="l00795" name="l00795"></a><span class="lineno">  795</span>            <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
+<div class="line"><a id="l00796" name="l00796"></a><span class="lineno">  796</span>            {</div>
+<div class="line"><a id="l00797" name="l00797"></a><span class="lineno">  797</span>                <span class="keywordflow">if</span> (gs_buffer_input[j] != gs_buffer_output[j])</div>
+<div class="line"><a id="l00798" name="l00798"></a><span class="lineno">  798</span>                {</div>
+<div class="line"><a id="l00799" name="l00799"></a><span class="lineno">  799</span>                    <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: write read check failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00800" name="l00800"></a><span class="lineno">  800</span>                    (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00801" name="l00801"></a><span class="lineno">  801</span>                    </div>
+<div class="line"><a id="l00802" name="l00802"></a><span class="lineno">  802</span>                    <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00803" name="l00803"></a><span class="lineno">  803</span>                }</div>
+<div class="line"><a id="l00804" name="l00804"></a><span class="lineno">  804</span>            }</div>
+<div class="line"><a id="l00805" name="l00805"></a><span class="lineno">  805</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read test passed.\n&quot;</span>);</div>
+<div class="line"><a id="l00806" name="l00806"></a><span class="lineno">  806</span>            </div>
+<div class="line"><a id="l00807" name="l00807"></a><span class="lineno">  807</span>            <span class="comment">/* get sfdp */</span></div>
+<div class="line"><a id="l00808" name="l00808"></a><span class="lineno">  808</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: get sfdp.\n&quot;</span>);</div>
+<div class="line"><a id="l00809" name="l00809"></a><span class="lineno">  809</span>            memset(gs_buffer_output, 0, <span class="keyword">sizeof</span>(uint8_t) * 256);</div>
+<div class="line"><a id="l00810" name="l00810"></a><span class="lineno">  810</span>            res = <a class="code hl_function" href="group__w25qxx__advance__driver.html#ga244a91b9c0c32e899ca89e1943045624">w25qxx_get_sfdp</a>(&amp;gs_handle, (uint8_t *)gs_buffer_output);</div>
+<div class="line"><a id="l00811" name="l00811"></a><span class="lineno">  811</span>            <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00812" name="l00812"></a><span class="lineno">  812</span>            {</div>
+<div class="line"><a id="l00813" name="l00813"></a><span class="lineno">  813</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: get sfdp failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00814" name="l00814"></a><span class="lineno">  814</span>                (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00815" name="l00815"></a><span class="lineno">  815</span>               </div>
+<div class="line"><a id="l00816" name="l00816"></a><span class="lineno">  816</span>                <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00817" name="l00817"></a><span class="lineno">  817</span>            }</div>
+<div class="line"><a id="l00818" name="l00818"></a><span class="lineno">  818</span>            <span class="keywordflow">for</span> (j = 0; j &lt; 256; j += 8)</div>
+<div class="line"><a id="l00819" name="l00819"></a><span class="lineno">  819</span>            {</div>
+<div class="line"><a id="l00820" name="l00820"></a><span class="lineno">  820</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: sdfp[%d-%d] is 0x%02X 0x%02X 0x%02X 0x%02X 0x%02X 0x%02X 0x%02X 0x%02X.\n&quot;</span>, </div>
+<div class="line"><a id="l00821" name="l00821"></a><span class="lineno">  821</span>                                             j , j + 7,</div>
+<div class="line"><a id="l00822" name="l00822"></a><span class="lineno">  822</span>                                             gs_buffer_output[j + 0], gs_buffer_output[j + 1], gs_buffer_output[j + 2],</div>
+<div class="line"><a id="l00823" name="l00823"></a><span class="lineno">  823</span>                                             gs_buffer_output[j + 3], gs_buffer_output[j + 4], gs_buffer_output[j + 5],</div>
+<div class="line"><a id="l00824" name="l00824"></a><span class="lineno">  824</span>                                             gs_buffer_output[j + 6], gs_buffer_output[j + 7]);</div>
+<div class="line"><a id="l00825" name="l00825"></a><span class="lineno">  825</span>            }</div>
+<div class="line"><a id="l00826" name="l00826"></a><span class="lineno">  826</span>            </div>
+<div class="line"><a id="l00827" name="l00827"></a><span class="lineno">  827</span>            <span class="comment">/*  security register1 write and read test */</span></div>
+<div class="line"><a id="l00828" name="l00828"></a><span class="lineno">  828</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: security register1 write and read test.\n&quot;</span>);</div>
+<div class="line"><a id="l00829" name="l00829"></a><span class="lineno">  829</span>            </div>
+<div class="line"><a id="l00830" name="l00830"></a><span class="lineno">  830</span>            <span class="comment">/* security register1 write and read test */</span></div>
+<div class="line"><a id="l00831" name="l00831"></a><span class="lineno">  831</span>            res = <a class="code hl_function" href="group__w25qxx__advance__driver.html#gaf297e2c6877c64f8fd10a555f783ddaf">w25qxx_erase_security_register</a>(&amp;gs_handle, <a class="code hl_enumvalue" href="group__w25qxx__advance__driver.html#gga81ddc7d4b9f4f124163beea19cc33c7eaaf27484a497c13915c8acb0161cf137d">W25QXX_SECURITY_REGISTER_1</a>);</div>
+<div class="line"><a id="l00832" name="l00832"></a><span class="lineno">  832</span>            <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00833" name="l00833"></a><span class="lineno">  833</span>            {</div>
+<div class="line"><a id="l00834" name="l00834"></a><span class="lineno">  834</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: erase security register failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00835" name="l00835"></a><span class="lineno">  835</span>                (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00836" name="l00836"></a><span class="lineno">  836</span>               </div>
+<div class="line"><a id="l00837" name="l00837"></a><span class="lineno">  837</span>                <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00838" name="l00838"></a><span class="lineno">  838</span>            }</div>
+<div class="line"><a id="l00839" name="l00839"></a><span class="lineno">  839</span>            <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
+<div class="line"><a id="l00840" name="l00840"></a><span class="lineno">  840</span>            {</div>
+<div class="line"><a id="l00841" name="l00841"></a><span class="lineno">  841</span>                gs_buffer_input[j] = rand() %256;</div>
+<div class="line"><a id="l00842" name="l00842"></a><span class="lineno">  842</span>            }</div>
+<div class="line"><a id="l00843" name="l00843"></a><span class="lineno">  843</span>            res = <a class="code hl_function" href="group__w25qxx__advance__driver.html#ga4e9c059ff78866e478e835cb27a92899">w25qxx_program_security_register</a>(&amp;gs_handle, <a class="code hl_enumvalue" href="group__w25qxx__advance__driver.html#gga81ddc7d4b9f4f124163beea19cc33c7eaaf27484a497c13915c8acb0161cf137d">W25QXX_SECURITY_REGISTER_1</a>, gs_buffer_input);</div>
+<div class="line"><a id="l00844" name="l00844"></a><span class="lineno">  844</span>            <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00845" name="l00845"></a><span class="lineno">  845</span>            {</div>
+<div class="line"><a id="l00846" name="l00846"></a><span class="lineno">  846</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: program security register failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00847" name="l00847"></a><span class="lineno">  847</span>                (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00848" name="l00848"></a><span class="lineno">  848</span>               </div>
+<div class="line"><a id="l00849" name="l00849"></a><span class="lineno">  849</span>                <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00850" name="l00850"></a><span class="lineno">  850</span>            }</div>
+<div class="line"><a id="l00851" name="l00851"></a><span class="lineno">  851</span>            res = <a class="code hl_function" href="group__w25qxx__advance__driver.html#ga4c65debc4947bd9a61e0073105164b9c">w25qxx_read_security_register</a>(&amp;gs_handle, <a class="code hl_enumvalue" href="group__w25qxx__advance__driver.html#gga81ddc7d4b9f4f124163beea19cc33c7eaaf27484a497c13915c8acb0161cf137d">W25QXX_SECURITY_REGISTER_1</a>, gs_buffer_output);</div>
+<div class="line"><a id="l00852" name="l00852"></a><span class="lineno">  852</span>            <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00853" name="l00853"></a><span class="lineno">  853</span>            {</div>
+<div class="line"><a id="l00854" name="l00854"></a><span class="lineno">  854</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: read security register failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00855" name="l00855"></a><span class="lineno">  855</span>                (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00856" name="l00856"></a><span class="lineno">  856</span>               </div>
+<div class="line"><a id="l00857" name="l00857"></a><span class="lineno">  857</span>                <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00858" name="l00858"></a><span class="lineno">  858</span>            }</div>
+<div class="line"><a id="l00859" name="l00859"></a><span class="lineno">  859</span>            <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
+<div class="line"><a id="l00860" name="l00860"></a><span class="lineno">  860</span>            {</div>
+<div class="line"><a id="l00861" name="l00861"></a><span class="lineno">  861</span>                <span class="keywordflow">if</span> (gs_buffer_input[j] != gs_buffer_output[j])</div>
+<div class="line"><a id="l00862" name="l00862"></a><span class="lineno">  862</span>                {</div>
+<div class="line"><a id="l00863" name="l00863"></a><span class="lineno">  863</span>                    <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: write read check failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00864" name="l00864"></a><span class="lineno">  864</span>                    (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00865" name="l00865"></a><span class="lineno">  865</span>                    </div>
+<div class="line"><a id="l00866" name="l00866"></a><span class="lineno">  866</span>                    <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00867" name="l00867"></a><span class="lineno">  867</span>                }</div>
+<div class="line"><a id="l00868" name="l00868"></a><span class="lineno">  868</span>            }</div>
+<div class="line"><a id="l00869" name="l00869"></a><span class="lineno">  869</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: security register1 check passed.\n&quot;</span>);</div>
+<div class="line"><a id="l00870" name="l00870"></a><span class="lineno">  870</span>            </div>
+<div class="line"><a id="l00871" name="l00871"></a><span class="lineno">  871</span>            <span class="comment">/*  security register2 write and read test */</span></div>
+<div class="line"><a id="l00872" name="l00872"></a><span class="lineno">  872</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: security register2 write and read test.\n&quot;</span>);</div>
+<div class="line"><a id="l00873" name="l00873"></a><span class="lineno">  873</span>            </div>
+<div class="line"><a id="l00874" name="l00874"></a><span class="lineno">  874</span>            <span class="comment">/* security register2 write and read test */</span></div>
+<div class="line"><a id="l00875" name="l00875"></a><span class="lineno">  875</span>            res = <a class="code hl_function" href="group__w25qxx__advance__driver.html#gaf297e2c6877c64f8fd10a555f783ddaf">w25qxx_erase_security_register</a>(&amp;gs_handle, <a class="code hl_enumvalue" href="group__w25qxx__advance__driver.html#gga81ddc7d4b9f4f124163beea19cc33c7ea3353a88090850174ca163d56e4d7089c">W25QXX_SECURITY_REGISTER_2</a>);</div>
+<div class="line"><a id="l00876" name="l00876"></a><span class="lineno">  876</span>            <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00877" name="l00877"></a><span class="lineno">  877</span>            {</div>
+<div class="line"><a id="l00878" name="l00878"></a><span class="lineno">  878</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: erase security register failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00879" name="l00879"></a><span class="lineno">  879</span>                (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00880" name="l00880"></a><span class="lineno">  880</span>               </div>
+<div class="line"><a id="l00881" name="l00881"></a><span class="lineno">  881</span>                <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00882" name="l00882"></a><span class="lineno">  882</span>            }</div>
+<div class="line"><a id="l00883" name="l00883"></a><span class="lineno">  883</span>            <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
+<div class="line"><a id="l00884" name="l00884"></a><span class="lineno">  884</span>            {</div>
+<div class="line"><a id="l00885" name="l00885"></a><span class="lineno">  885</span>                gs_buffer_input[j] = rand() %256;</div>
+<div class="line"><a id="l00886" name="l00886"></a><span class="lineno">  886</span>            }</div>
+<div class="line"><a id="l00887" name="l00887"></a><span class="lineno">  887</span>            res = <a class="code hl_function" href="group__w25qxx__advance__driver.html#ga4e9c059ff78866e478e835cb27a92899">w25qxx_program_security_register</a>(&amp;gs_handle, <a class="code hl_enumvalue" href="group__w25qxx__advance__driver.html#gga81ddc7d4b9f4f124163beea19cc33c7ea3353a88090850174ca163d56e4d7089c">W25QXX_SECURITY_REGISTER_2</a>, gs_buffer_input);</div>
+<div class="line"><a id="l00888" name="l00888"></a><span class="lineno">  888</span>            <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00889" name="l00889"></a><span class="lineno">  889</span>            {</div>
+<div class="line"><a id="l00890" name="l00890"></a><span class="lineno">  890</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: program security register failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00891" name="l00891"></a><span class="lineno">  891</span>                (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00892" name="l00892"></a><span class="lineno">  892</span>               </div>
+<div class="line"><a id="l00893" name="l00893"></a><span class="lineno">  893</span>                <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00894" name="l00894"></a><span class="lineno">  894</span>            }</div>
+<div class="line"><a id="l00895" name="l00895"></a><span class="lineno">  895</span>            res = <a class="code hl_function" href="group__w25qxx__advance__driver.html#ga4c65debc4947bd9a61e0073105164b9c">w25qxx_read_security_register</a>(&amp;gs_handle, <a class="code hl_enumvalue" href="group__w25qxx__advance__driver.html#gga81ddc7d4b9f4f124163beea19cc33c7ea3353a88090850174ca163d56e4d7089c">W25QXX_SECURITY_REGISTER_2</a>, gs_buffer_output);</div>
+<div class="line"><a id="l00896" name="l00896"></a><span class="lineno">  896</span>            <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00897" name="l00897"></a><span class="lineno">  897</span>            {</div>
+<div class="line"><a id="l00898" name="l00898"></a><span class="lineno">  898</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: read security register failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00899" name="l00899"></a><span class="lineno">  899</span>                (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00900" name="l00900"></a><span class="lineno">  900</span>               </div>
+<div class="line"><a id="l00901" name="l00901"></a><span class="lineno">  901</span>                <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00902" name="l00902"></a><span class="lineno">  902</span>            }</div>
+<div class="line"><a id="l00903" name="l00903"></a><span class="lineno">  903</span>            <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
+<div class="line"><a id="l00904" name="l00904"></a><span class="lineno">  904</span>            {</div>
+<div class="line"><a id="l00905" name="l00905"></a><span class="lineno">  905</span>                <span class="keywordflow">if</span> (gs_buffer_input[j] != gs_buffer_output[j])</div>
+<div class="line"><a id="l00906" name="l00906"></a><span class="lineno">  906</span>                {</div>
+<div class="line"><a id="l00907" name="l00907"></a><span class="lineno">  907</span>                    <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: write read check failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00908" name="l00908"></a><span class="lineno">  908</span>                    (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00909" name="l00909"></a><span class="lineno">  909</span>                    </div>
+<div class="line"><a id="l00910" name="l00910"></a><span class="lineno">  910</span>                    <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00911" name="l00911"></a><span class="lineno">  911</span>                }</div>
+<div class="line"><a id="l00912" name="l00912"></a><span class="lineno">  912</span>            }</div>
+<div class="line"><a id="l00913" name="l00913"></a><span class="lineno">  913</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: security register2 check passed.\n&quot;</span>);</div>
+<div class="line"><a id="l00914" name="l00914"></a><span class="lineno">  914</span> </div>
+<div class="line"><a id="l00915" name="l00915"></a><span class="lineno">  915</span>            <span class="comment">/*  security register3 write and read test */</span></div>
+<div class="line"><a id="l00916" name="l00916"></a><span class="lineno">  916</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: security register3 write and read test.\n&quot;</span>);</div>
+<div class="line"><a id="l00917" name="l00917"></a><span class="lineno">  917</span>            </div>
+<div class="line"><a id="l00918" name="l00918"></a><span class="lineno">  918</span>            <span class="comment">/* security register3 write and read test */</span></div>
+<div class="line"><a id="l00919" name="l00919"></a><span class="lineno">  919</span>            res = <a class="code hl_function" href="group__w25qxx__advance__driver.html#gaf297e2c6877c64f8fd10a555f783ddaf">w25qxx_erase_security_register</a>(&amp;gs_handle, <a class="code hl_enumvalue" href="group__w25qxx__advance__driver.html#gga81ddc7d4b9f4f124163beea19cc33c7ea65b73162d921075bed8cb8d848948900">W25QXX_SECURITY_REGISTER_3</a>);</div>
+<div class="line"><a id="l00920" name="l00920"></a><span class="lineno">  920</span>            <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00921" name="l00921"></a><span class="lineno">  921</span>            {</div>
+<div class="line"><a id="l00922" name="l00922"></a><span class="lineno">  922</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: erase security register failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00923" name="l00923"></a><span class="lineno">  923</span>                (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00924" name="l00924"></a><span class="lineno">  924</span>               </div>
+<div class="line"><a id="l00925" name="l00925"></a><span class="lineno">  925</span>                <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00926" name="l00926"></a><span class="lineno">  926</span>            }</div>
+<div class="line"><a id="l00927" name="l00927"></a><span class="lineno">  927</span>            <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
+<div class="line"><a id="l00928" name="l00928"></a><span class="lineno">  928</span>            {</div>
+<div class="line"><a id="l00929" name="l00929"></a><span class="lineno">  929</span>                gs_buffer_input[j] = rand() %256;</div>
+<div class="line"><a id="l00930" name="l00930"></a><span class="lineno">  930</span>            }</div>
+<div class="line"><a id="l00931" name="l00931"></a><span class="lineno">  931</span>            res = <a class="code hl_function" href="group__w25qxx__advance__driver.html#ga4e9c059ff78866e478e835cb27a92899">w25qxx_program_security_register</a>(&amp;gs_handle, <a class="code hl_enumvalue" href="group__w25qxx__advance__driver.html#gga81ddc7d4b9f4f124163beea19cc33c7ea65b73162d921075bed8cb8d848948900">W25QXX_SECURITY_REGISTER_3</a>, gs_buffer_input);</div>
+<div class="line"><a id="l00932" name="l00932"></a><span class="lineno">  932</span>            <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00933" name="l00933"></a><span class="lineno">  933</span>            {</div>
+<div class="line"><a id="l00934" name="l00934"></a><span class="lineno">  934</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: program security register failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00935" name="l00935"></a><span class="lineno">  935</span>                (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00936" name="l00936"></a><span class="lineno">  936</span>               </div>
+<div class="line"><a id="l00937" name="l00937"></a><span class="lineno">  937</span>                <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00938" name="l00938"></a><span class="lineno">  938</span>            }</div>
+<div class="line"><a id="l00939" name="l00939"></a><span class="lineno">  939</span>            res = <a class="code hl_function" href="group__w25qxx__advance__driver.html#ga4c65debc4947bd9a61e0073105164b9c">w25qxx_read_security_register</a>(&amp;gs_handle, <a class="code hl_enumvalue" href="group__w25qxx__advance__driver.html#gga81ddc7d4b9f4f124163beea19cc33c7ea65b73162d921075bed8cb8d848948900">W25QXX_SECURITY_REGISTER_3</a>, gs_buffer_output);</div>
+<div class="line"><a id="l00940" name="l00940"></a><span class="lineno">  940</span>            <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00941" name="l00941"></a><span class="lineno">  941</span>            {</div>
+<div class="line"><a id="l00942" name="l00942"></a><span class="lineno">  942</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: read security register failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00943" name="l00943"></a><span class="lineno">  943</span>                (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00944" name="l00944"></a><span class="lineno">  944</span>               </div>
+<div class="line"><a id="l00945" name="l00945"></a><span class="lineno">  945</span>                <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00946" name="l00946"></a><span class="lineno">  946</span>            }</div>
+<div class="line"><a id="l00947" name="l00947"></a><span class="lineno">  947</span>            <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
+<div class="line"><a id="l00948" name="l00948"></a><span class="lineno">  948</span>            {</div>
+<div class="line"><a id="l00949" name="l00949"></a><span class="lineno">  949</span>                <span class="keywordflow">if</span> (gs_buffer_input[j] != gs_buffer_output[j])</div>
+<div class="line"><a id="l00950" name="l00950"></a><span class="lineno">  950</span>                {</div>
+<div class="line"><a id="l00951" name="l00951"></a><span class="lineno">  951</span>                    <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: write read check failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00952" name="l00952"></a><span class="lineno">  952</span>                    (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00953" name="l00953"></a><span class="lineno">  953</span>                    </div>
+<div class="line"><a id="l00954" name="l00954"></a><span class="lineno">  954</span>                    <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00955" name="l00955"></a><span class="lineno">  955</span>                }</div>
+<div class="line"><a id="l00956" name="l00956"></a><span class="lineno">  956</span>            }</div>
+<div class="line"><a id="l00957" name="l00957"></a><span class="lineno">  957</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: security register3 check passed.\n&quot;</span>);</div>
+<div class="line"><a id="l00958" name="l00958"></a><span class="lineno">  958</span>            </div>
+<div class="line"><a id="l00959" name="l00959"></a><span class="lineno">  959</span>            <span class="comment">/* set address mode 3 byte */</span></div>
+<div class="line"><a id="l00960" name="l00960"></a><span class="lineno">  960</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set address mode 3 byte.\n&quot;</span>);</div>
+<div class="line"><a id="l00961" name="l00961"></a><span class="lineno">  961</span>            </div>
+<div class="line"><a id="l00962" name="l00962"></a><span class="lineno">  962</span>            <span class="comment">/* set address mode 3 byte */</span></div>
+<div class="line"><a id="l00963" name="l00963"></a><span class="lineno">  963</span>            res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#gad0e125eff304ce66fb3956d2c8c80656">w25qxx_set_address_mode</a>(&amp;gs_handle, <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>);</div>
+<div class="line"><a id="l00964" name="l00964"></a><span class="lineno">  964</span>            <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00965" name="l00965"></a><span class="lineno">  965</span>            {</div>
+<div class="line"><a id="l00966" name="l00966"></a><span class="lineno">  966</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set address mode failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00967" name="l00967"></a><span class="lineno">  967</span>                (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00968" name="l00968"></a><span class="lineno">  968</span>               </div>
+<div class="line"><a id="l00969" name="l00969"></a><span class="lineno">  969</span>                <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00970" name="l00970"></a><span class="lineno">  970</span>            }</div>
+<div class="line"><a id="l00971" name="l00971"></a><span class="lineno">  971</span>        }</div>
+<div class="line"><a id="l00972" name="l00972"></a><span class="lineno">  972</span>    }</div>
+<div class="line"><a id="l00973" name="l00973"></a><span class="lineno">  973</span>    <span class="keywordflow">else</span></div>
+<div class="line"><a id="l00974" name="l00974"></a><span class="lineno">  974</span>    {</div>
+<div class="line"><a id="l00975" name="l00975"></a><span class="lineno">  975</span>        uint32_t size;</div>
+<div class="line"><a id="l00976" name="l00976"></a><span class="lineno">  976</span>        uint32_t addr, step, j;</div>
+<div class="line"><a id="l00977" name="l00977"></a><span class="lineno">  977</span>        </div>
+<div class="line"><a id="l00978" name="l00978"></a><span class="lineno">  978</span>        size = gsc_size[type - <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a1ad4f72437de5f26cb7b212d4d91e7c2">W25Q80</a>];</div>
+<div class="line"><a id="l00979" name="l00979"></a><span class="lineno">  979</span>        step = size / 16;</div>
+<div class="line"><a id="l00980" name="l00980"></a><span class="lineno">  980</span>        </div>
+<div class="line"><a id="l00981" name="l00981"></a><span class="lineno">  981</span>        <span class="comment">/* w25qxx_write/w25qxx_read test */</span></div>
+<div class="line"><a id="l00982" name="l00982"></a><span class="lineno">  982</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_write/w25qxx_read test.\n&quot;</span>);</div>
+<div class="line"><a id="l00983" name="l00983"></a><span class="lineno">  983</span>        </div>
+<div class="line"><a id="l00984" name="l00984"></a><span class="lineno">  984</span>        <span class="keywordflow">for</span> (addr = 0; addr &lt; size; addr += step)</div>
+<div class="line"><a id="l00985" name="l00985"></a><span class="lineno">  985</span>        {</div>
+<div class="line"><a id="l00986" name="l00986"></a><span class="lineno">  986</span>            <span class="keywordflow">for</span> (j = 0; j &lt; 600; j++)</div>
+<div class="line"><a id="l00987" name="l00987"></a><span class="lineno">  987</span>            {</div>
+<div class="line"><a id="l00988" name="l00988"></a><span class="lineno">  988</span>                gs_buffer_input[j] = rand() %256;</div>
+<div class="line"><a id="l00989" name="l00989"></a><span class="lineno">  989</span>            }</div>
+<div class="line"><a id="l00990" name="l00990"></a><span class="lineno">  990</span>            res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#gaaee8264d840e51460821cb6e609338ee">w25qxx_write</a>(&amp;gs_handle, addr, gs_buffer_input, 600);</div>
+<div class="line"><a id="l00991" name="l00991"></a><span class="lineno">  991</span>            <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00992" name="l00992"></a><span class="lineno">  992</span>            {</div>
+<div class="line"><a id="l00993" name="l00993"></a><span class="lineno">  993</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: write failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00994" name="l00994"></a><span class="lineno">  994</span>                (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00995" name="l00995"></a><span class="lineno">  995</span>               </div>
+<div class="line"><a id="l00996" name="l00996"></a><span class="lineno">  996</span>                <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00997" name="l00997"></a><span class="lineno">  997</span>            }</div>
+<div class="line"><a id="l00998" name="l00998"></a><span class="lineno">  998</span>            res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#gae7479fc9ce911a52e3c5b6f1a615b879">w25qxx_read</a>(&amp;gs_handle, addr, gs_buffer_output, 600);</div>
+<div class="line"><a id="l00999" name="l00999"></a><span class="lineno">  999</span>            <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l01000" name="l01000"></a><span class="lineno"> 1000</span>            {</div>
+<div class="line"><a id="l01001" name="l01001"></a><span class="lineno"> 1001</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: read failed.\n&quot;</span>);</div>
+<div class="line"><a id="l01002" name="l01002"></a><span class="lineno"> 1002</span>                (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l01003" name="l01003"></a><span class="lineno"> 1003</span>               </div>
+<div class="line"><a id="l01004" name="l01004"></a><span class="lineno"> 1004</span>                <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l01005" name="l01005"></a><span class="lineno"> 1005</span>            }</div>
+<div class="line"><a id="l01006" name="l01006"></a><span class="lineno"> 1006</span>            <span class="keywordflow">for</span> (j = 0; j &lt; 600; j++)</div>
+<div class="line"><a id="l01007" name="l01007"></a><span class="lineno"> 1007</span>            {</div>
+<div class="line"><a id="l01008" name="l01008"></a><span class="lineno"> 1008</span>                <span class="keywordflow">if</span> (gs_buffer_input[j] != gs_buffer_output[j])</div>
+<div class="line"><a id="l01009" name="l01009"></a><span class="lineno"> 1009</span>                {</div>
+<div class="line"><a id="l01010" name="l01010"></a><span class="lineno"> 1010</span>                    <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: write read check failed.\n&quot;</span>);</div>
+<div class="line"><a id="l01011" name="l01011"></a><span class="lineno"> 1011</span>                    (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l01012" name="l01012"></a><span class="lineno"> 1012</span>                    </div>
+<div class="line"><a id="l01013" name="l01013"></a><span class="lineno"> 1013</span>                    <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l01014" name="l01014"></a><span class="lineno"> 1014</span>                }</div>
+<div class="line"><a id="l01015" name="l01015"></a><span class="lineno"> 1015</span>            }</div>
+<div class="line"><a id="l01016" name="l01016"></a><span class="lineno"> 1016</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: 0x%08X/0x%08X successful.\n&quot;</span>, addr, size);</div>
+<div class="line"><a id="l01017" name="l01017"></a><span class="lineno"> 1017</span>        }</div>
+<div class="line"><a id="l01018" name="l01018"></a><span class="lineno"> 1018</span>        </div>
+<div class="line"><a id="l01019" name="l01019"></a><span class="lineno"> 1019</span>        <span class="comment">/* w25qxx_sector_erase_4k test */</span></div>
+<div class="line"><a id="l01020" name="l01020"></a><span class="lineno"> 1020</span>        addr = (rand() % 10) * 4 * 1024;</div>
+<div class="line"><a id="l01021" name="l01021"></a><span class="lineno"> 1021</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_sector_erase_4k test with address 0x%X.\n&quot;</span>, addr);</div>
+<div class="line"><a id="l01022" name="l01022"></a><span class="lineno"> 1022</span>        res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#ga9a03c51b4c84655350c15fbfce0a6b40">w25qxx_sector_erase_4k</a>(&amp;gs_handle, addr);</div>
+<div class="line"><a id="l01023" name="l01023"></a><span class="lineno"> 1023</span>        <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l01024" name="l01024"></a><span class="lineno"> 1024</span>        {</div>
+<div class="line"><a id="l01025" name="l01025"></a><span class="lineno"> 1025</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: sector erase 4k failed.\n&quot;</span>);</div>
+<div class="line"><a id="l01026" name="l01026"></a><span class="lineno"> 1026</span>            (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l01027" name="l01027"></a><span class="lineno"> 1027</span>           </div>
+<div class="line"><a id="l01028" name="l01028"></a><span class="lineno"> 1028</span>            <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l01029" name="l01029"></a><span class="lineno"> 1029</span>        }</div>
+<div class="line"><a id="l01030" name="l01030"></a><span class="lineno"> 1030</span>        <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
+<div class="line"><a id="l01031" name="l01031"></a><span class="lineno"> 1031</span>        {</div>
+<div class="line"><a id="l01032" name="l01032"></a><span class="lineno"> 1032</span>            gs_buffer_input[j] = rand() %256;</div>
+<div class="line"><a id="l01033" name="l01033"></a><span class="lineno"> 1033</span>        }</div>
+<div class="line"><a id="l01034" name="l01034"></a><span class="lineno"> 1034</span>        </div>
+<div class="line"><a id="l01035" name="l01035"></a><span class="lineno"> 1035</span>        <span class="comment">/* w25qxx_page_program */</span></div>
+<div class="line"><a id="l01036" name="l01036"></a><span class="lineno"> 1036</span>        res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#ga6280e7e4ab26306436e2c210617a28b3">w25qxx_page_program</a>(&amp;gs_handle, addr, gs_buffer_input, 256);</div>
+<div class="line"><a id="l01037" name="l01037"></a><span class="lineno"> 1037</span>        <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l01038" name="l01038"></a><span class="lineno"> 1038</span>        {</div>
+<div class="line"><a id="l01039" name="l01039"></a><span class="lineno"> 1039</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: page program failed.\n&quot;</span>);</div>
+<div class="line"><a id="l01040" name="l01040"></a><span class="lineno"> 1040</span>            (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l01041" name="l01041"></a><span class="lineno"> 1041</span>           </div>
+<div class="line"><a id="l01042" name="l01042"></a><span class="lineno"> 1042</span>            <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l01043" name="l01043"></a><span class="lineno"> 1043</span>        }</div>
+<div class="line"><a id="l01044" name="l01044"></a><span class="lineno"> 1044</span>        </div>
+<div class="line"><a id="l01045" name="l01045"></a><span class="lineno"> 1045</span>        <span class="comment">/* w25qxx_fast_read */</span></div>
+<div class="line"><a id="l01046" name="l01046"></a><span class="lineno"> 1046</span>        res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#gac345ba10af5ad355578fa97697487123">w25qxx_fast_read</a>(&amp;gs_handle, addr, gs_buffer_output, 256);</div>
+<div class="line"><a id="l01047" name="l01047"></a><span class="lineno"> 1047</span>        <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l01048" name="l01048"></a><span class="lineno"> 1048</span>        {</div>
+<div class="line"><a id="l01049" name="l01049"></a><span class="lineno"> 1049</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read failed.\n&quot;</span>);</div>
+<div class="line"><a id="l01050" name="l01050"></a><span class="lineno"> 1050</span>            (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l01051" name="l01051"></a><span class="lineno"> 1051</span>           </div>
+<div class="line"><a id="l01052" name="l01052"></a><span class="lineno"> 1052</span>            <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l01053" name="l01053"></a><span class="lineno"> 1053</span>        }</div>
+<div class="line"><a id="l01054" name="l01054"></a><span class="lineno"> 1054</span>        <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
+<div class="line"><a id="l01055" name="l01055"></a><span class="lineno"> 1055</span>        {</div>
+<div class="line"><a id="l01056" name="l01056"></a><span class="lineno"> 1056</span>            <span class="keywordflow">if</span> (gs_buffer_input[j] != gs_buffer_output[j])</div>
+<div class="line"><a id="l01057" name="l01057"></a><span class="lineno"> 1057</span>            {</div>
+<div class="line"><a id="l01058" name="l01058"></a><span class="lineno"> 1058</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: write read check failed.\n&quot;</span>);</div>
+<div class="line"><a id="l01059" name="l01059"></a><span class="lineno"> 1059</span>                (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l01060" name="l01060"></a><span class="lineno"> 1060</span>                </div>
+<div class="line"><a id="l01061" name="l01061"></a><span class="lineno"> 1061</span>                <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l01062" name="l01062"></a><span class="lineno"> 1062</span>            }</div>
+<div class="line"><a id="l01063" name="l01063"></a><span class="lineno"> 1063</span>        }</div>
+<div class="line"><a id="l01064" name="l01064"></a><span class="lineno"> 1064</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read test passed.\n&quot;</span>);</div>
+<div class="line"><a id="l01065" name="l01065"></a><span class="lineno"> 1065</span>        </div>
+<div class="line"><a id="l01066" name="l01066"></a><span class="lineno"> 1066</span>        <span class="comment">/* w25qxx_block_erase_32k test */</span></div>
+<div class="line"><a id="l01067" name="l01067"></a><span class="lineno"> 1067</span>        addr = (rand() % 10) * 32 * 1024;</div>
+<div class="line"><a id="l01068" name="l01068"></a><span class="lineno"> 1068</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_block_erase_32k test with address 0x%X.\n&quot;</span>, addr);</div>
+<div class="line"><a id="l01069" name="l01069"></a><span class="lineno"> 1069</span>        res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#ga39c8fb382e8c3e4d57232dfa79af781c">w25qxx_block_erase_32k</a>(&amp;gs_handle, addr);</div>
+<div class="line"><a id="l01070" name="l01070"></a><span class="lineno"> 1070</span>        <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l01071" name="l01071"></a><span class="lineno"> 1071</span>        {</div>
+<div class="line"><a id="l01072" name="l01072"></a><span class="lineno"> 1072</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: sector erase 32k failed.\n&quot;</span>);</div>
+<div class="line"><a id="l01073" name="l01073"></a><span class="lineno"> 1073</span>            (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l01074" name="l01074"></a><span class="lineno"> 1074</span>           </div>
+<div class="line"><a id="l01075" name="l01075"></a><span class="lineno"> 1075</span>            <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l01076" name="l01076"></a><span class="lineno"> 1076</span>        }</div>
+<div class="line"><a id="l01077" name="l01077"></a><span class="lineno"> 1077</span>        <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
+<div class="line"><a id="l01078" name="l01078"></a><span class="lineno"> 1078</span>        {</div>
+<div class="line"><a id="l01079" name="l01079"></a><span class="lineno"> 1079</span>            gs_buffer_input[j] = rand() %256;</div>
+<div class="line"><a id="l01080" name="l01080"></a><span class="lineno"> 1080</span>        }</div>
+<div class="line"><a id="l01081" name="l01081"></a><span class="lineno"> 1081</span>        </div>
+<div class="line"><a id="l01082" name="l01082"></a><span class="lineno"> 1082</span>        <span class="comment">/* w25qxx_page_program */</span></div>
+<div class="line"><a id="l01083" name="l01083"></a><span class="lineno"> 1083</span>        res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#ga6280e7e4ab26306436e2c210617a28b3">w25qxx_page_program</a>(&amp;gs_handle, addr, gs_buffer_input, 256);</div>
+<div class="line"><a id="l01084" name="l01084"></a><span class="lineno"> 1084</span>        <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l01085" name="l01085"></a><span class="lineno"> 1085</span>        {</div>
+<div class="line"><a id="l01086" name="l01086"></a><span class="lineno"> 1086</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: page program failed.\n&quot;</span>);</div>
+<div class="line"><a id="l01087" name="l01087"></a><span class="lineno"> 1087</span>            (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l01088" name="l01088"></a><span class="lineno"> 1088</span>           </div>
+<div class="line"><a id="l01089" name="l01089"></a><span class="lineno"> 1089</span>            <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l01090" name="l01090"></a><span class="lineno"> 1090</span>        }</div>
+<div class="line"><a id="l01091" name="l01091"></a><span class="lineno"> 1091</span>        </div>
+<div class="line"><a id="l01092" name="l01092"></a><span class="lineno"> 1092</span>        <span class="comment">/* w25qxx_fast_read */</span></div>
+<div class="line"><a id="l01093" name="l01093"></a><span class="lineno"> 1093</span>        res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#gac345ba10af5ad355578fa97697487123">w25qxx_fast_read</a>(&amp;gs_handle, addr, gs_buffer_output, 256);</div>
+<div class="line"><a id="l01094" name="l01094"></a><span class="lineno"> 1094</span>        <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l01095" name="l01095"></a><span class="lineno"> 1095</span>        {</div>
+<div class="line"><a id="l01096" name="l01096"></a><span class="lineno"> 1096</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read failed.\n&quot;</span>);</div>
+<div class="line"><a id="l01097" name="l01097"></a><span class="lineno"> 1097</span>            (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l01098" name="l01098"></a><span class="lineno"> 1098</span>           </div>
+<div class="line"><a id="l01099" name="l01099"></a><span class="lineno"> 1099</span>            <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l01100" name="l01100"></a><span class="lineno"> 1100</span>        }</div>
+<div class="line"><a id="l01101" name="l01101"></a><span class="lineno"> 1101</span>        <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
+<div class="line"><a id="l01102" name="l01102"></a><span class="lineno"> 1102</span>        {</div>
+<div class="line"><a id="l01103" name="l01103"></a><span class="lineno"> 1103</span>            <span class="keywordflow">if</span> (gs_buffer_input[j] != gs_buffer_output[j])</div>
+<div class="line"><a id="l01104" name="l01104"></a><span class="lineno"> 1104</span>            {</div>
+<div class="line"><a id="l01105" name="l01105"></a><span class="lineno"> 1105</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: write read check failed.\n&quot;</span>);</div>
+<div class="line"><a id="l01106" name="l01106"></a><span class="lineno"> 1106</span>                (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l01107" name="l01107"></a><span class="lineno"> 1107</span>                </div>
+<div class="line"><a id="l01108" name="l01108"></a><span class="lineno"> 1108</span>                <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l01109" name="l01109"></a><span class="lineno"> 1109</span>            }</div>
+<div class="line"><a id="l01110" name="l01110"></a><span class="lineno"> 1110</span>        }</div>
+<div class="line"><a id="l01111" name="l01111"></a><span class="lineno"> 1111</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read test passed.\n&quot;</span>);</div>
+<div class="line"><a id="l01112" name="l01112"></a><span class="lineno"> 1112</span>        </div>
+<div class="line"><a id="l01113" name="l01113"></a><span class="lineno"> 1113</span>        <span class="comment">/* w25qxx_block_erase_64k test */</span></div>
+<div class="line"><a id="l01114" name="l01114"></a><span class="lineno"> 1114</span>        addr = (rand() % 10) * 64 * 1024;</div>
+<div class="line"><a id="l01115" name="l01115"></a><span class="lineno"> 1115</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_block_erase_64k test with address 0x%X.\n&quot;</span>, addr);</div>
+<div class="line"><a id="l01116" name="l01116"></a><span class="lineno"> 1116</span>        res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#gaf53bc5f6073482b9b74efd417ec7ac83">w25qxx_block_erase_64k</a>(&amp;gs_handle, addr);</div>
+<div class="line"><a id="l01117" name="l01117"></a><span class="lineno"> 1117</span>        <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l01118" name="l01118"></a><span class="lineno"> 1118</span>        {</div>
+<div class="line"><a id="l01119" name="l01119"></a><span class="lineno"> 1119</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: sector erase 64k failed.\n&quot;</span>);</div>
+<div class="line"><a id="l01120" name="l01120"></a><span class="lineno"> 1120</span>            (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l01121" name="l01121"></a><span class="lineno"> 1121</span>           </div>
+<div class="line"><a id="l01122" name="l01122"></a><span class="lineno"> 1122</span>            <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l01123" name="l01123"></a><span class="lineno"> 1123</span>        }</div>
+<div class="line"><a id="l01124" name="l01124"></a><span class="lineno"> 1124</span>        <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
+<div class="line"><a id="l01125" name="l01125"></a><span class="lineno"> 1125</span>        {</div>
+<div class="line"><a id="l01126" name="l01126"></a><span class="lineno"> 1126</span>            gs_buffer_input[j] = rand() %256;</div>
+<div class="line"><a id="l01127" name="l01127"></a><span class="lineno"> 1127</span>        }</div>
+<div class="line"><a id="l01128" name="l01128"></a><span class="lineno"> 1128</span>        </div>
+<div class="line"><a id="l01129" name="l01129"></a><span class="lineno"> 1129</span>        <span class="comment">/* w25qxx_page_program */</span></div>
+<div class="line"><a id="l01130" name="l01130"></a><span class="lineno"> 1130</span>        res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#ga6280e7e4ab26306436e2c210617a28b3">w25qxx_page_program</a>(&amp;gs_handle, addr, gs_buffer_input, 256);</div>
+<div class="line"><a id="l01131" name="l01131"></a><span class="lineno"> 1131</span>        <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l01132" name="l01132"></a><span class="lineno"> 1132</span>        {</div>
+<div class="line"><a id="l01133" name="l01133"></a><span class="lineno"> 1133</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: page program failed.\n&quot;</span>);</div>
+<div class="line"><a id="l01134" name="l01134"></a><span class="lineno"> 1134</span>            (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l01135" name="l01135"></a><span class="lineno"> 1135</span>           </div>
+<div class="line"><a id="l01136" name="l01136"></a><span class="lineno"> 1136</span>            <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l01137" name="l01137"></a><span class="lineno"> 1137</span>        }</div>
+<div class="line"><a id="l01138" name="l01138"></a><span class="lineno"> 1138</span>        </div>
+<div class="line"><a id="l01139" name="l01139"></a><span class="lineno"> 1139</span>        <span class="comment">/* w25qxx_fast_read */</span></div>
+<div class="line"><a id="l01140" name="l01140"></a><span class="lineno"> 1140</span>        res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#gac345ba10af5ad355578fa97697487123">w25qxx_fast_read</a>(&amp;gs_handle, addr, gs_buffer_output, 256);</div>
+<div class="line"><a id="l01141" name="l01141"></a><span class="lineno"> 1141</span>        <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l01142" name="l01142"></a><span class="lineno"> 1142</span>        {</div>
+<div class="line"><a id="l01143" name="l01143"></a><span class="lineno"> 1143</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read failed.\n&quot;</span>);</div>
+<div class="line"><a id="l01144" name="l01144"></a><span class="lineno"> 1144</span>            (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l01145" name="l01145"></a><span class="lineno"> 1145</span>           </div>
+<div class="line"><a id="l01146" name="l01146"></a><span class="lineno"> 1146</span>            <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l01147" name="l01147"></a><span class="lineno"> 1147</span>        }</div>
+<div class="line"><a id="l01148" name="l01148"></a><span class="lineno"> 1148</span>        <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
+<div class="line"><a id="l01149" name="l01149"></a><span class="lineno"> 1149</span>        {</div>
+<div class="line"><a id="l01150" name="l01150"></a><span class="lineno"> 1150</span>            <span class="keywordflow">if</span> (gs_buffer_input[j] != gs_buffer_output[j])</div>
+<div class="line"><a id="l01151" name="l01151"></a><span class="lineno"> 1151</span>            {</div>
+<div class="line"><a id="l01152" name="l01152"></a><span class="lineno"> 1152</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: write read check failed.\n&quot;</span>);</div>
+<div class="line"><a id="l01153" name="l01153"></a><span class="lineno"> 1153</span>                (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l01154" name="l01154"></a><span class="lineno"> 1154</span>                </div>
+<div class="line"><a id="l01155" name="l01155"></a><span class="lineno"> 1155</span>                <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l01156" name="l01156"></a><span class="lineno"> 1156</span>            }</div>
+<div class="line"><a id="l01157" name="l01157"></a><span class="lineno"> 1157</span>        }</div>
+<div class="line"><a id="l01158" name="l01158"></a><span class="lineno"> 1158</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read test passed.\n&quot;</span>);</div>
+<div class="line"><a id="l01159" name="l01159"></a><span class="lineno"> 1159</span>        </div>
+<div class="line"><a id="l01160" name="l01160"></a><span class="lineno"> 1160</span><span class="preprocessor">        #if (W25QXX_ENABLE_ERASE_READ_TEST == 1)</span></div>
+<div class="line"><a id="l01161" name="l01161"></a><span class="lineno"> 1161</span>            <span class="comment">/* start chip erasing */</span></div>
+<div class="line"><a id="l01162" name="l01162"></a><span class="lineno"> 1162</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: start chip erasing.\n&quot;</span>);</div>
+<div class="line"><a id="l01163" name="l01163"></a><span class="lineno"> 1163</span>            </div>
+<div class="line"><a id="l01164" name="l01164"></a><span class="lineno"> 1164</span>            <span class="comment">/* chip erase */</span></div>
+<div class="line"><a id="l01165" name="l01165"></a><span class="lineno"> 1165</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_chip_erase test.\n&quot;</span>);</div>
+<div class="line"><a id="l01166" name="l01166"></a><span class="lineno"> 1166</span>            res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#ga0862833b36831f92684980b2e21f2e39">w25qxx_chip_erase</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l01167" name="l01167"></a><span class="lineno"> 1167</span>            <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l01168" name="l01168"></a><span class="lineno"> 1168</span>            {</div>
+<div class="line"><a id="l01169" name="l01169"></a><span class="lineno"> 1169</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: chip erase failed.\n&quot;</span>);</div>
+<div class="line"><a id="l01170" name="l01170"></a><span class="lineno"> 1170</span>                (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l01171" name="l01171"></a><span class="lineno"> 1171</span>               </div>
+<div class="line"><a id="l01172" name="l01172"></a><span class="lineno"> 1172</span>                <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l01173" name="l01173"></a><span class="lineno"> 1173</span>            }</div>
+<div class="line"><a id="l01174" name="l01174"></a><span class="lineno"> 1174</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: chip erase successful.\n&quot;</span>);</div>
+<div class="line"><a id="l01175" name="l01175"></a><span class="lineno"> 1175</span><span class="preprocessor">        #endif</span></div>
+<div class="line"><a id="l01176" name="l01176"></a><span class="lineno"> 1176</span>        </div>
+<div class="line"><a id="l01177" name="l01177"></a><span class="lineno"> 1177</span>        <span class="keywordflow">if</span> (type &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)</div>
+<div class="line"><a id="l01178" name="l01178"></a><span class="lineno"> 1178</span>        {</div>
+<div class="line"><a id="l01179" name="l01179"></a><span class="lineno"> 1179</span>            <span class="comment">/* set address mode 4 byte */</span></div>
+<div class="line"><a id="l01180" name="l01180"></a><span class="lineno"> 1180</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set address mode 4 byte.\n&quot;</span>);</div>
+<div class="line"><a id="l01181" name="l01181"></a><span class="lineno"> 1181</span>            </div>
+<div class="line"><a id="l01182" name="l01182"></a><span class="lineno"> 1182</span>            <span class="comment">/* set address mode 4 byte */</span></div>
+<div class="line"><a id="l01183" name="l01183"></a><span class="lineno"> 1183</span>            res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#gad0e125eff304ce66fb3956d2c8c80656">w25qxx_set_address_mode</a>(&amp;gs_handle, <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>);</div>
+<div class="line"><a id="l01184" name="l01184"></a><span class="lineno"> 1184</span>            <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l01185" name="l01185"></a><span class="lineno"> 1185</span>            {</div>
+<div class="line"><a id="l01186" name="l01186"></a><span class="lineno"> 1186</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set address mode failed.\n&quot;</span>);</div>
+<div class="line"><a id="l01187" name="l01187"></a><span class="lineno"> 1187</span>                (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l01188" name="l01188"></a><span class="lineno"> 1188</span>               </div>
+<div class="line"><a id="l01189" name="l01189"></a><span class="lineno"> 1189</span>                <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l01190" name="l01190"></a><span class="lineno"> 1190</span>            }</div>
+<div class="line"><a id="l01191" name="l01191"></a><span class="lineno"> 1191</span>            </div>
+<div class="line"><a id="l01192" name="l01192"></a><span class="lineno"> 1192</span>            <span class="comment">/* w25qxx_write/w25qxx_read test */</span></div>
+<div class="line"><a id="l01193" name="l01193"></a><span class="lineno"> 1193</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_write/w25qxx_read test.\n&quot;</span>);</div>
+<div class="line"><a id="l01194" name="l01194"></a><span class="lineno"> 1194</span>            </div>
+<div class="line"><a id="l01195" name="l01195"></a><span class="lineno"> 1195</span>            <span class="keywordflow">for</span> (addr = 0; addr &lt; size; addr += step)</div>
+<div class="line"><a id="l01196" name="l01196"></a><span class="lineno"> 1196</span>            {</div>
+<div class="line"><a id="l01197" name="l01197"></a><span class="lineno"> 1197</span>                <span class="keywordflow">for</span> (j = 0; j &lt; 600; j++)</div>
+<div class="line"><a id="l01198" name="l01198"></a><span class="lineno"> 1198</span>                {</div>
+<div class="line"><a id="l01199" name="l01199"></a><span class="lineno"> 1199</span>                    gs_buffer_input[j] = rand() %256;</div>
+<div class="line"><a id="l01200" name="l01200"></a><span class="lineno"> 1200</span>                }</div>
+<div class="line"><a id="l01201" name="l01201"></a><span class="lineno"> 1201</span>                res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#gaaee8264d840e51460821cb6e609338ee">w25qxx_write</a>(&amp;gs_handle, addr, gs_buffer_input, 600);</div>
+<div class="line"><a id="l01202" name="l01202"></a><span class="lineno"> 1202</span>                <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l01203" name="l01203"></a><span class="lineno"> 1203</span>                {</div>
+<div class="line"><a id="l01204" name="l01204"></a><span class="lineno"> 1204</span>                    <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: write failed.\n&quot;</span>);</div>
+<div class="line"><a id="l01205" name="l01205"></a><span class="lineno"> 1205</span>                    (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l01206" name="l01206"></a><span class="lineno"> 1206</span>                   </div>
+<div class="line"><a id="l01207" name="l01207"></a><span class="lineno"> 1207</span>                    <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l01208" name="l01208"></a><span class="lineno"> 1208</span>                }</div>
+<div class="line"><a id="l01209" name="l01209"></a><span class="lineno"> 1209</span>                res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#gae7479fc9ce911a52e3c5b6f1a615b879">w25qxx_read</a>(&amp;gs_handle, addr, gs_buffer_output, 600);</div>
+<div class="line"><a id="l01210" name="l01210"></a><span class="lineno"> 1210</span>                <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l01211" name="l01211"></a><span class="lineno"> 1211</span>                {</div>
+<div class="line"><a id="l01212" name="l01212"></a><span class="lineno"> 1212</span>                    <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: read failed.\n&quot;</span>);</div>
+<div class="line"><a id="l01213" name="l01213"></a><span class="lineno"> 1213</span>                    (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l01214" name="l01214"></a><span class="lineno"> 1214</span>                   </div>
+<div class="line"><a id="l01215" name="l01215"></a><span class="lineno"> 1215</span>                    <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l01216" name="l01216"></a><span class="lineno"> 1216</span>                }</div>
+<div class="line"><a id="l01217" name="l01217"></a><span class="lineno"> 1217</span>                <span class="keywordflow">for</span> (j = 0; j &lt; 600; j++)</div>
+<div class="line"><a id="l01218" name="l01218"></a><span class="lineno"> 1218</span>                {</div>
+<div class="line"><a id="l01219" name="l01219"></a><span class="lineno"> 1219</span>                    <span class="keywordflow">if</span> (gs_buffer_input[j] != gs_buffer_output[j])</div>
+<div class="line"><a id="l01220" name="l01220"></a><span class="lineno"> 1220</span>                    {</div>
+<div class="line"><a id="l01221" name="l01221"></a><span class="lineno"> 1221</span>                        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: write read check failed.\n&quot;</span>);</div>
+<div class="line"><a id="l01222" name="l01222"></a><span class="lineno"> 1222</span>                        (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l01223" name="l01223"></a><span class="lineno"> 1223</span>                        </div>
+<div class="line"><a id="l01224" name="l01224"></a><span class="lineno"> 1224</span>                        <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l01225" name="l01225"></a><span class="lineno"> 1225</span>                    }</div>
+<div class="line"><a id="l01226" name="l01226"></a><span class="lineno"> 1226</span>                }</div>
+<div class="line"><a id="l01227" name="l01227"></a><span class="lineno"> 1227</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: 0x%08X/0x%08X successful.\n&quot;</span>, addr, size);</div>
+<div class="line"><a id="l01228" name="l01228"></a><span class="lineno"> 1228</span>            }</div>
+<div class="line"><a id="l01229" name="l01229"></a><span class="lineno"> 1229</span>            </div>
+<div class="line"><a id="l01230" name="l01230"></a><span class="lineno"> 1230</span>            <span class="comment">/* w25qxx_sector_erase_4k test */</span></div>
+<div class="line"><a id="l01231" name="l01231"></a><span class="lineno"> 1231</span>            addr = (rand() % 10) * 4 * 1024;</div>
+<div class="line"><a id="l01232" name="l01232"></a><span class="lineno"> 1232</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_sector_erase_4k test with address 0x%X.\n&quot;</span>, addr);</div>
+<div class="line"><a id="l01233" name="l01233"></a><span class="lineno"> 1233</span>            res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#ga9a03c51b4c84655350c15fbfce0a6b40">w25qxx_sector_erase_4k</a>(&amp;gs_handle, addr);</div>
+<div class="line"><a id="l01234" name="l01234"></a><span class="lineno"> 1234</span>            <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l01235" name="l01235"></a><span class="lineno"> 1235</span>            {</div>
+<div class="line"><a id="l01236" name="l01236"></a><span class="lineno"> 1236</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: sector erase 4k failed.\n&quot;</span>);</div>
+<div class="line"><a id="l01237" name="l01237"></a><span class="lineno"> 1237</span>                (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l01238" name="l01238"></a><span class="lineno"> 1238</span>               </div>
+<div class="line"><a id="l01239" name="l01239"></a><span class="lineno"> 1239</span>                <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l01240" name="l01240"></a><span class="lineno"> 1240</span>            }</div>
+<div class="line"><a id="l01241" name="l01241"></a><span class="lineno"> 1241</span>            <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
+<div class="line"><a id="l01242" name="l01242"></a><span class="lineno"> 1242</span>            {</div>
+<div class="line"><a id="l01243" name="l01243"></a><span class="lineno"> 1243</span>                gs_buffer_input[j] = rand() %256;</div>
+<div class="line"><a id="l01244" name="l01244"></a><span class="lineno"> 1244</span>            }</div>
+<div class="line"><a id="l01245" name="l01245"></a><span class="lineno"> 1245</span>            </div>
+<div class="line"><a id="l01246" name="l01246"></a><span class="lineno"> 1246</span>            <span class="comment">/* w25qxx_page_program */</span></div>
+<div class="line"><a id="l01247" name="l01247"></a><span class="lineno"> 1247</span>            res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#ga6280e7e4ab26306436e2c210617a28b3">w25qxx_page_program</a>(&amp;gs_handle, addr, gs_buffer_input, 256);</div>
+<div class="line"><a id="l01248" name="l01248"></a><span class="lineno"> 1248</span>            <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l01249" name="l01249"></a><span class="lineno"> 1249</span>            {</div>
+<div class="line"><a id="l01250" name="l01250"></a><span class="lineno"> 1250</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: page program failed.\n&quot;</span>);</div>
+<div class="line"><a id="l01251" name="l01251"></a><span class="lineno"> 1251</span>                (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l01252" name="l01252"></a><span class="lineno"> 1252</span>               </div>
+<div class="line"><a id="l01253" name="l01253"></a><span class="lineno"> 1253</span>                <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l01254" name="l01254"></a><span class="lineno"> 1254</span>            }</div>
+<div class="line"><a id="l01255" name="l01255"></a><span class="lineno"> 1255</span>            </div>
+<div class="line"><a id="l01256" name="l01256"></a><span class="lineno"> 1256</span>            <span class="comment">/* w25qxx_fast_read */</span></div>
+<div class="line"><a id="l01257" name="l01257"></a><span class="lineno"> 1257</span>            res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#gac345ba10af5ad355578fa97697487123">w25qxx_fast_read</a>(&amp;gs_handle, addr, gs_buffer_output, 256);</div>
+<div class="line"><a id="l01258" name="l01258"></a><span class="lineno"> 1258</span>            <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l01259" name="l01259"></a><span class="lineno"> 1259</span>            {</div>
+<div class="line"><a id="l01260" name="l01260"></a><span class="lineno"> 1260</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read failed.\n&quot;</span>);</div>
+<div class="line"><a id="l01261" name="l01261"></a><span class="lineno"> 1261</span>                (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l01262" name="l01262"></a><span class="lineno"> 1262</span>               </div>
+<div class="line"><a id="l01263" name="l01263"></a><span class="lineno"> 1263</span>                <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l01264" name="l01264"></a><span class="lineno"> 1264</span>            }</div>
+<div class="line"><a id="l01265" name="l01265"></a><span class="lineno"> 1265</span>            <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
+<div class="line"><a id="l01266" name="l01266"></a><span class="lineno"> 1266</span>            {</div>
+<div class="line"><a id="l01267" name="l01267"></a><span class="lineno"> 1267</span>                <span class="keywordflow">if</span> (gs_buffer_input[j] != gs_buffer_output[j])</div>
+<div class="line"><a id="l01268" name="l01268"></a><span class="lineno"> 1268</span>                {</div>
+<div class="line"><a id="l01269" name="l01269"></a><span class="lineno"> 1269</span>                    <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: write read check failed.\n&quot;</span>);</div>
+<div class="line"><a id="l01270" name="l01270"></a><span class="lineno"> 1270</span>                    (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l01271" name="l01271"></a><span class="lineno"> 1271</span>                    </div>
+<div class="line"><a id="l01272" name="l01272"></a><span class="lineno"> 1272</span>                    <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l01273" name="l01273"></a><span class="lineno"> 1273</span>                }</div>
+<div class="line"><a id="l01274" name="l01274"></a><span class="lineno"> 1274</span>            }</div>
+<div class="line"><a id="l01275" name="l01275"></a><span class="lineno"> 1275</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read test passed.\n&quot;</span>);</div>
+<div class="line"><a id="l01276" name="l01276"></a><span class="lineno"> 1276</span>            </div>
+<div class="line"><a id="l01277" name="l01277"></a><span class="lineno"> 1277</span>            <span class="comment">/* w25qxx_block_erase_32k test */</span></div>
+<div class="line"><a id="l01278" name="l01278"></a><span class="lineno"> 1278</span>            addr = (rand() % 10) * 32 * 1024;</div>
+<div class="line"><a id="l01279" name="l01279"></a><span class="lineno"> 1279</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_block_erase_32k test with address 0x%X.\n&quot;</span>, addr);</div>
+<div class="line"><a id="l01280" name="l01280"></a><span class="lineno"> 1280</span>            res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#ga39c8fb382e8c3e4d57232dfa79af781c">w25qxx_block_erase_32k</a>(&amp;gs_handle, addr);</div>
+<div class="line"><a id="l01281" name="l01281"></a><span class="lineno"> 1281</span>            <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l01282" name="l01282"></a><span class="lineno"> 1282</span>            {</div>
+<div class="line"><a id="l01283" name="l01283"></a><span class="lineno"> 1283</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: sector erase 32k failed.\n&quot;</span>);</div>
+<div class="line"><a id="l01284" name="l01284"></a><span class="lineno"> 1284</span>                (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l01285" name="l01285"></a><span class="lineno"> 1285</span>               </div>
+<div class="line"><a id="l01286" name="l01286"></a><span class="lineno"> 1286</span>                <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l01287" name="l01287"></a><span class="lineno"> 1287</span>            }</div>
+<div class="line"><a id="l01288" name="l01288"></a><span class="lineno"> 1288</span>            <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
+<div class="line"><a id="l01289" name="l01289"></a><span class="lineno"> 1289</span>            {</div>
+<div class="line"><a id="l01290" name="l01290"></a><span class="lineno"> 1290</span>                gs_buffer_input[j] = rand() %256;</div>
+<div class="line"><a id="l01291" name="l01291"></a><span class="lineno"> 1291</span>            }</div>
+<div class="line"><a id="l01292" name="l01292"></a><span class="lineno"> 1292</span>            </div>
+<div class="line"><a id="l01293" name="l01293"></a><span class="lineno"> 1293</span>            <span class="comment">/* w25qxx_page_program */</span></div>
+<div class="line"><a id="l01294" name="l01294"></a><span class="lineno"> 1294</span>            res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#ga6280e7e4ab26306436e2c210617a28b3">w25qxx_page_program</a>(&amp;gs_handle, addr, gs_buffer_input, 256);</div>
+<div class="line"><a id="l01295" name="l01295"></a><span class="lineno"> 1295</span>            <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l01296" name="l01296"></a><span class="lineno"> 1296</span>            {</div>
+<div class="line"><a id="l01297" name="l01297"></a><span class="lineno"> 1297</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: page program failed.\n&quot;</span>);</div>
+<div class="line"><a id="l01298" name="l01298"></a><span class="lineno"> 1298</span>                (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l01299" name="l01299"></a><span class="lineno"> 1299</span>               </div>
+<div class="line"><a id="l01300" name="l01300"></a><span class="lineno"> 1300</span>                <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l01301" name="l01301"></a><span class="lineno"> 1301</span>            }</div>
+<div class="line"><a id="l01302" name="l01302"></a><span class="lineno"> 1302</span>            </div>
+<div class="line"><a id="l01303" name="l01303"></a><span class="lineno"> 1303</span>            <span class="comment">/* w25qxx_fast_read */</span></div>
+<div class="line"><a id="l01304" name="l01304"></a><span class="lineno"> 1304</span>            res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#gac345ba10af5ad355578fa97697487123">w25qxx_fast_read</a>(&amp;gs_handle, addr, gs_buffer_output, 256);</div>
+<div class="line"><a id="l01305" name="l01305"></a><span class="lineno"> 1305</span>            <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l01306" name="l01306"></a><span class="lineno"> 1306</span>            {</div>
+<div class="line"><a id="l01307" name="l01307"></a><span class="lineno"> 1307</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read failed.\n&quot;</span>);</div>
+<div class="line"><a id="l01308" name="l01308"></a><span class="lineno"> 1308</span>                (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l01309" name="l01309"></a><span class="lineno"> 1309</span>               </div>
+<div class="line"><a id="l01310" name="l01310"></a><span class="lineno"> 1310</span>                <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l01311" name="l01311"></a><span class="lineno"> 1311</span>            }</div>
+<div class="line"><a id="l01312" name="l01312"></a><span class="lineno"> 1312</span>            <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
+<div class="line"><a id="l01313" name="l01313"></a><span class="lineno"> 1313</span>            {</div>
+<div class="line"><a id="l01314" name="l01314"></a><span class="lineno"> 1314</span>                <span class="keywordflow">if</span> (gs_buffer_input[j] != gs_buffer_output[j])</div>
+<div class="line"><a id="l01315" name="l01315"></a><span class="lineno"> 1315</span>                {</div>
+<div class="line"><a id="l01316" name="l01316"></a><span class="lineno"> 1316</span>                    <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: write read check failed.\n&quot;</span>);</div>
+<div class="line"><a id="l01317" name="l01317"></a><span class="lineno"> 1317</span>                    (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l01318" name="l01318"></a><span class="lineno"> 1318</span>                    </div>
+<div class="line"><a id="l01319" name="l01319"></a><span class="lineno"> 1319</span>                    <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l01320" name="l01320"></a><span class="lineno"> 1320</span>                }</div>
+<div class="line"><a id="l01321" name="l01321"></a><span class="lineno"> 1321</span>            }</div>
+<div class="line"><a id="l01322" name="l01322"></a><span class="lineno"> 1322</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read test passed.\n&quot;</span>);</div>
+<div class="line"><a id="l01323" name="l01323"></a><span class="lineno"> 1323</span>            </div>
+<div class="line"><a id="l01324" name="l01324"></a><span class="lineno"> 1324</span>            <span class="comment">/* w25qxx_block_erase_64k test */</span></div>
+<div class="line"><a id="l01325" name="l01325"></a><span class="lineno"> 1325</span>            addr = (rand() % 10) * 64 * 1024;</div>
+<div class="line"><a id="l01326" name="l01326"></a><span class="lineno"> 1326</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_block_erase_64k test with address 0x%X.\n&quot;</span>, addr);</div>
+<div class="line"><a id="l01327" name="l01327"></a><span class="lineno"> 1327</span>            res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#gaf53bc5f6073482b9b74efd417ec7ac83">w25qxx_block_erase_64k</a>(&amp;gs_handle, addr);</div>
+<div class="line"><a id="l01328" name="l01328"></a><span class="lineno"> 1328</span>            <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l01329" name="l01329"></a><span class="lineno"> 1329</span>            {</div>
+<div class="line"><a id="l01330" name="l01330"></a><span class="lineno"> 1330</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: sector erase 64k failed.\n&quot;</span>);</div>
+<div class="line"><a id="l01331" name="l01331"></a><span class="lineno"> 1331</span>                (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l01332" name="l01332"></a><span class="lineno"> 1332</span>               </div>
+<div class="line"><a id="l01333" name="l01333"></a><span class="lineno"> 1333</span>                <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l01334" name="l01334"></a><span class="lineno"> 1334</span>            }</div>
+<div class="line"><a id="l01335" name="l01335"></a><span class="lineno"> 1335</span>            <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
+<div class="line"><a id="l01336" name="l01336"></a><span class="lineno"> 1336</span>            {</div>
+<div class="line"><a id="l01337" name="l01337"></a><span class="lineno"> 1337</span>                gs_buffer_input[j] = rand() %256;</div>
+<div class="line"><a id="l01338" name="l01338"></a><span class="lineno"> 1338</span>            }</div>
+<div class="line"><a id="l01339" name="l01339"></a><span class="lineno"> 1339</span>            </div>
+<div class="line"><a id="l01340" name="l01340"></a><span class="lineno"> 1340</span>            <span class="comment">/* w25qxx_page_program */</span></div>
+<div class="line"><a id="l01341" name="l01341"></a><span class="lineno"> 1341</span>            res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#ga6280e7e4ab26306436e2c210617a28b3">w25qxx_page_program</a>(&amp;gs_handle, addr, gs_buffer_input, 256);</div>
+<div class="line"><a id="l01342" name="l01342"></a><span class="lineno"> 1342</span>            <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l01343" name="l01343"></a><span class="lineno"> 1343</span>            {</div>
+<div class="line"><a id="l01344" name="l01344"></a><span class="lineno"> 1344</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: page program failed.\n&quot;</span>);</div>
+<div class="line"><a id="l01345" name="l01345"></a><span class="lineno"> 1345</span>                (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l01346" name="l01346"></a><span class="lineno"> 1346</span>               </div>
+<div class="line"><a id="l01347" name="l01347"></a><span class="lineno"> 1347</span>                <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l01348" name="l01348"></a><span class="lineno"> 1348</span>            }</div>
+<div class="line"><a id="l01349" name="l01349"></a><span class="lineno"> 1349</span>            </div>
+<div class="line"><a id="l01350" name="l01350"></a><span class="lineno"> 1350</span>            <span class="comment">/* w25qxx_fast_read */</span></div>
+<div class="line"><a id="l01351" name="l01351"></a><span class="lineno"> 1351</span>            res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#gac345ba10af5ad355578fa97697487123">w25qxx_fast_read</a>(&amp;gs_handle, addr, gs_buffer_output, 256);</div>
+<div class="line"><a id="l01352" name="l01352"></a><span class="lineno"> 1352</span>            <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l01353" name="l01353"></a><span class="lineno"> 1353</span>            {</div>
+<div class="line"><a id="l01354" name="l01354"></a><span class="lineno"> 1354</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read failed.\n&quot;</span>);</div>
+<div class="line"><a id="l01355" name="l01355"></a><span class="lineno"> 1355</span>                (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l01356" name="l01356"></a><span class="lineno"> 1356</span>               </div>
+<div class="line"><a id="l01357" name="l01357"></a><span class="lineno"> 1357</span>                <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l01358" name="l01358"></a><span class="lineno"> 1358</span>            }</div>
+<div class="line"><a id="l01359" name="l01359"></a><span class="lineno"> 1359</span>            <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
+<div class="line"><a id="l01360" name="l01360"></a><span class="lineno"> 1360</span>            {</div>
+<div class="line"><a id="l01361" name="l01361"></a><span class="lineno"> 1361</span>                <span class="keywordflow">if</span> (gs_buffer_input[j] != gs_buffer_output[j])</div>
+<div class="line"><a id="l01362" name="l01362"></a><span class="lineno"> 1362</span>                {</div>
+<div class="line"><a id="l01363" name="l01363"></a><span class="lineno"> 1363</span>                    <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: write read check failed.\n&quot;</span>);</div>
+<div class="line"><a id="l01364" name="l01364"></a><span class="lineno"> 1364</span>                    (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l01365" name="l01365"></a><span class="lineno"> 1365</span>                    </div>
+<div class="line"><a id="l01366" name="l01366"></a><span class="lineno"> 1366</span>                    <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l01367" name="l01367"></a><span class="lineno"> 1367</span>                }</div>
+<div class="line"><a id="l01368" name="l01368"></a><span class="lineno"> 1368</span>            }</div>
+<div class="line"><a id="l01369" name="l01369"></a><span class="lineno"> 1369</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read test passed.\n&quot;</span>);</div>
+<div class="line"><a id="l01370" name="l01370"></a><span class="lineno"> 1370</span>            </div>
+<div class="line"><a id="l01371" name="l01371"></a><span class="lineno"> 1371</span>            <span class="comment">/* set address mode 3 byte */</span></div>
+<div class="line"><a id="l01372" name="l01372"></a><span class="lineno"> 1372</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set address mode 3 byte.\n&quot;</span>);</div>
+<div class="line"><a id="l01373" name="l01373"></a><span class="lineno"> 1373</span>            </div>
+<div class="line"><a id="l01374" name="l01374"></a><span class="lineno"> 1374</span>            <span class="comment">/* set address mode 3 byte */</span></div>
+<div class="line"><a id="l01375" name="l01375"></a><span class="lineno"> 1375</span>            res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#gad0e125eff304ce66fb3956d2c8c80656">w25qxx_set_address_mode</a>(&amp;gs_handle, <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>);</div>
+<div class="line"><a id="l01376" name="l01376"></a><span class="lineno"> 1376</span>            <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l01377" name="l01377"></a><span class="lineno"> 1377</span>            {</div>
+<div class="line"><a id="l01378" name="l01378"></a><span class="lineno"> 1378</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set address mode failed.\n&quot;</span>);</div>
+<div class="line"><a id="l01379" name="l01379"></a><span class="lineno"> 1379</span>                (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l01380" name="l01380"></a><span class="lineno"> 1380</span>               </div>
+<div class="line"><a id="l01381" name="l01381"></a><span class="lineno"> 1381</span>                <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l01382" name="l01382"></a><span class="lineno"> 1382</span>            }</div>
+<div class="line"><a id="l01383" name="l01383"></a><span class="lineno"> 1383</span>        }</div>
+<div class="line"><a id="l01384" name="l01384"></a><span class="lineno"> 1384</span>        </div>
+<div class="line"><a id="l01385" name="l01385"></a><span class="lineno"> 1385</span>        <span class="keywordflow">if</span> (dual_quad_spi_enable != 0)</div>
+<div class="line"><a id="l01386" name="l01386"></a><span class="lineno"> 1386</span>        {</div>
+<div class="line"><a id="l01387" name="l01387"></a><span class="lineno"> 1387</span>            <span class="comment">/* enter to spi mode */</span></div>
+<div class="line"><a id="l01388" name="l01388"></a><span class="lineno"> 1388</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: enter to spi mode.\n&quot;</span>);</div>
+<div class="line"><a id="l01389" name="l01389"></a><span class="lineno"> 1389</span>            </div>
+<div class="line"><a id="l01390" name="l01390"></a><span class="lineno"> 1390</span>            <span class="comment">/* exit qspi */</span></div>
+<div class="line"><a id="l01391" name="l01391"></a><span class="lineno"> 1391</span>            res = <a class="code hl_function" href="group__w25qxx__advance__driver.html#ga6b9f75f7426a54ffdb1f5a057f8188f4">w25qxx_exit_qspi_mode</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l01392" name="l01392"></a><span class="lineno"> 1392</span>            <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l01393" name="l01393"></a><span class="lineno"> 1393</span>            {</div>
+<div class="line"><a id="l01394" name="l01394"></a><span class="lineno"> 1394</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: exit qspi mode failed.\n&quot;</span>);</div>
+<div class="line"><a id="l01395" name="l01395"></a><span class="lineno"> 1395</span>                (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l01396" name="l01396"></a><span class="lineno"> 1396</span>               </div>
+<div class="line"><a id="l01397" name="l01397"></a><span class="lineno"> 1397</span>                <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l01398" name="l01398"></a><span class="lineno"> 1398</span>            }</div>
+<div class="line"><a id="l01399" name="l01399"></a><span class="lineno"> 1399</span>            </div>
+<div class="line"><a id="l01400" name="l01400"></a><span class="lineno"> 1400</span>            <span class="comment">/* set chip interface spi */</span></div>
+<div class="line"><a id="l01401" name="l01401"></a><span class="lineno"> 1401</span>            res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#ga50a62003d566402d46ada2f272c41eb5">w25qxx_set_interface</a>(&amp;gs_handle, <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>);</div>
+<div class="line"><a id="l01402" name="l01402"></a><span class="lineno"> 1402</span>            <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l01403" name="l01403"></a><span class="lineno"> 1403</span>            {</div>
+<div class="line"><a id="l01404" name="l01404"></a><span class="lineno"> 1404</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set interface failed.\n&quot;</span>);</div>
+<div class="line"><a id="l01405" name="l01405"></a><span class="lineno"> 1405</span>               </div>
+<div class="line"><a id="l01406" name="l01406"></a><span class="lineno"> 1406</span>                <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l01407" name="l01407"></a><span class="lineno"> 1407</span>            }</div>
+<div class="line"><a id="l01408" name="l01408"></a><span class="lineno"> 1408</span>            </div>
+<div class="line"><a id="l01409" name="l01409"></a><span class="lineno"> 1409</span>            <span class="comment">/* random data */</span></div>
+<div class="line"><a id="l01410" name="l01410"></a><span class="lineno"> 1410</span>            <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
+<div class="line"><a id="l01411" name="l01411"></a><span class="lineno"> 1411</span>            {</div>
+<div class="line"><a id="l01412" name="l01412"></a><span class="lineno"> 1412</span>                gs_buffer_input[j] = rand() %256;</div>
+<div class="line"><a id="l01413" name="l01413"></a><span class="lineno"> 1413</span>            }</div>
+<div class="line"><a id="l01414" name="l01414"></a><span class="lineno"> 1414</span>            </div>
+<div class="line"><a id="l01415" name="l01415"></a><span class="lineno"> 1415</span>            <span class="comment">/* w25qxx_sector_erase_4k */</span></div>
+<div class="line"><a id="l01416" name="l01416"></a><span class="lineno"> 1416</span>            res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#ga9a03c51b4c84655350c15fbfce0a6b40">w25qxx_sector_erase_4k</a>(&amp;gs_handle, 0x00000000);</div>
+<div class="line"><a id="l01417" name="l01417"></a><span class="lineno"> 1417</span>            <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l01418" name="l01418"></a><span class="lineno"> 1418</span>            {</div>
+<div class="line"><a id="l01419" name="l01419"></a><span class="lineno"> 1419</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: sector erase 4k failed.\n&quot;</span>);</div>
+<div class="line"><a id="l01420" name="l01420"></a><span class="lineno"> 1420</span>                (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l01421" name="l01421"></a><span class="lineno"> 1421</span>               </div>
+<div class="line"><a id="l01422" name="l01422"></a><span class="lineno"> 1422</span>                <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l01423" name="l01423"></a><span class="lineno"> 1423</span>            }</div>
+<div class="line"><a id="l01424" name="l01424"></a><span class="lineno"> 1424</span>            </div>
+<div class="line"><a id="l01425" name="l01425"></a><span class="lineno"> 1425</span>            <span class="comment">/* w25qxx_page_program */</span></div>
+<div class="line"><a id="l01426" name="l01426"></a><span class="lineno"> 1426</span>            res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#ga6280e7e4ab26306436e2c210617a28b3">w25qxx_page_program</a>(&amp;gs_handle, 0x00000000, gs_buffer_input, 256);</div>
+<div class="line"><a id="l01427" name="l01427"></a><span class="lineno"> 1427</span>            <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l01428" name="l01428"></a><span class="lineno"> 1428</span>            {</div>
+<div class="line"><a id="l01429" name="l01429"></a><span class="lineno"> 1429</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: page program failed.\n&quot;</span>);</div>
+<div class="line"><a id="l01430" name="l01430"></a><span class="lineno"> 1430</span>                (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l01431" name="l01431"></a><span class="lineno"> 1431</span>               </div>
+<div class="line"><a id="l01432" name="l01432"></a><span class="lineno"> 1432</span>                <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l01433" name="l01433"></a><span class="lineno"> 1433</span>            }</div>
+<div class="line"><a id="l01434" name="l01434"></a><span class="lineno"> 1434</span>            </div>
+<div class="line"><a id="l01435" name="l01435"></a><span class="lineno"> 1435</span>            <span class="comment">/* fast read dual output */</span></div>
+<div class="line"><a id="l01436" name="l01436"></a><span class="lineno"> 1436</span>            res = <a class="code hl_function" href="group__w25qxx__advance__driver.html#ga7a19230ca3916816ea8fb7421483d293">w25qxx_fast_read_dual_output</a>(&amp;gs_handle, 0x00000000, gs_buffer_output, 256);</div>
+<div class="line"><a id="l01437" name="l01437"></a><span class="lineno"> 1437</span>            <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l01438" name="l01438"></a><span class="lineno"> 1438</span>            {</div>
+<div class="line"><a id="l01439" name="l01439"></a><span class="lineno"> 1439</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read dual output failed.\n&quot;</span>);</div>
+<div class="line"><a id="l01440" name="l01440"></a><span class="lineno"> 1440</span>                (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l01441" name="l01441"></a><span class="lineno"> 1441</span>               </div>
+<div class="line"><a id="l01442" name="l01442"></a><span class="lineno"> 1442</span>                <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l01443" name="l01443"></a><span class="lineno"> 1443</span>            }</div>
+<div class="line"><a id="l01444" name="l01444"></a><span class="lineno"> 1444</span>            <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
+<div class="line"><a id="l01445" name="l01445"></a><span class="lineno"> 1445</span>            {</div>
+<div class="line"><a id="l01446" name="l01446"></a><span class="lineno"> 1446</span>                <span class="keywordflow">if</span> (gs_buffer_input[j] != gs_buffer_output[j])</div>
+<div class="line"><a id="l01447" name="l01447"></a><span class="lineno"> 1447</span>                {</div>
+<div class="line"><a id="l01448" name="l01448"></a><span class="lineno"> 1448</span>                    <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: write read check failed.\n&quot;</span>);</div>
+<div class="line"><a id="l01449" name="l01449"></a><span class="lineno"> 1449</span>                    (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l01450" name="l01450"></a><span class="lineno"> 1450</span>                    </div>
+<div class="line"><a id="l01451" name="l01451"></a><span class="lineno"> 1451</span>                    <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l01452" name="l01452"></a><span class="lineno"> 1452</span>                }</div>
+<div class="line"><a id="l01453" name="l01453"></a><span class="lineno"> 1453</span>            }</div>
+<div class="line"><a id="l01454" name="l01454"></a><span class="lineno"> 1454</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast_read_dual_output check passed.\n&quot;</span>);</div>
+<div class="line"><a id="l01455" name="l01455"></a><span class="lineno"> 1455</span>            </div>
+<div class="line"><a id="l01456" name="l01456"></a><span class="lineno"> 1456</span>            <span class="comment">/* fast read quad output */</span></div>
+<div class="line"><a id="l01457" name="l01457"></a><span class="lineno"> 1457</span>            res = <a class="code hl_function" href="group__w25qxx__advance__driver.html#gaf4bfafd1f80aa0316a4b1a15183dcd50">w25qxx_fast_read_quad_output</a>(&amp;gs_handle, 0x00000000, gs_buffer_output, 256);</div>
+<div class="line"><a id="l01458" name="l01458"></a><span class="lineno"> 1458</span>            <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l01459" name="l01459"></a><span class="lineno"> 1459</span>            {</div>
+<div class="line"><a id="l01460" name="l01460"></a><span class="lineno"> 1460</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read quad output failed.\n&quot;</span>);</div>
+<div class="line"><a id="l01461" name="l01461"></a><span class="lineno"> 1461</span>                (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l01462" name="l01462"></a><span class="lineno"> 1462</span>               </div>
+<div class="line"><a id="l01463" name="l01463"></a><span class="lineno"> 1463</span>                <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l01464" name="l01464"></a><span class="lineno"> 1464</span>            }</div>
+<div class="line"><a id="l01465" name="l01465"></a><span class="lineno"> 1465</span>            <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
+<div class="line"><a id="l01466" name="l01466"></a><span class="lineno"> 1466</span>            {</div>
+<div class="line"><a id="l01467" name="l01467"></a><span class="lineno"> 1467</span>                <span class="keywordflow">if</span> (gs_buffer_input[j] != gs_buffer_output[j])</div>
+<div class="line"><a id="l01468" name="l01468"></a><span class="lineno"> 1468</span>                {</div>
+<div class="line"><a id="l01469" name="l01469"></a><span class="lineno"> 1469</span>                    <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: write read check failed.\n&quot;</span>);</div>
+<div class="line"><a id="l01470" name="l01470"></a><span class="lineno"> 1470</span>                    (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l01471" name="l01471"></a><span class="lineno"> 1471</span>                    </div>
+<div class="line"><a id="l01472" name="l01472"></a><span class="lineno"> 1472</span>                    <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l01473" name="l01473"></a><span class="lineno"> 1473</span>                }</div>
+<div class="line"><a id="l01474" name="l01474"></a><span class="lineno"> 1474</span>            }</div>
+<div class="line"><a id="l01475" name="l01475"></a><span class="lineno"> 1475</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast_read_quad_output check passed.\n&quot;</span>);</div>
+<div class="line"><a id="l01476" name="l01476"></a><span class="lineno"> 1476</span>            </div>
+<div class="line"><a id="l01477" name="l01477"></a><span class="lineno"> 1477</span>            <span class="comment">/* fast read dual io */</span></div>
+<div class="line"><a id="l01478" name="l01478"></a><span class="lineno"> 1478</span>            res = <a class="code hl_function" href="group__w25qxx__advance__driver.html#gac894f4650905cba10dd3a31284de6d5e">w25qxx_fast_read_dual_io</a>(&amp;gs_handle, 0x00000000, gs_buffer_output, 256);</div>
+<div class="line"><a id="l01479" name="l01479"></a><span class="lineno"> 1479</span>            <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l01480" name="l01480"></a><span class="lineno"> 1480</span>            {</div>
+<div class="line"><a id="l01481" name="l01481"></a><span class="lineno"> 1481</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read dual io failed.\n&quot;</span>);</div>
+<div class="line"><a id="l01482" name="l01482"></a><span class="lineno"> 1482</span>                (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l01483" name="l01483"></a><span class="lineno"> 1483</span>               </div>
+<div class="line"><a id="l01484" name="l01484"></a><span class="lineno"> 1484</span>                <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l01485" name="l01485"></a><span class="lineno"> 1485</span>            }</div>
+<div class="line"><a id="l01486" name="l01486"></a><span class="lineno"> 1486</span>            <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
+<div class="line"><a id="l01487" name="l01487"></a><span class="lineno"> 1487</span>            {</div>
+<div class="line"><a id="l01488" name="l01488"></a><span class="lineno"> 1488</span>                <span class="keywordflow">if</span> (gs_buffer_input[j] != gs_buffer_output[j])</div>
+<div class="line"><a id="l01489" name="l01489"></a><span class="lineno"> 1489</span>                {</div>
+<div class="line"><a id="l01490" name="l01490"></a><span class="lineno"> 1490</span>                    <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: write read check failed.\n&quot;</span>);</div>
+<div class="line"><a id="l01491" name="l01491"></a><span class="lineno"> 1491</span>                    (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l01492" name="l01492"></a><span class="lineno"> 1492</span>                    </div>
+<div class="line"><a id="l01493" name="l01493"></a><span class="lineno"> 1493</span>                    <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l01494" name="l01494"></a><span class="lineno"> 1494</span>                }</div>
+<div class="line"><a id="l01495" name="l01495"></a><span class="lineno"> 1495</span>            }</div>
+<div class="line"><a id="l01496" name="l01496"></a><span class="lineno"> 1496</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_fast_read_dual_io check passed.\n&quot;</span>);</div>
+<div class="line"><a id="l01497" name="l01497"></a><span class="lineno"> 1497</span>            </div>
+<div class="line"><a id="l01498" name="l01498"></a><span class="lineno"> 1498</span>            <span class="comment">/* fast read quad io */</span></div>
+<div class="line"><a id="l01499" name="l01499"></a><span class="lineno"> 1499</span>            res = <a class="code hl_function" href="group__w25qxx__advance__driver.html#gab97a64bd3776874518f60381d921ae41">w25qxx_fast_read_quad_io</a>(&amp;gs_handle, 0x00000000, gs_buffer_output, 256);</div>
+<div class="line"><a id="l01500" name="l01500"></a><span class="lineno"> 1500</span>            <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l01501" name="l01501"></a><span class="lineno"> 1501</span>            {</div>
+<div class="line"><a id="l01502" name="l01502"></a><span class="lineno"> 1502</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read quad io failed.\n&quot;</span>);</div>
+<div class="line"><a id="l01503" name="l01503"></a><span class="lineno"> 1503</span>                (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l01504" name="l01504"></a><span class="lineno"> 1504</span>               </div>
+<div class="line"><a id="l01505" name="l01505"></a><span class="lineno"> 1505</span>                <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l01506" name="l01506"></a><span class="lineno"> 1506</span>            }</div>
+<div class="line"><a id="l01507" name="l01507"></a><span class="lineno"> 1507</span>            <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
+<div class="line"><a id="l01508" name="l01508"></a><span class="lineno"> 1508</span>            {</div>
+<div class="line"><a id="l01509" name="l01509"></a><span class="lineno"> 1509</span>                <span class="keywordflow">if</span> (gs_buffer_input[j] != gs_buffer_output[j])</div>
+<div class="line"><a id="l01510" name="l01510"></a><span class="lineno"> 1510</span>                {</div>
+<div class="line"><a id="l01511" name="l01511"></a><span class="lineno"> 1511</span>                    <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: write read check failed.\n&quot;</span>);</div>
+<div class="line"><a id="l01512" name="l01512"></a><span class="lineno"> 1512</span>                    (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l01513" name="l01513"></a><span class="lineno"> 1513</span>                    </div>
+<div class="line"><a id="l01514" name="l01514"></a><span class="lineno"> 1514</span>                    <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l01515" name="l01515"></a><span class="lineno"> 1515</span>                }</div>
+<div class="line"><a id="l01516" name="l01516"></a><span class="lineno"> 1516</span>            }</div>
+<div class="line"><a id="l01517" name="l01517"></a><span class="lineno"> 1517</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_fast_read_quad_io check passed.\n&quot;</span>);</div>
+<div class="line"><a id="l01518" name="l01518"></a><span class="lineno"> 1518</span>            </div>
+<div class="line"><a id="l01519" name="l01519"></a><span class="lineno"> 1519</span>            <span class="comment">/* word read quad io */</span></div>
+<div class="line"><a id="l01520" name="l01520"></a><span class="lineno"> 1520</span>            res = <a class="code hl_function" href="group__w25qxx__advance__driver.html#gad97d7e410dd77c49334097a0fd332660">w25qxx_word_read_quad_io</a>(&amp;gs_handle, 0x00000000, gs_buffer_output, 256);</div>
+<div class="line"><a id="l01521" name="l01521"></a><span class="lineno"> 1521</span>            <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l01522" name="l01522"></a><span class="lineno"> 1522</span>            {</div>
+<div class="line"><a id="l01523" name="l01523"></a><span class="lineno"> 1523</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: word read quad io failed.\n&quot;</span>);</div>
+<div class="line"><a id="l01524" name="l01524"></a><span class="lineno"> 1524</span>                (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l01525" name="l01525"></a><span class="lineno"> 1525</span>               </div>
+<div class="line"><a id="l01526" name="l01526"></a><span class="lineno"> 1526</span>                <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l01527" name="l01527"></a><span class="lineno"> 1527</span>            }</div>
+<div class="line"><a id="l01528" name="l01528"></a><span class="lineno"> 1528</span>            <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
+<div class="line"><a id="l01529" name="l01529"></a><span class="lineno"> 1529</span>            {</div>
+<div class="line"><a id="l01530" name="l01530"></a><span class="lineno"> 1530</span>                <span class="keywordflow">if</span> (gs_buffer_input[j] != gs_buffer_output[j])</div>
+<div class="line"><a id="l01531" name="l01531"></a><span class="lineno"> 1531</span>                {</div>
+<div class="line"><a id="l01532" name="l01532"></a><span class="lineno"> 1532</span>                    <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: write read check failed.\n&quot;</span>);</div>
+<div class="line"><a id="l01533" name="l01533"></a><span class="lineno"> 1533</span>                    (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l01534" name="l01534"></a><span class="lineno"> 1534</span>                    </div>
+<div class="line"><a id="l01535" name="l01535"></a><span class="lineno"> 1535</span>                    <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l01536" name="l01536"></a><span class="lineno"> 1536</span>                }</div>
+<div class="line"><a id="l01537" name="l01537"></a><span class="lineno"> 1537</span>            }</div>
+<div class="line"><a id="l01538" name="l01538"></a><span class="lineno"> 1538</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_word_read_quad_io check passed.\n&quot;</span>);</div>
+<div class="line"><a id="l01539" name="l01539"></a><span class="lineno"> 1539</span>            </div>
+<div class="line"><a id="l01540" name="l01540"></a><span class="lineno"> 1540</span>            <span class="comment">/* octal read quad io */</span></div>
+<div class="line"><a id="l01541" name="l01541"></a><span class="lineno"> 1541</span>            res = <a class="code hl_function" href="group__w25qxx__advance__driver.html#ga88a62ec42e86db821ff3f0d3ab541dbb">w25qxx_octal_word_read_quad_io</a>(&amp;gs_handle, 0x00000000, gs_buffer_output, 256);</div>
+<div class="line"><a id="l01542" name="l01542"></a><span class="lineno"> 1542</span>            <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l01543" name="l01543"></a><span class="lineno"> 1543</span>            {</div>
+<div class="line"><a id="l01544" name="l01544"></a><span class="lineno"> 1544</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: octal read quad io failed.\n&quot;</span>);</div>
+<div class="line"><a id="l01545" name="l01545"></a><span class="lineno"> 1545</span>                (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l01546" name="l01546"></a><span class="lineno"> 1546</span>               </div>
+<div class="line"><a id="l01547" name="l01547"></a><span class="lineno"> 1547</span>                <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l01548" name="l01548"></a><span class="lineno"> 1548</span>            }</div>
+<div class="line"><a id="l01549" name="l01549"></a><span class="lineno"> 1549</span>            <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
+<div class="line"><a id="l01550" name="l01550"></a><span class="lineno"> 1550</span>            {</div>
+<div class="line"><a id="l01551" name="l01551"></a><span class="lineno"> 1551</span>                <span class="keywordflow">if</span> (gs_buffer_input[j] != gs_buffer_output[j])</div>
+<div class="line"><a id="l01552" name="l01552"></a><span class="lineno"> 1552</span>                {</div>
+<div class="line"><a id="l01553" name="l01553"></a><span class="lineno"> 1553</span>                    <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: write read check failed.\n&quot;</span>);</div>
+<div class="line"><a id="l01554" name="l01554"></a><span class="lineno"> 1554</span>                    (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l01555" name="l01555"></a><span class="lineno"> 1555</span>                    </div>
+<div class="line"><a id="l01556" name="l01556"></a><span class="lineno"> 1556</span>                    <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l01557" name="l01557"></a><span class="lineno"> 1557</span>                }</div>
+<div class="line"><a id="l01558" name="l01558"></a><span class="lineno"> 1558</span>            }</div>
+<div class="line"><a id="l01559" name="l01559"></a><span class="lineno"> 1559</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_octal_word_read_quad_io check passed.\n&quot;</span>);</div>
+<div class="line"><a id="l01560" name="l01560"></a><span class="lineno"> 1560</span>            </div>
+<div class="line"><a id="l01561" name="l01561"></a><span class="lineno"> 1561</span>            <span class="comment">/* random data */</span></div>
+<div class="line"><a id="l01562" name="l01562"></a><span class="lineno"> 1562</span>            <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
+<div class="line"><a id="l01563" name="l01563"></a><span class="lineno"> 1563</span>            {</div>
+<div class="line"><a id="l01564" name="l01564"></a><span class="lineno"> 1564</span>                gs_buffer_input[j] = rand() %256;</div>
+<div class="line"><a id="l01565" name="l01565"></a><span class="lineno"> 1565</span>            }</div>
+<div class="line"><a id="l01566" name="l01566"></a><span class="lineno"> 1566</span>            </div>
+<div class="line"><a id="l01567" name="l01567"></a><span class="lineno"> 1567</span>            <span class="comment">/* w25qxx_sector_erase_4k */</span></div>
+<div class="line"><a id="l01568" name="l01568"></a><span class="lineno"> 1568</span>            res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#ga9a03c51b4c84655350c15fbfce0a6b40">w25qxx_sector_erase_4k</a>(&amp;gs_handle, 0x00000000);</div>
+<div class="line"><a id="l01569" name="l01569"></a><span class="lineno"> 1569</span>            <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l01570" name="l01570"></a><span class="lineno"> 1570</span>            {</div>
+<div class="line"><a id="l01571" name="l01571"></a><span class="lineno"> 1571</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: sector erase 4k failed.\n&quot;</span>);</div>
+<div class="line"><a id="l01572" name="l01572"></a><span class="lineno"> 1572</span>                (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l01573" name="l01573"></a><span class="lineno"> 1573</span>               </div>
+<div class="line"><a id="l01574" name="l01574"></a><span class="lineno"> 1574</span>                <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l01575" name="l01575"></a><span class="lineno"> 1575</span>            }</div>
+<div class="line"><a id="l01576" name="l01576"></a><span class="lineno"> 1576</span>            </div>
+<div class="line"><a id="l01577" name="l01577"></a><span class="lineno"> 1577</span>            <span class="comment">/* w25qxx_page_program_quad_input */</span></div>
+<div class="line"><a id="l01578" name="l01578"></a><span class="lineno"> 1578</span>            res = <a class="code hl_function" href="group__w25qxx__advance__driver.html#ga1f80bbbaaa852eecfffb87737889363d">w25qxx_page_program_quad_input</a>(&amp;gs_handle, 0x00000000, gs_buffer_input, 256);</div>
+<div class="line"><a id="l01579" name="l01579"></a><span class="lineno"> 1579</span>            <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l01580" name="l01580"></a><span class="lineno"> 1580</span>            {</div>
+<div class="line"><a id="l01581" name="l01581"></a><span class="lineno"> 1581</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: page program quad input failed.\n&quot;</span>);</div>
+<div class="line"><a id="l01582" name="l01582"></a><span class="lineno"> 1582</span>                (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l01583" name="l01583"></a><span class="lineno"> 1583</span>               </div>
+<div class="line"><a id="l01584" name="l01584"></a><span class="lineno"> 1584</span>                <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l01585" name="l01585"></a><span class="lineno"> 1585</span>            }</div>
+<div class="line"><a id="l01586" name="l01586"></a><span class="lineno"> 1586</span>            </div>
+<div class="line"><a id="l01587" name="l01587"></a><span class="lineno"> 1587</span>            <span class="comment">/* fast read */</span></div>
+<div class="line"><a id="l01588" name="l01588"></a><span class="lineno"> 1588</span>            res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#gac345ba10af5ad355578fa97697487123">w25qxx_fast_read</a>(&amp;gs_handle, 0x00000000, gs_buffer_output, 256);</div>
+<div class="line"><a id="l01589" name="l01589"></a><span class="lineno"> 1589</span>            <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l01590" name="l01590"></a><span class="lineno"> 1590</span>            {</div>
+<div class="line"><a id="l01591" name="l01591"></a><span class="lineno"> 1591</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read failed.\n&quot;</span>);</div>
+<div class="line"><a id="l01592" name="l01592"></a><span class="lineno"> 1592</span>                (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l01593" name="l01593"></a><span class="lineno"> 1593</span>               </div>
+<div class="line"><a id="l01594" name="l01594"></a><span class="lineno"> 1594</span>                <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l01595" name="l01595"></a><span class="lineno"> 1595</span>            }</div>
+<div class="line"><a id="l01596" name="l01596"></a><span class="lineno"> 1596</span>            <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
+<div class="line"><a id="l01597" name="l01597"></a><span class="lineno"> 1597</span>            {</div>
+<div class="line"><a id="l01598" name="l01598"></a><span class="lineno"> 1598</span>                <span class="keywordflow">if</span> (gs_buffer_input[j] != gs_buffer_output[j])</div>
+<div class="line"><a id="l01599" name="l01599"></a><span class="lineno"> 1599</span>                {</div>
+<div class="line"><a id="l01600" name="l01600"></a><span class="lineno"> 1600</span>                    <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: write read check failed.\n&quot;</span>);</div>
+<div class="line"><a id="l01601" name="l01601"></a><span class="lineno"> 1601</span>                    (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l01602" name="l01602"></a><span class="lineno"> 1602</span>                    </div>
+<div class="line"><a id="l01603" name="l01603"></a><span class="lineno"> 1603</span>                    <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l01604" name="l01604"></a><span class="lineno"> 1604</span>                }</div>
+<div class="line"><a id="l01605" name="l01605"></a><span class="lineno"> 1605</span>            }</div>
+<div class="line"><a id="l01606" name="l01606"></a><span class="lineno"> 1606</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_page_program_quad_input check passed.\n&quot;</span>);</div>
+<div class="line"><a id="l01607" name="l01607"></a><span class="lineno"> 1607</span>            </div>
+<div class="line"><a id="l01608" name="l01608"></a><span class="lineno"> 1608</span>            <span class="keywordflow">if</span> (type &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)</div>
+<div class="line"><a id="l01609" name="l01609"></a><span class="lineno"> 1609</span>            {</div>
+<div class="line"><a id="l01610" name="l01610"></a><span class="lineno"> 1610</span>                <span class="comment">/* set address mode 4 byte */</span></div>
+<div class="line"><a id="l01611" name="l01611"></a><span class="lineno"> 1611</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set address mode 4 byte.\n&quot;</span>);</div>
+<div class="line"><a id="l01612" name="l01612"></a><span class="lineno"> 1612</span>                </div>
+<div class="line"><a id="l01613" name="l01613"></a><span class="lineno"> 1613</span>                <span class="comment">/* set address mode 4 byte */</span></div>
+<div class="line"><a id="l01614" name="l01614"></a><span class="lineno"> 1614</span>                res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#gad0e125eff304ce66fb3956d2c8c80656">w25qxx_set_address_mode</a>(&amp;gs_handle, <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>);</div>
+<div class="line"><a id="l01615" name="l01615"></a><span class="lineno"> 1615</span>                <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l01616" name="l01616"></a><span class="lineno"> 1616</span>                {</div>
+<div class="line"><a id="l01617" name="l01617"></a><span class="lineno"> 1617</span>                    <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set address mode failed.\n&quot;</span>);</div>
+<div class="line"><a id="l01618" name="l01618"></a><span class="lineno"> 1618</span>                    (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l01619" name="l01619"></a><span class="lineno"> 1619</span>                   </div>
+<div class="line"><a id="l01620" name="l01620"></a><span class="lineno"> 1620</span>                    <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l01621" name="l01621"></a><span class="lineno"> 1621</span>                }</div>
+<div class="line"><a id="l01622" name="l01622"></a><span class="lineno"> 1622</span>                </div>
+<div class="line"><a id="l01623" name="l01623"></a><span class="lineno"> 1623</span>                <span class="comment">/* random data */</span></div>
+<div class="line"><a id="l01624" name="l01624"></a><span class="lineno"> 1624</span>                <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
+<div class="line"><a id="l01625" name="l01625"></a><span class="lineno"> 1625</span>                {</div>
+<div class="line"><a id="l01626" name="l01626"></a><span class="lineno"> 1626</span>                    gs_buffer_input[j] = rand() %256;</div>
+<div class="line"><a id="l01627" name="l01627"></a><span class="lineno"> 1627</span>                }</div>
+<div class="line"><a id="l01628" name="l01628"></a><span class="lineno"> 1628</span>                </div>
+<div class="line"><a id="l01629" name="l01629"></a><span class="lineno"> 1629</span>                <span class="comment">/* w25qxx_sector_erase_4k */</span></div>
+<div class="line"><a id="l01630" name="l01630"></a><span class="lineno"> 1630</span>                res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#ga9a03c51b4c84655350c15fbfce0a6b40">w25qxx_sector_erase_4k</a>(&amp;gs_handle, 0x00000000);</div>
+<div class="line"><a id="l01631" name="l01631"></a><span class="lineno"> 1631</span>                <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l01632" name="l01632"></a><span class="lineno"> 1632</span>                {</div>
+<div class="line"><a id="l01633" name="l01633"></a><span class="lineno"> 1633</span>                    <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: sector erase 4k failed.\n&quot;</span>);</div>
+<div class="line"><a id="l01634" name="l01634"></a><span class="lineno"> 1634</span>                    (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l01635" name="l01635"></a><span class="lineno"> 1635</span>                   </div>
+<div class="line"><a id="l01636" name="l01636"></a><span class="lineno"> 1636</span>                    <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l01637" name="l01637"></a><span class="lineno"> 1637</span>                }</div>
+<div class="line"><a id="l01638" name="l01638"></a><span class="lineno"> 1638</span>                </div>
+<div class="line"><a id="l01639" name="l01639"></a><span class="lineno"> 1639</span>                <span class="comment">/* w25qxx_page_program */</span></div>
+<div class="line"><a id="l01640" name="l01640"></a><span class="lineno"> 1640</span>                res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#ga6280e7e4ab26306436e2c210617a28b3">w25qxx_page_program</a>(&amp;gs_handle, 0x00000000, gs_buffer_input, 256);</div>
+<div class="line"><a id="l01641" name="l01641"></a><span class="lineno"> 1641</span>                <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l01642" name="l01642"></a><span class="lineno"> 1642</span>                {</div>
+<div class="line"><a id="l01643" name="l01643"></a><span class="lineno"> 1643</span>                    <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: page program failed.\n&quot;</span>);</div>
+<div class="line"><a id="l01644" name="l01644"></a><span class="lineno"> 1644</span>                    (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l01645" name="l01645"></a><span class="lineno"> 1645</span>                   </div>
+<div class="line"><a id="l01646" name="l01646"></a><span class="lineno"> 1646</span>                    <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l01647" name="l01647"></a><span class="lineno"> 1647</span>                }</div>
+<div class="line"><a id="l01648" name="l01648"></a><span class="lineno"> 1648</span>                </div>
+<div class="line"><a id="l01649" name="l01649"></a><span class="lineno"> 1649</span>                <span class="comment">/* fast read dual output */</span></div>
+<div class="line"><a id="l01650" name="l01650"></a><span class="lineno"> 1650</span>                res = <a class="code hl_function" href="group__w25qxx__advance__driver.html#ga7a19230ca3916816ea8fb7421483d293">w25qxx_fast_read_dual_output</a>(&amp;gs_handle, 0x00000000, gs_buffer_output, 256);</div>
+<div class="line"><a id="l01651" name="l01651"></a><span class="lineno"> 1651</span>                <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l01652" name="l01652"></a><span class="lineno"> 1652</span>                {</div>
+<div class="line"><a id="l01653" name="l01653"></a><span class="lineno"> 1653</span>                    <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read dual output failed.\n&quot;</span>);</div>
+<div class="line"><a id="l01654" name="l01654"></a><span class="lineno"> 1654</span>                    (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l01655" name="l01655"></a><span class="lineno"> 1655</span>                   </div>
+<div class="line"><a id="l01656" name="l01656"></a><span class="lineno"> 1656</span>                    <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l01657" name="l01657"></a><span class="lineno"> 1657</span>                }</div>
+<div class="line"><a id="l01658" name="l01658"></a><span class="lineno"> 1658</span>                <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
+<div class="line"><a id="l01659" name="l01659"></a><span class="lineno"> 1659</span>                {</div>
+<div class="line"><a id="l01660" name="l01660"></a><span class="lineno"> 1660</span>                    <span class="keywordflow">if</span> (gs_buffer_input[j] != gs_buffer_output[j])</div>
+<div class="line"><a id="l01661" name="l01661"></a><span class="lineno"> 1661</span>                    {</div>
+<div class="line"><a id="l01662" name="l01662"></a><span class="lineno"> 1662</span>                        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: write read check failed.\n&quot;</span>);</div>
+<div class="line"><a id="l01663" name="l01663"></a><span class="lineno"> 1663</span>                        (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l01664" name="l01664"></a><span class="lineno"> 1664</span>                        </div>
+<div class="line"><a id="l01665" name="l01665"></a><span class="lineno"> 1665</span>                        <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l01666" name="l01666"></a><span class="lineno"> 1666</span>                    }</div>
+<div class="line"><a id="l01667" name="l01667"></a><span class="lineno"> 1667</span>                }</div>
+<div class="line"><a id="l01668" name="l01668"></a><span class="lineno"> 1668</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast_read_dual_output check passed.\n&quot;</span>);</div>
+<div class="line"><a id="l01669" name="l01669"></a><span class="lineno"> 1669</span>                </div>
+<div class="line"><a id="l01670" name="l01670"></a><span class="lineno"> 1670</span>                <span class="comment">/* fast read quad output */</span></div>
+<div class="line"><a id="l01671" name="l01671"></a><span class="lineno"> 1671</span>                res = <a class="code hl_function" href="group__w25qxx__advance__driver.html#gaf4bfafd1f80aa0316a4b1a15183dcd50">w25qxx_fast_read_quad_output</a>(&amp;gs_handle, 0x00000000, gs_buffer_output, 256);</div>
+<div class="line"><a id="l01672" name="l01672"></a><span class="lineno"> 1672</span>                <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l01673" name="l01673"></a><span class="lineno"> 1673</span>                {</div>
+<div class="line"><a id="l01674" name="l01674"></a><span class="lineno"> 1674</span>                    <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read quad output failed.\n&quot;</span>);</div>
+<div class="line"><a id="l01675" name="l01675"></a><span class="lineno"> 1675</span>                    (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l01676" name="l01676"></a><span class="lineno"> 1676</span>                   </div>
+<div class="line"><a id="l01677" name="l01677"></a><span class="lineno"> 1677</span>                    <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l01678" name="l01678"></a><span class="lineno"> 1678</span>                }</div>
+<div class="line"><a id="l01679" name="l01679"></a><span class="lineno"> 1679</span>                <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
+<div class="line"><a id="l01680" name="l01680"></a><span class="lineno"> 1680</span>                {</div>
+<div class="line"><a id="l01681" name="l01681"></a><span class="lineno"> 1681</span>                    <span class="keywordflow">if</span> (gs_buffer_input[j] != gs_buffer_output[j])</div>
+<div class="line"><a id="l01682" name="l01682"></a><span class="lineno"> 1682</span>                    {</div>
+<div class="line"><a id="l01683" name="l01683"></a><span class="lineno"> 1683</span>                        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: write read check failed.\n&quot;</span>);</div>
+<div class="line"><a id="l01684" name="l01684"></a><span class="lineno"> 1684</span>                        (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l01685" name="l01685"></a><span class="lineno"> 1685</span>                        </div>
+<div class="line"><a id="l01686" name="l01686"></a><span class="lineno"> 1686</span>                        <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l01687" name="l01687"></a><span class="lineno"> 1687</span>                    }</div>
+<div class="line"><a id="l01688" name="l01688"></a><span class="lineno"> 1688</span>                }</div>
+<div class="line"><a id="l01689" name="l01689"></a><span class="lineno"> 1689</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast_read_quad_output check passed.\n&quot;</span>);</div>
+<div class="line"><a id="l01690" name="l01690"></a><span class="lineno"> 1690</span>                </div>
+<div class="line"><a id="l01691" name="l01691"></a><span class="lineno"> 1691</span>                <span class="comment">/* fast read dual io */</span></div>
+<div class="line"><a id="l01692" name="l01692"></a><span class="lineno"> 1692</span>                res = <a class="code hl_function" href="group__w25qxx__advance__driver.html#gac894f4650905cba10dd3a31284de6d5e">w25qxx_fast_read_dual_io</a>(&amp;gs_handle, 0x00000000, gs_buffer_output, 256);</div>
+<div class="line"><a id="l01693" name="l01693"></a><span class="lineno"> 1693</span>                <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l01694" name="l01694"></a><span class="lineno"> 1694</span>                {</div>
+<div class="line"><a id="l01695" name="l01695"></a><span class="lineno"> 1695</span>                    <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read dual io failed.\n&quot;</span>);</div>
+<div class="line"><a id="l01696" name="l01696"></a><span class="lineno"> 1696</span>                    (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l01697" name="l01697"></a><span class="lineno"> 1697</span>                   </div>
+<div class="line"><a id="l01698" name="l01698"></a><span class="lineno"> 1698</span>                    <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l01699" name="l01699"></a><span class="lineno"> 1699</span>                }</div>
+<div class="line"><a id="l01700" name="l01700"></a><span class="lineno"> 1700</span>                <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
+<div class="line"><a id="l01701" name="l01701"></a><span class="lineno"> 1701</span>                {</div>
+<div class="line"><a id="l01702" name="l01702"></a><span class="lineno"> 1702</span>                    <span class="keywordflow">if</span> (gs_buffer_input[j] != gs_buffer_output[j])</div>
+<div class="line"><a id="l01703" name="l01703"></a><span class="lineno"> 1703</span>                    {</div>
+<div class="line"><a id="l01704" name="l01704"></a><span class="lineno"> 1704</span>                        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: write read check failed.\n&quot;</span>);</div>
+<div class="line"><a id="l01705" name="l01705"></a><span class="lineno"> 1705</span>                        (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l01706" name="l01706"></a><span class="lineno"> 1706</span>                        </div>
+<div class="line"><a id="l01707" name="l01707"></a><span class="lineno"> 1707</span>                        <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l01708" name="l01708"></a><span class="lineno"> 1708</span>                    }</div>
+<div class="line"><a id="l01709" name="l01709"></a><span class="lineno"> 1709</span>                }</div>
+<div class="line"><a id="l01710" name="l01710"></a><span class="lineno"> 1710</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_fast_read_dual_io check passed.\n&quot;</span>);</div>
+<div class="line"><a id="l01711" name="l01711"></a><span class="lineno"> 1711</span>                </div>
+<div class="line"><a id="l01712" name="l01712"></a><span class="lineno"> 1712</span>                <span class="comment">/* fast read quad io */</span></div>
+<div class="line"><a id="l01713" name="l01713"></a><span class="lineno"> 1713</span>                res = <a class="code hl_function" href="group__w25qxx__advance__driver.html#gab97a64bd3776874518f60381d921ae41">w25qxx_fast_read_quad_io</a>(&amp;gs_handle, 0x00000000, gs_buffer_output, 256);</div>
+<div class="line"><a id="l01714" name="l01714"></a><span class="lineno"> 1714</span>                <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l01715" name="l01715"></a><span class="lineno"> 1715</span>                {</div>
+<div class="line"><a id="l01716" name="l01716"></a><span class="lineno"> 1716</span>                    <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read quad io failed.\n&quot;</span>);</div>
+<div class="line"><a id="l01717" name="l01717"></a><span class="lineno"> 1717</span>                    (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l01718" name="l01718"></a><span class="lineno"> 1718</span>                   </div>
+<div class="line"><a id="l01719" name="l01719"></a><span class="lineno"> 1719</span>                    <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l01720" name="l01720"></a><span class="lineno"> 1720</span>                }</div>
+<div class="line"><a id="l01721" name="l01721"></a><span class="lineno"> 1721</span>                <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
+<div class="line"><a id="l01722" name="l01722"></a><span class="lineno"> 1722</span>                {</div>
+<div class="line"><a id="l01723" name="l01723"></a><span class="lineno"> 1723</span>                    <span class="keywordflow">if</span> (gs_buffer_input[j] != gs_buffer_output[j])</div>
+<div class="line"><a id="l01724" name="l01724"></a><span class="lineno"> 1724</span>                    {</div>
+<div class="line"><a id="l01725" name="l01725"></a><span class="lineno"> 1725</span>                        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: write read check failed.\n&quot;</span>);</div>
+<div class="line"><a id="l01726" name="l01726"></a><span class="lineno"> 1726</span>                        (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l01727" name="l01727"></a><span class="lineno"> 1727</span>                        </div>
+<div class="line"><a id="l01728" name="l01728"></a><span class="lineno"> 1728</span>                        <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l01729" name="l01729"></a><span class="lineno"> 1729</span>                    }</div>
+<div class="line"><a id="l01730" name="l01730"></a><span class="lineno"> 1730</span>                }</div>
+<div class="line"><a id="l01731" name="l01731"></a><span class="lineno"> 1731</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_fast_read_quad_io check passed.\n&quot;</span>);</div>
+<div class="line"><a id="l01732" name="l01732"></a><span class="lineno"> 1732</span>                </div>
+<div class="line"><a id="l01733" name="l01733"></a><span class="lineno"> 1733</span>                <span class="comment">/* word read quad io */</span></div>
+<div class="line"><a id="l01734" name="l01734"></a><span class="lineno"> 1734</span>                res = <a class="code hl_function" href="group__w25qxx__advance__driver.html#gad97d7e410dd77c49334097a0fd332660">w25qxx_word_read_quad_io</a>(&amp;gs_handle, 0x00000000, gs_buffer_output, 256);</div>
+<div class="line"><a id="l01735" name="l01735"></a><span class="lineno"> 1735</span>                <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l01736" name="l01736"></a><span class="lineno"> 1736</span>                {</div>
+<div class="line"><a id="l01737" name="l01737"></a><span class="lineno"> 1737</span>                    <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: word read quad io failed.\n&quot;</span>);</div>
+<div class="line"><a id="l01738" name="l01738"></a><span class="lineno"> 1738</span>                    (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l01739" name="l01739"></a><span class="lineno"> 1739</span>                   </div>
+<div class="line"><a id="l01740" name="l01740"></a><span class="lineno"> 1740</span>                    <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l01741" name="l01741"></a><span class="lineno"> 1741</span>                }</div>
+<div class="line"><a id="l01742" name="l01742"></a><span class="lineno"> 1742</span>                <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
+<div class="line"><a id="l01743" name="l01743"></a><span class="lineno"> 1743</span>                {</div>
+<div class="line"><a id="l01744" name="l01744"></a><span class="lineno"> 1744</span>                    <span class="keywordflow">if</span> (gs_buffer_input[j] != gs_buffer_output[j])</div>
+<div class="line"><a id="l01745" name="l01745"></a><span class="lineno"> 1745</span>                    {</div>
+<div class="line"><a id="l01746" name="l01746"></a><span class="lineno"> 1746</span>                        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: write read check failed.\n&quot;</span>);</div>
+<div class="line"><a id="l01747" name="l01747"></a><span class="lineno"> 1747</span>                        (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l01748" name="l01748"></a><span class="lineno"> 1748</span>                        </div>
+<div class="line"><a id="l01749" name="l01749"></a><span class="lineno"> 1749</span>                        <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l01750" name="l01750"></a><span class="lineno"> 1750</span>                    }</div>
+<div class="line"><a id="l01751" name="l01751"></a><span class="lineno"> 1751</span>                }</div>
+<div class="line"><a id="l01752" name="l01752"></a><span class="lineno"> 1752</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_word_read_quad_io check passed.\n&quot;</span>);</div>
+<div class="line"><a id="l01753" name="l01753"></a><span class="lineno"> 1753</span>                </div>
+<div class="line"><a id="l01754" name="l01754"></a><span class="lineno"> 1754</span>                <span class="comment">/* octal read quad io */</span></div>
+<div class="line"><a id="l01755" name="l01755"></a><span class="lineno"> 1755</span>                res = <a class="code hl_function" href="group__w25qxx__advance__driver.html#ga88a62ec42e86db821ff3f0d3ab541dbb">w25qxx_octal_word_read_quad_io</a>(&amp;gs_handle, 0x00000000, gs_buffer_output, 256);</div>
+<div class="line"><a id="l01756" name="l01756"></a><span class="lineno"> 1756</span>                <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l01757" name="l01757"></a><span class="lineno"> 1757</span>                {</div>
+<div class="line"><a id="l01758" name="l01758"></a><span class="lineno"> 1758</span>                    <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: octal read quad io failed.\n&quot;</span>);</div>
+<div class="line"><a id="l01759" name="l01759"></a><span class="lineno"> 1759</span>                    (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l01760" name="l01760"></a><span class="lineno"> 1760</span>                   </div>
+<div class="line"><a id="l01761" name="l01761"></a><span class="lineno"> 1761</span>                    <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l01762" name="l01762"></a><span class="lineno"> 1762</span>                }</div>
+<div class="line"><a id="l01763" name="l01763"></a><span class="lineno"> 1763</span>                <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
+<div class="line"><a id="l01764" name="l01764"></a><span class="lineno"> 1764</span>                {</div>
+<div class="line"><a id="l01765" name="l01765"></a><span class="lineno"> 1765</span>                    <span class="keywordflow">if</span> (gs_buffer_input[j] != gs_buffer_output[j])</div>
+<div class="line"><a id="l01766" name="l01766"></a><span class="lineno"> 1766</span>                    {</div>
+<div class="line"><a id="l01767" name="l01767"></a><span class="lineno"> 1767</span>                        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: write read check failed.\n&quot;</span>);</div>
+<div class="line"><a id="l01768" name="l01768"></a><span class="lineno"> 1768</span>                        (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l01769" name="l01769"></a><span class="lineno"> 1769</span>                        </div>
+<div class="line"><a id="l01770" name="l01770"></a><span class="lineno"> 1770</span>                        <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l01771" name="l01771"></a><span class="lineno"> 1771</span>                    }</div>
+<div class="line"><a id="l01772" name="l01772"></a><span class="lineno"> 1772</span>                }</div>
+<div class="line"><a id="l01773" name="l01773"></a><span class="lineno"> 1773</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_octal_word_read_quad_io check passed.\n&quot;</span>);</div>
+<div class="line"><a id="l01774" name="l01774"></a><span class="lineno"> 1774</span>                </div>
+<div class="line"><a id="l01775" name="l01775"></a><span class="lineno"> 1775</span>                <span class="comment">/* random data */</span></div>
+<div class="line"><a id="l01776" name="l01776"></a><span class="lineno"> 1776</span>                <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
+<div class="line"><a id="l01777" name="l01777"></a><span class="lineno"> 1777</span>                {</div>
+<div class="line"><a id="l01778" name="l01778"></a><span class="lineno"> 1778</span>                    gs_buffer_input[j] = rand() %256;</div>
+<div class="line"><a id="l01779" name="l01779"></a><span class="lineno"> 1779</span>                }</div>
+<div class="line"><a id="l01780" name="l01780"></a><span class="lineno"> 1780</span>                </div>
+<div class="line"><a id="l01781" name="l01781"></a><span class="lineno"> 1781</span>                <span class="comment">/* w25qxx_sector_erase_4k */</span></div>
+<div class="line"><a id="l01782" name="l01782"></a><span class="lineno"> 1782</span>                res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#ga9a03c51b4c84655350c15fbfce0a6b40">w25qxx_sector_erase_4k</a>(&amp;gs_handle, 0x00000000);</div>
+<div class="line"><a id="l01783" name="l01783"></a><span class="lineno"> 1783</span>                <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l01784" name="l01784"></a><span class="lineno"> 1784</span>                {</div>
+<div class="line"><a id="l01785" name="l01785"></a><span class="lineno"> 1785</span>                    <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: sector erase 4k failed.\n&quot;</span>);</div>
+<div class="line"><a id="l01786" name="l01786"></a><span class="lineno"> 1786</span>                    (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l01787" name="l01787"></a><span class="lineno"> 1787</span>                   </div>
+<div class="line"><a id="l01788" name="l01788"></a><span class="lineno"> 1788</span>                    <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l01789" name="l01789"></a><span class="lineno"> 1789</span>                }</div>
+<div class="line"><a id="l01790" name="l01790"></a><span class="lineno"> 1790</span>                </div>
+<div class="line"><a id="l01791" name="l01791"></a><span class="lineno"> 1791</span>                <span class="comment">/* w25qxx_page_program_quad_input */</span></div>
+<div class="line"><a id="l01792" name="l01792"></a><span class="lineno"> 1792</span>                res = <a class="code hl_function" href="group__w25qxx__advance__driver.html#ga1f80bbbaaa852eecfffb87737889363d">w25qxx_page_program_quad_input</a>(&amp;gs_handle, 0x00000000, gs_buffer_input, 256);</div>
+<div class="line"><a id="l01793" name="l01793"></a><span class="lineno"> 1793</span>                <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l01794" name="l01794"></a><span class="lineno"> 1794</span>                {</div>
+<div class="line"><a id="l01795" name="l01795"></a><span class="lineno"> 1795</span>                    <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: page program quad input failed.\n&quot;</span>);</div>
+<div class="line"><a id="l01796" name="l01796"></a><span class="lineno"> 1796</span>                    (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l01797" name="l01797"></a><span class="lineno"> 1797</span>                   </div>
+<div class="line"><a id="l01798" name="l01798"></a><span class="lineno"> 1798</span>                    <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l01799" name="l01799"></a><span class="lineno"> 1799</span>                }</div>
+<div class="line"><a id="l01800" name="l01800"></a><span class="lineno"> 1800</span>                </div>
+<div class="line"><a id="l01801" name="l01801"></a><span class="lineno"> 1801</span>                <span class="comment">/* fast read */</span></div>
+<div class="line"><a id="l01802" name="l01802"></a><span class="lineno"> 1802</span>                res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#gac345ba10af5ad355578fa97697487123">w25qxx_fast_read</a>(&amp;gs_handle, 0x00000000, gs_buffer_output, 256);</div>
+<div class="line"><a id="l01803" name="l01803"></a><span class="lineno"> 1803</span>                <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l01804" name="l01804"></a><span class="lineno"> 1804</span>                {</div>
+<div class="line"><a id="l01805" name="l01805"></a><span class="lineno"> 1805</span>                    <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: fast read failed.\n&quot;</span>);</div>
+<div class="line"><a id="l01806" name="l01806"></a><span class="lineno"> 1806</span>                    (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l01807" name="l01807"></a><span class="lineno"> 1807</span>                   </div>
+<div class="line"><a id="l01808" name="l01808"></a><span class="lineno"> 1808</span>                    <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l01809" name="l01809"></a><span class="lineno"> 1809</span>                }</div>
+<div class="line"><a id="l01810" name="l01810"></a><span class="lineno"> 1810</span>                <span class="keywordflow">for</span> (j = 0; j &lt; 256; j++)</div>
+<div class="line"><a id="l01811" name="l01811"></a><span class="lineno"> 1811</span>                {</div>
+<div class="line"><a id="l01812" name="l01812"></a><span class="lineno"> 1812</span>                    <span class="keywordflow">if</span> (gs_buffer_input[j] != gs_buffer_output[j])</div>
+<div class="line"><a id="l01813" name="l01813"></a><span class="lineno"> 1813</span>                    {</div>
+<div class="line"><a id="l01814" name="l01814"></a><span class="lineno"> 1814</span>                        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: write read check failed.\n&quot;</span>);</div>
+<div class="line"><a id="l01815" name="l01815"></a><span class="lineno"> 1815</span>                        (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l01816" name="l01816"></a><span class="lineno"> 1816</span>                        </div>
+<div class="line"><a id="l01817" name="l01817"></a><span class="lineno"> 1817</span>                        <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l01818" name="l01818"></a><span class="lineno"> 1818</span>                    }</div>
+<div class="line"><a id="l01819" name="l01819"></a><span class="lineno"> 1819</span>                }</div>
+<div class="line"><a id="l01820" name="l01820"></a><span class="lineno"> 1820</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_page_program_quad_input check passed.\n&quot;</span>);</div>
+<div class="line"><a id="l01821" name="l01821"></a><span class="lineno"> 1821</span>                </div>
+<div class="line"><a id="l01822" name="l01822"></a><span class="lineno"> 1822</span>                <span class="comment">/* set address mode 3 byte */</span></div>
+<div class="line"><a id="l01823" name="l01823"></a><span class="lineno"> 1823</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set address mode 3 byte.\n&quot;</span>);</div>
+<div class="line"><a id="l01824" name="l01824"></a><span class="lineno"> 1824</span>                </div>
+<div class="line"><a id="l01825" name="l01825"></a><span class="lineno"> 1825</span>                <span class="comment">/* set address mode 3 byte */</span></div>
+<div class="line"><a id="l01826" name="l01826"></a><span class="lineno"> 1826</span>                res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#gad0e125eff304ce66fb3956d2c8c80656">w25qxx_set_address_mode</a>(&amp;gs_handle, <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>);</div>
+<div class="line"><a id="l01827" name="l01827"></a><span class="lineno"> 1827</span>                <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l01828" name="l01828"></a><span class="lineno"> 1828</span>                {</div>
+<div class="line"><a id="l01829" name="l01829"></a><span class="lineno"> 1829</span>                    <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set address mode failed.\n&quot;</span>);</div>
+<div class="line"><a id="l01830" name="l01830"></a><span class="lineno"> 1830</span>                    (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l01831" name="l01831"></a><span class="lineno"> 1831</span>                   </div>
+<div class="line"><a id="l01832" name="l01832"></a><span class="lineno"> 1832</span>                    <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l01833" name="l01833"></a><span class="lineno"> 1833</span>                }</div>
+<div class="line"><a id="l01834" name="l01834"></a><span class="lineno"> 1834</span>            }</div>
+<div class="line"><a id="l01835" name="l01835"></a><span class="lineno"> 1835</span>            </div>
+<div class="line"><a id="l01836" name="l01836"></a><span class="lineno"> 1836</span>            <span class="comment">/* enter to qspi mode */</span></div>
+<div class="line"><a id="l01837" name="l01837"></a><span class="lineno"> 1837</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: enter to qspi mode.\n&quot;</span>);</div>
+<div class="line"><a id="l01838" name="l01838"></a><span class="lineno"> 1838</span>            </div>
+<div class="line"><a id="l01839" name="l01839"></a><span class="lineno"> 1839</span>            <span class="comment">/* enter qspi */</span></div>
+<div class="line"><a id="l01840" name="l01840"></a><span class="lineno"> 1840</span>            res = <a class="code hl_function" href="group__w25qxx__advance__driver.html#gaa5ab3548707a95ded115255432224c5a">w25qxx_enter_qspi_mode</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l01841" name="l01841"></a><span class="lineno"> 1841</span>            <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l01842" name="l01842"></a><span class="lineno"> 1842</span>            {</div>
+<div class="line"><a id="l01843" name="l01843"></a><span class="lineno"> 1843</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: enter qspi mode failed.\n&quot;</span>);</div>
+<div class="line"><a id="l01844" name="l01844"></a><span class="lineno"> 1844</span>                (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l01845" name="l01845"></a><span class="lineno"> 1845</span>               </div>
+<div class="line"><a id="l01846" name="l01846"></a><span class="lineno"> 1846</span>                <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l01847" name="l01847"></a><span class="lineno"> 1847</span>            }</div>
+<div class="line"><a id="l01848" name="l01848"></a><span class="lineno"> 1848</span>            </div>
+<div class="line"><a id="l01849" name="l01849"></a><span class="lineno"> 1849</span>            <span class="comment">/* set chip interface spi */</span></div>
+<div class="line"><a id="l01850" name="l01850"></a><span class="lineno"> 1850</span>            res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#ga50a62003d566402d46ada2f272c41eb5">w25qxx_set_interface</a>(&amp;gs_handle, <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2fea895dcb5c91da89fad1c12161ffd2d5d4">W25QXX_INTERFACE_QSPI</a>);</div>
+<div class="line"><a id="l01851" name="l01851"></a><span class="lineno"> 1851</span>            <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l01852" name="l01852"></a><span class="lineno"> 1852</span>            {</div>
+<div class="line"><a id="l01853" name="l01853"></a><span class="lineno"> 1853</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set interface failed.\n&quot;</span>);</div>
+<div class="line"><a id="l01854" name="l01854"></a><span class="lineno"> 1854</span>               </div>
+<div class="line"><a id="l01855" name="l01855"></a><span class="lineno"> 1855</span>                <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l01856" name="l01856"></a><span class="lineno"> 1856</span>            }</div>
+<div class="line"><a id="l01857" name="l01857"></a><span class="lineno"> 1857</span>        }</div>
+<div class="line"><a id="l01858" name="l01858"></a><span class="lineno"> 1858</span>        </div>
+<div class="line"><a id="l01859" name="l01859"></a><span class="lineno"> 1859</span>        <span class="comment">/* w25qxx_set_read_parameters test */</span></div>
+<div class="line"><a id="l01860" name="l01860"></a><span class="lineno"> 1860</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_set_read_parameters test.\n&quot;</span>);</div>
+<div class="line"><a id="l01861" name="l01861"></a><span class="lineno"> 1861</span>        </div>
+<div class="line"><a id="l01862" name="l01862"></a><span class="lineno"> 1862</span>        <span class="comment">/* 8 dummy max 80MHz test */</span></div>
+<div class="line"><a id="l01863" name="l01863"></a><span class="lineno"> 1863</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set 8 dummy max 80MHz test.\n&quot;</span>);</div>
+<div class="line"><a id="l01864" name="l01864"></a><span class="lineno"> 1864</span>        </div>
+<div class="line"><a id="l01865" name="l01865"></a><span class="lineno"> 1865</span>        res = <a class="code hl_function" href="group__w25qxx__advance__driver.html#ga9ad10781d888b32b43b9eba45d049624">w25qxx_set_read_parameters</a>(&amp;gs_handle, <a class="code hl_enumvalue" href="group__w25qxx__advance__driver.html#gga6ff284154302248f00db269146545443ade1d3511f15c7d92de8c5d8967c471c3">W25QXX_QSPI_READ_DUMMY_8_80MHZ</a>, <a class="code hl_enumvalue" href="group__w25qxx__advance__driver.html#gga2fd3023819e1aebe089a4a72eb136da3a5b8fa1026c564fe83f3f0f0edb89d1dd">W25QXX_QSPI_READ_WRAP_LENGTH_8_BYTE</a>);</div>
+<div class="line"><a id="l01866" name="l01866"></a><span class="lineno"> 1866</span>        <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l01867" name="l01867"></a><span class="lineno"> 1867</span>        {</div>
+<div class="line"><a id="l01868" name="l01868"></a><span class="lineno"> 1868</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set read parameters.\n&quot;</span>);</div>
+<div class="line"><a id="l01869" name="l01869"></a><span class="lineno"> 1869</span>           </div>
+<div class="line"><a id="l01870" name="l01870"></a><span class="lineno"> 1870</span>            <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l01871" name="l01871"></a><span class="lineno"> 1871</span>        }</div>
+<div class="line"><a id="l01872" name="l01872"></a><span class="lineno"> 1872</span>        </div>
+<div class="line"><a id="l01873" name="l01873"></a><span class="lineno"> 1873</span>        <span class="keywordflow">for</span> (addr = 0; addr &lt; size; addr += step)</div>
+<div class="line"><a id="l01874" name="l01874"></a><span class="lineno"> 1874</span>        {</div>
+<div class="line"><a id="l01875" name="l01875"></a><span class="lineno"> 1875</span>            <span class="keywordflow">for</span> (j = 0; j &lt; 600; j++)</div>
+<div class="line"><a id="l01876" name="l01876"></a><span class="lineno"> 1876</span>            {</div>
+<div class="line"><a id="l01877" name="l01877"></a><span class="lineno"> 1877</span>                gs_buffer_input[j] = rand() %256;</div>
+<div class="line"><a id="l01878" name="l01878"></a><span class="lineno"> 1878</span>            }</div>
+<div class="line"><a id="l01879" name="l01879"></a><span class="lineno"> 1879</span>            res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#gaaee8264d840e51460821cb6e609338ee">w25qxx_write</a>(&amp;gs_handle, addr, gs_buffer_input, 600);</div>
+<div class="line"><a id="l01880" name="l01880"></a><span class="lineno"> 1880</span>            <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l01881" name="l01881"></a><span class="lineno"> 1881</span>            {</div>
+<div class="line"><a id="l01882" name="l01882"></a><span class="lineno"> 1882</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: write failed.\n&quot;</span>);</div>
+<div class="line"><a id="l01883" name="l01883"></a><span class="lineno"> 1883</span>                (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l01884" name="l01884"></a><span class="lineno"> 1884</span>               </div>
+<div class="line"><a id="l01885" name="l01885"></a><span class="lineno"> 1885</span>                <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l01886" name="l01886"></a><span class="lineno"> 1886</span>            }</div>
+<div class="line"><a id="l01887" name="l01887"></a><span class="lineno"> 1887</span>            res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#gae7479fc9ce911a52e3c5b6f1a615b879">w25qxx_read</a>(&amp;gs_handle, addr, gs_buffer_output, 600);</div>
+<div class="line"><a id="l01888" name="l01888"></a><span class="lineno"> 1888</span>            <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l01889" name="l01889"></a><span class="lineno"> 1889</span>            {</div>
+<div class="line"><a id="l01890" name="l01890"></a><span class="lineno"> 1890</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: read failed.\n&quot;</span>);</div>
+<div class="line"><a id="l01891" name="l01891"></a><span class="lineno"> 1891</span>                (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l01892" name="l01892"></a><span class="lineno"> 1892</span>               </div>
+<div class="line"><a id="l01893" name="l01893"></a><span class="lineno"> 1893</span>                <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l01894" name="l01894"></a><span class="lineno"> 1894</span>            }</div>
+<div class="line"><a id="l01895" name="l01895"></a><span class="lineno"> 1895</span>            <span class="keywordflow">for</span> (j = 0; j &lt; 600; j++)</div>
+<div class="line"><a id="l01896" name="l01896"></a><span class="lineno"> 1896</span>            {</div>
+<div class="line"><a id="l01897" name="l01897"></a><span class="lineno"> 1897</span>                <span class="keywordflow">if</span> (gs_buffer_input[j] != gs_buffer_output[j])</div>
+<div class="line"><a id="l01898" name="l01898"></a><span class="lineno"> 1898</span>                {</div>
+<div class="line"><a id="l01899" name="l01899"></a><span class="lineno"> 1899</span>                    <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: write read check failed.\n&quot;</span>);</div>
+<div class="line"><a id="l01900" name="l01900"></a><span class="lineno"> 1900</span>                    (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l01901" name="l01901"></a><span class="lineno"> 1901</span>                    </div>
+<div class="line"><a id="l01902" name="l01902"></a><span class="lineno"> 1902</span>                    <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l01903" name="l01903"></a><span class="lineno"> 1903</span>                }</div>
+<div class="line"><a id="l01904" name="l01904"></a><span class="lineno"> 1904</span>            }</div>
+<div class="line"><a id="l01905" name="l01905"></a><span class="lineno"> 1905</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: 0x%08X/0x%08X successful.\n&quot;</span>, addr, size);</div>
+<div class="line"><a id="l01906" name="l01906"></a><span class="lineno"> 1906</span>        }</div>
+<div class="line"><a id="l01907" name="l01907"></a><span class="lineno"> 1907</span>        </div>
+<div class="line"><a id="l01908" name="l01908"></a><span class="lineno"> 1908</span>        <span class="comment">/* 6 dummy max 80MHz test */</span></div>
+<div class="line"><a id="l01909" name="l01909"></a><span class="lineno"> 1909</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set 6 dummy max 80MHz test.\n&quot;</span>);</div>
+<div class="line"><a id="l01910" name="l01910"></a><span class="lineno"> 1910</span>        </div>
+<div class="line"><a id="l01911" name="l01911"></a><span class="lineno"> 1911</span>        res = <a class="code hl_function" href="group__w25qxx__advance__driver.html#ga9ad10781d888b32b43b9eba45d049624">w25qxx_set_read_parameters</a>(&amp;gs_handle, <a class="code hl_enumvalue" href="group__w25qxx__advance__driver.html#gga6ff284154302248f00db269146545443a78393debe12bbb3efb710e38e3c1d550">W25QXX_QSPI_READ_DUMMY_6_80MHZ</a>, <a class="code hl_enumvalue" href="group__w25qxx__advance__driver.html#gga2fd3023819e1aebe089a4a72eb136da3a5b8fa1026c564fe83f3f0f0edb89d1dd">W25QXX_QSPI_READ_WRAP_LENGTH_8_BYTE</a>);</div>
+<div class="line"><a id="l01912" name="l01912"></a><span class="lineno"> 1912</span>        <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l01913" name="l01913"></a><span class="lineno"> 1913</span>        {</div>
+<div class="line"><a id="l01914" name="l01914"></a><span class="lineno"> 1914</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set read parameters.\n&quot;</span>);</div>
+<div class="line"><a id="l01915" name="l01915"></a><span class="lineno"> 1915</span>           </div>
+<div class="line"><a id="l01916" name="l01916"></a><span class="lineno"> 1916</span>            <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l01917" name="l01917"></a><span class="lineno"> 1917</span>        }</div>
+<div class="line"><a id="l01918" name="l01918"></a><span class="lineno"> 1918</span>        </div>
+<div class="line"><a id="l01919" name="l01919"></a><span class="lineno"> 1919</span>        <span class="keywordflow">for</span> (addr = 0; addr &lt; size; addr += step)</div>
+<div class="line"><a id="l01920" name="l01920"></a><span class="lineno"> 1920</span>        {</div>
+<div class="line"><a id="l01921" name="l01921"></a><span class="lineno"> 1921</span>            <span class="keywordflow">for</span> (j = 0; j &lt; 600; j++)</div>
+<div class="line"><a id="l01922" name="l01922"></a><span class="lineno"> 1922</span>            {</div>
+<div class="line"><a id="l01923" name="l01923"></a><span class="lineno"> 1923</span>                gs_buffer_input[j] = rand() %256;</div>
+<div class="line"><a id="l01924" name="l01924"></a><span class="lineno"> 1924</span>            }</div>
+<div class="line"><a id="l01925" name="l01925"></a><span class="lineno"> 1925</span>            res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#gaaee8264d840e51460821cb6e609338ee">w25qxx_write</a>(&amp;gs_handle, addr, gs_buffer_input, 600);</div>
+<div class="line"><a id="l01926" name="l01926"></a><span class="lineno"> 1926</span>            <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l01927" name="l01927"></a><span class="lineno"> 1927</span>            {</div>
+<div class="line"><a id="l01928" name="l01928"></a><span class="lineno"> 1928</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: write failed.\n&quot;</span>);</div>
+<div class="line"><a id="l01929" name="l01929"></a><span class="lineno"> 1929</span>                (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l01930" name="l01930"></a><span class="lineno"> 1930</span>               </div>
+<div class="line"><a id="l01931" name="l01931"></a><span class="lineno"> 1931</span>                <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l01932" name="l01932"></a><span class="lineno"> 1932</span>            }</div>
+<div class="line"><a id="l01933" name="l01933"></a><span class="lineno"> 1933</span>            res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#gae7479fc9ce911a52e3c5b6f1a615b879">w25qxx_read</a>(&amp;gs_handle, addr, gs_buffer_output, 600);</div>
+<div class="line"><a id="l01934" name="l01934"></a><span class="lineno"> 1934</span>            <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l01935" name="l01935"></a><span class="lineno"> 1935</span>            {</div>
+<div class="line"><a id="l01936" name="l01936"></a><span class="lineno"> 1936</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: read failed.\n&quot;</span>);</div>
+<div class="line"><a id="l01937" name="l01937"></a><span class="lineno"> 1937</span>                (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l01938" name="l01938"></a><span class="lineno"> 1938</span>               </div>
+<div class="line"><a id="l01939" name="l01939"></a><span class="lineno"> 1939</span>                <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l01940" name="l01940"></a><span class="lineno"> 1940</span>            }</div>
+<div class="line"><a id="l01941" name="l01941"></a><span class="lineno"> 1941</span>            <span class="keywordflow">for</span> (j = 0; j &lt; 600; j++)</div>
+<div class="line"><a id="l01942" name="l01942"></a><span class="lineno"> 1942</span>            {</div>
+<div class="line"><a id="l01943" name="l01943"></a><span class="lineno"> 1943</span>                <span class="keywordflow">if</span> (gs_buffer_input[j] != gs_buffer_output[j])</div>
+<div class="line"><a id="l01944" name="l01944"></a><span class="lineno"> 1944</span>                {</div>
+<div class="line"><a id="l01945" name="l01945"></a><span class="lineno"> 1945</span>                    <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: write read check failed.\n&quot;</span>);</div>
+<div class="line"><a id="l01946" name="l01946"></a><span class="lineno"> 1946</span>                    (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l01947" name="l01947"></a><span class="lineno"> 1947</span>                    </div>
+<div class="line"><a id="l01948" name="l01948"></a><span class="lineno"> 1948</span>                    <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l01949" name="l01949"></a><span class="lineno"> 1949</span>                }</div>
+<div class="line"><a id="l01950" name="l01950"></a><span class="lineno"> 1950</span>            }</div>
+<div class="line"><a id="l01951" name="l01951"></a><span class="lineno"> 1951</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: 0x%08X/0x%08X successful.\n&quot;</span>, addr, size);</div>
+<div class="line"><a id="l01952" name="l01952"></a><span class="lineno"> 1952</span>        }</div>
+<div class="line"><a id="l01953" name="l01953"></a><span class="lineno"> 1953</span>        </div>
+<div class="line"><a id="l01954" name="l01954"></a><span class="lineno"> 1954</span>        <span class="comment">/* 4 dummy max 55MHz test */</span></div>
+<div class="line"><a id="l01955" name="l01955"></a><span class="lineno"> 1955</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set 4 dummy max 55MHz test.\n&quot;</span>);</div>
+<div class="line"><a id="l01956" name="l01956"></a><span class="lineno"> 1956</span>        </div>
+<div class="line"><a id="l01957" name="l01957"></a><span class="lineno"> 1957</span>        res = <a class="code hl_function" href="group__w25qxx__advance__driver.html#ga9ad10781d888b32b43b9eba45d049624">w25qxx_set_read_parameters</a>(&amp;gs_handle, <a class="code hl_enumvalue" href="group__w25qxx__advance__driver.html#gga6ff284154302248f00db269146545443a6423b5606e72af6479fe31a6a9883aeb">W25QXX_QSPI_READ_DUMMY_4_55MHZ</a>, <a class="code hl_enumvalue" href="group__w25qxx__advance__driver.html#gga2fd3023819e1aebe089a4a72eb136da3a5b8fa1026c564fe83f3f0f0edb89d1dd">W25QXX_QSPI_READ_WRAP_LENGTH_8_BYTE</a>);</div>
+<div class="line"><a id="l01958" name="l01958"></a><span class="lineno"> 1958</span>        <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l01959" name="l01959"></a><span class="lineno"> 1959</span>        {</div>
+<div class="line"><a id="l01960" name="l01960"></a><span class="lineno"> 1960</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set read parameters.\n&quot;</span>);</div>
+<div class="line"><a id="l01961" name="l01961"></a><span class="lineno"> 1961</span>           </div>
+<div class="line"><a id="l01962" name="l01962"></a><span class="lineno"> 1962</span>            <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l01963" name="l01963"></a><span class="lineno"> 1963</span>        }</div>
+<div class="line"><a id="l01964" name="l01964"></a><span class="lineno"> 1964</span>        </div>
+<div class="line"><a id="l01965" name="l01965"></a><span class="lineno"> 1965</span>        <span class="keywordflow">for</span> (addr = 0; addr &lt; size; addr += step)</div>
+<div class="line"><a id="l01966" name="l01966"></a><span class="lineno"> 1966</span>        {</div>
+<div class="line"><a id="l01967" name="l01967"></a><span class="lineno"> 1967</span>            <span class="keywordflow">for</span> (j = 0; j &lt; 600; j++)</div>
+<div class="line"><a id="l01968" name="l01968"></a><span class="lineno"> 1968</span>            {</div>
+<div class="line"><a id="l01969" name="l01969"></a><span class="lineno"> 1969</span>                gs_buffer_input[j] = rand() %256;</div>
+<div class="line"><a id="l01970" name="l01970"></a><span class="lineno"> 1970</span>            }</div>
+<div class="line"><a id="l01971" name="l01971"></a><span class="lineno"> 1971</span>            res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#gaaee8264d840e51460821cb6e609338ee">w25qxx_write</a>(&amp;gs_handle, addr, gs_buffer_input, 600);</div>
+<div class="line"><a id="l01972" name="l01972"></a><span class="lineno"> 1972</span>            <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l01973" name="l01973"></a><span class="lineno"> 1973</span>            {</div>
+<div class="line"><a id="l01974" name="l01974"></a><span class="lineno"> 1974</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: write failed.\n&quot;</span>);</div>
+<div class="line"><a id="l01975" name="l01975"></a><span class="lineno"> 1975</span>                (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l01976" name="l01976"></a><span class="lineno"> 1976</span>               </div>
+<div class="line"><a id="l01977" name="l01977"></a><span class="lineno"> 1977</span>                <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l01978" name="l01978"></a><span class="lineno"> 1978</span>            }</div>
+<div class="line"><a id="l01979" name="l01979"></a><span class="lineno"> 1979</span>            res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#gae7479fc9ce911a52e3c5b6f1a615b879">w25qxx_read</a>(&amp;gs_handle, addr, gs_buffer_output, 600);</div>
+<div class="line"><a id="l01980" name="l01980"></a><span class="lineno"> 1980</span>            <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l01981" name="l01981"></a><span class="lineno"> 1981</span>            {</div>
+<div class="line"><a id="l01982" name="l01982"></a><span class="lineno"> 1982</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: read failed.\n&quot;</span>);</div>
+<div class="line"><a id="l01983" name="l01983"></a><span class="lineno"> 1983</span>                (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l01984" name="l01984"></a><span class="lineno"> 1984</span>               </div>
+<div class="line"><a id="l01985" name="l01985"></a><span class="lineno"> 1985</span>                <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l01986" name="l01986"></a><span class="lineno"> 1986</span>            }</div>
+<div class="line"><a id="l01987" name="l01987"></a><span class="lineno"> 1987</span>            <span class="keywordflow">for</span> (j = 0; j &lt; 600; j++)</div>
+<div class="line"><a id="l01988" name="l01988"></a><span class="lineno"> 1988</span>            {</div>
+<div class="line"><a id="l01989" name="l01989"></a><span class="lineno"> 1989</span>                <span class="keywordflow">if</span> (gs_buffer_input[j] != gs_buffer_output[j])</div>
+<div class="line"><a id="l01990" name="l01990"></a><span class="lineno"> 1990</span>                {</div>
+<div class="line"><a id="l01991" name="l01991"></a><span class="lineno"> 1991</span>                    <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: write read check failed.\n&quot;</span>);</div>
+<div class="line"><a id="l01992" name="l01992"></a><span class="lineno"> 1992</span>                    (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l01993" name="l01993"></a><span class="lineno"> 1993</span>                    </div>
+<div class="line"><a id="l01994" name="l01994"></a><span class="lineno"> 1994</span>                    <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l01995" name="l01995"></a><span class="lineno"> 1995</span>                }</div>
+<div class="line"><a id="l01996" name="l01996"></a><span class="lineno"> 1996</span>            }</div>
+<div class="line"><a id="l01997" name="l01997"></a><span class="lineno"> 1997</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: 0x%08X/0x%08X successful.\n&quot;</span>, addr, size);</div>
+<div class="line"><a id="l01998" name="l01998"></a><span class="lineno"> 1998</span>        }</div>
+<div class="line"><a id="l01999" name="l01999"></a><span class="lineno"> 1999</span>        </div>
+<div class="line"><a id="l02000" name="l02000"></a><span class="lineno"> 2000</span>        <span class="comment">/* 2 dummy max 33MHz test */</span></div>
+<div class="line"><a id="l02001" name="l02001"></a><span class="lineno"> 2001</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set 2 dummy max 33MHz test.\n&quot;</span>);</div>
+<div class="line"><a id="l02002" name="l02002"></a><span class="lineno"> 2002</span>        </div>
+<div class="line"><a id="l02003" name="l02003"></a><span class="lineno"> 2003</span>        res = <a class="code hl_function" href="group__w25qxx__advance__driver.html#ga9ad10781d888b32b43b9eba45d049624">w25qxx_set_read_parameters</a>(&amp;gs_handle, <a class="code hl_enumvalue" href="group__w25qxx__advance__driver.html#gga6ff284154302248f00db269146545443ad73634a0f4534c3ae35d4242b2bc8f13">W25QXX_QSPI_READ_DUMMY_2_33MHZ</a>, <a class="code hl_enumvalue" href="group__w25qxx__advance__driver.html#gga2fd3023819e1aebe089a4a72eb136da3a5b8fa1026c564fe83f3f0f0edb89d1dd">W25QXX_QSPI_READ_WRAP_LENGTH_8_BYTE</a>);</div>
+<div class="line"><a id="l02004" name="l02004"></a><span class="lineno"> 2004</span>        <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l02005" name="l02005"></a><span class="lineno"> 2005</span>        {</div>
+<div class="line"><a id="l02006" name="l02006"></a><span class="lineno"> 2006</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set read parameters.\n&quot;</span>);</div>
+<div class="line"><a id="l02007" name="l02007"></a><span class="lineno"> 2007</span>           </div>
+<div class="line"><a id="l02008" name="l02008"></a><span class="lineno"> 2008</span>            <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l02009" name="l02009"></a><span class="lineno"> 2009</span>        }</div>
+<div class="line"><a id="l02010" name="l02010"></a><span class="lineno"> 2010</span>        </div>
+<div class="line"><a id="l02011" name="l02011"></a><span class="lineno"> 2011</span>        <span class="keywordflow">for</span> (addr = 0; addr &lt; size; addr += step)</div>
+<div class="line"><a id="l02012" name="l02012"></a><span class="lineno"> 2012</span>        {</div>
+<div class="line"><a id="l02013" name="l02013"></a><span class="lineno"> 2013</span>            <span class="keywordflow">for</span> (j = 0; j &lt; 600; j++)</div>
+<div class="line"><a id="l02014" name="l02014"></a><span class="lineno"> 2014</span>            {</div>
+<div class="line"><a id="l02015" name="l02015"></a><span class="lineno"> 2015</span>                gs_buffer_input[j] = rand() %256;</div>
+<div class="line"><a id="l02016" name="l02016"></a><span class="lineno"> 2016</span>            }</div>
+<div class="line"><a id="l02017" name="l02017"></a><span class="lineno"> 2017</span>            res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#gaaee8264d840e51460821cb6e609338ee">w25qxx_write</a>(&amp;gs_handle, addr, gs_buffer_input, 600);</div>
+<div class="line"><a id="l02018" name="l02018"></a><span class="lineno"> 2018</span>            <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l02019" name="l02019"></a><span class="lineno"> 2019</span>            {</div>
+<div class="line"><a id="l02020" name="l02020"></a><span class="lineno"> 2020</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: write failed.\n&quot;</span>);</div>
+<div class="line"><a id="l02021" name="l02021"></a><span class="lineno"> 2021</span>                (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l02022" name="l02022"></a><span class="lineno"> 2022</span>               </div>
+<div class="line"><a id="l02023" name="l02023"></a><span class="lineno"> 2023</span>                <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l02024" name="l02024"></a><span class="lineno"> 2024</span>            }</div>
+<div class="line"><a id="l02025" name="l02025"></a><span class="lineno"> 2025</span>            res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#gae7479fc9ce911a52e3c5b6f1a615b879">w25qxx_read</a>(&amp;gs_handle, addr, gs_buffer_output, 600);</div>
+<div class="line"><a id="l02026" name="l02026"></a><span class="lineno"> 2026</span>            <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l02027" name="l02027"></a><span class="lineno"> 2027</span>            {</div>
+<div class="line"><a id="l02028" name="l02028"></a><span class="lineno"> 2028</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: read failed.\n&quot;</span>);</div>
+<div class="line"><a id="l02029" name="l02029"></a><span class="lineno"> 2029</span>                (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l02030" name="l02030"></a><span class="lineno"> 2030</span>               </div>
+<div class="line"><a id="l02031" name="l02031"></a><span class="lineno"> 2031</span>                <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l02032" name="l02032"></a><span class="lineno"> 2032</span>            }</div>
+<div class="line"><a id="l02033" name="l02033"></a><span class="lineno"> 2033</span>            <span class="keywordflow">for</span> (j = 0; j &lt; 600; j++)</div>
+<div class="line"><a id="l02034" name="l02034"></a><span class="lineno"> 2034</span>            {</div>
+<div class="line"><a id="l02035" name="l02035"></a><span class="lineno"> 2035</span>                <span class="keywordflow">if</span> (gs_buffer_input[j] != gs_buffer_output[j])</div>
+<div class="line"><a id="l02036" name="l02036"></a><span class="lineno"> 2036</span>                {</div>
+<div class="line"><a id="l02037" name="l02037"></a><span class="lineno"> 2037</span>                    <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: write read check failed.\n&quot;</span>);</div>
+<div class="line"><a id="l02038" name="l02038"></a><span class="lineno"> 2038</span>                    (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l02039" name="l02039"></a><span class="lineno"> 2039</span>                    </div>
+<div class="line"><a id="l02040" name="l02040"></a><span class="lineno"> 2040</span>                    <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l02041" name="l02041"></a><span class="lineno"> 2041</span>                }</div>
+<div class="line"><a id="l02042" name="l02042"></a><span class="lineno"> 2042</span>            }</div>
+<div class="line"><a id="l02043" name="l02043"></a><span class="lineno"> 2043</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: 0x%08X/0x%08X successful.\n&quot;</span>, addr, size);</div>
+<div class="line"><a id="l02044" name="l02044"></a><span class="lineno"> 2044</span>        }</div>
+<div class="line"><a id="l02045" name="l02045"></a><span class="lineno"> 2045</span>    }</div>
+<div class="line"><a id="l02046" name="l02046"></a><span class="lineno"> 2046</span>    </div>
+<div class="line"><a id="l02047" name="l02047"></a><span class="lineno"> 2047</span>    <span class="comment">/* finish read test */</span></div>
+<div class="line"><a id="l02048" name="l02048"></a><span class="lineno"> 2048</span>    <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: finish read test.\n&quot;</span>);</div>
+<div class="line"><a id="l02049" name="l02049"></a><span class="lineno"> 2049</span>    (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l02050" name="l02050"></a><span class="lineno"> 2050</span>    </div>
+<div class="line"><a id="l02051" name="l02051"></a><span class="lineno"> 2051</span>    <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a id="l02052" name="l02052"></a><span class="lineno"> 2052</span>}</div>
+</div>
 <div class="ttc" id="adriver__w25qxx__read__test_8h_html"><div class="ttname"><a href="driver__w25qxx__read__test_8h.html">driver_w25qxx_read_test.h</a></div><div class="ttdoc">driver w25qxx read test header file</div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga1f80bbbaaa852eecfffb87737889363d"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga1f80bbbaaa852eecfffb87737889363d">w25qxx_page_program_quad_input</a></div><div class="ttdeci">uint8_t w25qxx_page_program_quad_input(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint16_t len)</div><div class="ttdoc">quad page program with quad input</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l04920">driver_w25qxx.c:4920</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga244a91b9c0c32e899ca89e1943045624"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga244a91b9c0c32e899ca89e1943045624">w25qxx_get_sfdp</a></div><div class="ttdeci">uint8_t w25qxx_get_sfdp(w25qxx_handle_t *handle, uint8_t sfdp[256])</div><div class="ttdoc">get the sfdp</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l02880">driver_w25qxx.c:2880</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga4c65debc4947bd9a61e0073105164b9c"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga4c65debc4947bd9a61e0073105164b9c">w25qxx_read_security_register</a></div><div class="ttdeci">uint8_t w25qxx_read_security_register(w25qxx_handle_t *handle, w25qxx_security_register_t num, uint8_t data[256])</div><div class="ttdoc">read the security register</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l03344">driver_w25qxx.c:3344</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga4e9c059ff78866e478e835cb27a92899"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga4e9c059ff78866e478e835cb27a92899">w25qxx_program_security_register</a></div><div class="ttdeci">uint8_t w25qxx_program_security_register(w25qxx_handle_t *handle, w25qxx_security_register_t num, uint8_t data[256])</div><div class="ttdoc">program the security register</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l03147">driver_w25qxx.c:3147</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga6b9f75f7426a54ffdb1f5a057f8188f4"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga6b9f75f7426a54ffdb1f5a057f8188f4">w25qxx_exit_qspi_mode</a></div><div class="ttdeci">uint8_t w25qxx_exit_qspi_mode(w25qxx_handle_t *handle)</div><div class="ttdoc">exit the qspi mode</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l02572">driver_w25qxx.c:2572</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga7a19230ca3916816ea8fb7421483d293"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga7a19230ca3916816ea8fb7421483d293">w25qxx_fast_read_dual_output</a></div><div class="ttdeci">uint8_t w25qxx_fast_read_dual_output(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">read with dual output in the fast mode</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l03858">driver_w25qxx.c:3858</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga88a62ec42e86db821ff3f0d3ab541dbb"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga88a62ec42e86db821ff3f0d3ab541dbb">w25qxx_octal_word_read_quad_io</a></div><div class="ttdeci">uint8_t w25qxx_octal_word_read_quad_io(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">octal word read with quad io</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l04459">driver_w25qxx.c:4459</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga9ad10781d888b32b43b9eba45d049624"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga9ad10781d888b32b43b9eba45d049624">w25qxx_set_read_parameters</a></div><div class="ttdeci">uint8_t w25qxx_set_read_parameters(w25qxx_handle_t *handle, w25qxx_qspi_read_dummy_t dummy, w25qxx_qspi_read_wrap_length_t length)</div><div class="ttdoc">set the read parameters</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l02427">driver_w25qxx.c:2427</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_gaa5ab3548707a95ded115255432224c5a"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gaa5ab3548707a95ded115255432224c5a">w25qxx_enter_qspi_mode</a></div><div class="ttdeci">uint8_t w25qxx_enter_qspi_mode(w25qxx_handle_t *handle)</div><div class="ttdoc">enter the qspi mode</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l02494">driver_w25qxx.c:2494</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_gab97a64bd3776874518f60381d921ae41"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gab97a64bd3776874518f60381d921ae41">w25qxx_fast_read_quad_io</a></div><div class="ttdeci">uint8_t w25qxx_fast_read_quad_io(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">read with quad io in the fast mode</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l04184">driver_w25qxx.c:4184</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_gac894f4650905cba10dd3a31284de6d5e"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gac894f4650905cba10dd3a31284de6d5e">w25qxx_fast_read_dual_io</a></div><div class="ttdeci">uint8_t w25qxx_fast_read_dual_io(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">read with dual io in the fast mode</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l04076">driver_w25qxx.c:4076</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_gad97d7e410dd77c49334097a0fd332660"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gad97d7e410dd77c49334097a0fd332660">w25qxx_word_read_quad_io</a></div><div class="ttdeci">uint8_t w25qxx_word_read_quad_io(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">word read with quad io</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l04350">driver_w25qxx.c:4350</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_gaf297e2c6877c64f8fd10a555f783ddaf"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gaf297e2c6877c64f8fd10a555f783ddaf">w25qxx_erase_security_register</a></div><div class="ttdeci">uint8_t w25qxx_erase_security_register(w25qxx_handle_t *handle, w25qxx_security_register_t num)</div><div class="ttdoc">erase the security register</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l02952">driver_w25qxx.c:2952</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_gaf4bfafd1f80aa0316a4b1a15183dcd50"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gaf4bfafd1f80aa0316a4b1a15183dcd50">w25qxx_fast_read_quad_output</a></div><div class="ttdeci">uint8_t w25qxx_fast_read_quad_output(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">read with quad output in the fast mode</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l03967">driver_w25qxx.c:3967</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_gga2fd3023819e1aebe089a4a72eb136da3a5b8fa1026c564fe83f3f0f0edb89d1dd"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gga2fd3023819e1aebe089a4a72eb136da3a5b8fa1026c564fe83f3f0f0edb89d1dd">W25QXX_QSPI_READ_WRAP_LENGTH_8_BYTE</a></div><div class="ttdeci">@ W25QXX_QSPI_READ_WRAP_LENGTH_8_BYTE</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00124">driver_w25qxx.h:124</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_gga6ff284154302248f00db269146545443a6423b5606e72af6479fe31a6a9883aeb"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gga6ff284154302248f00db269146545443a6423b5606e72af6479fe31a6a9883aeb">W25QXX_QSPI_READ_DUMMY_4_55MHZ</a></div><div class="ttdeci">@ W25QXX_QSPI_READ_DUMMY_4_55MHZ</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00114">driver_w25qxx.h:114</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_gga6ff284154302248f00db269146545443a78393debe12bbb3efb710e38e3c1d550"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gga6ff284154302248f00db269146545443a78393debe12bbb3efb710e38e3c1d550">W25QXX_QSPI_READ_DUMMY_6_80MHZ</a></div><div class="ttdeci">@ W25QXX_QSPI_READ_DUMMY_6_80MHZ</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00115">driver_w25qxx.h:115</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_gga6ff284154302248f00db269146545443ad73634a0f4534c3ae35d4242b2bc8f13"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gga6ff284154302248f00db269146545443ad73634a0f4534c3ae35d4242b2bc8f13">W25QXX_QSPI_READ_DUMMY_2_33MHZ</a></div><div class="ttdeci">@ W25QXX_QSPI_READ_DUMMY_2_33MHZ</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00113">driver_w25qxx.h:113</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_gga6ff284154302248f00db269146545443ade1d3511f15c7d92de8c5d8967c471c3"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gga6ff284154302248f00db269146545443ade1d3511f15c7d92de8c5d8967c471c3">W25QXX_QSPI_READ_DUMMY_8_80MHZ</a></div><div class="ttdeci">@ W25QXX_QSPI_READ_DUMMY_8_80MHZ</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00116">driver_w25qxx.h:116</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_gga81ddc7d4b9f4f124163beea19cc33c7ea3353a88090850174ca163d56e4d7089c"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gga81ddc7d4b9f4f124163beea19cc33c7ea3353a88090850174ca163d56e4d7089c">W25QXX_SECURITY_REGISTER_2</a></div><div class="ttdeci">@ W25QXX_SECURITY_REGISTER_2</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00137">driver_w25qxx.h:137</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_gga81ddc7d4b9f4f124163beea19cc33c7ea65b73162d921075bed8cb8d848948900"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gga81ddc7d4b9f4f124163beea19cc33c7ea65b73162d921075bed8cb8d848948900">W25QXX_SECURITY_REGISTER_3</a></div><div class="ttdeci">@ W25QXX_SECURITY_REGISTER_3</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00138">driver_w25qxx.h:138</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_gga81ddc7d4b9f4f124163beea19cc33c7eaaf27484a497c13915c8acb0161cf137d"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gga81ddc7d4b9f4f124163beea19cc33c7eaaf27484a497c13915c8acb0161cf137d">W25QXX_SECURITY_REGISTER_1</a></div><div class="ttdeci">@ W25QXX_SECURITY_REGISTER_1</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00136">driver_w25qxx.h:136</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga0862833b36831f92684980b2e21f2e39"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga0862833b36831f92684980b2e21f2e39">w25qxx_chip_erase</a></div><div class="ttdeci">uint8_t w25qxx_chip_erase(w25qxx_handle_t *handle)</div><div class="ttdoc">erase the chip</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l01459">driver_w25qxx.c:1459</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga1e9ebf198137d23558dbf6470213c472"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga1e9ebf198137d23558dbf6470213c472">w25qxx_only_spi_read</a></div><div class="ttdeci">uint8_t w25qxx_only_spi_read(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">read only in the spi interface</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l03465">driver_w25qxx.c:3465</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga39c8fb382e8c3e4d57232dfa79af781c"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga39c8fb382e8c3e4d57232dfa79af781c">w25qxx_block_erase_32k</a></div><div class="ttdeci">uint8_t w25qxx_block_erase_32k(w25qxx_handle_t *handle, uint32_t addr)</div><div class="ttdoc">erase the 32k block</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l05419">driver_w25qxx.c:5419</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga50a62003d566402d46ada2f272c41eb5"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga50a62003d566402d46ada2f272c41eb5">w25qxx_set_interface</a></div><div class="ttdeci">uint8_t w25qxx_set_interface(w25qxx_handle_t *handle, w25qxx_interface_t interface)</div><div class="ttdoc">set the chip interface</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l00259">driver_w25qxx.c:259</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga6280e7e4ab26306436e2c210617a28b3"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga6280e7e4ab26306436e2c210617a28b3">w25qxx_page_program</a></div><div class="ttdeci">uint8_t w25qxx_page_program(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint16_t len)</div><div class="ttdoc">page program</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l04569">driver_w25qxx.c:4569</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga665139209b0abc386474a78d89cce6f2"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga665139209b0abc386474a78d89cce6f2">w25qxx_set_dual_quad_spi</a></div><div class="ttdeci">uint8_t w25qxx_set_dual_quad_spi(w25qxx_handle_t *handle, w25qxx_bool_t enable)</div><div class="ttdoc">enable or disable the dual quad spi</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l00175">driver_w25qxx.c:175</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga6cb4e5164464df549201dd96cb7a58b1"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga6cb4e5164464df549201dd96cb7a58b1">w25qxx_type_t</a></div><div class="ttdeci">w25qxx_type_t</div><div class="ttdoc">w25qxx type enumeration definition</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00062">driver_w25qxx.h:63</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga8e7a163b3d255b8c7fc035d0d60f2491"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga8e7a163b3d255b8c7fc035d0d60f2491">w25qxx_init</a></div><div class="ttdeci">uint8_t w25qxx_init(w25qxx_handle_t *handle)</div><div class="ttdoc">initialize the chip</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l06819">driver_w25qxx.c:6819</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga996e2d3009432e7f8c1a5175c4438a57"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga996e2d3009432e7f8c1a5175c4438a57">w25qxx_info</a></div><div class="ttdeci">uint8_t w25qxx_info(w25qxx_info_t *info)</div><div class="ttdoc">get chip's information</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l08566">driver_w25qxx.c:8566</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga9a03c51b4c84655350c15fbfce0a6b40"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga9a03c51b4c84655350c15fbfce0a6b40">w25qxx_sector_erase_4k</a></div><div class="ttdeci">uint8_t w25qxx_sector_erase_4k(w25qxx_handle_t *handle, uint32_t addr)</div><div class="ttdoc">erase the 4k sector</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l05080">driver_w25qxx.c:5080</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_gaa293c3a46c4010a3af597a83e646de0d"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a></div><div class="ttdeci">uint8_t w25qxx_deinit(w25qxx_handle_t *handle)</div><div class="ttdoc">close the chip</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l07195">driver_w25qxx.c:7195</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_gaa57189cd4170b73f8b1300ca15e27de6"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gaa57189cd4170b73f8b1300ca15e27de6">w25qxx_set_type</a></div><div class="ttdeci">uint8_t w25qxx_set_type(w25qxx_handle_t *handle, w25qxx_type_t type)</div><div class="ttdoc">set the chip type</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l00217">driver_w25qxx.c:217</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_gaaee8264d840e51460821cb6e609338ee"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gaaee8264d840e51460821cb6e609338ee">w25qxx_write</a></div><div class="ttdeci">uint8_t w25qxx_write(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">write data</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l08415">driver_w25qxx.c:8415</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_gac345ba10af5ad355578fa97697487123"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gac345ba10af5ad355578fa97697487123">w25qxx_fast_read</a></div><div class="ttdeci">uint8_t w25qxx_fast_read(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">read in the fast mode</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l03634">driver_w25qxx.c:3634</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_gacbf327a42336baf10713a1796ff4f2fe"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gacbf327a42336baf10713a1796ff4f2fe">w25qxx_interface_t</a></div><div class="ttdeci">w25qxx_interface_t</div><div class="ttdoc">w25qxx interface enumeration definition</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00075">driver_w25qxx.h:76</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_gad0e125eff304ce66fb3956d2c8c80656"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gad0e125eff304ce66fb3956d2c8c80656">w25qxx_set_address_mode</a></div><div class="ttdeci">uint8_t w25qxx_set_address_mode(w25qxx_handle_t *handle, w25qxx_address_mode_t mode)</div><div class="ttdoc">set the chip address mode</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l00304">driver_w25qxx.c:304</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_gae7479fc9ce911a52e3c5b6f1a615b879"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gae7479fc9ce911a52e3c5b6f1a615b879">w25qxx_read</a></div><div class="ttdeci">uint8_t w25qxx_read(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">read data</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l07289">driver_w25qxx.c:7289</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_gaf53bc5f6073482b9b74efd417ec7ac83"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gaf53bc5f6073482b9b74efd417ec7ac83">w25qxx_block_erase_64k</a></div><div class="ttdeci">uint8_t w25qxx_block_erase_64k(w25qxx_handle_t *handle, uint32_t addr)</div><div class="ttdoc">erase the 64k block</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l05758">driver_w25qxx.c:5758</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_gafb2690946f5baf4be6f3a63dde5491fb"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gafb2690946f5baf4be6f3a63dde5491fb">w25qxx_bool_t</a></div><div class="ttdeci">w25qxx_bool_t</div><div class="ttdoc">w25qxx bool enumeration definition</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00084">driver_w25qxx.h:85</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_gga6cb4e5164464df549201dd96cb7a58b1a1ad4f72437de5f26cb7b212d4d91e7c2"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a1ad4f72437de5f26cb7b212d4d91e7c2">W25Q80</a></div><div class="ttdeci">@ W25Q80</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00064">driver_w25qxx.h:64</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a></div><div class="ttdeci">@ W25Q256</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00069">driver_w25qxx.h:69</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a></div><div class="ttdeci">@ W25QXX_ADDRESS_MODE_3_BYTE</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00095">driver_w25qxx.h:95</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a></div><div class="ttdeci">@ W25QXX_ADDRESS_MODE_4_BYTE</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00096">driver_w25qxx.h:96</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_ggacbf327a42336baf10713a1796ff4f2fea895dcb5c91da89fad1c12161ffd2d5d4"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2fea895dcb5c91da89fad1c12161ffd2d5d4">W25QXX_INTERFACE_QSPI</a></div><div class="ttdeci">@ W25QXX_INTERFACE_QSPI</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00078">driver_w25qxx.h:78</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a></div><div class="ttdeci">@ W25QXX_INTERFACE_SPI</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00077">driver_w25qxx.h:77</a></div></div>
-<div class="ttc" id="agroup__w25qxx__interface__driver_html_ga091f3607fcdd47f9e5f94cf1397bd46a"><div class="ttname"><a href="group__w25qxx__interface__driver.html#ga091f3607fcdd47f9e5f94cf1397bd46a">w25qxx_interface_spi_qspi_deinit</a></div><div class="ttdeci">uint8_t w25qxx_interface_spi_qspi_deinit(void)</div><div class="ttdoc">interface spi qspi bus deinit</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__interface__template_8c_source.html#l00058">driver_w25qxx_interface_template.c:58</a></div></div>
-<div class="ttc" id="agroup__w25qxx__interface__driver_html_ga2bdc17a556f1c801a38656331f3bb7b6"><div class="ttname"><a href="group__w25qxx__interface__driver.html#ga2bdc17a556f1c801a38656331f3bb7b6">w25qxx_interface_spi_qspi_init</a></div><div class="ttdeci">uint8_t w25qxx_interface_spi_qspi_init(void)</div><div class="ttdoc">interface spi qspi bus init</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__interface__template_8c_source.html#l00046">driver_w25qxx_interface_template.c:46</a></div></div>
-<div class="ttc" id="agroup__w25qxx__interface__driver_html_ga38e79039b913154c9dd1036ff52bb420"><div class="ttname"><a href="group__w25qxx__interface__driver.html#ga38e79039b913154c9dd1036ff52bb420">w25qxx_interface_delay_us</a></div><div class="ttdeci">void w25qxx_interface_delay_us(uint32_t us)</div><div class="ttdoc">interface delay us</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__interface__template_8c_source.html#l00108">driver_w25qxx_interface_template.c:108</a></div></div>
-<div class="ttc" id="agroup__w25qxx__interface__driver_html_ga3d76ea1f431978f6b55edfd0628c94cd"><div class="ttname"><a href="group__w25qxx__interface__driver.html#ga3d76ea1f431978f6b55edfd0628c94cd">w25qxx_interface_spi_qspi_write_read</a></div><div class="ttdeci">uint8_t w25qxx_interface_spi_qspi_write_read(uint8_t instruction, uint8_t instruction_line, uint32_t address, uint8_t address_line, uint8_t address_len, uint32_t alternate, uint8_t alternate_line, uint8_t alternate_len, uint8_t dummy, uint8_t *in_buf, uint32_t in_len, uint8_t *out_buf, uint32_t out_len, uint8_t data_line)</div><div class="ttdoc">interface spi qspi bus write read</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__interface__template_8c_source.html#l00084">driver_w25qxx_interface_template.c:84</a></div></div>
-<div class="ttc" id="agroup__w25qxx__interface__driver_html_ga5325474fa17f6833744e631613fd2a0e"><div class="ttname"><a href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a></div><div class="ttdeci">void w25qxx_interface_debug_print(const char *const fmt,...)</div><div class="ttdoc">interface print format data</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__interface__template_8c_source.html#l00118">driver_w25qxx_interface_template.c:118</a></div></div>
-<div class="ttc" id="agroup__w25qxx__interface__driver_html_ga964fa232abf98737cb98458eebfff82c"><div class="ttname"><a href="group__w25qxx__interface__driver.html#ga964fa232abf98737cb98458eebfff82c">w25qxx_interface_delay_ms</a></div><div class="ttdeci">void w25qxx_interface_delay_ms(uint32_t ms)</div><div class="ttdoc">interface delay ms</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__interface__template_8c_source.html#l00098">driver_w25qxx_interface_template.c:98</a></div></div>
-<div class="ttc" id="agroup__w25qxx__link__driver_html_ga7555618f13d2de0003ae6d9483085180"><div class="ttname"><a href="group__w25qxx__link__driver.html#ga7555618f13d2de0003ae6d9483085180">DRIVER_W25QXX_LINK_DELAY_MS</a></div><div class="ttdeci">#define DRIVER_W25QXX_LINK_DELAY_MS(HANDLE, FUC)</div><div class="ttdoc">link delay_ms function</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00297">driver_w25qxx.h:297</a></div></div>
-<div class="ttc" id="agroup__w25qxx__link__driver_html_ga995378489f95bc6bbddbe710557e3384"><div class="ttname"><a href="group__w25qxx__link__driver.html#ga995378489f95bc6bbddbe710557e3384">DRIVER_W25QXX_LINK_INIT</a></div><div class="ttdeci">#define DRIVER_W25QXX_LINK_INIT(HANDLE, STRUCTURE)</div><div class="ttdoc">initialize w25qxx_handle_t structure</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00265">driver_w25qxx.h:265</a></div></div>
-<div class="ttc" id="agroup__w25qxx__link__driver_html_gab2587de93f1dba5664eede8cd787a88a"><div class="ttname"><a href="group__w25qxx__link__driver.html#gab2587de93f1dba5664eede8cd787a88a">DRIVER_W25QXX_LINK_SPI_QSPI_INIT</a></div><div class="ttdeci">#define DRIVER_W25QXX_LINK_SPI_QSPI_INIT(HANDLE, FUC)</div><div class="ttdoc">link spi_qspi_init function</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00273">driver_w25qxx.h:273</a></div></div>
-<div class="ttc" id="agroup__w25qxx__link__driver_html_gab8d49ef9dca942fe5f37c30dcd7e22a6"><div class="ttname"><a href="group__w25qxx__link__driver.html#gab8d49ef9dca942fe5f37c30dcd7e22a6">DRIVER_W25QXX_LINK_DEBUG_PRINT</a></div><div class="ttdeci">#define DRIVER_W25QXX_LINK_DEBUG_PRINT(HANDLE, FUC)</div><div class="ttdoc">link debug_print function</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00313">driver_w25qxx.h:313</a></div></div>
-<div class="ttc" id="agroup__w25qxx__link__driver_html_gac8f0ca0a725790bace3241d1d616e3d1"><div class="ttname"><a href="group__w25qxx__link__driver.html#gac8f0ca0a725790bace3241d1d616e3d1">DRIVER_W25QXX_LINK_SPI_QSPI_WRITE_READ</a></div><div class="ttdeci">#define DRIVER_W25QXX_LINK_SPI_QSPI_WRITE_READ(HANDLE, FUC)</div><div class="ttdoc">link spi_qspi_write_read function</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00289">driver_w25qxx.h:289</a></div></div>
-<div class="ttc" id="agroup__w25qxx__link__driver_html_gaec8b55e83b46907be1dd9e7c50be550d"><div class="ttname"><a href="group__w25qxx__link__driver.html#gaec8b55e83b46907be1dd9e7c50be550d">DRIVER_W25QXX_LINK_SPI_QSPI_DEINIT</a></div><div class="ttdeci">#define DRIVER_W25QXX_LINK_SPI_QSPI_DEINIT(HANDLE, FUC)</div><div class="ttdoc">link spi_qspi_deinit function</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00281">driver_w25qxx.h:281</a></div></div>
-<div class="ttc" id="agroup__w25qxx__link__driver_html_gafc81bf850c80dfa316f0c6ab40be6e67"><div class="ttname"><a href="group__w25qxx__link__driver.html#gafc81bf850c80dfa316f0c6ab40be6e67">DRIVER_W25QXX_LINK_DELAY_US</a></div><div class="ttdeci">#define DRIVER_W25QXX_LINK_DELAY_US(HANDLE, FUC)</div><div class="ttdoc">link delay_us function</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00305">driver_w25qxx.h:305</a></div></div>
-<div class="ttc" id="agroup__w25qxx__test__driver_html_ga4ce42ca34d33cd64cb823040780999af"><div class="ttname"><a href="group__w25qxx__test__driver.html#ga4ce42ca34d33cd64cb823040780999af">w25qxx_read_test</a></div><div class="ttdeci">uint8_t w25qxx_read_test(w25qxx_type_t type, w25qxx_interface_t interface, w25qxx_bool_t dual_quad_spi_enable)</div><div class="ttdoc">read test</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__read__test_8c_source.html#l00055">driver_w25qxx_read_test.c:55</a></div></div>
-<div class="ttc" id="astructw25qxx__handle__s_html"><div class="ttname"><a href="structw25qxx__handle__s.html">w25qxx_handle_s</a></div><div class="ttdoc">w25qxx handle structure definition</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00209">driver_w25qxx.h:210</a></div></div>
-<div class="ttc" id="astructw25qxx__info__s_html"><div class="ttname"><a href="structw25qxx__info__s.html">w25qxx_info_s</a></div><div class="ttdoc">w25qxx information structure definition</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00235">driver_w25qxx.h:236</a></div></div>
-<div class="ttc" id="astructw25qxx__info__s_html_a3366a5dce9b829e03c3d321c2b4df3f6"><div class="ttname"><a href="structw25qxx__info__s.html#a3366a5dce9b829e03c3d321c2b4df3f6">w25qxx_info_s::temperature_max</a></div><div class="ttdeci">float temperature_max</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00244">driver_w25qxx.h:244</a></div></div>
-<div class="ttc" id="astructw25qxx__info__s_html_a3d2b12bcac7a85ea8646bff9debe8660"><div class="ttname"><a href="structw25qxx__info__s.html#a3d2b12bcac7a85ea8646bff9debe8660">w25qxx_info_s::supply_voltage_max_v</a></div><div class="ttdeci">float supply_voltage_max_v</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00241">driver_w25qxx.h:241</a></div></div>
-<div class="ttc" id="astructw25qxx__info__s_html_a41b0bd442708b70d252c50b92c75265a"><div class="ttname"><a href="structw25qxx__info__s.html#a41b0bd442708b70d252c50b92c75265a">w25qxx_info_s::driver_version</a></div><div class="ttdeci">uint32_t driver_version</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00245">driver_w25qxx.h:245</a></div></div>
-<div class="ttc" id="astructw25qxx__info__s_html_a5778305279cae46b2ecf862e97f73600"><div class="ttname"><a href="structw25qxx__info__s.html#a5778305279cae46b2ecf862e97f73600">w25qxx_info_s::interface</a></div><div class="ttdeci">char interface[16]</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00239">driver_w25qxx.h:239</a></div></div>
-<div class="ttc" id="astructw25qxx__info__s_html_a8f9dbe66ac0b66ebae0a36fcb4ba368e"><div class="ttname"><a href="structw25qxx__info__s.html#a8f9dbe66ac0b66ebae0a36fcb4ba368e">w25qxx_info_s::temperature_min</a></div><div class="ttdeci">float temperature_min</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00243">driver_w25qxx.h:243</a></div></div>
-<div class="ttc" id="astructw25qxx__info__s_html_a9db82802561bf22d799b03a345f1d1dc"><div class="ttname"><a href="structw25qxx__info__s.html#a9db82802561bf22d799b03a345f1d1dc">w25qxx_info_s::max_current_ma</a></div><div class="ttdeci">float max_current_ma</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00242">driver_w25qxx.h:242</a></div></div>
-<div class="ttc" id="astructw25qxx__info__s_html_ad25285dbf810c90f8eaf3fcef6f2b2ea"><div class="ttname"><a href="structw25qxx__info__s.html#ad25285dbf810c90f8eaf3fcef6f2b2ea">w25qxx_info_s::manufacturer_name</a></div><div class="ttdeci">char manufacturer_name[32]</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00238">driver_w25qxx.h:238</a></div></div>
-<div class="ttc" id="astructw25qxx__info__s_html_ad8bde6ddadaf43d951e62f3befb9d35a"><div class="ttname"><a href="structw25qxx__info__s.html#ad8bde6ddadaf43d951e62f3befb9d35a">w25qxx_info_s::supply_voltage_min_v</a></div><div class="ttdeci">float supply_voltage_min_v</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00240">driver_w25qxx.h:240</a></div></div>
-<div class="ttc" id="astructw25qxx__info__s_html_af890958c72bd715cc6454a10dc846ae6"><div class="ttname"><a href="structw25qxx__info__s.html#af890958c72bd715cc6454a10dc846ae6">w25qxx_info_s::chip_name</a></div><div class="ttdeci">char chip_name[32]</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00237">driver_w25qxx.h:237</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga1f80bbbaaa852eecfffb87737889363d"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga1f80bbbaaa852eecfffb87737889363d">w25qxx_page_program_quad_input</a></div><div class="ttdeci">uint8_t w25qxx_page_program_quad_input(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint16_t len)</div><div class="ttdoc">quad page program with quad input</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l04920">driver_w25qxx.c:4920</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga244a91b9c0c32e899ca89e1943045624"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga244a91b9c0c32e899ca89e1943045624">w25qxx_get_sfdp</a></div><div class="ttdeci">uint8_t w25qxx_get_sfdp(w25qxx_handle_t *handle, uint8_t sfdp[256])</div><div class="ttdoc">get the sfdp</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l02880">driver_w25qxx.c:2880</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga4c65debc4947bd9a61e0073105164b9c"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga4c65debc4947bd9a61e0073105164b9c">w25qxx_read_security_register</a></div><div class="ttdeci">uint8_t w25qxx_read_security_register(w25qxx_handle_t *handle, w25qxx_security_register_t num, uint8_t data[256])</div><div class="ttdoc">read the security register</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l03344">driver_w25qxx.c:3344</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga4e9c059ff78866e478e835cb27a92899"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga4e9c059ff78866e478e835cb27a92899">w25qxx_program_security_register</a></div><div class="ttdeci">uint8_t w25qxx_program_security_register(w25qxx_handle_t *handle, w25qxx_security_register_t num, uint8_t data[256])</div><div class="ttdoc">program the security register</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l03147">driver_w25qxx.c:3147</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga6b9f75f7426a54ffdb1f5a057f8188f4"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga6b9f75f7426a54ffdb1f5a057f8188f4">w25qxx_exit_qspi_mode</a></div><div class="ttdeci">uint8_t w25qxx_exit_qspi_mode(w25qxx_handle_t *handle)</div><div class="ttdoc">exit the qspi mode</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l02572">driver_w25qxx.c:2572</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga7a19230ca3916816ea8fb7421483d293"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga7a19230ca3916816ea8fb7421483d293">w25qxx_fast_read_dual_output</a></div><div class="ttdeci">uint8_t w25qxx_fast_read_dual_output(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">read with dual output in the fast mode</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l03858">driver_w25qxx.c:3858</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga88a62ec42e86db821ff3f0d3ab541dbb"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga88a62ec42e86db821ff3f0d3ab541dbb">w25qxx_octal_word_read_quad_io</a></div><div class="ttdeci">uint8_t w25qxx_octal_word_read_quad_io(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">octal word read with quad io</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l04459">driver_w25qxx.c:4459</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga9ad10781d888b32b43b9eba45d049624"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga9ad10781d888b32b43b9eba45d049624">w25qxx_set_read_parameters</a></div><div class="ttdeci">uint8_t w25qxx_set_read_parameters(w25qxx_handle_t *handle, w25qxx_qspi_read_dummy_t dummy, w25qxx_qspi_read_wrap_length_t length)</div><div class="ttdoc">set the read parameters</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l02427">driver_w25qxx.c:2427</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_gaa5ab3548707a95ded115255432224c5a"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gaa5ab3548707a95ded115255432224c5a">w25qxx_enter_qspi_mode</a></div><div class="ttdeci">uint8_t w25qxx_enter_qspi_mode(w25qxx_handle_t *handle)</div><div class="ttdoc">enter the qspi mode</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l02494">driver_w25qxx.c:2494</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_gab97a64bd3776874518f60381d921ae41"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gab97a64bd3776874518f60381d921ae41">w25qxx_fast_read_quad_io</a></div><div class="ttdeci">uint8_t w25qxx_fast_read_quad_io(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">read with quad io in the fast mode</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l04184">driver_w25qxx.c:4184</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_gac894f4650905cba10dd3a31284de6d5e"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gac894f4650905cba10dd3a31284de6d5e">w25qxx_fast_read_dual_io</a></div><div class="ttdeci">uint8_t w25qxx_fast_read_dual_io(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">read with dual io in the fast mode</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l04076">driver_w25qxx.c:4076</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_gad97d7e410dd77c49334097a0fd332660"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gad97d7e410dd77c49334097a0fd332660">w25qxx_word_read_quad_io</a></div><div class="ttdeci">uint8_t w25qxx_word_read_quad_io(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">word read with quad io</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l04350">driver_w25qxx.c:4350</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_gaf297e2c6877c64f8fd10a555f783ddaf"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gaf297e2c6877c64f8fd10a555f783ddaf">w25qxx_erase_security_register</a></div><div class="ttdeci">uint8_t w25qxx_erase_security_register(w25qxx_handle_t *handle, w25qxx_security_register_t num)</div><div class="ttdoc">erase the security register</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l02952">driver_w25qxx.c:2952</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_gaf4bfafd1f80aa0316a4b1a15183dcd50"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gaf4bfafd1f80aa0316a4b1a15183dcd50">w25qxx_fast_read_quad_output</a></div><div class="ttdeci">uint8_t w25qxx_fast_read_quad_output(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">read with quad output in the fast mode</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l03967">driver_w25qxx.c:3967</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_gga2fd3023819e1aebe089a4a72eb136da3a5b8fa1026c564fe83f3f0f0edb89d1dd"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gga2fd3023819e1aebe089a4a72eb136da3a5b8fa1026c564fe83f3f0f0edb89d1dd">W25QXX_QSPI_READ_WRAP_LENGTH_8_BYTE</a></div><div class="ttdeci">@ W25QXX_QSPI_READ_WRAP_LENGTH_8_BYTE</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00124">driver_w25qxx.h:124</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_gga6ff284154302248f00db269146545443a6423b5606e72af6479fe31a6a9883aeb"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gga6ff284154302248f00db269146545443a6423b5606e72af6479fe31a6a9883aeb">W25QXX_QSPI_READ_DUMMY_4_55MHZ</a></div><div class="ttdeci">@ W25QXX_QSPI_READ_DUMMY_4_55MHZ</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00114">driver_w25qxx.h:114</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_gga6ff284154302248f00db269146545443a78393debe12bbb3efb710e38e3c1d550"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gga6ff284154302248f00db269146545443a78393debe12bbb3efb710e38e3c1d550">W25QXX_QSPI_READ_DUMMY_6_80MHZ</a></div><div class="ttdeci">@ W25QXX_QSPI_READ_DUMMY_6_80MHZ</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00115">driver_w25qxx.h:115</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_gga6ff284154302248f00db269146545443ad73634a0f4534c3ae35d4242b2bc8f13"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gga6ff284154302248f00db269146545443ad73634a0f4534c3ae35d4242b2bc8f13">W25QXX_QSPI_READ_DUMMY_2_33MHZ</a></div><div class="ttdeci">@ W25QXX_QSPI_READ_DUMMY_2_33MHZ</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00113">driver_w25qxx.h:113</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_gga6ff284154302248f00db269146545443ade1d3511f15c7d92de8c5d8967c471c3"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gga6ff284154302248f00db269146545443ade1d3511f15c7d92de8c5d8967c471c3">W25QXX_QSPI_READ_DUMMY_8_80MHZ</a></div><div class="ttdeci">@ W25QXX_QSPI_READ_DUMMY_8_80MHZ</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00116">driver_w25qxx.h:116</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_gga81ddc7d4b9f4f124163beea19cc33c7ea3353a88090850174ca163d56e4d7089c"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gga81ddc7d4b9f4f124163beea19cc33c7ea3353a88090850174ca163d56e4d7089c">W25QXX_SECURITY_REGISTER_2</a></div><div class="ttdeci">@ W25QXX_SECURITY_REGISTER_2</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00137">driver_w25qxx.h:137</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_gga81ddc7d4b9f4f124163beea19cc33c7ea65b73162d921075bed8cb8d848948900"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gga81ddc7d4b9f4f124163beea19cc33c7ea65b73162d921075bed8cb8d848948900">W25QXX_SECURITY_REGISTER_3</a></div><div class="ttdeci">@ W25QXX_SECURITY_REGISTER_3</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00138">driver_w25qxx.h:138</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_gga81ddc7d4b9f4f124163beea19cc33c7eaaf27484a497c13915c8acb0161cf137d"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gga81ddc7d4b9f4f124163beea19cc33c7eaaf27484a497c13915c8acb0161cf137d">W25QXX_SECURITY_REGISTER_1</a></div><div class="ttdeci">@ W25QXX_SECURITY_REGISTER_1</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00136">driver_w25qxx.h:136</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga0862833b36831f92684980b2e21f2e39"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga0862833b36831f92684980b2e21f2e39">w25qxx_chip_erase</a></div><div class="ttdeci">uint8_t w25qxx_chip_erase(w25qxx_handle_t *handle)</div><div class="ttdoc">erase the chip</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l01459">driver_w25qxx.c:1459</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga1e9ebf198137d23558dbf6470213c472"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga1e9ebf198137d23558dbf6470213c472">w25qxx_only_spi_read</a></div><div class="ttdeci">uint8_t w25qxx_only_spi_read(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">read only in the spi interface</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l03465">driver_w25qxx.c:3465</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga39c8fb382e8c3e4d57232dfa79af781c"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga39c8fb382e8c3e4d57232dfa79af781c">w25qxx_block_erase_32k</a></div><div class="ttdeci">uint8_t w25qxx_block_erase_32k(w25qxx_handle_t *handle, uint32_t addr)</div><div class="ttdoc">erase the 32k block</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l05419">driver_w25qxx.c:5419</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga50a62003d566402d46ada2f272c41eb5"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga50a62003d566402d46ada2f272c41eb5">w25qxx_set_interface</a></div><div class="ttdeci">uint8_t w25qxx_set_interface(w25qxx_handle_t *handle, w25qxx_interface_t interface)</div><div class="ttdoc">set the chip interface</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l00259">driver_w25qxx.c:259</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga6280e7e4ab26306436e2c210617a28b3"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga6280e7e4ab26306436e2c210617a28b3">w25qxx_page_program</a></div><div class="ttdeci">uint8_t w25qxx_page_program(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint16_t len)</div><div class="ttdoc">page program</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l04569">driver_w25qxx.c:4569</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga665139209b0abc386474a78d89cce6f2"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga665139209b0abc386474a78d89cce6f2">w25qxx_set_dual_quad_spi</a></div><div class="ttdeci">uint8_t w25qxx_set_dual_quad_spi(w25qxx_handle_t *handle, w25qxx_bool_t enable)</div><div class="ttdoc">enable or disable the dual quad spi</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l00175">driver_w25qxx.c:175</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga6cb4e5164464df549201dd96cb7a58b1"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga6cb4e5164464df549201dd96cb7a58b1">w25qxx_type_t</a></div><div class="ttdeci">w25qxx_type_t</div><div class="ttdoc">w25qxx type enumeration definition</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00062">driver_w25qxx.h:63</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga8e7a163b3d255b8c7fc035d0d60f2491"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga8e7a163b3d255b8c7fc035d0d60f2491">w25qxx_init</a></div><div class="ttdeci">uint8_t w25qxx_init(w25qxx_handle_t *handle)</div><div class="ttdoc">initialize the chip</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l06819">driver_w25qxx.c:6819</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga996e2d3009432e7f8c1a5175c4438a57"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga996e2d3009432e7f8c1a5175c4438a57">w25qxx_info</a></div><div class="ttdeci">uint8_t w25qxx_info(w25qxx_info_t *info)</div><div class="ttdoc">get chip's information</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l08566">driver_w25qxx.c:8566</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga9a03c51b4c84655350c15fbfce0a6b40"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga9a03c51b4c84655350c15fbfce0a6b40">w25qxx_sector_erase_4k</a></div><div class="ttdeci">uint8_t w25qxx_sector_erase_4k(w25qxx_handle_t *handle, uint32_t addr)</div><div class="ttdoc">erase the 4k sector</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l05080">driver_w25qxx.c:5080</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_gaa293c3a46c4010a3af597a83e646de0d"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a></div><div class="ttdeci">uint8_t w25qxx_deinit(w25qxx_handle_t *handle)</div><div class="ttdoc">close the chip</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l07195">driver_w25qxx.c:7195</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_gaa57189cd4170b73f8b1300ca15e27de6"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gaa57189cd4170b73f8b1300ca15e27de6">w25qxx_set_type</a></div><div class="ttdeci">uint8_t w25qxx_set_type(w25qxx_handle_t *handle, w25qxx_type_t type)</div><div class="ttdoc">set the chip type</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l00217">driver_w25qxx.c:217</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_gaaee8264d840e51460821cb6e609338ee"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gaaee8264d840e51460821cb6e609338ee">w25qxx_write</a></div><div class="ttdeci">uint8_t w25qxx_write(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">write data</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l08415">driver_w25qxx.c:8415</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_gac345ba10af5ad355578fa97697487123"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gac345ba10af5ad355578fa97697487123">w25qxx_fast_read</a></div><div class="ttdeci">uint8_t w25qxx_fast_read(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">read in the fast mode</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l03634">driver_w25qxx.c:3634</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_gacbf327a42336baf10713a1796ff4f2fe"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gacbf327a42336baf10713a1796ff4f2fe">w25qxx_interface_t</a></div><div class="ttdeci">w25qxx_interface_t</div><div class="ttdoc">w25qxx interface enumeration definition</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00075">driver_w25qxx.h:76</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_gad0e125eff304ce66fb3956d2c8c80656"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gad0e125eff304ce66fb3956d2c8c80656">w25qxx_set_address_mode</a></div><div class="ttdeci">uint8_t w25qxx_set_address_mode(w25qxx_handle_t *handle, w25qxx_address_mode_t mode)</div><div class="ttdoc">set the chip address mode</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l00304">driver_w25qxx.c:304</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_gae7479fc9ce911a52e3c5b6f1a615b879"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gae7479fc9ce911a52e3c5b6f1a615b879">w25qxx_read</a></div><div class="ttdeci">uint8_t w25qxx_read(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</div><div class="ttdoc">read data</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l07289">driver_w25qxx.c:7289</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_gaf53bc5f6073482b9b74efd417ec7ac83"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gaf53bc5f6073482b9b74efd417ec7ac83">w25qxx_block_erase_64k</a></div><div class="ttdeci">uint8_t w25qxx_block_erase_64k(w25qxx_handle_t *handle, uint32_t addr)</div><div class="ttdoc">erase the 64k block</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l05758">driver_w25qxx.c:5758</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_gafb2690946f5baf4be6f3a63dde5491fb"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gafb2690946f5baf4be6f3a63dde5491fb">w25qxx_bool_t</a></div><div class="ttdeci">w25qxx_bool_t</div><div class="ttdoc">w25qxx bool enumeration definition</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00084">driver_w25qxx.h:85</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_gga6cb4e5164464df549201dd96cb7a58b1a1ad4f72437de5f26cb7b212d4d91e7c2"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a1ad4f72437de5f26cb7b212d4d91e7c2">W25Q80</a></div><div class="ttdeci">@ W25Q80</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00064">driver_w25qxx.h:64</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a></div><div class="ttdeci">@ W25Q256</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00069">driver_w25qxx.h:69</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a></div><div class="ttdeci">@ W25QXX_ADDRESS_MODE_3_BYTE</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00095">driver_w25qxx.h:95</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a></div><div class="ttdeci">@ W25QXX_ADDRESS_MODE_4_BYTE</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00096">driver_w25qxx.h:96</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_ggacbf327a42336baf10713a1796ff4f2fea895dcb5c91da89fad1c12161ffd2d5d4"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2fea895dcb5c91da89fad1c12161ffd2d5d4">W25QXX_INTERFACE_QSPI</a></div><div class="ttdeci">@ W25QXX_INTERFACE_QSPI</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00078">driver_w25qxx.h:78</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a></div><div class="ttdeci">@ W25QXX_INTERFACE_SPI</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00077">driver_w25qxx.h:77</a></div></div>
+<div class="ttc" id="agroup__w25qxx__interface__driver_html_ga091f3607fcdd47f9e5f94cf1397bd46a"><div class="ttname"><a href="group__w25qxx__interface__driver.html#ga091f3607fcdd47f9e5f94cf1397bd46a">w25qxx_interface_spi_qspi_deinit</a></div><div class="ttdeci">uint8_t w25qxx_interface_spi_qspi_deinit(void)</div><div class="ttdoc">interface spi qspi bus deinit</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__interface__template_8c_source.html#l00058">driver_w25qxx_interface_template.c:58</a></div></div>
+<div class="ttc" id="agroup__w25qxx__interface__driver_html_ga2bdc17a556f1c801a38656331f3bb7b6"><div class="ttname"><a href="group__w25qxx__interface__driver.html#ga2bdc17a556f1c801a38656331f3bb7b6">w25qxx_interface_spi_qspi_init</a></div><div class="ttdeci">uint8_t w25qxx_interface_spi_qspi_init(void)</div><div class="ttdoc">interface spi qspi bus init</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__interface__template_8c_source.html#l00046">driver_w25qxx_interface_template.c:46</a></div></div>
+<div class="ttc" id="agroup__w25qxx__interface__driver_html_ga38e79039b913154c9dd1036ff52bb420"><div class="ttname"><a href="group__w25qxx__interface__driver.html#ga38e79039b913154c9dd1036ff52bb420">w25qxx_interface_delay_us</a></div><div class="ttdeci">void w25qxx_interface_delay_us(uint32_t us)</div><div class="ttdoc">interface delay us</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__interface__template_8c_source.html#l00108">driver_w25qxx_interface_template.c:108</a></div></div>
+<div class="ttc" id="agroup__w25qxx__interface__driver_html_ga3d76ea1f431978f6b55edfd0628c94cd"><div class="ttname"><a href="group__w25qxx__interface__driver.html#ga3d76ea1f431978f6b55edfd0628c94cd">w25qxx_interface_spi_qspi_write_read</a></div><div class="ttdeci">uint8_t w25qxx_interface_spi_qspi_write_read(uint8_t instruction, uint8_t instruction_line, uint32_t address, uint8_t address_line, uint8_t address_len, uint32_t alternate, uint8_t alternate_line, uint8_t alternate_len, uint8_t dummy, uint8_t *in_buf, uint32_t in_len, uint8_t *out_buf, uint32_t out_len, uint8_t data_line)</div><div class="ttdoc">interface spi qspi bus write read</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__interface__template_8c_source.html#l00084">driver_w25qxx_interface_template.c:84</a></div></div>
+<div class="ttc" id="agroup__w25qxx__interface__driver_html_ga5325474fa17f6833744e631613fd2a0e"><div class="ttname"><a href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a></div><div class="ttdeci">void w25qxx_interface_debug_print(const char *const fmt,...)</div><div class="ttdoc">interface print format data</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__interface__template_8c_source.html#l00118">driver_w25qxx_interface_template.c:118</a></div></div>
+<div class="ttc" id="agroup__w25qxx__interface__driver_html_ga964fa232abf98737cb98458eebfff82c"><div class="ttname"><a href="group__w25qxx__interface__driver.html#ga964fa232abf98737cb98458eebfff82c">w25qxx_interface_delay_ms</a></div><div class="ttdeci">void w25qxx_interface_delay_ms(uint32_t ms)</div><div class="ttdoc">interface delay ms</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__interface__template_8c_source.html#l00098">driver_w25qxx_interface_template.c:98</a></div></div>
+<div class="ttc" id="agroup__w25qxx__link__driver_html_ga7555618f13d2de0003ae6d9483085180"><div class="ttname"><a href="group__w25qxx__link__driver.html#ga7555618f13d2de0003ae6d9483085180">DRIVER_W25QXX_LINK_DELAY_MS</a></div><div class="ttdeci">#define DRIVER_W25QXX_LINK_DELAY_MS(HANDLE, FUC)</div><div class="ttdoc">link delay_ms function</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00297">driver_w25qxx.h:297</a></div></div>
+<div class="ttc" id="agroup__w25qxx__link__driver_html_ga995378489f95bc6bbddbe710557e3384"><div class="ttname"><a href="group__w25qxx__link__driver.html#ga995378489f95bc6bbddbe710557e3384">DRIVER_W25QXX_LINK_INIT</a></div><div class="ttdeci">#define DRIVER_W25QXX_LINK_INIT(HANDLE, STRUCTURE)</div><div class="ttdoc">initialize w25qxx_handle_t structure</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00265">driver_w25qxx.h:265</a></div></div>
+<div class="ttc" id="agroup__w25qxx__link__driver_html_gab2587de93f1dba5664eede8cd787a88a"><div class="ttname"><a href="group__w25qxx__link__driver.html#gab2587de93f1dba5664eede8cd787a88a">DRIVER_W25QXX_LINK_SPI_QSPI_INIT</a></div><div class="ttdeci">#define DRIVER_W25QXX_LINK_SPI_QSPI_INIT(HANDLE, FUC)</div><div class="ttdoc">link spi_qspi_init function</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00273">driver_w25qxx.h:273</a></div></div>
+<div class="ttc" id="agroup__w25qxx__link__driver_html_gab8d49ef9dca942fe5f37c30dcd7e22a6"><div class="ttname"><a href="group__w25qxx__link__driver.html#gab8d49ef9dca942fe5f37c30dcd7e22a6">DRIVER_W25QXX_LINK_DEBUG_PRINT</a></div><div class="ttdeci">#define DRIVER_W25QXX_LINK_DEBUG_PRINT(HANDLE, FUC)</div><div class="ttdoc">link debug_print function</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00313">driver_w25qxx.h:313</a></div></div>
+<div class="ttc" id="agroup__w25qxx__link__driver_html_gac8f0ca0a725790bace3241d1d616e3d1"><div class="ttname"><a href="group__w25qxx__link__driver.html#gac8f0ca0a725790bace3241d1d616e3d1">DRIVER_W25QXX_LINK_SPI_QSPI_WRITE_READ</a></div><div class="ttdeci">#define DRIVER_W25QXX_LINK_SPI_QSPI_WRITE_READ(HANDLE, FUC)</div><div class="ttdoc">link spi_qspi_write_read function</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00289">driver_w25qxx.h:289</a></div></div>
+<div class="ttc" id="agroup__w25qxx__link__driver_html_gaec8b55e83b46907be1dd9e7c50be550d"><div class="ttname"><a href="group__w25qxx__link__driver.html#gaec8b55e83b46907be1dd9e7c50be550d">DRIVER_W25QXX_LINK_SPI_QSPI_DEINIT</a></div><div class="ttdeci">#define DRIVER_W25QXX_LINK_SPI_QSPI_DEINIT(HANDLE, FUC)</div><div class="ttdoc">link spi_qspi_deinit function</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00281">driver_w25qxx.h:281</a></div></div>
+<div class="ttc" id="agroup__w25qxx__link__driver_html_gafc81bf850c80dfa316f0c6ab40be6e67"><div class="ttname"><a href="group__w25qxx__link__driver.html#gafc81bf850c80dfa316f0c6ab40be6e67">DRIVER_W25QXX_LINK_DELAY_US</a></div><div class="ttdeci">#define DRIVER_W25QXX_LINK_DELAY_US(HANDLE, FUC)</div><div class="ttdoc">link delay_us function</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00305">driver_w25qxx.h:305</a></div></div>
+<div class="ttc" id="agroup__w25qxx__test__driver_html_ga4ce42ca34d33cd64cb823040780999af"><div class="ttname"><a href="group__w25qxx__test__driver.html#ga4ce42ca34d33cd64cb823040780999af">w25qxx_read_test</a></div><div class="ttdeci">uint8_t w25qxx_read_test(w25qxx_type_t type, w25qxx_interface_t interface, w25qxx_bool_t dual_quad_spi_enable)</div><div class="ttdoc">read test</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__read__test_8c_source.html#l00055">driver_w25qxx_read_test.c:55</a></div></div>
+<div class="ttc" id="astructw25qxx__handle__s_html"><div class="ttname"><a href="structw25qxx__handle__s.html">w25qxx_handle_s</a></div><div class="ttdoc">w25qxx handle structure definition</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00209">driver_w25qxx.h:210</a></div></div>
+<div class="ttc" id="astructw25qxx__info__s_html"><div class="ttname"><a href="structw25qxx__info__s.html">w25qxx_info_s</a></div><div class="ttdoc">w25qxx information structure definition</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00235">driver_w25qxx.h:236</a></div></div>
+<div class="ttc" id="astructw25qxx__info__s_html_a3366a5dce9b829e03c3d321c2b4df3f6"><div class="ttname"><a href="structw25qxx__info__s.html#a3366a5dce9b829e03c3d321c2b4df3f6">w25qxx_info_s::temperature_max</a></div><div class="ttdeci">float temperature_max</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00244">driver_w25qxx.h:244</a></div></div>
+<div class="ttc" id="astructw25qxx__info__s_html_a3d2b12bcac7a85ea8646bff9debe8660"><div class="ttname"><a href="structw25qxx__info__s.html#a3d2b12bcac7a85ea8646bff9debe8660">w25qxx_info_s::supply_voltage_max_v</a></div><div class="ttdeci">float supply_voltage_max_v</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00241">driver_w25qxx.h:241</a></div></div>
+<div class="ttc" id="astructw25qxx__info__s_html_a41b0bd442708b70d252c50b92c75265a"><div class="ttname"><a href="structw25qxx__info__s.html#a41b0bd442708b70d252c50b92c75265a">w25qxx_info_s::driver_version</a></div><div class="ttdeci">uint32_t driver_version</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00245">driver_w25qxx.h:245</a></div></div>
+<div class="ttc" id="astructw25qxx__info__s_html_a5778305279cae46b2ecf862e97f73600"><div class="ttname"><a href="structw25qxx__info__s.html#a5778305279cae46b2ecf862e97f73600">w25qxx_info_s::interface</a></div><div class="ttdeci">char interface[16]</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00239">driver_w25qxx.h:239</a></div></div>
+<div class="ttc" id="astructw25qxx__info__s_html_a8f9dbe66ac0b66ebae0a36fcb4ba368e"><div class="ttname"><a href="structw25qxx__info__s.html#a8f9dbe66ac0b66ebae0a36fcb4ba368e">w25qxx_info_s::temperature_min</a></div><div class="ttdeci">float temperature_min</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00243">driver_w25qxx.h:243</a></div></div>
+<div class="ttc" id="astructw25qxx__info__s_html_a9db82802561bf22d799b03a345f1d1dc"><div class="ttname"><a href="structw25qxx__info__s.html#a9db82802561bf22d799b03a345f1d1dc">w25qxx_info_s::max_current_ma</a></div><div class="ttdeci">float max_current_ma</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00242">driver_w25qxx.h:242</a></div></div>
+<div class="ttc" id="astructw25qxx__info__s_html_ad25285dbf810c90f8eaf3fcef6f2b2ea"><div class="ttname"><a href="structw25qxx__info__s.html#ad25285dbf810c90f8eaf3fcef6f2b2ea">w25qxx_info_s::manufacturer_name</a></div><div class="ttdeci">char manufacturer_name[32]</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00238">driver_w25qxx.h:238</a></div></div>
+<div class="ttc" id="astructw25qxx__info__s_html_ad8bde6ddadaf43d951e62f3befb9d35a"><div class="ttname"><a href="structw25qxx__info__s.html#ad8bde6ddadaf43d951e62f3befb9d35a">w25qxx_info_s::supply_voltage_min_v</a></div><div class="ttdeci">float supply_voltage_min_v</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00240">driver_w25qxx.h:240</a></div></div>
+<div class="ttc" id="astructw25qxx__info__s_html_af890958c72bd715cc6454a10dc846ae6"><div class="ttname"><a href="structw25qxx__info__s.html#af890958c72bd715cc6454a10dc846ae6">w25qxx_info_s::chip_name</a></div><div class="ttdeci">char chip_name[32]</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00237">driver_w25qxx.h:237</a></div></div>
 </div><!-- fragment --></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
     <li class="navelem"><a class="el" href="dir_13e138d54eb8818da29c3992edef070a.html">test</a></li><li class="navelem"><a class="el" href="driver__w25qxx__read__test_8c.html">driver_w25qxx_read_test.c</a></li>
-    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
+    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/driver__w25qxx__read__test_8h.html b/doc/html/driver__w25qxx__read__test_8h.html
index a5279d7..29c807a 100644
--- a/doc/html/driver__w25qxx__read__test_8h.html
+++ b/doc/html/driver__w25qxx__read__test_8h.html
@@ -1,9 +1,9 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.8"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>LibDriver W25QXX: test/driver_w25qxx_read_test.h File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -23,11 +23,10 @@
 <div id="titlearea">
 <table cellspacing="0" cellpadding="0">
  <tbody>
- <tr style="height: 56px;">
+ <tr id="projectrow">
   <td id="projectlogo"><img alt="Logo" src="doxygen.png"/></td>
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">LibDriver W25QXX
-   &#160;<span id="projectnumber">1.0.0</span>
+  <td id="projectalign">
+   <div id="projectname">LibDriver W25QXX<span id="projectnumber">&#160;1.0.0</span>
    </div>
    <div id="projectbrief">W25QXX full function driver</div>
   </td>
@@ -36,21 +35,22 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.8 -->
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search/",'.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
 <script type="text/javascript" src="menu.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(function() {
   initMenu('',true,false,'search.php','Search');
   $(document).ready(function() { init_search(); });
 });
-/* @license-end */</script>
+/* @license-end */
+</script>
 <div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
@@ -64,7 +64,7 @@
   </div>
 </div>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(document).ready(function(){initNavTree('driver__w25qxx__read__test_8h.html',''); initResizable(); });
 /* @license-end */
 </script>
@@ -78,17 +78,23 @@
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
 </div>
 
 <div class="header">
   <div class="summary">
 <a href="#define-members">Macros</a> &#124;
 <a href="#func-members">Functions</a>  </div>
-  <div class="headertitle">
-<div class="title">driver_w25qxx_read_test.h File Reference</div>  </div>
+  <div class="headertitle"><div class="title">driver_w25qxx_read_test.h File Reference</div></div>
 </div><!--header-->
 <div class="contents">
 
@@ -98,16 +104,16 @@
 </div>
 <p><a href="driver__w25qxx__read__test_8h_source.html">Go to the source code of this file.</a></p>
 <table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="define-members" name="define-members"></a>
 Macros</h2></td></tr>
-<tr class="memitem:ga8be86baae6f8448171125c70da1fbfa0"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__test__driver.html#ga8be86baae6f8448171125c70da1fbfa0">W25QXX_ENABLE_ERASE_READ_TEST</a>&#160;&#160;&#160;1</td></tr>
-<tr class="memdesc:ga8be86baae6f8448171125c70da1fbfa0"><td class="mdescLeft">&#160;</td><td class="mdescRight">w25qxx enable erase read test enumeration definition  <a href="group__w25qxx__test__driver.html#ga8be86baae6f8448171125c70da1fbfa0">More...</a><br /></td></tr>
+<tr class="memitem:ga8be86baae6f8448171125c70da1fbfa0" id="r_ga8be86baae6f8448171125c70da1fbfa0"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__test__driver.html#ga8be86baae6f8448171125c70da1fbfa0">W25QXX_ENABLE_ERASE_READ_TEST</a>&#160;&#160;&#160;1</td></tr>
+<tr class="memdesc:ga8be86baae6f8448171125c70da1fbfa0"><td class="mdescLeft">&#160;</td><td class="mdescRight">w25qxx enable erase read test enumeration definition  <br /></td></tr>
 <tr class="separator:ga8be86baae6f8448171125c70da1fbfa0"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
 Functions</h2></td></tr>
-<tr class="memitem:ga4ce42ca34d33cd64cb823040780999af"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__test__driver.html#ga4ce42ca34d33cd64cb823040780999af">w25qxx_read_test</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga6cb4e5164464df549201dd96cb7a58b1">w25qxx_type_t</a> type, <a class="el" href="group__w25qxx__basic__driver.html#gacbf327a42336baf10713a1796ff4f2fe">w25qxx_interface_t</a> interface, <a class="el" href="group__w25qxx__basic__driver.html#gafb2690946f5baf4be6f3a63dde5491fb">w25qxx_bool_t</a> dual_quad_spi_enable)</td></tr>
-<tr class="memdesc:ga4ce42ca34d33cd64cb823040780999af"><td class="mdescLeft">&#160;</td><td class="mdescRight">read test  <a href="group__w25qxx__test__driver.html#ga4ce42ca34d33cd64cb823040780999af">More...</a><br /></td></tr>
+<tr class="memitem:ga4ce42ca34d33cd64cb823040780999af" id="r_ga4ce42ca34d33cd64cb823040780999af"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__test__driver.html#ga4ce42ca34d33cd64cb823040780999af">w25qxx_read_test</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga6cb4e5164464df549201dd96cb7a58b1">w25qxx_type_t</a> type, <a class="el" href="group__w25qxx__basic__driver.html#gacbf327a42336baf10713a1796ff4f2fe">w25qxx_interface_t</a> interface, <a class="el" href="group__w25qxx__basic__driver.html#gafb2690946f5baf4be6f3a63dde5491fb">w25qxx_bool_t</a> dual_quad_spi_enable)</td></tr>
+<tr class="memdesc:ga4ce42ca34d33cd64cb823040780999af"><td class="mdescLeft">&#160;</td><td class="mdescRight">read test  <br /></td></tr>
 <tr class="separator:ga4ce42ca34d33cd64cb823040780999af"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
@@ -135,7 +141,7 @@ <h3>history</h3>
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
     <li class="navelem"><a class="el" href="dir_13e138d54eb8818da29c3992edef070a.html">test</a></li><li class="navelem"><a class="el" href="driver__w25qxx__read__test_8h.html">driver_w25qxx_read_test.h</a></li>
-    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
+    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/driver__w25qxx__read__test_8h_source.html b/doc/html/driver__w25qxx__read__test_8h_source.html
index 88b20a8..e302d41 100644
--- a/doc/html/driver__w25qxx__read__test_8h_source.html
+++ b/doc/html/driver__w25qxx__read__test_8h_source.html
@@ -1,9 +1,9 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.8"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>LibDriver W25QXX: test/driver_w25qxx_read_test.h Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -23,11 +23,10 @@
 <div id="titlearea">
 <table cellspacing="0" cellpadding="0">
  <tbody>
- <tr style="height: 56px;">
+ <tr id="projectrow">
   <td id="projectlogo"><img alt="Logo" src="doxygen.png"/></td>
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">LibDriver W25QXX
-   &#160;<span id="projectnumber">1.0.0</span>
+  <td id="projectalign">
+   <div id="projectname">LibDriver W25QXX<span id="projectnumber">&#160;1.0.0</span>
    </div>
    <div id="projectbrief">W25QXX full function driver</div>
   </td>
@@ -36,22 +35,28 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.8 -->
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search/",'.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
 <script type="text/javascript" src="menu.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(function() {
   initMenu('',true,false,'search.php','Search');
   $(document).ready(function() { init_search(); });
 });
-/* @license-end */</script>
+/* @license-end */
+</script>
 <div id="main-nav"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(document).ready(function() { init_codefold(0); });
+/* @license-end */
+</script>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -64,7 +69,7 @@
   </div>
 </div>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(document).ready(function(){initNavTree('driver__w25qxx__read__test_8h_source.html',''); initResizable(); });
 /* @license-end */
 </script>
@@ -78,47 +83,53 @@
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
 </div>
 
 <div class="header">
-  <div class="headertitle">
-<div class="title">driver_w25qxx_read_test.h</div>  </div>
+  <div class="headertitle"><div class="title">driver_w25qxx_read_test.h</div></div>
 </div><!--header-->
 <div class="contents">
-<a href="driver__w25qxx__read__test_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160; </div>
-<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="preprocessor">#ifndef DRIVER_W25QXX_READ_TEST_H</span></div>
-<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;<span class="preprocessor">#define DRIVER_W25QXX_READ_TEST_H</span></div>
-<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160; </div>
-<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="driver__w25qxx__interface_8h.html">driver_w25qxx_interface.h</a>&quot;</span></div>
-<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160; </div>
-<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;<span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span>{</div>
-<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160; </div>
-<div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="group__w25qxx__test__driver.html#ga8be86baae6f8448171125c70da1fbfa0">   54</a></span>&#160;<span class="preprocessor">#define W25QXX_ENABLE_ERASE_READ_TEST 1</span></div>
-<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160; </div>
-<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;uint8_t <a class="code" href="group__w25qxx__test__driver.html#ga4ce42ca34d33cd64cb823040780999af">w25qxx_read_test</a>(<a class="code" href="group__w25qxx__basic__driver.html#ga6cb4e5164464df549201dd96cb7a58b1">w25qxx_type_t</a> type, <a class="code" href="group__w25qxx__basic__driver.html#gacbf327a42336baf10713a1796ff4f2fe">w25qxx_interface_t</a> interface, <a class="code" href="group__w25qxx__basic__driver.html#gafb2690946f5baf4be6f3a63dde5491fb">w25qxx_bool_t</a> dual_quad_spi_enable);</div>
-<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160; </div>
-<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;}</div>
-<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160; </div>
-<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;<span class="preprocessor">#endif</span></div>
+<a href="driver__w25qxx__read__test_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno">    1</span> </div>
+<div class="line"><a id="l00037" name="l00037"></a><span class="lineno">   37</span><span class="preprocessor">#ifndef DRIVER_W25QXX_READ_TEST_H</span></div>
+<div class="line"><a id="l00038" name="l00038"></a><span class="lineno">   38</span><span class="preprocessor">#define DRIVER_W25QXX_READ_TEST_H</span></div>
+<div class="line"><a id="l00039" name="l00039"></a><span class="lineno">   39</span> </div>
+<div class="line"><a id="l00040" name="l00040"></a><span class="lineno">   40</span><span class="preprocessor">#include &quot;<a class="code" href="driver__w25qxx__interface_8h.html">driver_w25qxx_interface.h</a>&quot;</span></div>
+<div class="line"><a id="l00041" name="l00041"></a><span class="lineno">   41</span> </div>
+<div class="line"><a id="l00042" name="l00042"></a><span class="lineno">   42</span><span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a id="l00043" name="l00043"></a><span class="lineno">   43</span><span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span>{</div>
+<div class="line"><a id="l00044" name="l00044"></a><span class="lineno">   44</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l00045" name="l00045"></a><span class="lineno">   45</span> </div>
+<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"><a class="line" href="group__w25qxx__test__driver.html#ga8be86baae6f8448171125c70da1fbfa0">   54</a></span><span class="preprocessor">#define W25QXX_ENABLE_ERASE_READ_TEST 1</span></div>
+<div class="line"><a id="l00055" name="l00055"></a><span class="lineno">   55</span> </div>
+<div class="line"><a id="l00066" name="l00066"></a><span class="lineno">   66</span>uint8_t <a class="code hl_function" href="group__w25qxx__test__driver.html#ga4ce42ca34d33cd64cb823040780999af">w25qxx_read_test</a>(<a class="code hl_enumeration" href="group__w25qxx__basic__driver.html#ga6cb4e5164464df549201dd96cb7a58b1">w25qxx_type_t</a> type, <a class="code hl_enumeration" href="group__w25qxx__basic__driver.html#gacbf327a42336baf10713a1796ff4f2fe">w25qxx_interface_t</a> interface, <a class="code hl_enumeration" href="group__w25qxx__basic__driver.html#gafb2690946f5baf4be6f3a63dde5491fb">w25qxx_bool_t</a> dual_quad_spi_enable);</div>
+<div class="line"><a id="l00067" name="l00067"></a><span class="lineno">   67</span> </div>
+<div class="line"><a id="l00072" name="l00072"></a><span class="lineno">   72</span><span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a id="l00073" name="l00073"></a><span class="lineno">   73</span>}</div>
+<div class="line"><a id="l00074" name="l00074"></a><span class="lineno">   74</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l00075" name="l00075"></a><span class="lineno">   75</span> </div>
+<div class="line"><a id="l00076" name="l00076"></a><span class="lineno">   76</span><span class="preprocessor">#endif</span></div>
 <div class="ttc" id="adriver__w25qxx__interface_8h_html"><div class="ttname"><a href="driver__w25qxx__interface_8h.html">driver_w25qxx_interface.h</a></div><div class="ttdoc">driver w25qxx interface header file</div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga6cb4e5164464df549201dd96cb7a58b1"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga6cb4e5164464df549201dd96cb7a58b1">w25qxx_type_t</a></div><div class="ttdeci">w25qxx_type_t</div><div class="ttdoc">w25qxx type enumeration definition</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00062">driver_w25qxx.h:63</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_gacbf327a42336baf10713a1796ff4f2fe"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gacbf327a42336baf10713a1796ff4f2fe">w25qxx_interface_t</a></div><div class="ttdeci">w25qxx_interface_t</div><div class="ttdoc">w25qxx interface enumeration definition</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00075">driver_w25qxx.h:76</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_gafb2690946f5baf4be6f3a63dde5491fb"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gafb2690946f5baf4be6f3a63dde5491fb">w25qxx_bool_t</a></div><div class="ttdeci">w25qxx_bool_t</div><div class="ttdoc">w25qxx bool enumeration definition</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00084">driver_w25qxx.h:85</a></div></div>
-<div class="ttc" id="agroup__w25qxx__test__driver_html_ga4ce42ca34d33cd64cb823040780999af"><div class="ttname"><a href="group__w25qxx__test__driver.html#ga4ce42ca34d33cd64cb823040780999af">w25qxx_read_test</a></div><div class="ttdeci">uint8_t w25qxx_read_test(w25qxx_type_t type, w25qxx_interface_t interface, w25qxx_bool_t dual_quad_spi_enable)</div><div class="ttdoc">read test</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__read__test_8c_source.html#l00055">driver_w25qxx_read_test.c:55</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga6cb4e5164464df549201dd96cb7a58b1"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga6cb4e5164464df549201dd96cb7a58b1">w25qxx_type_t</a></div><div class="ttdeci">w25qxx_type_t</div><div class="ttdoc">w25qxx type enumeration definition</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00062">driver_w25qxx.h:63</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_gacbf327a42336baf10713a1796ff4f2fe"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gacbf327a42336baf10713a1796ff4f2fe">w25qxx_interface_t</a></div><div class="ttdeci">w25qxx_interface_t</div><div class="ttdoc">w25qxx interface enumeration definition</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00075">driver_w25qxx.h:76</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_gafb2690946f5baf4be6f3a63dde5491fb"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gafb2690946f5baf4be6f3a63dde5491fb">w25qxx_bool_t</a></div><div class="ttdeci">w25qxx_bool_t</div><div class="ttdoc">w25qxx bool enumeration definition</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00084">driver_w25qxx.h:85</a></div></div>
+<div class="ttc" id="agroup__w25qxx__test__driver_html_ga4ce42ca34d33cd64cb823040780999af"><div class="ttname"><a href="group__w25qxx__test__driver.html#ga4ce42ca34d33cd64cb823040780999af">w25qxx_read_test</a></div><div class="ttdeci">uint8_t w25qxx_read_test(w25qxx_type_t type, w25qxx_interface_t interface, w25qxx_bool_t dual_quad_spi_enable)</div><div class="ttdoc">read test</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__read__test_8c_source.html#l00055">driver_w25qxx_read_test.c:55</a></div></div>
 </div><!-- fragment --></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
     <li class="navelem"><a class="el" href="dir_13e138d54eb8818da29c3992edef070a.html">test</a></li><li class="navelem"><a class="el" href="driver__w25qxx__read__test_8h.html">driver_w25qxx_read_test.h</a></li>
-    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
+    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/driver__w25qxx__register__test_8c.html b/doc/html/driver__w25qxx__register__test_8c.html
index fec8229..ed5e579 100644
--- a/doc/html/driver__w25qxx__register__test_8c.html
+++ b/doc/html/driver__w25qxx__register__test_8c.html
@@ -1,9 +1,9 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.8"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>LibDriver W25QXX: test/driver_w25qxx_register_test.c File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -23,11 +23,10 @@
 <div id="titlearea">
 <table cellspacing="0" cellpadding="0">
  <tbody>
- <tr style="height: 56px;">
+ <tr id="projectrow">
   <td id="projectlogo"><img alt="Logo" src="doxygen.png"/></td>
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">LibDriver W25QXX
-   &#160;<span id="projectnumber">1.0.0</span>
+  <td id="projectalign">
+   <div id="projectname">LibDriver W25QXX<span id="projectnumber">&#160;1.0.0</span>
    </div>
    <div id="projectbrief">W25QXX full function driver</div>
   </td>
@@ -36,21 +35,22 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.8 -->
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search/",'.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
 <script type="text/javascript" src="menu.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(function() {
   initMenu('',true,false,'search.php','Search');
   $(document).ready(function() { init_search(); });
 });
-/* @license-end */</script>
+/* @license-end */
+</script>
 <div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
@@ -64,7 +64,7 @@
   </div>
 </div>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(document).ready(function(){initNavTree('driver__w25qxx__register__test_8c.html',''); initResizable(); });
 /* @license-end */
 </script>
@@ -78,16 +78,22 @@
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
 </div>
 
 <div class="header">
   <div class="summary">
 <a href="#func-members">Functions</a>  </div>
-  <div class="headertitle">
-<div class="title">driver_w25qxx_register_test.c File Reference</div>  </div>
+  <div class="headertitle"><div class="title">driver_w25qxx_register_test.c File Reference</div></div>
 </div><!--header-->
 <div class="contents">
 
@@ -97,10 +103,10 @@
 </div>
 <p><a href="driver__w25qxx__register__test_8c_source.html">Go to the source code of this file.</a></p>
 <table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
 Functions</h2></td></tr>
-<tr class="memitem:ga05d07036254d102ebea0d0b1e83862c8"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__test__driver.html#ga05d07036254d102ebea0d0b1e83862c8">w25qxx_register_test</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga6cb4e5164464df549201dd96cb7a58b1">w25qxx_type_t</a> type, <a class="el" href="group__w25qxx__basic__driver.html#gacbf327a42336baf10713a1796ff4f2fe">w25qxx_interface_t</a> interface, <a class="el" href="group__w25qxx__basic__driver.html#gafb2690946f5baf4be6f3a63dde5491fb">w25qxx_bool_t</a> dual_quad_spi_enable)</td></tr>
-<tr class="memdesc:ga05d07036254d102ebea0d0b1e83862c8"><td class="mdescLeft">&#160;</td><td class="mdescRight">register test  <a href="group__w25qxx__test__driver.html#ga05d07036254d102ebea0d0b1e83862c8">More...</a><br /></td></tr>
+<tr class="memitem:ga05d07036254d102ebea0d0b1e83862c8" id="r_ga05d07036254d102ebea0d0b1e83862c8"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__test__driver.html#ga05d07036254d102ebea0d0b1e83862c8">w25qxx_register_test</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga6cb4e5164464df549201dd96cb7a58b1">w25qxx_type_t</a> type, <a class="el" href="group__w25qxx__basic__driver.html#gacbf327a42336baf10713a1796ff4f2fe">w25qxx_interface_t</a> interface, <a class="el" href="group__w25qxx__basic__driver.html#gafb2690946f5baf4be6f3a63dde5491fb">w25qxx_bool_t</a> dual_quad_spi_enable)</td></tr>
+<tr class="memdesc:ga05d07036254d102ebea0d0b1e83862c8"><td class="mdescLeft">&#160;</td><td class="mdescRight">register test  <br /></td></tr>
 <tr class="separator:ga05d07036254d102ebea0d0b1e83862c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
@@ -128,7 +134,7 @@ <h3>history</h3>
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
     <li class="navelem"><a class="el" href="dir_13e138d54eb8818da29c3992edef070a.html">test</a></li><li class="navelem"><a class="el" href="driver__w25qxx__register__test_8c.html">driver_w25qxx_register_test.c</a></li>
-    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
+    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/driver__w25qxx__register__test_8c_source.html b/doc/html/driver__w25qxx__register__test_8c_source.html
index d882757..76e833b 100644
--- a/doc/html/driver__w25qxx__register__test_8c_source.html
+++ b/doc/html/driver__w25qxx__register__test_8c_source.html
@@ -1,9 +1,9 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.8"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>LibDriver W25QXX: test/driver_w25qxx_register_test.c Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -23,11 +23,10 @@
 <div id="titlearea">
 <table cellspacing="0" cellpadding="0">
  <tbody>
- <tr style="height: 56px;">
+ <tr id="projectrow">
   <td id="projectlogo"><img alt="Logo" src="doxygen.png"/></td>
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">LibDriver W25QXX
-   &#160;<span id="projectnumber">1.0.0</span>
+  <td id="projectalign">
+   <div id="projectname">LibDriver W25QXX<span id="projectnumber">&#160;1.0.0</span>
    </div>
    <div id="projectbrief">W25QXX full function driver</div>
   </td>
@@ -36,22 +35,28 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.8 -->
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search/",'.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
 <script type="text/javascript" src="menu.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(function() {
   initMenu('',true,false,'search.php','Search');
   $(document).ready(function() { init_search(); });
 });
-/* @license-end */</script>
+/* @license-end */
+</script>
 <div id="main-nav"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(document).ready(function() { init_codefold(0); });
+/* @license-end */
+</script>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -64,7 +69,7 @@
   </div>
 </div>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(document).ready(function(){initNavTree('driver__w25qxx__register__test_8c_source.html',''); initResizable(); });
 /* @license-end */
 </script>
@@ -78,1269 +83,1277 @@
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
 </div>
 
 <div class="header">
-  <div class="headertitle">
-<div class="title">driver_w25qxx_register_test.c</div>  </div>
+  <div class="headertitle"><div class="title">driver_w25qxx_register_test.c</div></div>
 </div><!--header-->
 <div class="contents">
-<a href="driver__w25qxx__register__test_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160; </div>
-<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="driver__w25qxx__register__test_8h.html">driver_w25qxx_register_test.h</a>&quot;</span></div>
-<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160; </div>
-<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="keyword">static</span> <a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> gs_handle;        </div>
-<div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="group__w25qxx__test__driver.html#ga05d07036254d102ebea0d0b1e83862c8">   51</a></span>&#160;uint8_t <a class="code" href="group__w25qxx__test__driver.html#ga05d07036254d102ebea0d0b1e83862c8">w25qxx_register_test</a>(<a class="code" href="group__w25qxx__basic__driver.html#ga6cb4e5164464df549201dd96cb7a58b1">w25qxx_type_t</a> type, <a class="code" href="group__w25qxx__basic__driver.html#gacbf327a42336baf10713a1796ff4f2fe">w25qxx_interface_t</a> interface, <a class="code" href="group__w25qxx__basic__driver.html#gafb2690946f5baf4be6f3a63dde5491fb">w25qxx_bool_t</a> dual_quad_spi_enable)</div>
-<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;{</div>
-<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;    uint8_t res;</div>
-<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;    uint8_t status;</div>
-<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;    uint8_t manufacturer;</div>
-<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;    uint8_t device_id[2];</div>
-<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;    uint8_t <span class="keywordtype">id</span>[8];</div>
-<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;    <a class="code" href="structw25qxx__info__s.html">w25qxx_info_t</a> info;</div>
-<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;    <a class="code" href="group__w25qxx__basic__driver.html#ga6cb4e5164464df549201dd96cb7a58b1">w25qxx_type_t</a> type_check;</div>
-<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;    <a class="code" href="group__w25qxx__basic__driver.html#gacbf327a42336baf10713a1796ff4f2fe">w25qxx_interface_t</a> interface_check;</div>
-<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;    </div>
-<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;    <span class="comment">/* link interface function */</span></div>
-<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;    <a class="code" href="group__w25qxx__link__driver.html#ga995378489f95bc6bbddbe710557e3384">DRIVER_W25QXX_LINK_INIT</a>(&amp;gs_handle, <a class="code" href="structw25qxx__handle__s.html">w25qxx_handle_t</a>);</div>
-<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;    <a class="code" href="group__w25qxx__link__driver.html#gab2587de93f1dba5664eede8cd787a88a">DRIVER_W25QXX_LINK_SPI_QSPI_INIT</a>(&amp;gs_handle, <a class="code" href="group__w25qxx__interface__driver.html#ga2bdc17a556f1c801a38656331f3bb7b6">w25qxx_interface_spi_qspi_init</a>);</div>
-<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;    <a class="code" href="group__w25qxx__link__driver.html#gaec8b55e83b46907be1dd9e7c50be550d">DRIVER_W25QXX_LINK_SPI_QSPI_DEINIT</a>(&amp;gs_handle, <a class="code" href="group__w25qxx__interface__driver.html#ga091f3607fcdd47f9e5f94cf1397bd46a">w25qxx_interface_spi_qspi_deinit</a>);</div>
-<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;    <a class="code" href="group__w25qxx__link__driver.html#gac8f0ca0a725790bace3241d1d616e3d1">DRIVER_W25QXX_LINK_SPI_QSPI_WRITE_READ</a>(&amp;gs_handle, <a class="code" href="group__w25qxx__interface__driver.html#ga3d76ea1f431978f6b55edfd0628c94cd">w25qxx_interface_spi_qspi_write_read</a>);</div>
-<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;    <a class="code" href="group__w25qxx__link__driver.html#ga7555618f13d2de0003ae6d9483085180">DRIVER_W25QXX_LINK_DELAY_MS</a>(&amp;gs_handle, <a class="code" href="group__w25qxx__interface__driver.html#ga964fa232abf98737cb98458eebfff82c">w25qxx_interface_delay_ms</a>);</div>
-<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;    <a class="code" href="group__w25qxx__link__driver.html#gafc81bf850c80dfa316f0c6ab40be6e67">DRIVER_W25QXX_LINK_DELAY_US</a>(&amp;gs_handle, <a class="code" href="group__w25qxx__interface__driver.html#ga38e79039b913154c9dd1036ff52bb420">w25qxx_interface_delay_us</a>);</div>
-<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;    <a class="code" href="group__w25qxx__link__driver.html#gab8d49ef9dca942fe5f37c30dcd7e22a6">DRIVER_W25QXX_LINK_DEBUG_PRINT</a>(&amp;gs_handle, <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>);</div>
-<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;    </div>
-<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;    <span class="comment">/* get information */</span></div>
-<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;    res = <a class="code" href="group__w25qxx__basic__driver.html#ga996e2d3009432e7f8c1a5175c4438a57">w25qxx_info</a>(&amp;info);</div>
-<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;    <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;    {</div>
-<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: get info failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;       </div>
-<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;        <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;    }</div>
-<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;    <span class="keywordflow">else</span></div>
-<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;    {</div>
-<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;        <span class="comment">/* print chip information */</span></div>
-<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: chip is %s.\n&quot;</span>, info.<a class="code" href="structw25qxx__info__s.html#af890958c72bd715cc6454a10dc846ae6">chip_name</a>);</div>
-<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: manufacturer is %s.\n&quot;</span>, info.<a class="code" href="structw25qxx__info__s.html#ad25285dbf810c90f8eaf3fcef6f2b2ea">manufacturer_name</a>);</div>
-<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: interface is %s.\n&quot;</span>, info.<a class="code" href="structw25qxx__info__s.html#a5778305279cae46b2ecf862e97f73600">interface</a>);</div>
-<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: driver version is %d.%d.\n&quot;</span>, info.<a class="code" href="structw25qxx__info__s.html#a41b0bd442708b70d252c50b92c75265a">driver_version</a> / 1000, (info.<a class="code" href="structw25qxx__info__s.html#a41b0bd442708b70d252c50b92c75265a">driver_version</a> % 1000) / 100);</div>
-<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: min supply voltage is %0.1fV.\n&quot;</span>, info.<a class="code" href="structw25qxx__info__s.html#ad8bde6ddadaf43d951e62f3befb9d35a">supply_voltage_min_v</a>);</div>
-<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: max supply voltage is %0.1fV.\n&quot;</span>, info.<a class="code" href="structw25qxx__info__s.html#a3d2b12bcac7a85ea8646bff9debe8660">supply_voltage_max_v</a>);</div>
-<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: max current is %0.2fmA.\n&quot;</span>, info.<a class="code" href="structw25qxx__info__s.html#a9db82802561bf22d799b03a345f1d1dc">max_current_ma</a>);</div>
-<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: max temperature is %0.1fC.\n&quot;</span>, info.<a class="code" href="structw25qxx__info__s.html#a3366a5dce9b829e03c3d321c2b4df3f6">temperature_max</a>);</div>
-<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: min temperature is %0.1fC.\n&quot;</span>, info.<a class="code" href="structw25qxx__info__s.html#a8f9dbe66ac0b66ebae0a36fcb4ba368e">temperature_min</a>);</div>
-<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;    }</div>
-<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;    </div>
-<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;    <span class="comment">/* start read test */</span></div>
-<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;    <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: start register test.\n&quot;</span>);</div>
-<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;    </div>
-<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;    <span class="comment">/* w25qxx_set_type/w25qxx_get_type test */</span></div>
-<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;    <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_set_type/w25qxx_get_type test.\n&quot;</span>);</div>
-<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;    </div>
-<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;    <span class="comment">/* set type w25q80 */</span></div>
-<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;    res = <a class="code" href="group__w25qxx__basic__driver.html#gaa57189cd4170b73f8b1300ca15e27de6">w25qxx_set_type</a>(&amp;gs_handle, <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a1ad4f72437de5f26cb7b212d4d91e7c2">W25Q80</a>);</div>
-<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;    <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;    {</div>
-<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set type failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;       </div>
-<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;        <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;    }</div>
-<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;    <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set type W25Q80.\n&quot;</span>);</div>
-<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;    </div>
-<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;    <span class="comment">/* get type */</span></div>
-<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;    res = <a class="code" href="group__w25qxx__basic__driver.html#ga685379998dad173b6d9c0b0da270685c">w25qxx_get_type</a>(&amp;gs_handle, &amp;type_check);</div>
-<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;    <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;    {</div>
-<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set type failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;       </div>
-<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;        <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;    }</div>
-<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;    <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: check chip type %s.\n&quot;</span>, type_check == <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a1ad4f72437de5f26cb7b212d4d91e7c2">W25Q80</a> ? <span class="stringliteral">&quot;ok&quot;</span> : <span class="stringliteral">&quot;error&quot;</span>);</div>
-<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;    </div>
-<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;    <span class="comment">/* set type w25q16 */</span></div>
-<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;    res = <a class="code" href="group__w25qxx__basic__driver.html#gaa57189cd4170b73f8b1300ca15e27de6">w25qxx_set_type</a>(&amp;gs_handle, <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a66acb81a2d520a7d92ce1d37210c6435">W25Q16</a>);</div>
-<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;    <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;    {</div>
-<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set type failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;       </div>
-<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;        <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;    }</div>
-<div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;    <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set type W25Q16.\n&quot;</span>);</div>
-<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;    </div>
-<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;    <span class="comment">/* get type */</span></div>
-<div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;    res = <a class="code" href="group__w25qxx__basic__driver.html#ga685379998dad173b6d9c0b0da270685c">w25qxx_get_type</a>(&amp;gs_handle, &amp;type_check);</div>
-<div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;    <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;    {</div>
-<div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set type failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;       </div>
-<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;        <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;    }</div>
-<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;    <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: check chip type %s.\n&quot;</span>, type_check == <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a66acb81a2d520a7d92ce1d37210c6435">W25Q16</a> ? <span class="stringliteral">&quot;ok&quot;</span> : <span class="stringliteral">&quot;error&quot;</span>);</div>
-<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;    </div>
-<div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;    <span class="comment">/* set type w25q32 */</span></div>
-<div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;    res = <a class="code" href="group__w25qxx__basic__driver.html#gaa57189cd4170b73f8b1300ca15e27de6">w25qxx_set_type</a>(&amp;gs_handle, <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a4fdad551be6485441db5951f196db7cb">W25Q32</a>);</div>
-<div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;    <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;    {</div>
-<div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set type failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;       </div>
-<div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;        <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;    }</div>
-<div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;    <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set type W25Q32.\n&quot;</span>);</div>
-<div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;    </div>
-<div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;    <span class="comment">/* get type */</span></div>
-<div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;    res = <a class="code" href="group__w25qxx__basic__driver.html#ga685379998dad173b6d9c0b0da270685c">w25qxx_get_type</a>(&amp;gs_handle, &amp;type_check);</div>
-<div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;    <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;    {</div>
-<div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set type failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;       </div>
-<div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;        <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;    }</div>
-<div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;    <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: check chip type %s.\n&quot;</span>, type_check == <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a4fdad551be6485441db5951f196db7cb">W25Q32</a> ? <span class="stringliteral">&quot;ok&quot;</span> : <span class="stringliteral">&quot;error&quot;</span>);</div>
-<div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;    </div>
-<div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;    <span class="comment">/* set type w25q64 */</span></div>
-<div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;    res = <a class="code" href="group__w25qxx__basic__driver.html#gaa57189cd4170b73f8b1300ca15e27de6">w25qxx_set_type</a>(&amp;gs_handle, <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a3ea98b2b3e06afa29441c51548bbb16e">W25Q64</a>);</div>
-<div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;    <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;    {</div>
-<div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set type failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;       </div>
-<div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;        <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;    }</div>
-<div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;    <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set type W25Q64.\n&quot;</span>);</div>
-<div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;    </div>
-<div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;    <span class="comment">/* get type */</span></div>
-<div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;    res = <a class="code" href="group__w25qxx__basic__driver.html#ga685379998dad173b6d9c0b0da270685c">w25qxx_get_type</a>(&amp;gs_handle, &amp;type_check);</div>
-<div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;    <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;    {</div>
-<div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set type failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;       </div>
-<div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;        <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;    }</div>
-<div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;    <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: check chip type %s.\n&quot;</span>, type_check == <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a3ea98b2b3e06afa29441c51548bbb16e">W25Q64</a> ? <span class="stringliteral">&quot;ok&quot;</span> : <span class="stringliteral">&quot;error&quot;</span>);</div>
-<div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;    </div>
-<div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;    <span class="comment">/* set type w25q128 */</span></div>
-<div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;    res = <a class="code" href="group__w25qxx__basic__driver.html#gaa57189cd4170b73f8b1300ca15e27de6">w25qxx_set_type</a>(&amp;gs_handle, <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a75afcbe71906d3884f4fcc119c1cabd5">W25Q128</a>);</div>
-<div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;    <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;    {</div>
-<div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set type failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;       </div>
-<div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;        <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;    }</div>
-<div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;    <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set type W25Q128.\n&quot;</span>);</div>
-<div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;    </div>
-<div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;    <span class="comment">/* get type */</span></div>
-<div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;    res = <a class="code" href="group__w25qxx__basic__driver.html#ga685379998dad173b6d9c0b0da270685c">w25qxx_get_type</a>(&amp;gs_handle, &amp;type_check);</div>
-<div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;    <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;    {</div>
-<div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set type failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;       </div>
-<div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;        <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;    }</div>
-<div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;    <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: check chip type %s.\n&quot;</span>, type_check == <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a75afcbe71906d3884f4fcc119c1cabd5">W25Q128</a> ? <span class="stringliteral">&quot;ok&quot;</span> : <span class="stringliteral">&quot;error&quot;</span>);</div>
-<div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160; </div>
-<div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;    <span class="comment">/* set type w25q256 */</span></div>
-<div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;    res = <a class="code" href="group__w25qxx__basic__driver.html#gaa57189cd4170b73f8b1300ca15e27de6">w25qxx_set_type</a>(&amp;gs_handle, <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>);</div>
-<div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;    <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;    {</div>
-<div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set type failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;       </div>
-<div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;        <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;    }</div>
-<div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;    <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set type W25Q256.\n&quot;</span>);</div>
-<div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;    </div>
-<div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;    <span class="comment">/* get type */</span></div>
-<div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;    res = <a class="code" href="group__w25qxx__basic__driver.html#ga685379998dad173b6d9c0b0da270685c">w25qxx_get_type</a>(&amp;gs_handle, &amp;type_check);</div>
-<div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;    <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;    {</div>
-<div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set type failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;       </div>
-<div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;        <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;    }</div>
-<div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;    <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: check chip type %s.\n&quot;</span>, type_check == <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a> ? <span class="stringliteral">&quot;ok&quot;</span> : <span class="stringliteral">&quot;error&quot;</span>);</div>
-<div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;    </div>
-<div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;    <span class="comment">/* w25qxx_set_interface/w25qxx_get_interface test */</span></div>
-<div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;    <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_set_interface/w25qxx_get_interface test.\n&quot;</span>);</div>
-<div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;    </div>
-<div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;    <span class="comment">/* set chip interface spi */</span></div>
-<div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;    res = <a class="code" href="group__w25qxx__basic__driver.html#ga50a62003d566402d46ada2f272c41eb5">w25qxx_set_interface</a>(&amp;gs_handle, <a class="code" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>);</div>
-<div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;    <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;    {</div>
-<div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set interface failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;       </div>
-<div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;        <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;    }</div>
-<div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160;    <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set interface SPI.\n&quot;</span>);</div>
-<div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160;    </div>
-<div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;    <span class="comment">/* get interface */</span></div>
-<div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;    res = <a class="code" href="group__w25qxx__basic__driver.html#ga86ef839d475f3926a0be46bbc18d4b45">w25qxx_get_interface</a>(&amp;gs_handle, &amp;interface_check);</div>
-<div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;    <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;    {</div>
-<div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: get interface failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160;       </div>
-<div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;        <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;    }</div>
-<div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;    <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: check chip interface %s.\n&quot;</span>, interface_check == <a class="code" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a> ? <span class="stringliteral">&quot;ok&quot;</span> : <span class="stringliteral">&quot;error&quot;</span>);</div>
-<div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160;    </div>
-<div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;    <span class="comment">/* set chip interface qspi */</span></div>
-<div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;    res = <a class="code" href="group__w25qxx__basic__driver.html#ga50a62003d566402d46ada2f272c41eb5">w25qxx_set_interface</a>(&amp;gs_handle, <a class="code" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2fea895dcb5c91da89fad1c12161ffd2d5d4">W25QXX_INTERFACE_QSPI</a>);</div>
-<div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160;    <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;    {</div>
-<div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set interface failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160;       </div>
-<div class="line"><a name="l00248"></a><span class="lineno">  248</span>&#160;        <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00249"></a><span class="lineno">  249</span>&#160;    }</div>
-<div class="line"><a name="l00250"></a><span class="lineno">  250</span>&#160;    <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set interface QSPI.\n&quot;</span>);</div>
-<div class="line"><a name="l00251"></a><span class="lineno">  251</span>&#160;    </div>
-<div class="line"><a name="l00252"></a><span class="lineno">  252</span>&#160;    <span class="comment">/* get interface */</span></div>
-<div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160;    res = <a class="code" href="group__w25qxx__basic__driver.html#ga86ef839d475f3926a0be46bbc18d4b45">w25qxx_get_interface</a>(&amp;gs_handle, &amp;interface_check);</div>
-<div class="line"><a name="l00254"></a><span class="lineno">  254</span>&#160;    <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00255"></a><span class="lineno">  255</span>&#160;    {</div>
-<div class="line"><a name="l00256"></a><span class="lineno">  256</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: get interface failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160;       </div>
-<div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160;        <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00259"></a><span class="lineno">  259</span>&#160;    }</div>
-<div class="line"><a name="l00260"></a><span class="lineno">  260</span>&#160;    <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: check chip interface %s.\n&quot;</span>, interface_check == <a class="code" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2fea895dcb5c91da89fad1c12161ffd2d5d4">W25QXX_INTERFACE_QSPI</a> ? <span class="stringliteral">&quot;ok&quot;</span> : <span class="stringliteral">&quot;error&quot;</span>);</div>
-<div class="line"><a name="l00261"></a><span class="lineno">  261</span>&#160;    </div>
-<div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160;    <span class="comment">/* set chip type */</span></div>
-<div class="line"><a name="l00263"></a><span class="lineno">  263</span>&#160;    res = <a class="code" href="group__w25qxx__basic__driver.html#gaa57189cd4170b73f8b1300ca15e27de6">w25qxx_set_type</a>(&amp;gs_handle, type);</div>
-<div class="line"><a name="l00264"></a><span class="lineno">  264</span>&#160;    <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160;    {</div>
-<div class="line"><a name="l00266"></a><span class="lineno">  266</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set type failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160;       </div>
-<div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160;        <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160;    }</div>
-<div class="line"><a name="l00270"></a><span class="lineno">  270</span>&#160;    </div>
-<div class="line"><a name="l00271"></a><span class="lineno">  271</span>&#160;    <span class="comment">/* set chip interface */</span></div>
-<div class="line"><a name="l00272"></a><span class="lineno">  272</span>&#160;    res = <a class="code" href="group__w25qxx__basic__driver.html#ga50a62003d566402d46ada2f272c41eb5">w25qxx_set_interface</a>(&amp;gs_handle, interface);</div>
-<div class="line"><a name="l00273"></a><span class="lineno">  273</span>&#160;    <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00274"></a><span class="lineno">  274</span>&#160;    {</div>
-<div class="line"><a name="l00275"></a><span class="lineno">  275</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set interface failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160;       </div>
-<div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160;        <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160;    }</div>
-<div class="line"><a name="l00279"></a><span class="lineno">  279</span>&#160;    </div>
-<div class="line"><a name="l00280"></a><span class="lineno">  280</span>&#160;    <span class="comment">/* set dual quad spi */</span></div>
-<div class="line"><a name="l00281"></a><span class="lineno">  281</span>&#160;    res = <a class="code" href="group__w25qxx__basic__driver.html#ga665139209b0abc386474a78d89cce6f2">w25qxx_set_dual_quad_spi</a>(&amp;gs_handle, dual_quad_spi_enable);</div>
-<div class="line"><a name="l00282"></a><span class="lineno">  282</span>&#160;    <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00283"></a><span class="lineno">  283</span>&#160;    {</div>
-<div class="line"><a name="l00284"></a><span class="lineno">  284</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set dual quad spi failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00285"></a><span class="lineno">  285</span>&#160;        (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00286"></a><span class="lineno">  286</span>&#160;       </div>
-<div class="line"><a name="l00287"></a><span class="lineno">  287</span>&#160;        <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00288"></a><span class="lineno">  288</span>&#160;    }</div>
-<div class="line"><a name="l00289"></a><span class="lineno">  289</span>&#160;    </div>
-<div class="line"><a name="l00290"></a><span class="lineno">  290</span>&#160;    <span class="comment">/* chip init */</span></div>
-<div class="line"><a name="l00291"></a><span class="lineno">  291</span>&#160;    res = <a class="code" href="group__w25qxx__basic__driver.html#ga8e7a163b3d255b8c7fc035d0d60f2491">w25qxx_init</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00292"></a><span class="lineno">  292</span>&#160;    <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00293"></a><span class="lineno">  293</span>&#160;    {</div>
-<div class="line"><a name="l00294"></a><span class="lineno">  294</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: init failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00295"></a><span class="lineno">  295</span>&#160;       </div>
-<div class="line"><a name="l00296"></a><span class="lineno">  296</span>&#160;        <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00297"></a><span class="lineno">  297</span>&#160;    }</div>
-<div class="line"><a name="l00298"></a><span class="lineno">  298</span>&#160;    </div>
-<div class="line"><a name="l00299"></a><span class="lineno">  299</span>&#160;    <span class="keywordflow">if</span> (interface == <a class="code" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>)</div>
-<div class="line"><a name="l00300"></a><span class="lineno">  300</span>&#160;    {</div>
-<div class="line"><a name="l00301"></a><span class="lineno">  301</span>&#160;        <span class="comment">/* w25qxx_get_manufacturer_device_id test */</span></div>
-<div class="line"><a name="l00302"></a><span class="lineno">  302</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_get_manufacturer_device_id test.\n&quot;</span>);</div>
-<div class="line"><a name="l00303"></a><span class="lineno">  303</span>&#160;        </div>
-<div class="line"><a name="l00304"></a><span class="lineno">  304</span>&#160;        <span class="comment">/* get manufacturer device id */</span></div>
-<div class="line"><a name="l00305"></a><span class="lineno">  305</span>&#160;        res = <a class="code" href="group__w25qxx__basic__driver.html#ga921836a777b082ff4d0f322ccfda6b22">w25qxx_get_manufacturer_device_id</a>(&amp;gs_handle, (uint8_t *)&amp;manufacturer, (uint8_t *)device_id);</div>
-<div class="line"><a name="l00306"></a><span class="lineno">  306</span>&#160;        <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00307"></a><span class="lineno">  307</span>&#160;        {</div>
-<div class="line"><a name="l00308"></a><span class="lineno">  308</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: get manufacturer device id failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00309"></a><span class="lineno">  309</span>&#160;            (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00310"></a><span class="lineno">  310</span>&#160;           </div>
-<div class="line"><a name="l00311"></a><span class="lineno">  311</span>&#160;            <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00312"></a><span class="lineno">  312</span>&#160;        }</div>
-<div class="line"><a name="l00313"></a><span class="lineno">  313</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: manufacturer is 0x%02X, device id is 0x%02X.\n&quot;</span>, manufacturer, device_id[0]);</div>
-<div class="line"><a name="l00314"></a><span class="lineno">  314</span>&#160;        </div>
-<div class="line"><a name="l00315"></a><span class="lineno">  315</span>&#160;        <span class="comment">/* w25qxx_get_jedec_id test */</span></div>
-<div class="line"><a name="l00316"></a><span class="lineno">  316</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_get_jedec_id test.\n&quot;</span>);</div>
-<div class="line"><a name="l00317"></a><span class="lineno">  317</span>&#160;        </div>
-<div class="line"><a name="l00318"></a><span class="lineno">  318</span>&#160;        <span class="comment">/* get jedec id */</span></div>
-<div class="line"><a name="l00319"></a><span class="lineno">  319</span>&#160;        res = <a class="code" href="group__w25qxx__advance__driver.html#ga8a93ba14a032e10a27f1495fdcf56058">w25qxx_get_jedec_id</a>(&amp;gs_handle, (uint8_t *)&amp;manufacturer, (uint8_t *)device_id);</div>
-<div class="line"><a name="l00320"></a><span class="lineno">  320</span>&#160;        <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00321"></a><span class="lineno">  321</span>&#160;        {</div>
-<div class="line"><a name="l00322"></a><span class="lineno">  322</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: get jedec id failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00323"></a><span class="lineno">  323</span>&#160;            (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00324"></a><span class="lineno">  324</span>&#160;           </div>
-<div class="line"><a name="l00325"></a><span class="lineno">  325</span>&#160;            <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00326"></a><span class="lineno">  326</span>&#160;        }</div>
-<div class="line"><a name="l00327"></a><span class="lineno">  327</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: manufacturer is 0x%02X, device id is 0x%02X 0x%02X.\n&quot;</span>, manufacturer, </div>
-<div class="line"><a name="l00328"></a><span class="lineno">  328</span>&#160;                                     device_id[0], device_id[1]);</div>
-<div class="line"><a name="l00329"></a><span class="lineno">  329</span>&#160;        </div>
-<div class="line"><a name="l00330"></a><span class="lineno">  330</span>&#160;        <span class="comment">/* w25qxx_get_unique_id test */</span></div>
-<div class="line"><a name="l00331"></a><span class="lineno">  331</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_get_unique_id test.\n&quot;</span>);</div>
-<div class="line"><a name="l00332"></a><span class="lineno">  332</span>&#160;        </div>
-<div class="line"><a name="l00333"></a><span class="lineno">  333</span>&#160;        <span class="comment">/* get unique id */</span></div>
-<div class="line"><a name="l00334"></a><span class="lineno">  334</span>&#160;        res = <a class="code" href="group__w25qxx__advance__driver.html#ga11af244389478de68a6777076ee82d69">w25qxx_get_unique_id</a>(&amp;gs_handle, (uint8_t *)<span class="keywordtype">id</span>);</div>
-<div class="line"><a name="l00335"></a><span class="lineno">  335</span>&#160;        <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00336"></a><span class="lineno">  336</span>&#160;        {</div>
-<div class="line"><a name="l00337"></a><span class="lineno">  337</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: get unique id failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00338"></a><span class="lineno">  338</span>&#160;            (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00339"></a><span class="lineno">  339</span>&#160;           </div>
-<div class="line"><a name="l00340"></a><span class="lineno">  340</span>&#160;            <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00341"></a><span class="lineno">  341</span>&#160;        }</div>
-<div class="line"><a name="l00342"></a><span class="lineno">  342</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: unique id 0x%02X 0x%02X 0x%02X 0x%02X 0x%02X 0x%02X 0x%02X 0x%02X.\n&quot;</span>, </div>
-<div class="line"><a name="l00343"></a><span class="lineno">  343</span>&#160;                                     <span class="keywordtype">id</span>[0], <span class="keywordtype">id</span>[1], <span class="keywordtype">id</span>[2], <span class="keywordtype">id</span>[3], <span class="keywordtype">id</span>[4], <span class="keywordtype">id</span>[5], <span class="keywordtype">id</span>[6], <span class="keywordtype">id</span>[7]);</div>
-<div class="line"><a name="l00344"></a><span class="lineno">  344</span>&#160;        </div>
-<div class="line"><a name="l00345"></a><span class="lineno">  345</span>&#160;        <span class="comment">/* w25qxx_set_status1/w25qxx_get_status1 test */</span></div>
-<div class="line"><a name="l00346"></a><span class="lineno">  346</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_set_status1/w25qxx_get_status1 test.\n&quot;</span>);</div>
-<div class="line"><a name="l00347"></a><span class="lineno">  347</span>&#160;        </div>
-<div class="line"><a name="l00348"></a><span class="lineno">  348</span>&#160;        <span class="comment">/* set status1 */</span></div>
-<div class="line"><a name="l00349"></a><span class="lineno">  349</span>&#160;        res = <a class="code" href="group__w25qxx__advance__driver.html#ga246e0bb07c8bbb39731f17906779c012">w25qxx_set_status1</a>(&amp;gs_handle, 0x00);</div>
-<div class="line"><a name="l00350"></a><span class="lineno">  350</span>&#160;        <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00351"></a><span class="lineno">  351</span>&#160;        {</div>
-<div class="line"><a name="l00352"></a><span class="lineno">  352</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set status1 failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00353"></a><span class="lineno">  353</span>&#160;            (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00354"></a><span class="lineno">  354</span>&#160;           </div>
-<div class="line"><a name="l00355"></a><span class="lineno">  355</span>&#160;            <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00356"></a><span class="lineno">  356</span>&#160;        }</div>
-<div class="line"><a name="l00357"></a><span class="lineno">  357</span>&#160;        </div>
-<div class="line"><a name="l00358"></a><span class="lineno">  358</span>&#160;        <span class="comment">/* get status1 */</span></div>
-<div class="line"><a name="l00359"></a><span class="lineno">  359</span>&#160;        res = <a class="code" href="group__w25qxx__advance__driver.html#gaa77d2b00b4fb9cf586f77ace827ea7c6">w25qxx_get_status1</a>(&amp;gs_handle, (uint8_t *)&amp;status);</div>
-<div class="line"><a name="l00360"></a><span class="lineno">  360</span>&#160;        <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00361"></a><span class="lineno">  361</span>&#160;        {</div>
-<div class="line"><a name="l00362"></a><span class="lineno">  362</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: get status1 failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00363"></a><span class="lineno">  363</span>&#160;            (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00364"></a><span class="lineno">  364</span>&#160;           </div>
-<div class="line"><a name="l00365"></a><span class="lineno">  365</span>&#160;            <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00366"></a><span class="lineno">  366</span>&#160;        }</div>
-<div class="line"><a name="l00367"></a><span class="lineno">  367</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: status1 is 0x%02X.\n&quot;</span>, status);</div>
-<div class="line"><a name="l00368"></a><span class="lineno">  368</span>&#160;        </div>
-<div class="line"><a name="l00369"></a><span class="lineno">  369</span>&#160;        <span class="comment">/* w25qxx_set_status2/w25qxx_get_status2 test */</span></div>
-<div class="line"><a name="l00370"></a><span class="lineno">  370</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_set_status2/w25qxx_get_status2 test.\n&quot;</span>);</div>
-<div class="line"><a name="l00371"></a><span class="lineno">  371</span>&#160;        </div>
-<div class="line"><a name="l00372"></a><span class="lineno">  372</span>&#160;        <span class="comment">/* set status2 */</span></div>
-<div class="line"><a name="l00373"></a><span class="lineno">  373</span>&#160;        res = <a class="code" href="group__w25qxx__advance__driver.html#gaab5f28e8930d50dbc2178e39bc9fa456">w25qxx_set_status2</a>(&amp;gs_handle, 0x02);</div>
-<div class="line"><a name="l00374"></a><span class="lineno">  374</span>&#160;        <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00375"></a><span class="lineno">  375</span>&#160;        {</div>
-<div class="line"><a name="l00376"></a><span class="lineno">  376</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set status2 failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00377"></a><span class="lineno">  377</span>&#160;            (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00378"></a><span class="lineno">  378</span>&#160;           </div>
-<div class="line"><a name="l00379"></a><span class="lineno">  379</span>&#160;            <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00380"></a><span class="lineno">  380</span>&#160;        }</div>
-<div class="line"><a name="l00381"></a><span class="lineno">  381</span>&#160;        </div>
-<div class="line"><a name="l00382"></a><span class="lineno">  382</span>&#160;        <span class="comment">/* get status2 */</span></div>
-<div class="line"><a name="l00383"></a><span class="lineno">  383</span>&#160;        res = <a class="code" href="group__w25qxx__advance__driver.html#gaa21237ecbd5951b8017799066e7db5d9">w25qxx_get_status2</a>(&amp;gs_handle, (uint8_t *)&amp;status);</div>
-<div class="line"><a name="l00384"></a><span class="lineno">  384</span>&#160;        <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00385"></a><span class="lineno">  385</span>&#160;        {</div>
-<div class="line"><a name="l00386"></a><span class="lineno">  386</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: get status2 failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00387"></a><span class="lineno">  387</span>&#160;            (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00388"></a><span class="lineno">  388</span>&#160;           </div>
-<div class="line"><a name="l00389"></a><span class="lineno">  389</span>&#160;            <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00390"></a><span class="lineno">  390</span>&#160;        }</div>
-<div class="line"><a name="l00391"></a><span class="lineno">  391</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: status2 is 0x%02X.\n&quot;</span>, status);</div>
-<div class="line"><a name="l00392"></a><span class="lineno">  392</span>&#160;        </div>
-<div class="line"><a name="l00393"></a><span class="lineno">  393</span>&#160;        <span class="comment">/* w25qxx_set_status3/w25qxx_get_status3 test */</span></div>
-<div class="line"><a name="l00394"></a><span class="lineno">  394</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_set_status3/w25qxx_get_status3 test.\n&quot;</span>);</div>
-<div class="line"><a name="l00395"></a><span class="lineno">  395</span>&#160;        </div>
-<div class="line"><a name="l00396"></a><span class="lineno">  396</span>&#160;        <span class="comment">/* set status3 */</span></div>
-<div class="line"><a name="l00397"></a><span class="lineno">  397</span>&#160;        res = <a class="code" href="group__w25qxx__advance__driver.html#gada897a6c6d6acb99f4dd4ff9b65ad8ee">w25qxx_set_status3</a>(&amp;gs_handle, 0x60);</div>
-<div class="line"><a name="l00398"></a><span class="lineno">  398</span>&#160;        <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00399"></a><span class="lineno">  399</span>&#160;        {</div>
-<div class="line"><a name="l00400"></a><span class="lineno">  400</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set status3 failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00401"></a><span class="lineno">  401</span>&#160;            (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00402"></a><span class="lineno">  402</span>&#160;           </div>
-<div class="line"><a name="l00403"></a><span class="lineno">  403</span>&#160;            <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00404"></a><span class="lineno">  404</span>&#160;        }</div>
-<div class="line"><a name="l00405"></a><span class="lineno">  405</span>&#160;        </div>
-<div class="line"><a name="l00406"></a><span class="lineno">  406</span>&#160;        <span class="comment">/* get status3 */</span></div>
-<div class="line"><a name="l00407"></a><span class="lineno">  407</span>&#160;        res = <a class="code" href="group__w25qxx__advance__driver.html#ga99cf6a325a00921d4531004f0c1d75b1">w25qxx_get_status3</a>(&amp;gs_handle, (uint8_t *)&amp;status);</div>
-<div class="line"><a name="l00408"></a><span class="lineno">  408</span>&#160;        <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00409"></a><span class="lineno">  409</span>&#160;        {</div>
-<div class="line"><a name="l00410"></a><span class="lineno">  410</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: get status3 failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00411"></a><span class="lineno">  411</span>&#160;            (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00412"></a><span class="lineno">  412</span>&#160;           </div>
-<div class="line"><a name="l00413"></a><span class="lineno">  413</span>&#160;            <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00414"></a><span class="lineno">  414</span>&#160;        }</div>
-<div class="line"><a name="l00415"></a><span class="lineno">  415</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: status3 is 0x%02X.\n&quot;</span>, status);</div>
-<div class="line"><a name="l00416"></a><span class="lineno">  416</span>&#160;        </div>
-<div class="line"><a name="l00417"></a><span class="lineno">  417</span>&#160;        <span class="comment">/* w25qxx_enable_write test */</span></div>
-<div class="line"><a name="l00418"></a><span class="lineno">  418</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_enable_write test.\n&quot;</span>);</div>
-<div class="line"><a name="l00419"></a><span class="lineno">  419</span>&#160;        </div>
-<div class="line"><a name="l00420"></a><span class="lineno">  420</span>&#160;        <span class="comment">/* enable write */</span></div>
-<div class="line"><a name="l00421"></a><span class="lineno">  421</span>&#160;        res = <a class="code" href="group__w25qxx__advance__driver.html#gaeb269123feec054eaaf70f2ffb5797a3">w25qxx_enable_write</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00422"></a><span class="lineno">  422</span>&#160;        <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00423"></a><span class="lineno">  423</span>&#160;        {</div>
-<div class="line"><a name="l00424"></a><span class="lineno">  424</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: enable write failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00425"></a><span class="lineno">  425</span>&#160;            (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00426"></a><span class="lineno">  426</span>&#160;           </div>
-<div class="line"><a name="l00427"></a><span class="lineno">  427</span>&#160;            <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00428"></a><span class="lineno">  428</span>&#160;        }</div>
-<div class="line"><a name="l00429"></a><span class="lineno">  429</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: check enable write %s.\n&quot;</span>, res == 0 ? <span class="stringliteral">&quot;ok&quot;</span> : <span class="stringliteral">&quot;error&quot;</span>);</div>
-<div class="line"><a name="l00430"></a><span class="lineno">  430</span>&#160;        </div>
-<div class="line"><a name="l00431"></a><span class="lineno">  431</span>&#160;        <span class="comment">/* w25qxx_disable_write test */</span></div>
-<div class="line"><a name="l00432"></a><span class="lineno">  432</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_disable_write test.\n&quot;</span>);</div>
-<div class="line"><a name="l00433"></a><span class="lineno">  433</span>&#160;        </div>
-<div class="line"><a name="l00434"></a><span class="lineno">  434</span>&#160;        <span class="comment">/* disable write */</span></div>
-<div class="line"><a name="l00435"></a><span class="lineno">  435</span>&#160;        res = <a class="code" href="group__w25qxx__advance__driver.html#gac16a31269277051baad6c28fe4254b4a">w25qxx_disable_write</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00436"></a><span class="lineno">  436</span>&#160;        <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00437"></a><span class="lineno">  437</span>&#160;        {</div>
-<div class="line"><a name="l00438"></a><span class="lineno">  438</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: disable write failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00439"></a><span class="lineno">  439</span>&#160;            (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00440"></a><span class="lineno">  440</span>&#160;           </div>
-<div class="line"><a name="l00441"></a><span class="lineno">  441</span>&#160;            <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00442"></a><span class="lineno">  442</span>&#160;        }</div>
-<div class="line"><a name="l00443"></a><span class="lineno">  443</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: check disable write %s.\n&quot;</span>, res == 0 ? <span class="stringliteral">&quot;ok&quot;</span> : <span class="stringliteral">&quot;error&quot;</span>);</div>
-<div class="line"><a name="l00444"></a><span class="lineno">  444</span>&#160;        </div>
-<div class="line"><a name="l00445"></a><span class="lineno">  445</span>&#160;        <span class="comment">/* w25qxx_enable_write test */</span></div>
-<div class="line"><a name="l00446"></a><span class="lineno">  446</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_enable_write test.\n&quot;</span>);</div>
-<div class="line"><a name="l00447"></a><span class="lineno">  447</span>&#160;        </div>
-<div class="line"><a name="l00448"></a><span class="lineno">  448</span>&#160;        <span class="comment">/* enable sr write */</span></div>
-<div class="line"><a name="l00449"></a><span class="lineno">  449</span>&#160;        res = <a class="code" href="group__w25qxx__advance__driver.html#ga0f8889d6a25c32e150a2ab30753d461d">w25qxx_enable_volatile_sr_write</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00450"></a><span class="lineno">  450</span>&#160;        <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00451"></a><span class="lineno">  451</span>&#160;        {</div>
-<div class="line"><a name="l00452"></a><span class="lineno">  452</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: enable sr write failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00453"></a><span class="lineno">  453</span>&#160;            (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00454"></a><span class="lineno">  454</span>&#160;           </div>
-<div class="line"><a name="l00455"></a><span class="lineno">  455</span>&#160;            <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00456"></a><span class="lineno">  456</span>&#160;        }</div>
-<div class="line"><a name="l00457"></a><span class="lineno">  457</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: check enable sr write %s.\n&quot;</span>, res == 0 ? <span class="stringliteral">&quot;ok&quot;</span> : <span class="stringliteral">&quot;error&quot;</span>);</div>
-<div class="line"><a name="l00458"></a><span class="lineno">  458</span>&#160;        </div>
-<div class="line"><a name="l00459"></a><span class="lineno">  459</span>&#160;        <span class="comment">/* w25qxx_erase_program_suspend test */</span></div>
-<div class="line"><a name="l00460"></a><span class="lineno">  460</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_erase_program_suspend test.\n&quot;</span>);</div>
-<div class="line"><a name="l00461"></a><span class="lineno">  461</span>&#160;        </div>
-<div class="line"><a name="l00462"></a><span class="lineno">  462</span>&#160;        <span class="comment">/* erase program suspend */</span></div>
-<div class="line"><a name="l00463"></a><span class="lineno">  463</span>&#160;        res = <a class="code" href="group__w25qxx__advance__driver.html#gac7fbabc574c250eec100be861f5918ff">w25qxx_erase_program_suspend</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00464"></a><span class="lineno">  464</span>&#160;        <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00465"></a><span class="lineno">  465</span>&#160;        {</div>
-<div class="line"><a name="l00466"></a><span class="lineno">  466</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: erase program suspend failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00467"></a><span class="lineno">  467</span>&#160;            (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00468"></a><span class="lineno">  468</span>&#160;           </div>
-<div class="line"><a name="l00469"></a><span class="lineno">  469</span>&#160;            <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00470"></a><span class="lineno">  470</span>&#160;        }</div>
-<div class="line"><a name="l00471"></a><span class="lineno">  471</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: check erase program suspend %s.\n&quot;</span>, res == 0 ? <span class="stringliteral">&quot;ok&quot;</span> : <span class="stringliteral">&quot;error&quot;</span>);</div>
-<div class="line"><a name="l00472"></a><span class="lineno">  472</span>&#160;        </div>
-<div class="line"><a name="l00473"></a><span class="lineno">  473</span>&#160;        <span class="comment">/* w25qxx_erase_program_suspend test */</span></div>
-<div class="line"><a name="l00474"></a><span class="lineno">  474</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_erase_program_suspend test.\n&quot;</span>);</div>
-<div class="line"><a name="l00475"></a><span class="lineno">  475</span>&#160;        </div>
-<div class="line"><a name="l00476"></a><span class="lineno">  476</span>&#160;        <span class="comment">/* erase program resume */</span></div>
-<div class="line"><a name="l00477"></a><span class="lineno">  477</span>&#160;        res = <a class="code" href="group__w25qxx__advance__driver.html#ga05c69ac66309544eba4ff38a69f24c00">w25qxx_erase_program_resume</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00478"></a><span class="lineno">  478</span>&#160;        <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00479"></a><span class="lineno">  479</span>&#160;        {</div>
-<div class="line"><a name="l00480"></a><span class="lineno">  480</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: erase program resume failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00481"></a><span class="lineno">  481</span>&#160;            (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00482"></a><span class="lineno">  482</span>&#160;           </div>
-<div class="line"><a name="l00483"></a><span class="lineno">  483</span>&#160;            <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00484"></a><span class="lineno">  484</span>&#160;        }</div>
-<div class="line"><a name="l00485"></a><span class="lineno">  485</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: check erase program resume %s.\n&quot;</span>, res == 0 ? <span class="stringliteral">&quot;ok&quot;</span> : <span class="stringliteral">&quot;error&quot;</span>);</div>
-<div class="line"><a name="l00486"></a><span class="lineno">  486</span>&#160;        </div>
-<div class="line"><a name="l00487"></a><span class="lineno">  487</span>&#160;        <span class="comment">/* w25qxx_global_block_lock test */</span></div>
-<div class="line"><a name="l00488"></a><span class="lineno">  488</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_global_block_lock test.\n&quot;</span>);</div>
-<div class="line"><a name="l00489"></a><span class="lineno">  489</span>&#160;        </div>
-<div class="line"><a name="l00490"></a><span class="lineno">  490</span>&#160;        <span class="comment">/* global block lock */</span></div>
-<div class="line"><a name="l00491"></a><span class="lineno">  491</span>&#160;        res = <a class="code" href="group__w25qxx__advance__driver.html#gab5579bc42bc07a7657848140888a817c">w25qxx_global_block_lock</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00492"></a><span class="lineno">  492</span>&#160;        <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00493"></a><span class="lineno">  493</span>&#160;        {</div>
-<div class="line"><a name="l00494"></a><span class="lineno">  494</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: global block lock failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00495"></a><span class="lineno">  495</span>&#160;            (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00496"></a><span class="lineno">  496</span>&#160;           </div>
-<div class="line"><a name="l00497"></a><span class="lineno">  497</span>&#160;            <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00498"></a><span class="lineno">  498</span>&#160;        }</div>
-<div class="line"><a name="l00499"></a><span class="lineno">  499</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: check global block lock %s.\n&quot;</span>, res == 0 ? <span class="stringliteral">&quot;ok&quot;</span> : <span class="stringliteral">&quot;error&quot;</span>);</div>
-<div class="line"><a name="l00500"></a><span class="lineno">  500</span>&#160;        </div>
-<div class="line"><a name="l00501"></a><span class="lineno">  501</span>&#160;        <span class="comment">/* w25qxx_global_block_unlock test */</span></div>
-<div class="line"><a name="l00502"></a><span class="lineno">  502</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_global_block_unlock test.\n&quot;</span>);</div>
-<div class="line"><a name="l00503"></a><span class="lineno">  503</span>&#160;        </div>
-<div class="line"><a name="l00504"></a><span class="lineno">  504</span>&#160;        <span class="comment">/* global block unlock */</span></div>
-<div class="line"><a name="l00505"></a><span class="lineno">  505</span>&#160;        res = <a class="code" href="group__w25qxx__advance__driver.html#ga6d62f7d14945cfde7cde7a0e9a4e3afb">w25qxx_global_block_unlock</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00506"></a><span class="lineno">  506</span>&#160;        <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00507"></a><span class="lineno">  507</span>&#160;        {</div>
-<div class="line"><a name="l00508"></a><span class="lineno">  508</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: global block unlock failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00509"></a><span class="lineno">  509</span>&#160;            (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00510"></a><span class="lineno">  510</span>&#160;           </div>
-<div class="line"><a name="l00511"></a><span class="lineno">  511</span>&#160;            <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00512"></a><span class="lineno">  512</span>&#160;        }</div>
-<div class="line"><a name="l00513"></a><span class="lineno">  513</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: check global block unlock %s.\n&quot;</span>, res == 0 ? <span class="stringliteral">&quot;ok&quot;</span> : <span class="stringliteral">&quot;error&quot;</span>);</div>
-<div class="line"><a name="l00514"></a><span class="lineno">  514</span>&#160;        </div>
-<div class="line"><a name="l00515"></a><span class="lineno">  515</span>&#160;        <span class="comment">/* w25qxx_individual_block_lock test */</span></div>
-<div class="line"><a name="l00516"></a><span class="lineno">  516</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_individual_block_lock test.\n&quot;</span>);</div>
-<div class="line"><a name="l00517"></a><span class="lineno">  517</span>&#160;        </div>
-<div class="line"><a name="l00518"></a><span class="lineno">  518</span>&#160;        <span class="comment">/* individual block lock */</span></div>
-<div class="line"><a name="l00519"></a><span class="lineno">  519</span>&#160;        res = <a class="code" href="group__w25qxx__advance__driver.html#ga4f00c2c169cb7c3084841c6cd795e76b">w25qxx_individual_block_lock</a>(&amp;gs_handle, 0x00000000);</div>
-<div class="line"><a name="l00520"></a><span class="lineno">  520</span>&#160;        <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00521"></a><span class="lineno">  521</span>&#160;        {</div>
-<div class="line"><a name="l00522"></a><span class="lineno">  522</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: individual block lock failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00523"></a><span class="lineno">  523</span>&#160;            (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00524"></a><span class="lineno">  524</span>&#160;           </div>
-<div class="line"><a name="l00525"></a><span class="lineno">  525</span>&#160;            <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00526"></a><span class="lineno">  526</span>&#160;        }</div>
-<div class="line"><a name="l00527"></a><span class="lineno">  527</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: check individual block lock %s.\n&quot;</span>, res == 0 ? <span class="stringliteral">&quot;ok&quot;</span> : <span class="stringliteral">&quot;error&quot;</span>);</div>
-<div class="line"><a name="l00528"></a><span class="lineno">  528</span>&#160;        </div>
-<div class="line"><a name="l00529"></a><span class="lineno">  529</span>&#160;        <span class="comment">/* w25qxx_read_block_lock test */</span></div>
-<div class="line"><a name="l00530"></a><span class="lineno">  530</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_read_block_lock test.\n&quot;</span>);</div>
-<div class="line"><a name="l00531"></a><span class="lineno">  531</span>&#160;        </div>
-<div class="line"><a name="l00532"></a><span class="lineno">  532</span>&#160;        res = <a class="code" href="group__w25qxx__advance__driver.html#ga59e655ca78a175037ca810bbc8539a96">w25qxx_read_block_lock</a>(&amp;gs_handle, 0x00000000, (uint8_t *)&amp;status);</div>
-<div class="line"><a name="l00533"></a><span class="lineno">  533</span>&#160;        <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00534"></a><span class="lineno">  534</span>&#160;        {</div>
-<div class="line"><a name="l00535"></a><span class="lineno">  535</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: read block lock failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00536"></a><span class="lineno">  536</span>&#160;            (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00537"></a><span class="lineno">  537</span>&#160;           </div>
-<div class="line"><a name="l00538"></a><span class="lineno">  538</span>&#160;            <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00539"></a><span class="lineno">  539</span>&#160;        }</div>
-<div class="line"><a name="l00540"></a><span class="lineno">  540</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: check read block lock %s with %d.\n&quot;</span>, res == 0 ? <span class="stringliteral">&quot;ok&quot;</span> : <span class="stringliteral">&quot;error&quot;</span>, status);</div>
-<div class="line"><a name="l00541"></a><span class="lineno">  541</span>&#160;        </div>
-<div class="line"><a name="l00542"></a><span class="lineno">  542</span>&#160;        <span class="comment">/* w25qxx_individual_block_unlock test */</span></div>
-<div class="line"><a name="l00543"></a><span class="lineno">  543</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_individual_block_unlock test.\n&quot;</span>);</div>
-<div class="line"><a name="l00544"></a><span class="lineno">  544</span>&#160;        </div>
-<div class="line"><a name="l00545"></a><span class="lineno">  545</span>&#160;        <span class="comment">/* individual block unlock */</span></div>
-<div class="line"><a name="l00546"></a><span class="lineno">  546</span>&#160;        res = <a class="code" href="group__w25qxx__advance__driver.html#ga7f88cedf7619071b3235ba094915b2a7">w25qxx_individual_block_unlock</a>(&amp;gs_handle, 0x00000000);</div>
-<div class="line"><a name="l00547"></a><span class="lineno">  547</span>&#160;        <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00548"></a><span class="lineno">  548</span>&#160;        {</div>
-<div class="line"><a name="l00549"></a><span class="lineno">  549</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: individual block unlock failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00550"></a><span class="lineno">  550</span>&#160;            (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00551"></a><span class="lineno">  551</span>&#160;           </div>
-<div class="line"><a name="l00552"></a><span class="lineno">  552</span>&#160;            <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00553"></a><span class="lineno">  553</span>&#160;        }</div>
-<div class="line"><a name="l00554"></a><span class="lineno">  554</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: check individual block unlock %s.\n&quot;</span>, res == 0 ? <span class="stringliteral">&quot;ok&quot;</span> : <span class="stringliteral">&quot;error&quot;</span>);</div>
-<div class="line"><a name="l00555"></a><span class="lineno">  555</span>&#160; </div>
-<div class="line"><a name="l00556"></a><span class="lineno">  556</span>&#160;        <span class="comment">/* w25qxx_set_burst_with_wrap test */</span></div>
-<div class="line"><a name="l00557"></a><span class="lineno">  557</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_set_burst_with_wrap test.\n&quot;</span>);</div>
-<div class="line"><a name="l00558"></a><span class="lineno">  558</span>&#160;        </div>
-<div class="line"><a name="l00559"></a><span class="lineno">  559</span>&#160;        <span class="comment">/* set burst with wrap */</span></div>
-<div class="line"><a name="l00560"></a><span class="lineno">  560</span>&#160;        res = <a class="code" href="group__w25qxx__advance__driver.html#gac19c1d0f3fd48968ea2a93c1dbe3d75d">w25qxx_set_burst_with_wrap</a>(&amp;gs_handle, <a class="code" href="group__w25qxx__advance__driver.html#gga94bbae2bf8906903e8dc2a28c490723dae39a7ea65512a56d40aad2990d55815d">W25QXX_BURST_WRAP_NONE</a>);</div>
-<div class="line"><a name="l00561"></a><span class="lineno">  561</span>&#160;        <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00562"></a><span class="lineno">  562</span>&#160;        {</div>
-<div class="line"><a name="l00563"></a><span class="lineno">  563</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set burst with wrap failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00564"></a><span class="lineno">  564</span>&#160;            (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00565"></a><span class="lineno">  565</span>&#160;           </div>
-<div class="line"><a name="l00566"></a><span class="lineno">  566</span>&#160;            <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00567"></a><span class="lineno">  567</span>&#160;        }</div>
-<div class="line"><a name="l00568"></a><span class="lineno">  568</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: check set burst with wrap %s.\n&quot;</span>, res == 0 ? <span class="stringliteral">&quot;ok&quot;</span> : <span class="stringliteral">&quot;error&quot;</span>);</div>
-<div class="line"><a name="l00569"></a><span class="lineno">  569</span>&#160;        </div>
-<div class="line"><a name="l00570"></a><span class="lineno">  570</span>&#160;        <span class="comment">/* w25qxx_power_down test */</span></div>
-<div class="line"><a name="l00571"></a><span class="lineno">  571</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_power_down test.\n&quot;</span>);</div>
-<div class="line"><a name="l00572"></a><span class="lineno">  572</span>&#160;        </div>
-<div class="line"><a name="l00573"></a><span class="lineno">  573</span>&#160;        <span class="comment">/* power down */</span></div>
-<div class="line"><a name="l00574"></a><span class="lineno">  574</span>&#160;        res = <a class="code" href="group__w25qxx__basic__driver.html#gae4effce67e36120325e3c7b245b90142">w25qxx_power_down</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00575"></a><span class="lineno">  575</span>&#160;        <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00576"></a><span class="lineno">  576</span>&#160;        {</div>
-<div class="line"><a name="l00577"></a><span class="lineno">  577</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: power down failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00578"></a><span class="lineno">  578</span>&#160;            (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00579"></a><span class="lineno">  579</span>&#160;           </div>
-<div class="line"><a name="l00580"></a><span class="lineno">  580</span>&#160;            <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00581"></a><span class="lineno">  581</span>&#160;        }</div>
-<div class="line"><a name="l00582"></a><span class="lineno">  582</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga964fa232abf98737cb98458eebfff82c">w25qxx_interface_delay_ms</a>(10);</div>
-<div class="line"><a name="l00583"></a><span class="lineno">  583</span>&#160;        </div>
-<div class="line"><a name="l00584"></a><span class="lineno">  584</span>&#160;        <span class="comment">/* w25qxx_release_power_down test */</span></div>
-<div class="line"><a name="l00585"></a><span class="lineno">  585</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_release_power_down test.\n&quot;</span>);</div>
-<div class="line"><a name="l00586"></a><span class="lineno">  586</span>&#160;        </div>
-<div class="line"><a name="l00587"></a><span class="lineno">  587</span>&#160;        <span class="comment">/* release power down */</span></div>
-<div class="line"><a name="l00588"></a><span class="lineno">  588</span>&#160;        res = <a class="code" href="group__w25qxx__basic__driver.html#ga09c9b52877516a2ee4c080dc249e7331">w25qxx_release_power_down</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00589"></a><span class="lineno">  589</span>&#160;        <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00590"></a><span class="lineno">  590</span>&#160;        {</div>
-<div class="line"><a name="l00591"></a><span class="lineno">  591</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: release power down failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00592"></a><span class="lineno">  592</span>&#160;            (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00593"></a><span class="lineno">  593</span>&#160;           </div>
-<div class="line"><a name="l00594"></a><span class="lineno">  594</span>&#160;            <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00595"></a><span class="lineno">  595</span>&#160;        }</div>
-<div class="line"><a name="l00596"></a><span class="lineno">  596</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga964fa232abf98737cb98458eebfff82c">w25qxx_interface_delay_ms</a>(10);</div>
-<div class="line"><a name="l00597"></a><span class="lineno">  597</span>&#160;        </div>
-<div class="line"><a name="l00598"></a><span class="lineno">  598</span>&#160;        <span class="comment">/* w25qxx_enable_reset test */</span></div>
-<div class="line"><a name="l00599"></a><span class="lineno">  599</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_enable_reset test.\n&quot;</span>);</div>
-<div class="line"><a name="l00600"></a><span class="lineno">  600</span>&#160;        </div>
-<div class="line"><a name="l00601"></a><span class="lineno">  601</span>&#160;        <span class="comment">/* enable reset */</span></div>
-<div class="line"><a name="l00602"></a><span class="lineno">  602</span>&#160;        res = <a class="code" href="group__w25qxx__advance__driver.html#gab55b4e071e20feb58584025287949438">w25qxx_enable_reset</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00603"></a><span class="lineno">  603</span>&#160;        <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00604"></a><span class="lineno">  604</span>&#160;        {</div>
-<div class="line"><a name="l00605"></a><span class="lineno">  605</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: enable reset failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00606"></a><span class="lineno">  606</span>&#160;            (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00607"></a><span class="lineno">  607</span>&#160;           </div>
-<div class="line"><a name="l00608"></a><span class="lineno">  608</span>&#160;            <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00609"></a><span class="lineno">  609</span>&#160;        }</div>
-<div class="line"><a name="l00610"></a><span class="lineno">  610</span>&#160;        </div>
-<div class="line"><a name="l00611"></a><span class="lineno">  611</span>&#160;        <span class="comment">/* w25qxx_reset_device test */</span></div>
-<div class="line"><a name="l00612"></a><span class="lineno">  612</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_reset_device test.\n&quot;</span>);</div>
-<div class="line"><a name="l00613"></a><span class="lineno">  613</span>&#160;        </div>
-<div class="line"><a name="l00614"></a><span class="lineno">  614</span>&#160;        <span class="comment">/* reset device */</span></div>
-<div class="line"><a name="l00615"></a><span class="lineno">  615</span>&#160;        res = <a class="code" href="group__w25qxx__advance__driver.html#ga2abebfe2a8d9377eb88448ffca73f222">w25qxx_reset_device</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00616"></a><span class="lineno">  616</span>&#160;        <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00617"></a><span class="lineno">  617</span>&#160;        {</div>
-<div class="line"><a name="l00618"></a><span class="lineno">  618</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: reset device failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00619"></a><span class="lineno">  619</span>&#160;            (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00620"></a><span class="lineno">  620</span>&#160;           </div>
-<div class="line"><a name="l00621"></a><span class="lineno">  621</span>&#160;            <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00622"></a><span class="lineno">  622</span>&#160;        }</div>
-<div class="line"><a name="l00623"></a><span class="lineno">  623</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga964fa232abf98737cb98458eebfff82c">w25qxx_interface_delay_ms</a>(10);</div>
-<div class="line"><a name="l00624"></a><span class="lineno">  624</span>&#160;        </div>
-<div class="line"><a name="l00625"></a><span class="lineno">  625</span>&#160;        <span class="keywordflow">if</span> (type &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)</div>
-<div class="line"><a name="l00626"></a><span class="lineno">  626</span>&#160;        {</div>
-<div class="line"><a name="l00627"></a><span class="lineno">  627</span>&#160;            <span class="comment">/* set address mode 4 byte */</span></div>
-<div class="line"><a name="l00628"></a><span class="lineno">  628</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set address mode 4 byte.\n&quot;</span>);</div>
-<div class="line"><a name="l00629"></a><span class="lineno">  629</span>&#160;            </div>
-<div class="line"><a name="l00630"></a><span class="lineno">  630</span>&#160;            <span class="comment">/* set address mode 4 byte */</span></div>
-<div class="line"><a name="l00631"></a><span class="lineno">  631</span>&#160;            res = <a class="code" href="group__w25qxx__basic__driver.html#gad0e125eff304ce66fb3956d2c8c80656">w25qxx_set_address_mode</a>(&amp;gs_handle, <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>);</div>
-<div class="line"><a name="l00632"></a><span class="lineno">  632</span>&#160;            <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00633"></a><span class="lineno">  633</span>&#160;            {</div>
-<div class="line"><a name="l00634"></a><span class="lineno">  634</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set address mode failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00635"></a><span class="lineno">  635</span>&#160;                (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00636"></a><span class="lineno">  636</span>&#160;               </div>
-<div class="line"><a name="l00637"></a><span class="lineno">  637</span>&#160;                <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00638"></a><span class="lineno">  638</span>&#160;            }</div>
-<div class="line"><a name="l00639"></a><span class="lineno">  639</span>&#160;            </div>
-<div class="line"><a name="l00640"></a><span class="lineno">  640</span>&#160;            <span class="comment">/* w25qxx_get_unique_id test */</span></div>
-<div class="line"><a name="l00641"></a><span class="lineno">  641</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_get_unique_id test.\n&quot;</span>);</div>
-<div class="line"><a name="l00642"></a><span class="lineno">  642</span>&#160;            </div>
-<div class="line"><a name="l00643"></a><span class="lineno">  643</span>&#160;            <span class="comment">/* get unique id */</span></div>
-<div class="line"><a name="l00644"></a><span class="lineno">  644</span>&#160;            res = <a class="code" href="group__w25qxx__advance__driver.html#ga11af244389478de68a6777076ee82d69">w25qxx_get_unique_id</a>(&amp;gs_handle, (uint8_t *)<span class="keywordtype">id</span>);</div>
-<div class="line"><a name="l00645"></a><span class="lineno">  645</span>&#160;            <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00646"></a><span class="lineno">  646</span>&#160;            {</div>
-<div class="line"><a name="l00647"></a><span class="lineno">  647</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: get unique id failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00648"></a><span class="lineno">  648</span>&#160;                (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00649"></a><span class="lineno">  649</span>&#160;               </div>
-<div class="line"><a name="l00650"></a><span class="lineno">  650</span>&#160;                <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00651"></a><span class="lineno">  651</span>&#160;            }</div>
-<div class="line"><a name="l00652"></a><span class="lineno">  652</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: unique id 0x%02X 0x%02X 0x%02X 0x%02X 0x%02X 0x%02X 0x%02X 0x%02X.\n&quot;</span>, </div>
-<div class="line"><a name="l00653"></a><span class="lineno">  653</span>&#160;                                         <span class="keywordtype">id</span>[0], <span class="keywordtype">id</span>[1], <span class="keywordtype">id</span>[2], <span class="keywordtype">id</span>[3], <span class="keywordtype">id</span>[4], <span class="keywordtype">id</span>[5], <span class="keywordtype">id</span>[6], <span class="keywordtype">id</span>[7]);</div>
-<div class="line"><a name="l00654"></a><span class="lineno">  654</span>&#160;                                         </div>
-<div class="line"><a name="l00655"></a><span class="lineno">  655</span>&#160;            <span class="comment">/* w25qxx_individual_block_lock test */</span></div>
-<div class="line"><a name="l00656"></a><span class="lineno">  656</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_individual_block_lock test.\n&quot;</span>);</div>
-<div class="line"><a name="l00657"></a><span class="lineno">  657</span>&#160;            </div>
-<div class="line"><a name="l00658"></a><span class="lineno">  658</span>&#160;            <span class="comment">/* individual block lock */</span></div>
-<div class="line"><a name="l00659"></a><span class="lineno">  659</span>&#160;            res = <a class="code" href="group__w25qxx__advance__driver.html#ga4f00c2c169cb7c3084841c6cd795e76b">w25qxx_individual_block_lock</a>(&amp;gs_handle, 0x00000000);</div>
-<div class="line"><a name="l00660"></a><span class="lineno">  660</span>&#160;            <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00661"></a><span class="lineno">  661</span>&#160;            {</div>
-<div class="line"><a name="l00662"></a><span class="lineno">  662</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: individual block lock failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00663"></a><span class="lineno">  663</span>&#160;                (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00664"></a><span class="lineno">  664</span>&#160;               </div>
-<div class="line"><a name="l00665"></a><span class="lineno">  665</span>&#160;                <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00666"></a><span class="lineno">  666</span>&#160;            }</div>
-<div class="line"><a name="l00667"></a><span class="lineno">  667</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: check individual block lock %s.\n&quot;</span>, res == 0 ? <span class="stringliteral">&quot;ok&quot;</span> : <span class="stringliteral">&quot;error&quot;</span>);</div>
-<div class="line"><a name="l00668"></a><span class="lineno">  668</span>&#160;            </div>
-<div class="line"><a name="l00669"></a><span class="lineno">  669</span>&#160;            <span class="comment">/* w25qxx_read_block_lock test */</span></div>
-<div class="line"><a name="l00670"></a><span class="lineno">  670</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_read_block_lock test.\n&quot;</span>);</div>
-<div class="line"><a name="l00671"></a><span class="lineno">  671</span>&#160;            </div>
-<div class="line"><a name="l00672"></a><span class="lineno">  672</span>&#160;            res = <a class="code" href="group__w25qxx__advance__driver.html#ga59e655ca78a175037ca810bbc8539a96">w25qxx_read_block_lock</a>(&amp;gs_handle, 0x00000000, (uint8_t *)&amp;status);</div>
-<div class="line"><a name="l00673"></a><span class="lineno">  673</span>&#160;            <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00674"></a><span class="lineno">  674</span>&#160;            {</div>
-<div class="line"><a name="l00675"></a><span class="lineno">  675</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: read block lock failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00676"></a><span class="lineno">  676</span>&#160;                (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00677"></a><span class="lineno">  677</span>&#160;               </div>
-<div class="line"><a name="l00678"></a><span class="lineno">  678</span>&#160;                <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00679"></a><span class="lineno">  679</span>&#160;            }</div>
-<div class="line"><a name="l00680"></a><span class="lineno">  680</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: check read block lock %s with %d.\n&quot;</span>, res == 0 ? <span class="stringliteral">&quot;ok&quot;</span> : <span class="stringliteral">&quot;error&quot;</span>, status);</div>
-<div class="line"><a name="l00681"></a><span class="lineno">  681</span>&#160;            </div>
-<div class="line"><a name="l00682"></a><span class="lineno">  682</span>&#160;            <span class="comment">/* w25qxx_individual_block_unlock test */</span></div>
-<div class="line"><a name="l00683"></a><span class="lineno">  683</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_individual_block_unlock test.\n&quot;</span>);</div>
-<div class="line"><a name="l00684"></a><span class="lineno">  684</span>&#160;            </div>
-<div class="line"><a name="l00685"></a><span class="lineno">  685</span>&#160;            <span class="comment">/* individual block unlock */</span></div>
-<div class="line"><a name="l00686"></a><span class="lineno">  686</span>&#160;            res = <a class="code" href="group__w25qxx__advance__driver.html#ga7f88cedf7619071b3235ba094915b2a7">w25qxx_individual_block_unlock</a>(&amp;gs_handle, 0x00000000);</div>
-<div class="line"><a name="l00687"></a><span class="lineno">  687</span>&#160;            <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00688"></a><span class="lineno">  688</span>&#160;            {</div>
-<div class="line"><a name="l00689"></a><span class="lineno">  689</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: individual block unlock failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00690"></a><span class="lineno">  690</span>&#160;                (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00691"></a><span class="lineno">  691</span>&#160;               </div>
-<div class="line"><a name="l00692"></a><span class="lineno">  692</span>&#160;                <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00693"></a><span class="lineno">  693</span>&#160;            }</div>
-<div class="line"><a name="l00694"></a><span class="lineno">  694</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: check individual block unlock %s.\n&quot;</span>, res == 0 ? <span class="stringliteral">&quot;ok&quot;</span> : <span class="stringliteral">&quot;error&quot;</span>);</div>
-<div class="line"><a name="l00695"></a><span class="lineno">  695</span>&#160;            </div>
-<div class="line"><a name="l00696"></a><span class="lineno">  696</span>&#160;            <span class="comment">/* set address mode 3 byte */</span></div>
-<div class="line"><a name="l00697"></a><span class="lineno">  697</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set address mode 3 byte.\n&quot;</span>);</div>
-<div class="line"><a name="l00698"></a><span class="lineno">  698</span>&#160;            </div>
-<div class="line"><a name="l00699"></a><span class="lineno">  699</span>&#160;            <span class="comment">/* set address mode 3 byte */</span></div>
-<div class="line"><a name="l00700"></a><span class="lineno">  700</span>&#160;            res = <a class="code" href="group__w25qxx__basic__driver.html#gad0e125eff304ce66fb3956d2c8c80656">w25qxx_set_address_mode</a>(&amp;gs_handle, <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>);</div>
-<div class="line"><a name="l00701"></a><span class="lineno">  701</span>&#160;            <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00702"></a><span class="lineno">  702</span>&#160;            {</div>
-<div class="line"><a name="l00703"></a><span class="lineno">  703</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set address mode failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00704"></a><span class="lineno">  704</span>&#160;                (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00705"></a><span class="lineno">  705</span>&#160;               </div>
-<div class="line"><a name="l00706"></a><span class="lineno">  706</span>&#160;                <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00707"></a><span class="lineno">  707</span>&#160;            }</div>
-<div class="line"><a name="l00708"></a><span class="lineno">  708</span>&#160;        }</div>
-<div class="line"><a name="l00709"></a><span class="lineno">  709</span>&#160;    }</div>
-<div class="line"><a name="l00710"></a><span class="lineno">  710</span>&#160;    <span class="keywordflow">else</span></div>
-<div class="line"><a name="l00711"></a><span class="lineno">  711</span>&#160;    {</div>
-<div class="line"><a name="l00712"></a><span class="lineno">  712</span>&#160;        <span class="comment">/* w25qxx_get_manufacturer_device_id test */</span></div>
-<div class="line"><a name="l00713"></a><span class="lineno">  713</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_get_manufacturer_device_id test.\n&quot;</span>);</div>
-<div class="line"><a name="l00714"></a><span class="lineno">  714</span>&#160;        </div>
-<div class="line"><a name="l00715"></a><span class="lineno">  715</span>&#160;        <span class="comment">/* get manufacturer device id */</span></div>
-<div class="line"><a name="l00716"></a><span class="lineno">  716</span>&#160;        res = <a class="code" href="group__w25qxx__basic__driver.html#ga921836a777b082ff4d0f322ccfda6b22">w25qxx_get_manufacturer_device_id</a>(&amp;gs_handle, (uint8_t *)&amp;manufacturer, (uint8_t *)device_id);</div>
-<div class="line"><a name="l00717"></a><span class="lineno">  717</span>&#160;        <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00718"></a><span class="lineno">  718</span>&#160;        {</div>
-<div class="line"><a name="l00719"></a><span class="lineno">  719</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: get manufacturer device id failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00720"></a><span class="lineno">  720</span>&#160;            (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00721"></a><span class="lineno">  721</span>&#160;           </div>
-<div class="line"><a name="l00722"></a><span class="lineno">  722</span>&#160;            <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00723"></a><span class="lineno">  723</span>&#160;        }</div>
-<div class="line"><a name="l00724"></a><span class="lineno">  724</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: manufacturer is 0x%02X, device id is 0x%02X.\n&quot;</span>, manufacturer, device_id[0]);</div>
-<div class="line"><a name="l00725"></a><span class="lineno">  725</span>&#160;        </div>
-<div class="line"><a name="l00726"></a><span class="lineno">  726</span>&#160;        <span class="comment">/* w25qxx_get_jedec_id test */</span></div>
-<div class="line"><a name="l00727"></a><span class="lineno">  727</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_get_jedec_id test.\n&quot;</span>);</div>
-<div class="line"><a name="l00728"></a><span class="lineno">  728</span>&#160;        </div>
-<div class="line"><a name="l00729"></a><span class="lineno">  729</span>&#160;        <span class="comment">/* get jedec id */</span></div>
-<div class="line"><a name="l00730"></a><span class="lineno">  730</span>&#160;        res = <a class="code" href="group__w25qxx__advance__driver.html#ga8a93ba14a032e10a27f1495fdcf56058">w25qxx_get_jedec_id</a>(&amp;gs_handle, (uint8_t *)&amp;manufacturer, (uint8_t *)device_id);</div>
-<div class="line"><a name="l00731"></a><span class="lineno">  731</span>&#160;        <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00732"></a><span class="lineno">  732</span>&#160;        {</div>
-<div class="line"><a name="l00733"></a><span class="lineno">  733</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: get jedec id failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00734"></a><span class="lineno">  734</span>&#160;            (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00735"></a><span class="lineno">  735</span>&#160;           </div>
-<div class="line"><a name="l00736"></a><span class="lineno">  736</span>&#160;            <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00737"></a><span class="lineno">  737</span>&#160;        }</div>
-<div class="line"><a name="l00738"></a><span class="lineno">  738</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: manufacturer is 0x%02X, device id is 0x%02X 0x%02X.\n&quot;</span>, manufacturer, </div>
-<div class="line"><a name="l00739"></a><span class="lineno">  739</span>&#160;                                     device_id[0], device_id[1]);</div>
-<div class="line"><a name="l00740"></a><span class="lineno">  740</span>&#160;        </div>
-<div class="line"><a name="l00741"></a><span class="lineno">  741</span>&#160;        <span class="comment">/* w25qxx_set_status1/w25qxx_get_status1 test */</span></div>
-<div class="line"><a name="l00742"></a><span class="lineno">  742</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_set_status1/w25qxx_get_status1 test.\n&quot;</span>);</div>
-<div class="line"><a name="l00743"></a><span class="lineno">  743</span>&#160;        </div>
-<div class="line"><a name="l00744"></a><span class="lineno">  744</span>&#160;        <span class="comment">/* set status1 */</span></div>
-<div class="line"><a name="l00745"></a><span class="lineno">  745</span>&#160;        res = <a class="code" href="group__w25qxx__advance__driver.html#ga246e0bb07c8bbb39731f17906779c012">w25qxx_set_status1</a>(&amp;gs_handle, 0x00);</div>
-<div class="line"><a name="l00746"></a><span class="lineno">  746</span>&#160;        <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00747"></a><span class="lineno">  747</span>&#160;        {</div>
-<div class="line"><a name="l00748"></a><span class="lineno">  748</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set status1 failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00749"></a><span class="lineno">  749</span>&#160;            (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00750"></a><span class="lineno">  750</span>&#160;           </div>
-<div class="line"><a name="l00751"></a><span class="lineno">  751</span>&#160;            <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00752"></a><span class="lineno">  752</span>&#160;        }</div>
-<div class="line"><a name="l00753"></a><span class="lineno">  753</span>&#160;        </div>
-<div class="line"><a name="l00754"></a><span class="lineno">  754</span>&#160;        <span class="comment">/* get status1 */</span></div>
-<div class="line"><a name="l00755"></a><span class="lineno">  755</span>&#160;        res = <a class="code" href="group__w25qxx__advance__driver.html#gaa77d2b00b4fb9cf586f77ace827ea7c6">w25qxx_get_status1</a>(&amp;gs_handle, (uint8_t *)&amp;status);</div>
-<div class="line"><a name="l00756"></a><span class="lineno">  756</span>&#160;        <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00757"></a><span class="lineno">  757</span>&#160;        {</div>
-<div class="line"><a name="l00758"></a><span class="lineno">  758</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: get status1 failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00759"></a><span class="lineno">  759</span>&#160;            (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00760"></a><span class="lineno">  760</span>&#160;           </div>
-<div class="line"><a name="l00761"></a><span class="lineno">  761</span>&#160;            <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00762"></a><span class="lineno">  762</span>&#160;        }</div>
-<div class="line"><a name="l00763"></a><span class="lineno">  763</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: status1 is 0x%02X.\n&quot;</span>, status);</div>
-<div class="line"><a name="l00764"></a><span class="lineno">  764</span>&#160;        </div>
-<div class="line"><a name="l00765"></a><span class="lineno">  765</span>&#160;        <span class="comment">/* w25qxx_set_status2/w25qxx_get_status2 test */</span></div>
-<div class="line"><a name="l00766"></a><span class="lineno">  766</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_set_status2/w25qxx_get_status2 test.\n&quot;</span>);</div>
-<div class="line"><a name="l00767"></a><span class="lineno">  767</span>&#160;        </div>
-<div class="line"><a name="l00768"></a><span class="lineno">  768</span>&#160;        <span class="comment">/* set status2 */</span></div>
-<div class="line"><a name="l00769"></a><span class="lineno">  769</span>&#160;        res = <a class="code" href="group__w25qxx__advance__driver.html#gaab5f28e8930d50dbc2178e39bc9fa456">w25qxx_set_status2</a>(&amp;gs_handle, 0x02);</div>
-<div class="line"><a name="l00770"></a><span class="lineno">  770</span>&#160;        <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00771"></a><span class="lineno">  771</span>&#160;        {</div>
-<div class="line"><a name="l00772"></a><span class="lineno">  772</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set status2 failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00773"></a><span class="lineno">  773</span>&#160;            (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00774"></a><span class="lineno">  774</span>&#160;           </div>
-<div class="line"><a name="l00775"></a><span class="lineno">  775</span>&#160;            <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00776"></a><span class="lineno">  776</span>&#160;        }</div>
-<div class="line"><a name="l00777"></a><span class="lineno">  777</span>&#160;        </div>
-<div class="line"><a name="l00778"></a><span class="lineno">  778</span>&#160;        <span class="comment">/* get status2 */</span></div>
-<div class="line"><a name="l00779"></a><span class="lineno">  779</span>&#160;        res = <a class="code" href="group__w25qxx__advance__driver.html#gaa21237ecbd5951b8017799066e7db5d9">w25qxx_get_status2</a>(&amp;gs_handle, (uint8_t *)&amp;status);</div>
-<div class="line"><a name="l00780"></a><span class="lineno">  780</span>&#160;        <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00781"></a><span class="lineno">  781</span>&#160;        {</div>
-<div class="line"><a name="l00782"></a><span class="lineno">  782</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: get status2 failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00783"></a><span class="lineno">  783</span>&#160;            (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00784"></a><span class="lineno">  784</span>&#160;           </div>
-<div class="line"><a name="l00785"></a><span class="lineno">  785</span>&#160;            <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00786"></a><span class="lineno">  786</span>&#160;        }</div>
-<div class="line"><a name="l00787"></a><span class="lineno">  787</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: status2 is 0x%02X.\n&quot;</span>, status);</div>
-<div class="line"><a name="l00788"></a><span class="lineno">  788</span>&#160;        </div>
-<div class="line"><a name="l00789"></a><span class="lineno">  789</span>&#160;        <span class="comment">/* w25qxx_set_status3/w25qxx_get_status3 test */</span></div>
-<div class="line"><a name="l00790"></a><span class="lineno">  790</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_set_status3/w25qxx_get_status3 test.\n&quot;</span>);</div>
-<div class="line"><a name="l00791"></a><span class="lineno">  791</span>&#160;        </div>
-<div class="line"><a name="l00792"></a><span class="lineno">  792</span>&#160;        <span class="comment">/* set status3 */</span></div>
-<div class="line"><a name="l00793"></a><span class="lineno">  793</span>&#160;        res = <a class="code" href="group__w25qxx__advance__driver.html#gada897a6c6d6acb99f4dd4ff9b65ad8ee">w25qxx_set_status3</a>(&amp;gs_handle, 0x60);</div>
-<div class="line"><a name="l00794"></a><span class="lineno">  794</span>&#160;        <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00795"></a><span class="lineno">  795</span>&#160;        {</div>
-<div class="line"><a name="l00796"></a><span class="lineno">  796</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set status3 failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00797"></a><span class="lineno">  797</span>&#160;            (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00798"></a><span class="lineno">  798</span>&#160;           </div>
-<div class="line"><a name="l00799"></a><span class="lineno">  799</span>&#160;            <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00800"></a><span class="lineno">  800</span>&#160;        }</div>
-<div class="line"><a name="l00801"></a><span class="lineno">  801</span>&#160;        </div>
-<div class="line"><a name="l00802"></a><span class="lineno">  802</span>&#160;        <span class="comment">/* get status3 */</span></div>
-<div class="line"><a name="l00803"></a><span class="lineno">  803</span>&#160;        res = <a class="code" href="group__w25qxx__advance__driver.html#ga99cf6a325a00921d4531004f0c1d75b1">w25qxx_get_status3</a>(&amp;gs_handle, (uint8_t *)&amp;status);</div>
-<div class="line"><a name="l00804"></a><span class="lineno">  804</span>&#160;        <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00805"></a><span class="lineno">  805</span>&#160;        {</div>
-<div class="line"><a name="l00806"></a><span class="lineno">  806</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: get status3 failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00807"></a><span class="lineno">  807</span>&#160;            (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00808"></a><span class="lineno">  808</span>&#160;           </div>
-<div class="line"><a name="l00809"></a><span class="lineno">  809</span>&#160;            <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00810"></a><span class="lineno">  810</span>&#160;        }</div>
-<div class="line"><a name="l00811"></a><span class="lineno">  811</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: status3 is 0x%02X.\n&quot;</span>, status);</div>
-<div class="line"><a name="l00812"></a><span class="lineno">  812</span>&#160;        </div>
-<div class="line"><a name="l00813"></a><span class="lineno">  813</span>&#160;        <span class="comment">/* w25qxx_enable_write test */</span></div>
-<div class="line"><a name="l00814"></a><span class="lineno">  814</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_enable_write test.\n&quot;</span>);</div>
-<div class="line"><a name="l00815"></a><span class="lineno">  815</span>&#160;        </div>
-<div class="line"><a name="l00816"></a><span class="lineno">  816</span>&#160;        <span class="comment">/* enable write */</span></div>
-<div class="line"><a name="l00817"></a><span class="lineno">  817</span>&#160;        res = <a class="code" href="group__w25qxx__advance__driver.html#gaeb269123feec054eaaf70f2ffb5797a3">w25qxx_enable_write</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00818"></a><span class="lineno">  818</span>&#160;        <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00819"></a><span class="lineno">  819</span>&#160;        {</div>
-<div class="line"><a name="l00820"></a><span class="lineno">  820</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: enable write failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00821"></a><span class="lineno">  821</span>&#160;            (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00822"></a><span class="lineno">  822</span>&#160;           </div>
-<div class="line"><a name="l00823"></a><span class="lineno">  823</span>&#160;            <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00824"></a><span class="lineno">  824</span>&#160;        }</div>
-<div class="line"><a name="l00825"></a><span class="lineno">  825</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: check enable write %s.\n&quot;</span>, res == 0 ? <span class="stringliteral">&quot;ok&quot;</span> : <span class="stringliteral">&quot;error&quot;</span>);</div>
-<div class="line"><a name="l00826"></a><span class="lineno">  826</span>&#160;        </div>
-<div class="line"><a name="l00827"></a><span class="lineno">  827</span>&#160;        <span class="comment">/* w25qxx_disable_write test */</span></div>
-<div class="line"><a name="l00828"></a><span class="lineno">  828</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_disable_write test.\n&quot;</span>);</div>
-<div class="line"><a name="l00829"></a><span class="lineno">  829</span>&#160;        </div>
-<div class="line"><a name="l00830"></a><span class="lineno">  830</span>&#160;        <span class="comment">/* disable write */</span></div>
-<div class="line"><a name="l00831"></a><span class="lineno">  831</span>&#160;        res = <a class="code" href="group__w25qxx__advance__driver.html#gac16a31269277051baad6c28fe4254b4a">w25qxx_disable_write</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00832"></a><span class="lineno">  832</span>&#160;        <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00833"></a><span class="lineno">  833</span>&#160;        {</div>
-<div class="line"><a name="l00834"></a><span class="lineno">  834</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: disable write failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00835"></a><span class="lineno">  835</span>&#160;            (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00836"></a><span class="lineno">  836</span>&#160;           </div>
-<div class="line"><a name="l00837"></a><span class="lineno">  837</span>&#160;            <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00838"></a><span class="lineno">  838</span>&#160;        }</div>
-<div class="line"><a name="l00839"></a><span class="lineno">  839</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: check disable write %s.\n&quot;</span>, res == 0 ? <span class="stringliteral">&quot;ok&quot;</span> : <span class="stringliteral">&quot;error&quot;</span>);</div>
-<div class="line"><a name="l00840"></a><span class="lineno">  840</span>&#160;        </div>
-<div class="line"><a name="l00841"></a><span class="lineno">  841</span>&#160;        <span class="comment">/* w25qxx_enable_write test */</span></div>
-<div class="line"><a name="l00842"></a><span class="lineno">  842</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_enable_write test.\n&quot;</span>);</div>
-<div class="line"><a name="l00843"></a><span class="lineno">  843</span>&#160;        </div>
-<div class="line"><a name="l00844"></a><span class="lineno">  844</span>&#160;        <span class="comment">/* enable sr write */</span></div>
-<div class="line"><a name="l00845"></a><span class="lineno">  845</span>&#160;        res = <a class="code" href="group__w25qxx__advance__driver.html#ga0f8889d6a25c32e150a2ab30753d461d">w25qxx_enable_volatile_sr_write</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00846"></a><span class="lineno">  846</span>&#160;        <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00847"></a><span class="lineno">  847</span>&#160;        {</div>
-<div class="line"><a name="l00848"></a><span class="lineno">  848</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: enable sr write failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00849"></a><span class="lineno">  849</span>&#160;            (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00850"></a><span class="lineno">  850</span>&#160;           </div>
-<div class="line"><a name="l00851"></a><span class="lineno">  851</span>&#160;            <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00852"></a><span class="lineno">  852</span>&#160;        }</div>
-<div class="line"><a name="l00853"></a><span class="lineno">  853</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: check enable sr write %s.\n&quot;</span>, res == 0 ? <span class="stringliteral">&quot;ok&quot;</span> : <span class="stringliteral">&quot;error&quot;</span>);</div>
-<div class="line"><a name="l00854"></a><span class="lineno">  854</span>&#160;        </div>
-<div class="line"><a name="l00855"></a><span class="lineno">  855</span>&#160;        <span class="comment">/* w25qxx_erase_program_suspend test */</span></div>
-<div class="line"><a name="l00856"></a><span class="lineno">  856</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_erase_program_suspend test.\n&quot;</span>);</div>
-<div class="line"><a name="l00857"></a><span class="lineno">  857</span>&#160;        </div>
-<div class="line"><a name="l00858"></a><span class="lineno">  858</span>&#160;        <span class="comment">/* erase program suspend */</span></div>
-<div class="line"><a name="l00859"></a><span class="lineno">  859</span>&#160;        res = <a class="code" href="group__w25qxx__advance__driver.html#gac7fbabc574c250eec100be861f5918ff">w25qxx_erase_program_suspend</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00860"></a><span class="lineno">  860</span>&#160;        <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00861"></a><span class="lineno">  861</span>&#160;        {</div>
-<div class="line"><a name="l00862"></a><span class="lineno">  862</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: erase program suspend failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00863"></a><span class="lineno">  863</span>&#160;            (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00864"></a><span class="lineno">  864</span>&#160;           </div>
-<div class="line"><a name="l00865"></a><span class="lineno">  865</span>&#160;            <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00866"></a><span class="lineno">  866</span>&#160;        }</div>
-<div class="line"><a name="l00867"></a><span class="lineno">  867</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: check erase program suspend %s.\n&quot;</span>, res == 0 ? <span class="stringliteral">&quot;ok&quot;</span> : <span class="stringliteral">&quot;error&quot;</span>);</div>
-<div class="line"><a name="l00868"></a><span class="lineno">  868</span>&#160;        </div>
-<div class="line"><a name="l00869"></a><span class="lineno">  869</span>&#160;        <span class="comment">/* w25qxx_erase_program_suspend test */</span></div>
-<div class="line"><a name="l00870"></a><span class="lineno">  870</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_erase_program_suspend test.\n&quot;</span>);</div>
-<div class="line"><a name="l00871"></a><span class="lineno">  871</span>&#160;        </div>
-<div class="line"><a name="l00872"></a><span class="lineno">  872</span>&#160;        <span class="comment">/* erase program resume */</span></div>
-<div class="line"><a name="l00873"></a><span class="lineno">  873</span>&#160;        res = <a class="code" href="group__w25qxx__advance__driver.html#ga05c69ac66309544eba4ff38a69f24c00">w25qxx_erase_program_resume</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00874"></a><span class="lineno">  874</span>&#160;        <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00875"></a><span class="lineno">  875</span>&#160;        {</div>
-<div class="line"><a name="l00876"></a><span class="lineno">  876</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: erase program resume failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00877"></a><span class="lineno">  877</span>&#160;            (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00878"></a><span class="lineno">  878</span>&#160;           </div>
-<div class="line"><a name="l00879"></a><span class="lineno">  879</span>&#160;            <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00880"></a><span class="lineno">  880</span>&#160;        }</div>
-<div class="line"><a name="l00881"></a><span class="lineno">  881</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: check erase program resume %s.\n&quot;</span>, res == 0 ? <span class="stringliteral">&quot;ok&quot;</span> : <span class="stringliteral">&quot;error&quot;</span>);</div>
-<div class="line"><a name="l00882"></a><span class="lineno">  882</span>&#160;        </div>
-<div class="line"><a name="l00883"></a><span class="lineno">  883</span>&#160;        <span class="comment">/* w25qxx_global_block_lock test */</span></div>
-<div class="line"><a name="l00884"></a><span class="lineno">  884</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_global_block_lock test.\n&quot;</span>);</div>
-<div class="line"><a name="l00885"></a><span class="lineno">  885</span>&#160;        </div>
-<div class="line"><a name="l00886"></a><span class="lineno">  886</span>&#160;        <span class="comment">/* global block lock */</span></div>
-<div class="line"><a name="l00887"></a><span class="lineno">  887</span>&#160;        res = <a class="code" href="group__w25qxx__advance__driver.html#gab5579bc42bc07a7657848140888a817c">w25qxx_global_block_lock</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00888"></a><span class="lineno">  888</span>&#160;        <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00889"></a><span class="lineno">  889</span>&#160;        {</div>
-<div class="line"><a name="l00890"></a><span class="lineno">  890</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: global block lock failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00891"></a><span class="lineno">  891</span>&#160;            (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00892"></a><span class="lineno">  892</span>&#160;           </div>
-<div class="line"><a name="l00893"></a><span class="lineno">  893</span>&#160;            <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00894"></a><span class="lineno">  894</span>&#160;        }</div>
-<div class="line"><a name="l00895"></a><span class="lineno">  895</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: check global block lock %s.\n&quot;</span>, res == 0 ? <span class="stringliteral">&quot;ok&quot;</span> : <span class="stringliteral">&quot;error&quot;</span>);</div>
-<div class="line"><a name="l00896"></a><span class="lineno">  896</span>&#160;        </div>
-<div class="line"><a name="l00897"></a><span class="lineno">  897</span>&#160;        <span class="comment">/* w25qxx_global_block_unlock test */</span></div>
-<div class="line"><a name="l00898"></a><span class="lineno">  898</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_global_block_unlock test.\n&quot;</span>);</div>
-<div class="line"><a name="l00899"></a><span class="lineno">  899</span>&#160;        </div>
-<div class="line"><a name="l00900"></a><span class="lineno">  900</span>&#160;        <span class="comment">/* global block unlock */</span></div>
-<div class="line"><a name="l00901"></a><span class="lineno">  901</span>&#160;        res = <a class="code" href="group__w25qxx__advance__driver.html#ga6d62f7d14945cfde7cde7a0e9a4e3afb">w25qxx_global_block_unlock</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00902"></a><span class="lineno">  902</span>&#160;        <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00903"></a><span class="lineno">  903</span>&#160;        {</div>
-<div class="line"><a name="l00904"></a><span class="lineno">  904</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: global block unlock failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00905"></a><span class="lineno">  905</span>&#160;            (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00906"></a><span class="lineno">  906</span>&#160;           </div>
-<div class="line"><a name="l00907"></a><span class="lineno">  907</span>&#160;            <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00908"></a><span class="lineno">  908</span>&#160;        }</div>
-<div class="line"><a name="l00909"></a><span class="lineno">  909</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: check global block unlock %s.\n&quot;</span>, res == 0 ? <span class="stringliteral">&quot;ok&quot;</span> : <span class="stringliteral">&quot;error&quot;</span>);</div>
-<div class="line"><a name="l00910"></a><span class="lineno">  910</span>&#160;        </div>
-<div class="line"><a name="l00911"></a><span class="lineno">  911</span>&#160;        <span class="comment">/* w25qxx_individual_block_lock test */</span></div>
-<div class="line"><a name="l00912"></a><span class="lineno">  912</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_individual_block_lock test.\n&quot;</span>);</div>
-<div class="line"><a name="l00913"></a><span class="lineno">  913</span>&#160;        </div>
-<div class="line"><a name="l00914"></a><span class="lineno">  914</span>&#160;        <span class="comment">/* individual block lock */</span></div>
-<div class="line"><a name="l00915"></a><span class="lineno">  915</span>&#160;        res = <a class="code" href="group__w25qxx__advance__driver.html#ga4f00c2c169cb7c3084841c6cd795e76b">w25qxx_individual_block_lock</a>(&amp;gs_handle, 0x00000000);</div>
-<div class="line"><a name="l00916"></a><span class="lineno">  916</span>&#160;        <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00917"></a><span class="lineno">  917</span>&#160;        {</div>
-<div class="line"><a name="l00918"></a><span class="lineno">  918</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: individual block lock failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00919"></a><span class="lineno">  919</span>&#160;            (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00920"></a><span class="lineno">  920</span>&#160;           </div>
-<div class="line"><a name="l00921"></a><span class="lineno">  921</span>&#160;            <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00922"></a><span class="lineno">  922</span>&#160;        }</div>
-<div class="line"><a name="l00923"></a><span class="lineno">  923</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: check individual block lock %s.\n&quot;</span>, res == 0 ? <span class="stringliteral">&quot;ok&quot;</span> : <span class="stringliteral">&quot;error&quot;</span>);</div>
-<div class="line"><a name="l00924"></a><span class="lineno">  924</span>&#160;        </div>
-<div class="line"><a name="l00925"></a><span class="lineno">  925</span>&#160;        <span class="comment">/* w25qxx_read_block_lock test */</span></div>
-<div class="line"><a name="l00926"></a><span class="lineno">  926</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_read_block_lock test.\n&quot;</span>);</div>
-<div class="line"><a name="l00927"></a><span class="lineno">  927</span>&#160;        </div>
-<div class="line"><a name="l00928"></a><span class="lineno">  928</span>&#160;        res = <a class="code" href="group__w25qxx__advance__driver.html#ga59e655ca78a175037ca810bbc8539a96">w25qxx_read_block_lock</a>(&amp;gs_handle, 0x00000000, (uint8_t *)&amp;status);</div>
-<div class="line"><a name="l00929"></a><span class="lineno">  929</span>&#160;        <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00930"></a><span class="lineno">  930</span>&#160;        {</div>
-<div class="line"><a name="l00931"></a><span class="lineno">  931</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: read block lock failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00932"></a><span class="lineno">  932</span>&#160;            (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00933"></a><span class="lineno">  933</span>&#160;           </div>
-<div class="line"><a name="l00934"></a><span class="lineno">  934</span>&#160;            <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00935"></a><span class="lineno">  935</span>&#160;        }</div>
-<div class="line"><a name="l00936"></a><span class="lineno">  936</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: check read block lock %s with %d.\n&quot;</span>, res == 0 ? <span class="stringliteral">&quot;ok&quot;</span> : <span class="stringliteral">&quot;error&quot;</span>, status);</div>
-<div class="line"><a name="l00937"></a><span class="lineno">  937</span>&#160;        </div>
-<div class="line"><a name="l00938"></a><span class="lineno">  938</span>&#160;        <span class="comment">/* w25qxx_individual_block_unlock test */</span></div>
-<div class="line"><a name="l00939"></a><span class="lineno">  939</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_individual_block_unlock test.\n&quot;</span>);</div>
-<div class="line"><a name="l00940"></a><span class="lineno">  940</span>&#160;        </div>
-<div class="line"><a name="l00941"></a><span class="lineno">  941</span>&#160;        <span class="comment">/* individual block unlock */</span></div>
-<div class="line"><a name="l00942"></a><span class="lineno">  942</span>&#160;        res = <a class="code" href="group__w25qxx__advance__driver.html#ga7f88cedf7619071b3235ba094915b2a7">w25qxx_individual_block_unlock</a>(&amp;gs_handle, 0x00000000);</div>
-<div class="line"><a name="l00943"></a><span class="lineno">  943</span>&#160;        <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00944"></a><span class="lineno">  944</span>&#160;        {</div>
-<div class="line"><a name="l00945"></a><span class="lineno">  945</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: individual block unlock failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00946"></a><span class="lineno">  946</span>&#160;            (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00947"></a><span class="lineno">  947</span>&#160;           </div>
-<div class="line"><a name="l00948"></a><span class="lineno">  948</span>&#160;            <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00949"></a><span class="lineno">  949</span>&#160;        }</div>
-<div class="line"><a name="l00950"></a><span class="lineno">  950</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: check individual block unlock %s.\n&quot;</span>, res == 0 ? <span class="stringliteral">&quot;ok&quot;</span> : <span class="stringliteral">&quot;error&quot;</span>);</div>
-<div class="line"><a name="l00951"></a><span class="lineno">  951</span>&#160;        </div>
-<div class="line"><a name="l00952"></a><span class="lineno">  952</span>&#160;        <span class="comment">/* w25qxx_power_down test */</span></div>
-<div class="line"><a name="l00953"></a><span class="lineno">  953</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_power_down test.\n&quot;</span>);</div>
-<div class="line"><a name="l00954"></a><span class="lineno">  954</span>&#160;        </div>
-<div class="line"><a name="l00955"></a><span class="lineno">  955</span>&#160;        <span class="comment">/* power down */</span></div>
-<div class="line"><a name="l00956"></a><span class="lineno">  956</span>&#160;        res = <a class="code" href="group__w25qxx__basic__driver.html#gae4effce67e36120325e3c7b245b90142">w25qxx_power_down</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00957"></a><span class="lineno">  957</span>&#160;        <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00958"></a><span class="lineno">  958</span>&#160;        {</div>
-<div class="line"><a name="l00959"></a><span class="lineno">  959</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: power down failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00960"></a><span class="lineno">  960</span>&#160;            (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00961"></a><span class="lineno">  961</span>&#160;           </div>
-<div class="line"><a name="l00962"></a><span class="lineno">  962</span>&#160;            <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00963"></a><span class="lineno">  963</span>&#160;        }</div>
-<div class="line"><a name="l00964"></a><span class="lineno">  964</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga964fa232abf98737cb98458eebfff82c">w25qxx_interface_delay_ms</a>(10);</div>
-<div class="line"><a name="l00965"></a><span class="lineno">  965</span>&#160;        </div>
-<div class="line"><a name="l00966"></a><span class="lineno">  966</span>&#160;        <span class="comment">/* w25qxx_release_power_down test */</span></div>
-<div class="line"><a name="l00967"></a><span class="lineno">  967</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_release_power_down test.\n&quot;</span>);</div>
-<div class="line"><a name="l00968"></a><span class="lineno">  968</span>&#160;        </div>
-<div class="line"><a name="l00969"></a><span class="lineno">  969</span>&#160;        <span class="comment">/* release power down */</span></div>
-<div class="line"><a name="l00970"></a><span class="lineno">  970</span>&#160;        res = <a class="code" href="group__w25qxx__basic__driver.html#ga09c9b52877516a2ee4c080dc249e7331">w25qxx_release_power_down</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00971"></a><span class="lineno">  971</span>&#160;        <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00972"></a><span class="lineno">  972</span>&#160;        {</div>
-<div class="line"><a name="l00973"></a><span class="lineno">  973</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: release power down failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00974"></a><span class="lineno">  974</span>&#160;            (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00975"></a><span class="lineno">  975</span>&#160;           </div>
-<div class="line"><a name="l00976"></a><span class="lineno">  976</span>&#160;            <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00977"></a><span class="lineno">  977</span>&#160;        }</div>
-<div class="line"><a name="l00978"></a><span class="lineno">  978</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga964fa232abf98737cb98458eebfff82c">w25qxx_interface_delay_ms</a>(10);</div>
-<div class="line"><a name="l00979"></a><span class="lineno">  979</span>&#160;        </div>
-<div class="line"><a name="l00980"></a><span class="lineno">  980</span>&#160;        <span class="comment">/* w25qxx_enable_reset test */</span></div>
-<div class="line"><a name="l00981"></a><span class="lineno">  981</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_enable_reset test.\n&quot;</span>);</div>
-<div class="line"><a name="l00982"></a><span class="lineno">  982</span>&#160;        </div>
-<div class="line"><a name="l00983"></a><span class="lineno">  983</span>&#160;        <span class="comment">/* enable reset */</span></div>
-<div class="line"><a name="l00984"></a><span class="lineno">  984</span>&#160;        res = <a class="code" href="group__w25qxx__advance__driver.html#gab55b4e071e20feb58584025287949438">w25qxx_enable_reset</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00985"></a><span class="lineno">  985</span>&#160;        <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00986"></a><span class="lineno">  986</span>&#160;        {</div>
-<div class="line"><a name="l00987"></a><span class="lineno">  987</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: enable reset failed.\n&quot;</span>);</div>
-<div class="line"><a name="l00988"></a><span class="lineno">  988</span>&#160;            (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00989"></a><span class="lineno">  989</span>&#160;           </div>
-<div class="line"><a name="l00990"></a><span class="lineno">  990</span>&#160;            <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00991"></a><span class="lineno">  991</span>&#160;        }</div>
-<div class="line"><a name="l00992"></a><span class="lineno">  992</span>&#160;        </div>
-<div class="line"><a name="l00993"></a><span class="lineno">  993</span>&#160;        <span class="comment">/* w25qxx_reset_device test */</span></div>
-<div class="line"><a name="l00994"></a><span class="lineno">  994</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_reset_device test.\n&quot;</span>);</div>
-<div class="line"><a name="l00995"></a><span class="lineno">  995</span>&#160;        </div>
-<div class="line"><a name="l00996"></a><span class="lineno">  996</span>&#160;        <span class="comment">/* reset device */</span></div>
-<div class="line"><a name="l00997"></a><span class="lineno">  997</span>&#160;        res = <a class="code" href="group__w25qxx__advance__driver.html#ga2abebfe2a8d9377eb88448ffca73f222">w25qxx_reset_device</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l00998"></a><span class="lineno">  998</span>&#160;        <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l00999"></a><span class="lineno">  999</span>&#160;        {</div>
-<div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: reset device failed.\n&quot;</span>);</div>
-<div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>&#160;            (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>&#160;           </div>
-<div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>&#160;            <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>&#160;        }</div>
-<div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>&#160;        <a class="code" href="group__w25qxx__interface__driver.html#ga964fa232abf98737cb98458eebfff82c">w25qxx_interface_delay_ms</a>(10);</div>
-<div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>&#160;        </div>
-<div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>&#160;        <span class="keywordflow">if</span> (type &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)</div>
-<div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>&#160;        {</div>
-<div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>&#160;            <span class="comment">/* set address mode 4 byte */</span></div>
-<div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set address mode 4 byte.\n&quot;</span>);</div>
-<div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>&#160;            </div>
-<div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>&#160;            <span class="comment">/* set address mode 4 byte */</span></div>
-<div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>&#160;            res = <a class="code" href="group__w25qxx__basic__driver.html#gad0e125eff304ce66fb3956d2c8c80656">w25qxx_set_address_mode</a>(&amp;gs_handle, <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>);</div>
-<div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>&#160;            <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>&#160;            {</div>
-<div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set address mode failed.\n&quot;</span>);</div>
-<div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>&#160;                (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>&#160;               </div>
-<div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>&#160;                <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>&#160;            }</div>
-<div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>&#160; </div>
-<div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>&#160;            <span class="comment">/* w25qxx_individual_block_lock test */</span></div>
-<div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_individual_block_lock test.\n&quot;</span>);</div>
-<div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>&#160;            </div>
-<div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>&#160;            <span class="comment">/* individual block lock */</span></div>
-<div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>&#160;            res = <a class="code" href="group__w25qxx__advance__driver.html#ga4f00c2c169cb7c3084841c6cd795e76b">w25qxx_individual_block_lock</a>(&amp;gs_handle, 0x00000000);</div>
-<div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>&#160;            <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>&#160;            {</div>
-<div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: individual block lock failed.\n&quot;</span>);</div>
-<div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>&#160;                (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>&#160;               </div>
-<div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>&#160;                <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>&#160;            }</div>
-<div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: check individual block lock %s.\n&quot;</span>, res == 0 ? <span class="stringliteral">&quot;ok&quot;</span> : <span class="stringliteral">&quot;error&quot;</span>);</div>
-<div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>&#160;            </div>
-<div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>&#160;            <span class="comment">/* w25qxx_individual_block_unlock test */</span></div>
-<div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_individual_block_unlock test.\n&quot;</span>);</div>
-<div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>&#160;            </div>
-<div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>&#160;            <span class="comment">/* individual block unlock */</span></div>
-<div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>&#160;            res = <a class="code" href="group__w25qxx__advance__driver.html#ga7f88cedf7619071b3235ba094915b2a7">w25qxx_individual_block_unlock</a>(&amp;gs_handle, 0x00000000);</div>
-<div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>&#160;            <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>&#160;            {</div>
-<div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: individual block unlock failed.\n&quot;</span>);</div>
-<div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>&#160;                (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>&#160;               </div>
-<div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>&#160;                <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>&#160;            }</div>
-<div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: check individual block unlock %s.\n&quot;</span>, res == 0 ? <span class="stringliteral">&quot;ok&quot;</span> : <span class="stringliteral">&quot;error&quot;</span>);</div>
-<div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>&#160;            </div>
-<div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>&#160;            <span class="comment">/* w25qxx_read_block_lock test */</span></div>
-<div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_read_block_lock test.\n&quot;</span>);</div>
-<div class="line"><a name="l01052"></a><span class="lineno"> 1052</span>&#160;            </div>
-<div class="line"><a name="l01053"></a><span class="lineno"> 1053</span>&#160;            res = <a class="code" href="group__w25qxx__advance__driver.html#ga59e655ca78a175037ca810bbc8539a96">w25qxx_read_block_lock</a>(&amp;gs_handle, 0x00000000, (uint8_t *)&amp;status);</div>
-<div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>&#160;            <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>&#160;            {</div>
-<div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: read block lock failed.\n&quot;</span>);</div>
-<div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>&#160;                (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>&#160;               </div>
-<div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>&#160;                <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>&#160;            }</div>
-<div class="line"><a name="l01061"></a><span class="lineno"> 1061</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: check read block lock %s with %d.\n&quot;</span>, res == 0 ? <span class="stringliteral">&quot;ok&quot;</span> : <span class="stringliteral">&quot;error&quot;</span>, status);</div>
-<div class="line"><a name="l01062"></a><span class="lineno"> 1062</span>&#160;            </div>
-<div class="line"><a name="l01063"></a><span class="lineno"> 1063</span>&#160;            <span class="comment">/* set address mode 3 byte */</span></div>
-<div class="line"><a name="l01064"></a><span class="lineno"> 1064</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set address mode 3 byte.\n&quot;</span>);</div>
-<div class="line"><a name="l01065"></a><span class="lineno"> 1065</span>&#160;            </div>
-<div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>&#160;            <span class="comment">/* set address mode 3 byte */</span></div>
-<div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>&#160;            res = <a class="code" href="group__w25qxx__basic__driver.html#gad0e125eff304ce66fb3956d2c8c80656">w25qxx_set_address_mode</a>(&amp;gs_handle, <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>);</div>
-<div class="line"><a name="l01068"></a><span class="lineno"> 1068</span>&#160;            <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l01069"></a><span class="lineno"> 1069</span>&#160;            {</div>
-<div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set address mode failed.\n&quot;</span>);</div>
-<div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>&#160;                (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>&#160;               </div>
-<div class="line"><a name="l01073"></a><span class="lineno"> 1073</span>&#160;                <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l01074"></a><span class="lineno"> 1074</span>&#160;            }</div>
-<div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>&#160;        }</div>
-<div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>&#160;        </div>
-<div class="line"><a name="l01077"></a><span class="lineno"> 1077</span>&#160;        <span class="keywordflow">if</span> (dual_quad_spi_enable != 0)</div>
-<div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>&#160;        {</div>
-<div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>&#160;            <span class="comment">/* enter to spi mode */</span></div>
-<div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: enter to spi mode.\n&quot;</span>);</div>
-<div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>&#160;            </div>
-<div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>&#160;            <span class="comment">/* exit qspi */</span></div>
-<div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>&#160;            res = <a class="code" href="group__w25qxx__advance__driver.html#ga6b9f75f7426a54ffdb1f5a057f8188f4">w25qxx_exit_qspi_mode</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l01084"></a><span class="lineno"> 1084</span>&#160;            <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l01085"></a><span class="lineno"> 1085</span>&#160;            {</div>
-<div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: exit qspi mode failed.\n&quot;</span>);</div>
-<div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>&#160;                (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l01088"></a><span class="lineno"> 1088</span>&#160;               </div>
-<div class="line"><a name="l01089"></a><span class="lineno"> 1089</span>&#160;                <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l01090"></a><span class="lineno"> 1090</span>&#160;            }</div>
-<div class="line"><a name="l01091"></a><span class="lineno"> 1091</span>&#160;            </div>
-<div class="line"><a name="l01092"></a><span class="lineno"> 1092</span>&#160;            <span class="comment">/* set chip interface spi */</span></div>
-<div class="line"><a name="l01093"></a><span class="lineno"> 1093</span>&#160;            res = <a class="code" href="group__w25qxx__basic__driver.html#ga50a62003d566402d46ada2f272c41eb5">w25qxx_set_interface</a>(&amp;gs_handle, <a class="code" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>);</div>
-<div class="line"><a name="l01094"></a><span class="lineno"> 1094</span>&#160;            <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l01095"></a><span class="lineno"> 1095</span>&#160;            {</div>
-<div class="line"><a name="l01096"></a><span class="lineno"> 1096</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set interface failed.\n&quot;</span>);</div>
-<div class="line"><a name="l01097"></a><span class="lineno"> 1097</span>&#160;               </div>
-<div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>&#160;                <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l01099"></a><span class="lineno"> 1099</span>&#160;            }</div>
-<div class="line"><a name="l01100"></a><span class="lineno"> 1100</span>&#160;            </div>
-<div class="line"><a name="l01101"></a><span class="lineno"> 1101</span>&#160;            <span class="comment">/* w25qxx_get_manufacturer_device_id_dual_io test */</span></div>
-<div class="line"><a name="l01102"></a><span class="lineno"> 1102</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_get_manufacturer_device_id_dual_io test.\n&quot;</span>);</div>
-<div class="line"><a name="l01103"></a><span class="lineno"> 1103</span>&#160;            </div>
-<div class="line"><a name="l01104"></a><span class="lineno"> 1104</span>&#160;            <span class="comment">/* get manufacturer device id dual io */</span></div>
-<div class="line"><a name="l01105"></a><span class="lineno"> 1105</span>&#160;            res = <a class="code" href="group__w25qxx__advance__driver.html#ga1cd3aec1bdeabbaed5f049fbf83ceeb4">w25qxx_get_manufacturer_device_id_dual_io</a>(&amp;gs_handle, (uint8_t *)&amp;manufacturer, (uint8_t *)device_id);</div>
-<div class="line"><a name="l01106"></a><span class="lineno"> 1106</span>&#160;            <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>&#160;            {</div>
-<div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: get manufacturer device id dual io failed.\n&quot;</span>);</div>
-<div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>&#160;                (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>&#160;               </div>
-<div class="line"><a name="l01111"></a><span class="lineno"> 1111</span>&#160;                <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l01112"></a><span class="lineno"> 1112</span>&#160;            }</div>
-<div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: manufacturer is 0x%02X, device id is 0x%02X.\n&quot;</span>, manufacturer, device_id[0]);</div>
-<div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>&#160;            </div>
-<div class="line"><a name="l01115"></a><span class="lineno"> 1115</span>&#160;            <span class="comment">/* w25qxx_get_manufacturer_device_id_quad_io test */</span></div>
-<div class="line"><a name="l01116"></a><span class="lineno"> 1116</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_get_manufacturer_device_id_quad_io test.\n&quot;</span>);</div>
-<div class="line"><a name="l01117"></a><span class="lineno"> 1117</span>&#160;            </div>
-<div class="line"><a name="l01118"></a><span class="lineno"> 1118</span>&#160;            <span class="comment">/* get manufacturer device id quad io */</span></div>
-<div class="line"><a name="l01119"></a><span class="lineno"> 1119</span>&#160;            res = <a class="code" href="group__w25qxx__advance__driver.html#ga61bd3ce40b76b6862c6a53e0e37a3455">w25qxx_get_manufacturer_device_id_quad_io</a>(&amp;gs_handle, (uint8_t *)&amp;manufacturer, (uint8_t *)device_id);</div>
-<div class="line"><a name="l01120"></a><span class="lineno"> 1120</span>&#160;            <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l01121"></a><span class="lineno"> 1121</span>&#160;            {</div>
-<div class="line"><a name="l01122"></a><span class="lineno"> 1122</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: get manufacturer device id quad io failed.\n&quot;</span>);</div>
-<div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>&#160;                (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l01124"></a><span class="lineno"> 1124</span>&#160;               </div>
-<div class="line"><a name="l01125"></a><span class="lineno"> 1125</span>&#160;                <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l01126"></a><span class="lineno"> 1126</span>&#160;            }</div>
-<div class="line"><a name="l01127"></a><span class="lineno"> 1127</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: manufacturer is 0x%02X, device id is 0x%02X.\n&quot;</span>, manufacturer, device_id[0]);</div>
-<div class="line"><a name="l01128"></a><span class="lineno"> 1128</span>&#160;            </div>
-<div class="line"><a name="l01129"></a><span class="lineno"> 1129</span>&#160;            <span class="keywordflow">if</span> (type &gt;= <a class="code" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)</div>
-<div class="line"><a name="l01130"></a><span class="lineno"> 1130</span>&#160;            {</div>
-<div class="line"><a name="l01131"></a><span class="lineno"> 1131</span>&#160;                <span class="comment">/* set address mode 4 byte */</span></div>
-<div class="line"><a name="l01132"></a><span class="lineno"> 1132</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set address mode 4 byte.\n&quot;</span>);</div>
-<div class="line"><a name="l01133"></a><span class="lineno"> 1133</span>&#160;                </div>
-<div class="line"><a name="l01134"></a><span class="lineno"> 1134</span>&#160;                <span class="comment">/* set address mode 4 byte */</span></div>
-<div class="line"><a name="l01135"></a><span class="lineno"> 1135</span>&#160;                res = <a class="code" href="group__w25qxx__basic__driver.html#gad0e125eff304ce66fb3956d2c8c80656">w25qxx_set_address_mode</a>(&amp;gs_handle, <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>);</div>
-<div class="line"><a name="l01136"></a><span class="lineno"> 1136</span>&#160;                <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l01137"></a><span class="lineno"> 1137</span>&#160;                {</div>
-<div class="line"><a name="l01138"></a><span class="lineno"> 1138</span>&#160;                    <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set address mode failed.\n&quot;</span>);</div>
-<div class="line"><a name="l01139"></a><span class="lineno"> 1139</span>&#160;                    (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l01140"></a><span class="lineno"> 1140</span>&#160;                   </div>
-<div class="line"><a name="l01141"></a><span class="lineno"> 1141</span>&#160;                    <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l01142"></a><span class="lineno"> 1142</span>&#160;                }</div>
-<div class="line"><a name="l01143"></a><span class="lineno"> 1143</span>&#160;                </div>
-<div class="line"><a name="l01144"></a><span class="lineno"> 1144</span>&#160;                <span class="comment">/* w25qxx_get_manufacturer_device_id_dual_io test */</span></div>
-<div class="line"><a name="l01145"></a><span class="lineno"> 1145</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_get_manufacturer_device_id_dual_io test.\n&quot;</span>);</div>
-<div class="line"><a name="l01146"></a><span class="lineno"> 1146</span>&#160;                </div>
-<div class="line"><a name="l01147"></a><span class="lineno"> 1147</span>&#160;                <span class="comment">/* get manufacturer device id dual io */</span></div>
-<div class="line"><a name="l01148"></a><span class="lineno"> 1148</span>&#160;                res = <a class="code" href="group__w25qxx__advance__driver.html#ga1cd3aec1bdeabbaed5f049fbf83ceeb4">w25qxx_get_manufacturer_device_id_dual_io</a>(&amp;gs_handle, (uint8_t *)&amp;manufacturer, (uint8_t *)device_id);</div>
-<div class="line"><a name="l01149"></a><span class="lineno"> 1149</span>&#160;                <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l01150"></a><span class="lineno"> 1150</span>&#160;                {</div>
-<div class="line"><a name="l01151"></a><span class="lineno"> 1151</span>&#160;                    <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: get manufacturer device id dual io failed.\n&quot;</span>);</div>
-<div class="line"><a name="l01152"></a><span class="lineno"> 1152</span>&#160;                    (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l01153"></a><span class="lineno"> 1153</span>&#160;                   </div>
-<div class="line"><a name="l01154"></a><span class="lineno"> 1154</span>&#160;                    <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l01155"></a><span class="lineno"> 1155</span>&#160;                }</div>
-<div class="line"><a name="l01156"></a><span class="lineno"> 1156</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: manufacturer is 0x%02X, device id is 0x%02X.\n&quot;</span>, manufacturer, device_id[0]);</div>
-<div class="line"><a name="l01157"></a><span class="lineno"> 1157</span>&#160;                </div>
-<div class="line"><a name="l01158"></a><span class="lineno"> 1158</span>&#160;                <span class="comment">/* w25qxx_get_manufacturer_device_id_quad_io test */</span></div>
-<div class="line"><a name="l01159"></a><span class="lineno"> 1159</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_get_manufacturer_device_id_quad_io test.\n&quot;</span>);</div>
-<div class="line"><a name="l01160"></a><span class="lineno"> 1160</span>&#160;                </div>
-<div class="line"><a name="l01161"></a><span class="lineno"> 1161</span>&#160;                <span class="comment">/* get manufacturer device id quad io */</span></div>
-<div class="line"><a name="l01162"></a><span class="lineno"> 1162</span>&#160;                res = <a class="code" href="group__w25qxx__advance__driver.html#ga61bd3ce40b76b6862c6a53e0e37a3455">w25qxx_get_manufacturer_device_id_quad_io</a>(&amp;gs_handle, (uint8_t *)&amp;manufacturer, (uint8_t *)device_id);</div>
-<div class="line"><a name="l01163"></a><span class="lineno"> 1163</span>&#160;                <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l01164"></a><span class="lineno"> 1164</span>&#160;                {</div>
-<div class="line"><a name="l01165"></a><span class="lineno"> 1165</span>&#160;                    <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: get manufacturer device id quad io failed.\n&quot;</span>);</div>
-<div class="line"><a name="l01166"></a><span class="lineno"> 1166</span>&#160;                    (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l01167"></a><span class="lineno"> 1167</span>&#160;                   </div>
-<div class="line"><a name="l01168"></a><span class="lineno"> 1168</span>&#160;                    <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l01169"></a><span class="lineno"> 1169</span>&#160;                }</div>
-<div class="line"><a name="l01170"></a><span class="lineno"> 1170</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: manufacturer is 0x%02X, device id is 0x%02X.\n&quot;</span>, manufacturer, device_id[0]);</div>
-<div class="line"><a name="l01171"></a><span class="lineno"> 1171</span>&#160;                </div>
-<div class="line"><a name="l01172"></a><span class="lineno"> 1172</span>&#160;                <span class="comment">/* set address mode 3 byte */</span></div>
-<div class="line"><a name="l01173"></a><span class="lineno"> 1173</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set address mode 3 byte.\n&quot;</span>);</div>
-<div class="line"><a name="l01174"></a><span class="lineno"> 1174</span>&#160;                </div>
-<div class="line"><a name="l01175"></a><span class="lineno"> 1175</span>&#160;                <span class="comment">/* set address mode 3 byte */</span></div>
-<div class="line"><a name="l01176"></a><span class="lineno"> 1176</span>&#160;                res = <a class="code" href="group__w25qxx__basic__driver.html#gad0e125eff304ce66fb3956d2c8c80656">w25qxx_set_address_mode</a>(&amp;gs_handle, <a class="code" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>);</div>
-<div class="line"><a name="l01177"></a><span class="lineno"> 1177</span>&#160;                <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l01178"></a><span class="lineno"> 1178</span>&#160;                {</div>
-<div class="line"><a name="l01179"></a><span class="lineno"> 1179</span>&#160;                    <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set address mode failed.\n&quot;</span>);</div>
-<div class="line"><a name="l01180"></a><span class="lineno"> 1180</span>&#160;                    (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l01181"></a><span class="lineno"> 1181</span>&#160;                   </div>
-<div class="line"><a name="l01182"></a><span class="lineno"> 1182</span>&#160;                    <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l01183"></a><span class="lineno"> 1183</span>&#160;                }</div>
-<div class="line"><a name="l01184"></a><span class="lineno"> 1184</span>&#160;            }</div>
-<div class="line"><a name="l01185"></a><span class="lineno"> 1185</span>&#160;            </div>
-<div class="line"><a name="l01186"></a><span class="lineno"> 1186</span>&#160;            <span class="comment">/* enter to qspi mode */</span></div>
-<div class="line"><a name="l01187"></a><span class="lineno"> 1187</span>&#160;            <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: enter to qspi mode.\n&quot;</span>);</div>
-<div class="line"><a name="l01188"></a><span class="lineno"> 1188</span>&#160;            </div>
-<div class="line"><a name="l01189"></a><span class="lineno"> 1189</span>&#160;            <span class="comment">/* enter qspi */</span></div>
-<div class="line"><a name="l01190"></a><span class="lineno"> 1190</span>&#160;            res = <a class="code" href="group__w25qxx__advance__driver.html#gaa5ab3548707a95ded115255432224c5a">w25qxx_enter_qspi_mode</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l01191"></a><span class="lineno"> 1191</span>&#160;            <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l01192"></a><span class="lineno"> 1192</span>&#160;            {</div>
-<div class="line"><a name="l01193"></a><span class="lineno"> 1193</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: enter qspi mode failed.\n&quot;</span>);</div>
-<div class="line"><a name="l01194"></a><span class="lineno"> 1194</span>&#160;                (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l01195"></a><span class="lineno"> 1195</span>&#160;               </div>
-<div class="line"><a name="l01196"></a><span class="lineno"> 1196</span>&#160;                <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l01197"></a><span class="lineno"> 1197</span>&#160;            }</div>
-<div class="line"><a name="l01198"></a><span class="lineno"> 1198</span>&#160;            </div>
-<div class="line"><a name="l01199"></a><span class="lineno"> 1199</span>&#160;            <span class="comment">/* set chip interface spi */</span></div>
-<div class="line"><a name="l01200"></a><span class="lineno"> 1200</span>&#160;            res = <a class="code" href="group__w25qxx__basic__driver.html#ga50a62003d566402d46ada2f272c41eb5">w25qxx_set_interface</a>(&amp;gs_handle, <a class="code" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2fea895dcb5c91da89fad1c12161ffd2d5d4">W25QXX_INTERFACE_QSPI</a>);</div>
-<div class="line"><a name="l01201"></a><span class="lineno"> 1201</span>&#160;            <span class="keywordflow">if</span> (res != 0)</div>
-<div class="line"><a name="l01202"></a><span class="lineno"> 1202</span>&#160;            {</div>
-<div class="line"><a name="l01203"></a><span class="lineno"> 1203</span>&#160;                <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set interface failed.\n&quot;</span>);</div>
-<div class="line"><a name="l01204"></a><span class="lineno"> 1204</span>&#160;               </div>
-<div class="line"><a name="l01205"></a><span class="lineno"> 1205</span>&#160;                <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l01206"></a><span class="lineno"> 1206</span>&#160;            }</div>
-<div class="line"><a name="l01207"></a><span class="lineno"> 1207</span>&#160;        }</div>
-<div class="line"><a name="l01208"></a><span class="lineno"> 1208</span>&#160;    }</div>
-<div class="line"><a name="l01209"></a><span class="lineno"> 1209</span>&#160;    </div>
-<div class="line"><a name="l01210"></a><span class="lineno"> 1210</span>&#160;    <span class="comment">/* finish read test */</span></div>
-<div class="line"><a name="l01211"></a><span class="lineno"> 1211</span>&#160;    <a class="code" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: finish register test.\n&quot;</span>);</div>
-<div class="line"><a name="l01212"></a><span class="lineno"> 1212</span>&#160;    (void)<a class="code" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
-<div class="line"><a name="l01213"></a><span class="lineno"> 1213</span>&#160;    </div>
-<div class="line"><a name="l01214"></a><span class="lineno"> 1214</span>&#160;    <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l01215"></a><span class="lineno"> 1215</span>&#160;}</div>
+<a href="driver__w25qxx__register__test_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno">    1</span> </div>
+<div class="line"><a id="l00037" name="l00037"></a><span class="lineno">   37</span><span class="preprocessor">#include &quot;<a class="code" href="driver__w25qxx__register__test_8h.html">driver_w25qxx_register_test.h</a>&quot;</span></div>
+<div class="line"><a id="l00038" name="l00038"></a><span class="lineno">   38</span> </div>
+<div class="line"><a id="l00039" name="l00039"></a><span class="lineno">   39</span><span class="keyword">static</span> <a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a> gs_handle;        </div>
+<div class="foldopen" id="foldopen00051" data-start="{" data-end="}">
+<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"><a class="line" href="group__w25qxx__test__driver.html#ga05d07036254d102ebea0d0b1e83862c8">   51</a></span>uint8_t <a class="code hl_function" href="group__w25qxx__test__driver.html#ga05d07036254d102ebea0d0b1e83862c8">w25qxx_register_test</a>(<a class="code hl_enumeration" href="group__w25qxx__basic__driver.html#ga6cb4e5164464df549201dd96cb7a58b1">w25qxx_type_t</a> type, <a class="code hl_enumeration" href="group__w25qxx__basic__driver.html#gacbf327a42336baf10713a1796ff4f2fe">w25qxx_interface_t</a> interface, <a class="code hl_enumeration" href="group__w25qxx__basic__driver.html#gafb2690946f5baf4be6f3a63dde5491fb">w25qxx_bool_t</a> dual_quad_spi_enable)</div>
+<div class="line"><a id="l00052" name="l00052"></a><span class="lineno">   52</span>{</div>
+<div class="line"><a id="l00053" name="l00053"></a><span class="lineno">   53</span>    uint8_t res;</div>
+<div class="line"><a id="l00054" name="l00054"></a><span class="lineno">   54</span>    uint8_t status;</div>
+<div class="line"><a id="l00055" name="l00055"></a><span class="lineno">   55</span>    uint8_t manufacturer;</div>
+<div class="line"><a id="l00056" name="l00056"></a><span class="lineno">   56</span>    uint8_t device_id[2];</div>
+<div class="line"><a id="l00057" name="l00057"></a><span class="lineno">   57</span>    uint8_t <span class="keywordtype">id</span>[8];</div>
+<div class="line"><a id="l00058" name="l00058"></a><span class="lineno">   58</span>    <a class="code hl_struct" href="structw25qxx__info__s.html">w25qxx_info_t</a> info;</div>
+<div class="line"><a id="l00059" name="l00059"></a><span class="lineno">   59</span>    <a class="code hl_enumeration" href="group__w25qxx__basic__driver.html#ga6cb4e5164464df549201dd96cb7a58b1">w25qxx_type_t</a> type_check;</div>
+<div class="line"><a id="l00060" name="l00060"></a><span class="lineno">   60</span>    <a class="code hl_enumeration" href="group__w25qxx__basic__driver.html#gacbf327a42336baf10713a1796ff4f2fe">w25qxx_interface_t</a> interface_check;</div>
+<div class="line"><a id="l00061" name="l00061"></a><span class="lineno">   61</span>    </div>
+<div class="line"><a id="l00062" name="l00062"></a><span class="lineno">   62</span>    <span class="comment">/* link interface function */</span></div>
+<div class="line"><a id="l00063" name="l00063"></a><span class="lineno">   63</span>    <a class="code hl_define" href="group__w25qxx__link__driver.html#ga995378489f95bc6bbddbe710557e3384">DRIVER_W25QXX_LINK_INIT</a>(&amp;gs_handle, <a class="code hl_struct" href="structw25qxx__handle__s.html">w25qxx_handle_t</a>);</div>
+<div class="line"><a id="l00064" name="l00064"></a><span class="lineno">   64</span>    <a class="code hl_define" href="group__w25qxx__link__driver.html#gab2587de93f1dba5664eede8cd787a88a">DRIVER_W25QXX_LINK_SPI_QSPI_INIT</a>(&amp;gs_handle, <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga2bdc17a556f1c801a38656331f3bb7b6">w25qxx_interface_spi_qspi_init</a>);</div>
+<div class="line"><a id="l00065" name="l00065"></a><span class="lineno">   65</span>    <a class="code hl_define" href="group__w25qxx__link__driver.html#gaec8b55e83b46907be1dd9e7c50be550d">DRIVER_W25QXX_LINK_SPI_QSPI_DEINIT</a>(&amp;gs_handle, <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga091f3607fcdd47f9e5f94cf1397bd46a">w25qxx_interface_spi_qspi_deinit</a>);</div>
+<div class="line"><a id="l00066" name="l00066"></a><span class="lineno">   66</span>    <a class="code hl_define" href="group__w25qxx__link__driver.html#gac8f0ca0a725790bace3241d1d616e3d1">DRIVER_W25QXX_LINK_SPI_QSPI_WRITE_READ</a>(&amp;gs_handle, <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga3d76ea1f431978f6b55edfd0628c94cd">w25qxx_interface_spi_qspi_write_read</a>);</div>
+<div class="line"><a id="l00067" name="l00067"></a><span class="lineno">   67</span>    <a class="code hl_define" href="group__w25qxx__link__driver.html#ga7555618f13d2de0003ae6d9483085180">DRIVER_W25QXX_LINK_DELAY_MS</a>(&amp;gs_handle, <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga964fa232abf98737cb98458eebfff82c">w25qxx_interface_delay_ms</a>);</div>
+<div class="line"><a id="l00068" name="l00068"></a><span class="lineno">   68</span>    <a class="code hl_define" href="group__w25qxx__link__driver.html#gafc81bf850c80dfa316f0c6ab40be6e67">DRIVER_W25QXX_LINK_DELAY_US</a>(&amp;gs_handle, <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga38e79039b913154c9dd1036ff52bb420">w25qxx_interface_delay_us</a>);</div>
+<div class="line"><a id="l00069" name="l00069"></a><span class="lineno">   69</span>    <a class="code hl_define" href="group__w25qxx__link__driver.html#gab8d49ef9dca942fe5f37c30dcd7e22a6">DRIVER_W25QXX_LINK_DEBUG_PRINT</a>(&amp;gs_handle, <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>);</div>
+<div class="line"><a id="l00070" name="l00070"></a><span class="lineno">   70</span>    </div>
+<div class="line"><a id="l00071" name="l00071"></a><span class="lineno">   71</span>    <span class="comment">/* get information */</span></div>
+<div class="line"><a id="l00072" name="l00072"></a><span class="lineno">   72</span>    res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#ga996e2d3009432e7f8c1a5175c4438a57">w25qxx_info</a>(&amp;info);</div>
+<div class="line"><a id="l00073" name="l00073"></a><span class="lineno">   73</span>    <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00074" name="l00074"></a><span class="lineno">   74</span>    {</div>
+<div class="line"><a id="l00075" name="l00075"></a><span class="lineno">   75</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: get info failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00076" name="l00076"></a><span class="lineno">   76</span>       </div>
+<div class="line"><a id="l00077" name="l00077"></a><span class="lineno">   77</span>        <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00078" name="l00078"></a><span class="lineno">   78</span>    }</div>
+<div class="line"><a id="l00079" name="l00079"></a><span class="lineno">   79</span>    <span class="keywordflow">else</span></div>
+<div class="line"><a id="l00080" name="l00080"></a><span class="lineno">   80</span>    {</div>
+<div class="line"><a id="l00081" name="l00081"></a><span class="lineno">   81</span>        <span class="comment">/* print chip information */</span></div>
+<div class="line"><a id="l00082" name="l00082"></a><span class="lineno">   82</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: chip is %s.\n&quot;</span>, info.<a class="code hl_variable" href="structw25qxx__info__s.html#af890958c72bd715cc6454a10dc846ae6">chip_name</a>);</div>
+<div class="line"><a id="l00083" name="l00083"></a><span class="lineno">   83</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: manufacturer is %s.\n&quot;</span>, info.<a class="code hl_variable" href="structw25qxx__info__s.html#ad25285dbf810c90f8eaf3fcef6f2b2ea">manufacturer_name</a>);</div>
+<div class="line"><a id="l00084" name="l00084"></a><span class="lineno">   84</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: interface is %s.\n&quot;</span>, info.<a class="code hl_variable" href="structw25qxx__info__s.html#a5778305279cae46b2ecf862e97f73600">interface</a>);</div>
+<div class="line"><a id="l00085" name="l00085"></a><span class="lineno">   85</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: driver version is %d.%d.\n&quot;</span>, info.<a class="code hl_variable" href="structw25qxx__info__s.html#a41b0bd442708b70d252c50b92c75265a">driver_version</a> / 1000, (info.<a class="code hl_variable" href="structw25qxx__info__s.html#a41b0bd442708b70d252c50b92c75265a">driver_version</a> % 1000) / 100);</div>
+<div class="line"><a id="l00086" name="l00086"></a><span class="lineno">   86</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: min supply voltage is %0.1fV.\n&quot;</span>, info.<a class="code hl_variable" href="structw25qxx__info__s.html#ad8bde6ddadaf43d951e62f3befb9d35a">supply_voltage_min_v</a>);</div>
+<div class="line"><a id="l00087" name="l00087"></a><span class="lineno">   87</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: max supply voltage is %0.1fV.\n&quot;</span>, info.<a class="code hl_variable" href="structw25qxx__info__s.html#a3d2b12bcac7a85ea8646bff9debe8660">supply_voltage_max_v</a>);</div>
+<div class="line"><a id="l00088" name="l00088"></a><span class="lineno">   88</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: max current is %0.2fmA.\n&quot;</span>, info.<a class="code hl_variable" href="structw25qxx__info__s.html#a9db82802561bf22d799b03a345f1d1dc">max_current_ma</a>);</div>
+<div class="line"><a id="l00089" name="l00089"></a><span class="lineno">   89</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: max temperature is %0.1fC.\n&quot;</span>, info.<a class="code hl_variable" href="structw25qxx__info__s.html#a3366a5dce9b829e03c3d321c2b4df3f6">temperature_max</a>);</div>
+<div class="line"><a id="l00090" name="l00090"></a><span class="lineno">   90</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: min temperature is %0.1fC.\n&quot;</span>, info.<a class="code hl_variable" href="structw25qxx__info__s.html#a8f9dbe66ac0b66ebae0a36fcb4ba368e">temperature_min</a>);</div>
+<div class="line"><a id="l00091" name="l00091"></a><span class="lineno">   91</span>    }</div>
+<div class="line"><a id="l00092" name="l00092"></a><span class="lineno">   92</span>    </div>
+<div class="line"><a id="l00093" name="l00093"></a><span class="lineno">   93</span>    <span class="comment">/* start read test */</span></div>
+<div class="line"><a id="l00094" name="l00094"></a><span class="lineno">   94</span>    <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: start register test.\n&quot;</span>);</div>
+<div class="line"><a id="l00095" name="l00095"></a><span class="lineno">   95</span>    </div>
+<div class="line"><a id="l00096" name="l00096"></a><span class="lineno">   96</span>    <span class="comment">/* w25qxx_set_type/w25qxx_get_type test */</span></div>
+<div class="line"><a id="l00097" name="l00097"></a><span class="lineno">   97</span>    <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_set_type/w25qxx_get_type test.\n&quot;</span>);</div>
+<div class="line"><a id="l00098" name="l00098"></a><span class="lineno">   98</span>    </div>
+<div class="line"><a id="l00099" name="l00099"></a><span class="lineno">   99</span>    <span class="comment">/* set type w25q80 */</span></div>
+<div class="line"><a id="l00100" name="l00100"></a><span class="lineno">  100</span>    res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa57189cd4170b73f8b1300ca15e27de6">w25qxx_set_type</a>(&amp;gs_handle, <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a1ad4f72437de5f26cb7b212d4d91e7c2">W25Q80</a>);</div>
+<div class="line"><a id="l00101" name="l00101"></a><span class="lineno">  101</span>    <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00102" name="l00102"></a><span class="lineno">  102</span>    {</div>
+<div class="line"><a id="l00103" name="l00103"></a><span class="lineno">  103</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set type failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00104" name="l00104"></a><span class="lineno">  104</span>       </div>
+<div class="line"><a id="l00105" name="l00105"></a><span class="lineno">  105</span>        <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00106" name="l00106"></a><span class="lineno">  106</span>    }</div>
+<div class="line"><a id="l00107" name="l00107"></a><span class="lineno">  107</span>    <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set type W25Q80.\n&quot;</span>);</div>
+<div class="line"><a id="l00108" name="l00108"></a><span class="lineno">  108</span>    </div>
+<div class="line"><a id="l00109" name="l00109"></a><span class="lineno">  109</span>    <span class="comment">/* get type */</span></div>
+<div class="line"><a id="l00110" name="l00110"></a><span class="lineno">  110</span>    res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#ga685379998dad173b6d9c0b0da270685c">w25qxx_get_type</a>(&amp;gs_handle, &amp;type_check);</div>
+<div class="line"><a id="l00111" name="l00111"></a><span class="lineno">  111</span>    <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00112" name="l00112"></a><span class="lineno">  112</span>    {</div>
+<div class="line"><a id="l00113" name="l00113"></a><span class="lineno">  113</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set type failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00114" name="l00114"></a><span class="lineno">  114</span>       </div>
+<div class="line"><a id="l00115" name="l00115"></a><span class="lineno">  115</span>        <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00116" name="l00116"></a><span class="lineno">  116</span>    }</div>
+<div class="line"><a id="l00117" name="l00117"></a><span class="lineno">  117</span>    <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: check chip type %s.\n&quot;</span>, type_check == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a1ad4f72437de5f26cb7b212d4d91e7c2">W25Q80</a> ? <span class="stringliteral">&quot;ok&quot;</span> : <span class="stringliteral">&quot;error&quot;</span>);</div>
+<div class="line"><a id="l00118" name="l00118"></a><span class="lineno">  118</span>    </div>
+<div class="line"><a id="l00119" name="l00119"></a><span class="lineno">  119</span>    <span class="comment">/* set type w25q16 */</span></div>
+<div class="line"><a id="l00120" name="l00120"></a><span class="lineno">  120</span>    res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa57189cd4170b73f8b1300ca15e27de6">w25qxx_set_type</a>(&amp;gs_handle, <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a66acb81a2d520a7d92ce1d37210c6435">W25Q16</a>);</div>
+<div class="line"><a id="l00121" name="l00121"></a><span class="lineno">  121</span>    <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00122" name="l00122"></a><span class="lineno">  122</span>    {</div>
+<div class="line"><a id="l00123" name="l00123"></a><span class="lineno">  123</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set type failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00124" name="l00124"></a><span class="lineno">  124</span>       </div>
+<div class="line"><a id="l00125" name="l00125"></a><span class="lineno">  125</span>        <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00126" name="l00126"></a><span class="lineno">  126</span>    }</div>
+<div class="line"><a id="l00127" name="l00127"></a><span class="lineno">  127</span>    <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set type W25Q16.\n&quot;</span>);</div>
+<div class="line"><a id="l00128" name="l00128"></a><span class="lineno">  128</span>    </div>
+<div class="line"><a id="l00129" name="l00129"></a><span class="lineno">  129</span>    <span class="comment">/* get type */</span></div>
+<div class="line"><a id="l00130" name="l00130"></a><span class="lineno">  130</span>    res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#ga685379998dad173b6d9c0b0da270685c">w25qxx_get_type</a>(&amp;gs_handle, &amp;type_check);</div>
+<div class="line"><a id="l00131" name="l00131"></a><span class="lineno">  131</span>    <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00132" name="l00132"></a><span class="lineno">  132</span>    {</div>
+<div class="line"><a id="l00133" name="l00133"></a><span class="lineno">  133</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set type failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00134" name="l00134"></a><span class="lineno">  134</span>       </div>
+<div class="line"><a id="l00135" name="l00135"></a><span class="lineno">  135</span>        <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00136" name="l00136"></a><span class="lineno">  136</span>    }</div>
+<div class="line"><a id="l00137" name="l00137"></a><span class="lineno">  137</span>    <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: check chip type %s.\n&quot;</span>, type_check == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a66acb81a2d520a7d92ce1d37210c6435">W25Q16</a> ? <span class="stringliteral">&quot;ok&quot;</span> : <span class="stringliteral">&quot;error&quot;</span>);</div>
+<div class="line"><a id="l00138" name="l00138"></a><span class="lineno">  138</span>    </div>
+<div class="line"><a id="l00139" name="l00139"></a><span class="lineno">  139</span>    <span class="comment">/* set type w25q32 */</span></div>
+<div class="line"><a id="l00140" name="l00140"></a><span class="lineno">  140</span>    res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa57189cd4170b73f8b1300ca15e27de6">w25qxx_set_type</a>(&amp;gs_handle, <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a4fdad551be6485441db5951f196db7cb">W25Q32</a>);</div>
+<div class="line"><a id="l00141" name="l00141"></a><span class="lineno">  141</span>    <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00142" name="l00142"></a><span class="lineno">  142</span>    {</div>
+<div class="line"><a id="l00143" name="l00143"></a><span class="lineno">  143</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set type failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00144" name="l00144"></a><span class="lineno">  144</span>       </div>
+<div class="line"><a id="l00145" name="l00145"></a><span class="lineno">  145</span>        <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00146" name="l00146"></a><span class="lineno">  146</span>    }</div>
+<div class="line"><a id="l00147" name="l00147"></a><span class="lineno">  147</span>    <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set type W25Q32.\n&quot;</span>);</div>
+<div class="line"><a id="l00148" name="l00148"></a><span class="lineno">  148</span>    </div>
+<div class="line"><a id="l00149" name="l00149"></a><span class="lineno">  149</span>    <span class="comment">/* get type */</span></div>
+<div class="line"><a id="l00150" name="l00150"></a><span class="lineno">  150</span>    res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#ga685379998dad173b6d9c0b0da270685c">w25qxx_get_type</a>(&amp;gs_handle, &amp;type_check);</div>
+<div class="line"><a id="l00151" name="l00151"></a><span class="lineno">  151</span>    <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00152" name="l00152"></a><span class="lineno">  152</span>    {</div>
+<div class="line"><a id="l00153" name="l00153"></a><span class="lineno">  153</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set type failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00154" name="l00154"></a><span class="lineno">  154</span>       </div>
+<div class="line"><a id="l00155" name="l00155"></a><span class="lineno">  155</span>        <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00156" name="l00156"></a><span class="lineno">  156</span>    }</div>
+<div class="line"><a id="l00157" name="l00157"></a><span class="lineno">  157</span>    <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: check chip type %s.\n&quot;</span>, type_check == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a4fdad551be6485441db5951f196db7cb">W25Q32</a> ? <span class="stringliteral">&quot;ok&quot;</span> : <span class="stringliteral">&quot;error&quot;</span>);</div>
+<div class="line"><a id="l00158" name="l00158"></a><span class="lineno">  158</span>    </div>
+<div class="line"><a id="l00159" name="l00159"></a><span class="lineno">  159</span>    <span class="comment">/* set type w25q64 */</span></div>
+<div class="line"><a id="l00160" name="l00160"></a><span class="lineno">  160</span>    res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa57189cd4170b73f8b1300ca15e27de6">w25qxx_set_type</a>(&amp;gs_handle, <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a3ea98b2b3e06afa29441c51548bbb16e">W25Q64</a>);</div>
+<div class="line"><a id="l00161" name="l00161"></a><span class="lineno">  161</span>    <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00162" name="l00162"></a><span class="lineno">  162</span>    {</div>
+<div class="line"><a id="l00163" name="l00163"></a><span class="lineno">  163</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set type failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00164" name="l00164"></a><span class="lineno">  164</span>       </div>
+<div class="line"><a id="l00165" name="l00165"></a><span class="lineno">  165</span>        <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00166" name="l00166"></a><span class="lineno">  166</span>    }</div>
+<div class="line"><a id="l00167" name="l00167"></a><span class="lineno">  167</span>    <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set type W25Q64.\n&quot;</span>);</div>
+<div class="line"><a id="l00168" name="l00168"></a><span class="lineno">  168</span>    </div>
+<div class="line"><a id="l00169" name="l00169"></a><span class="lineno">  169</span>    <span class="comment">/* get type */</span></div>
+<div class="line"><a id="l00170" name="l00170"></a><span class="lineno">  170</span>    res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#ga685379998dad173b6d9c0b0da270685c">w25qxx_get_type</a>(&amp;gs_handle, &amp;type_check);</div>
+<div class="line"><a id="l00171" name="l00171"></a><span class="lineno">  171</span>    <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00172" name="l00172"></a><span class="lineno">  172</span>    {</div>
+<div class="line"><a id="l00173" name="l00173"></a><span class="lineno">  173</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set type failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00174" name="l00174"></a><span class="lineno">  174</span>       </div>
+<div class="line"><a id="l00175" name="l00175"></a><span class="lineno">  175</span>        <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00176" name="l00176"></a><span class="lineno">  176</span>    }</div>
+<div class="line"><a id="l00177" name="l00177"></a><span class="lineno">  177</span>    <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: check chip type %s.\n&quot;</span>, type_check == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a3ea98b2b3e06afa29441c51548bbb16e">W25Q64</a> ? <span class="stringliteral">&quot;ok&quot;</span> : <span class="stringliteral">&quot;error&quot;</span>);</div>
+<div class="line"><a id="l00178" name="l00178"></a><span class="lineno">  178</span>    </div>
+<div class="line"><a id="l00179" name="l00179"></a><span class="lineno">  179</span>    <span class="comment">/* set type w25q128 */</span></div>
+<div class="line"><a id="l00180" name="l00180"></a><span class="lineno">  180</span>    res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa57189cd4170b73f8b1300ca15e27de6">w25qxx_set_type</a>(&amp;gs_handle, <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a75afcbe71906d3884f4fcc119c1cabd5">W25Q128</a>);</div>
+<div class="line"><a id="l00181" name="l00181"></a><span class="lineno">  181</span>    <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00182" name="l00182"></a><span class="lineno">  182</span>    {</div>
+<div class="line"><a id="l00183" name="l00183"></a><span class="lineno">  183</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set type failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00184" name="l00184"></a><span class="lineno">  184</span>       </div>
+<div class="line"><a id="l00185" name="l00185"></a><span class="lineno">  185</span>        <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00186" name="l00186"></a><span class="lineno">  186</span>    }</div>
+<div class="line"><a id="l00187" name="l00187"></a><span class="lineno">  187</span>    <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set type W25Q128.\n&quot;</span>);</div>
+<div class="line"><a id="l00188" name="l00188"></a><span class="lineno">  188</span>    </div>
+<div class="line"><a id="l00189" name="l00189"></a><span class="lineno">  189</span>    <span class="comment">/* get type */</span></div>
+<div class="line"><a id="l00190" name="l00190"></a><span class="lineno">  190</span>    res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#ga685379998dad173b6d9c0b0da270685c">w25qxx_get_type</a>(&amp;gs_handle, &amp;type_check);</div>
+<div class="line"><a id="l00191" name="l00191"></a><span class="lineno">  191</span>    <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00192" name="l00192"></a><span class="lineno">  192</span>    {</div>
+<div class="line"><a id="l00193" name="l00193"></a><span class="lineno">  193</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set type failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00194" name="l00194"></a><span class="lineno">  194</span>       </div>
+<div class="line"><a id="l00195" name="l00195"></a><span class="lineno">  195</span>        <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00196" name="l00196"></a><span class="lineno">  196</span>    }</div>
+<div class="line"><a id="l00197" name="l00197"></a><span class="lineno">  197</span>    <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: check chip type %s.\n&quot;</span>, type_check == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a75afcbe71906d3884f4fcc119c1cabd5">W25Q128</a> ? <span class="stringliteral">&quot;ok&quot;</span> : <span class="stringliteral">&quot;error&quot;</span>);</div>
+<div class="line"><a id="l00198" name="l00198"></a><span class="lineno">  198</span> </div>
+<div class="line"><a id="l00199" name="l00199"></a><span class="lineno">  199</span>    <span class="comment">/* set type w25q256 */</span></div>
+<div class="line"><a id="l00200" name="l00200"></a><span class="lineno">  200</span>    res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa57189cd4170b73f8b1300ca15e27de6">w25qxx_set_type</a>(&amp;gs_handle, <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>);</div>
+<div class="line"><a id="l00201" name="l00201"></a><span class="lineno">  201</span>    <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00202" name="l00202"></a><span class="lineno">  202</span>    {</div>
+<div class="line"><a id="l00203" name="l00203"></a><span class="lineno">  203</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set type failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00204" name="l00204"></a><span class="lineno">  204</span>       </div>
+<div class="line"><a id="l00205" name="l00205"></a><span class="lineno">  205</span>        <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00206" name="l00206"></a><span class="lineno">  206</span>    }</div>
+<div class="line"><a id="l00207" name="l00207"></a><span class="lineno">  207</span>    <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set type W25Q256.\n&quot;</span>);</div>
+<div class="line"><a id="l00208" name="l00208"></a><span class="lineno">  208</span>    </div>
+<div class="line"><a id="l00209" name="l00209"></a><span class="lineno">  209</span>    <span class="comment">/* get type */</span></div>
+<div class="line"><a id="l00210" name="l00210"></a><span class="lineno">  210</span>    res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#ga685379998dad173b6d9c0b0da270685c">w25qxx_get_type</a>(&amp;gs_handle, &amp;type_check);</div>
+<div class="line"><a id="l00211" name="l00211"></a><span class="lineno">  211</span>    <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00212" name="l00212"></a><span class="lineno">  212</span>    {</div>
+<div class="line"><a id="l00213" name="l00213"></a><span class="lineno">  213</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set type failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00214" name="l00214"></a><span class="lineno">  214</span>       </div>
+<div class="line"><a id="l00215" name="l00215"></a><span class="lineno">  215</span>        <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00216" name="l00216"></a><span class="lineno">  216</span>    }</div>
+<div class="line"><a id="l00217" name="l00217"></a><span class="lineno">  217</span>    <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: check chip type %s.\n&quot;</span>, type_check == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a> ? <span class="stringliteral">&quot;ok&quot;</span> : <span class="stringliteral">&quot;error&quot;</span>);</div>
+<div class="line"><a id="l00218" name="l00218"></a><span class="lineno">  218</span>    </div>
+<div class="line"><a id="l00219" name="l00219"></a><span class="lineno">  219</span>    <span class="comment">/* w25qxx_set_interface/w25qxx_get_interface test */</span></div>
+<div class="line"><a id="l00220" name="l00220"></a><span class="lineno">  220</span>    <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_set_interface/w25qxx_get_interface test.\n&quot;</span>);</div>
+<div class="line"><a id="l00221" name="l00221"></a><span class="lineno">  221</span>    </div>
+<div class="line"><a id="l00222" name="l00222"></a><span class="lineno">  222</span>    <span class="comment">/* set chip interface spi */</span></div>
+<div class="line"><a id="l00223" name="l00223"></a><span class="lineno">  223</span>    res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#ga50a62003d566402d46ada2f272c41eb5">w25qxx_set_interface</a>(&amp;gs_handle, <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>);</div>
+<div class="line"><a id="l00224" name="l00224"></a><span class="lineno">  224</span>    <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00225" name="l00225"></a><span class="lineno">  225</span>    {</div>
+<div class="line"><a id="l00226" name="l00226"></a><span class="lineno">  226</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set interface failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00227" name="l00227"></a><span class="lineno">  227</span>       </div>
+<div class="line"><a id="l00228" name="l00228"></a><span class="lineno">  228</span>        <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00229" name="l00229"></a><span class="lineno">  229</span>    }</div>
+<div class="line"><a id="l00230" name="l00230"></a><span class="lineno">  230</span>    <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set interface SPI.\n&quot;</span>);</div>
+<div class="line"><a id="l00231" name="l00231"></a><span class="lineno">  231</span>    </div>
+<div class="line"><a id="l00232" name="l00232"></a><span class="lineno">  232</span>    <span class="comment">/* get interface */</span></div>
+<div class="line"><a id="l00233" name="l00233"></a><span class="lineno">  233</span>    res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#ga86ef839d475f3926a0be46bbc18d4b45">w25qxx_get_interface</a>(&amp;gs_handle, &amp;interface_check);</div>
+<div class="line"><a id="l00234" name="l00234"></a><span class="lineno">  234</span>    <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00235" name="l00235"></a><span class="lineno">  235</span>    {</div>
+<div class="line"><a id="l00236" name="l00236"></a><span class="lineno">  236</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: get interface failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00237" name="l00237"></a><span class="lineno">  237</span>       </div>
+<div class="line"><a id="l00238" name="l00238"></a><span class="lineno">  238</span>        <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00239" name="l00239"></a><span class="lineno">  239</span>    }</div>
+<div class="line"><a id="l00240" name="l00240"></a><span class="lineno">  240</span>    <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: check chip interface %s.\n&quot;</span>, interface_check == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a> ? <span class="stringliteral">&quot;ok&quot;</span> : <span class="stringliteral">&quot;error&quot;</span>);</div>
+<div class="line"><a id="l00241" name="l00241"></a><span class="lineno">  241</span>    </div>
+<div class="line"><a id="l00242" name="l00242"></a><span class="lineno">  242</span>    <span class="comment">/* set chip interface qspi */</span></div>
+<div class="line"><a id="l00243" name="l00243"></a><span class="lineno">  243</span>    res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#ga50a62003d566402d46ada2f272c41eb5">w25qxx_set_interface</a>(&amp;gs_handle, <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2fea895dcb5c91da89fad1c12161ffd2d5d4">W25QXX_INTERFACE_QSPI</a>);</div>
+<div class="line"><a id="l00244" name="l00244"></a><span class="lineno">  244</span>    <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00245" name="l00245"></a><span class="lineno">  245</span>    {</div>
+<div class="line"><a id="l00246" name="l00246"></a><span class="lineno">  246</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set interface failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00247" name="l00247"></a><span class="lineno">  247</span>       </div>
+<div class="line"><a id="l00248" name="l00248"></a><span class="lineno">  248</span>        <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00249" name="l00249"></a><span class="lineno">  249</span>    }</div>
+<div class="line"><a id="l00250" name="l00250"></a><span class="lineno">  250</span>    <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set interface QSPI.\n&quot;</span>);</div>
+<div class="line"><a id="l00251" name="l00251"></a><span class="lineno">  251</span>    </div>
+<div class="line"><a id="l00252" name="l00252"></a><span class="lineno">  252</span>    <span class="comment">/* get interface */</span></div>
+<div class="line"><a id="l00253" name="l00253"></a><span class="lineno">  253</span>    res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#ga86ef839d475f3926a0be46bbc18d4b45">w25qxx_get_interface</a>(&amp;gs_handle, &amp;interface_check);</div>
+<div class="line"><a id="l00254" name="l00254"></a><span class="lineno">  254</span>    <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00255" name="l00255"></a><span class="lineno">  255</span>    {</div>
+<div class="line"><a id="l00256" name="l00256"></a><span class="lineno">  256</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: get interface failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00257" name="l00257"></a><span class="lineno">  257</span>       </div>
+<div class="line"><a id="l00258" name="l00258"></a><span class="lineno">  258</span>        <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00259" name="l00259"></a><span class="lineno">  259</span>    }</div>
+<div class="line"><a id="l00260" name="l00260"></a><span class="lineno">  260</span>    <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: check chip interface %s.\n&quot;</span>, interface_check == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2fea895dcb5c91da89fad1c12161ffd2d5d4">W25QXX_INTERFACE_QSPI</a> ? <span class="stringliteral">&quot;ok&quot;</span> : <span class="stringliteral">&quot;error&quot;</span>);</div>
+<div class="line"><a id="l00261" name="l00261"></a><span class="lineno">  261</span>    </div>
+<div class="line"><a id="l00262" name="l00262"></a><span class="lineno">  262</span>    <span class="comment">/* set chip type */</span></div>
+<div class="line"><a id="l00263" name="l00263"></a><span class="lineno">  263</span>    res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa57189cd4170b73f8b1300ca15e27de6">w25qxx_set_type</a>(&amp;gs_handle, type);</div>
+<div class="line"><a id="l00264" name="l00264"></a><span class="lineno">  264</span>    <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00265" name="l00265"></a><span class="lineno">  265</span>    {</div>
+<div class="line"><a id="l00266" name="l00266"></a><span class="lineno">  266</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set type failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00267" name="l00267"></a><span class="lineno">  267</span>       </div>
+<div class="line"><a id="l00268" name="l00268"></a><span class="lineno">  268</span>        <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00269" name="l00269"></a><span class="lineno">  269</span>    }</div>
+<div class="line"><a id="l00270" name="l00270"></a><span class="lineno">  270</span>    </div>
+<div class="line"><a id="l00271" name="l00271"></a><span class="lineno">  271</span>    <span class="comment">/* set chip interface */</span></div>
+<div class="line"><a id="l00272" name="l00272"></a><span class="lineno">  272</span>    res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#ga50a62003d566402d46ada2f272c41eb5">w25qxx_set_interface</a>(&amp;gs_handle, interface);</div>
+<div class="line"><a id="l00273" name="l00273"></a><span class="lineno">  273</span>    <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00274" name="l00274"></a><span class="lineno">  274</span>    {</div>
+<div class="line"><a id="l00275" name="l00275"></a><span class="lineno">  275</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set interface failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00276" name="l00276"></a><span class="lineno">  276</span>       </div>
+<div class="line"><a id="l00277" name="l00277"></a><span class="lineno">  277</span>        <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00278" name="l00278"></a><span class="lineno">  278</span>    }</div>
+<div class="line"><a id="l00279" name="l00279"></a><span class="lineno">  279</span>    </div>
+<div class="line"><a id="l00280" name="l00280"></a><span class="lineno">  280</span>    <span class="comment">/* set dual quad spi */</span></div>
+<div class="line"><a id="l00281" name="l00281"></a><span class="lineno">  281</span>    res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#ga665139209b0abc386474a78d89cce6f2">w25qxx_set_dual_quad_spi</a>(&amp;gs_handle, dual_quad_spi_enable);</div>
+<div class="line"><a id="l00282" name="l00282"></a><span class="lineno">  282</span>    <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00283" name="l00283"></a><span class="lineno">  283</span>    {</div>
+<div class="line"><a id="l00284" name="l00284"></a><span class="lineno">  284</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set dual quad spi failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00285" name="l00285"></a><span class="lineno">  285</span>        (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00286" name="l00286"></a><span class="lineno">  286</span>       </div>
+<div class="line"><a id="l00287" name="l00287"></a><span class="lineno">  287</span>        <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00288" name="l00288"></a><span class="lineno">  288</span>    }</div>
+<div class="line"><a id="l00289" name="l00289"></a><span class="lineno">  289</span>    </div>
+<div class="line"><a id="l00290" name="l00290"></a><span class="lineno">  290</span>    <span class="comment">/* chip init */</span></div>
+<div class="line"><a id="l00291" name="l00291"></a><span class="lineno">  291</span>    res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#ga8e7a163b3d255b8c7fc035d0d60f2491">w25qxx_init</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00292" name="l00292"></a><span class="lineno">  292</span>    <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00293" name="l00293"></a><span class="lineno">  293</span>    {</div>
+<div class="line"><a id="l00294" name="l00294"></a><span class="lineno">  294</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: init failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00295" name="l00295"></a><span class="lineno">  295</span>       </div>
+<div class="line"><a id="l00296" name="l00296"></a><span class="lineno">  296</span>        <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00297" name="l00297"></a><span class="lineno">  297</span>    }</div>
+<div class="line"><a id="l00298" name="l00298"></a><span class="lineno">  298</span>    </div>
+<div class="line"><a id="l00299" name="l00299"></a><span class="lineno">  299</span>    <span class="keywordflow">if</span> (interface == <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>)</div>
+<div class="line"><a id="l00300" name="l00300"></a><span class="lineno">  300</span>    {</div>
+<div class="line"><a id="l00301" name="l00301"></a><span class="lineno">  301</span>        <span class="comment">/* w25qxx_get_manufacturer_device_id test */</span></div>
+<div class="line"><a id="l00302" name="l00302"></a><span class="lineno">  302</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_get_manufacturer_device_id test.\n&quot;</span>);</div>
+<div class="line"><a id="l00303" name="l00303"></a><span class="lineno">  303</span>        </div>
+<div class="line"><a id="l00304" name="l00304"></a><span class="lineno">  304</span>        <span class="comment">/* get manufacturer device id */</span></div>
+<div class="line"><a id="l00305" name="l00305"></a><span class="lineno">  305</span>        res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#ga921836a777b082ff4d0f322ccfda6b22">w25qxx_get_manufacturer_device_id</a>(&amp;gs_handle, (uint8_t *)&amp;manufacturer, (uint8_t *)device_id);</div>
+<div class="line"><a id="l00306" name="l00306"></a><span class="lineno">  306</span>        <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00307" name="l00307"></a><span class="lineno">  307</span>        {</div>
+<div class="line"><a id="l00308" name="l00308"></a><span class="lineno">  308</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: get manufacturer device id failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00309" name="l00309"></a><span class="lineno">  309</span>            (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00310" name="l00310"></a><span class="lineno">  310</span>           </div>
+<div class="line"><a id="l00311" name="l00311"></a><span class="lineno">  311</span>            <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00312" name="l00312"></a><span class="lineno">  312</span>        }</div>
+<div class="line"><a id="l00313" name="l00313"></a><span class="lineno">  313</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: manufacturer is 0x%02X, device id is 0x%02X.\n&quot;</span>, manufacturer, device_id[0]);</div>
+<div class="line"><a id="l00314" name="l00314"></a><span class="lineno">  314</span>        </div>
+<div class="line"><a id="l00315" name="l00315"></a><span class="lineno">  315</span>        <span class="comment">/* w25qxx_get_jedec_id test */</span></div>
+<div class="line"><a id="l00316" name="l00316"></a><span class="lineno">  316</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_get_jedec_id test.\n&quot;</span>);</div>
+<div class="line"><a id="l00317" name="l00317"></a><span class="lineno">  317</span>        </div>
+<div class="line"><a id="l00318" name="l00318"></a><span class="lineno">  318</span>        <span class="comment">/* get jedec id */</span></div>
+<div class="line"><a id="l00319" name="l00319"></a><span class="lineno">  319</span>        res = <a class="code hl_function" href="group__w25qxx__advance__driver.html#ga8a93ba14a032e10a27f1495fdcf56058">w25qxx_get_jedec_id</a>(&amp;gs_handle, (uint8_t *)&amp;manufacturer, (uint8_t *)device_id);</div>
+<div class="line"><a id="l00320" name="l00320"></a><span class="lineno">  320</span>        <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00321" name="l00321"></a><span class="lineno">  321</span>        {</div>
+<div class="line"><a id="l00322" name="l00322"></a><span class="lineno">  322</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: get jedec id failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00323" name="l00323"></a><span class="lineno">  323</span>            (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00324" name="l00324"></a><span class="lineno">  324</span>           </div>
+<div class="line"><a id="l00325" name="l00325"></a><span class="lineno">  325</span>            <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00326" name="l00326"></a><span class="lineno">  326</span>        }</div>
+<div class="line"><a id="l00327" name="l00327"></a><span class="lineno">  327</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: manufacturer is 0x%02X, device id is 0x%02X 0x%02X.\n&quot;</span>, manufacturer, </div>
+<div class="line"><a id="l00328" name="l00328"></a><span class="lineno">  328</span>                                     device_id[0], device_id[1]);</div>
+<div class="line"><a id="l00329" name="l00329"></a><span class="lineno">  329</span>        </div>
+<div class="line"><a id="l00330" name="l00330"></a><span class="lineno">  330</span>        <span class="comment">/* w25qxx_get_unique_id test */</span></div>
+<div class="line"><a id="l00331" name="l00331"></a><span class="lineno">  331</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_get_unique_id test.\n&quot;</span>);</div>
+<div class="line"><a id="l00332" name="l00332"></a><span class="lineno">  332</span>        </div>
+<div class="line"><a id="l00333" name="l00333"></a><span class="lineno">  333</span>        <span class="comment">/* get unique id */</span></div>
+<div class="line"><a id="l00334" name="l00334"></a><span class="lineno">  334</span>        res = <a class="code hl_function" href="group__w25qxx__advance__driver.html#ga11af244389478de68a6777076ee82d69">w25qxx_get_unique_id</a>(&amp;gs_handle, (uint8_t *)<span class="keywordtype">id</span>);</div>
+<div class="line"><a id="l00335" name="l00335"></a><span class="lineno">  335</span>        <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00336" name="l00336"></a><span class="lineno">  336</span>        {</div>
+<div class="line"><a id="l00337" name="l00337"></a><span class="lineno">  337</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: get unique id failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00338" name="l00338"></a><span class="lineno">  338</span>            (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00339" name="l00339"></a><span class="lineno">  339</span>           </div>
+<div class="line"><a id="l00340" name="l00340"></a><span class="lineno">  340</span>            <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00341" name="l00341"></a><span class="lineno">  341</span>        }</div>
+<div class="line"><a id="l00342" name="l00342"></a><span class="lineno">  342</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: unique id 0x%02X 0x%02X 0x%02X 0x%02X 0x%02X 0x%02X 0x%02X 0x%02X.\n&quot;</span>, </div>
+<div class="line"><a id="l00343" name="l00343"></a><span class="lineno">  343</span>                                     <span class="keywordtype">id</span>[0], <span class="keywordtype">id</span>[1], <span class="keywordtype">id</span>[2], <span class="keywordtype">id</span>[3], <span class="keywordtype">id</span>[4], <span class="keywordtype">id</span>[5], <span class="keywordtype">id</span>[6], <span class="keywordtype">id</span>[7]);</div>
+<div class="line"><a id="l00344" name="l00344"></a><span class="lineno">  344</span>        </div>
+<div class="line"><a id="l00345" name="l00345"></a><span class="lineno">  345</span>        <span class="comment">/* w25qxx_set_status1/w25qxx_get_status1 test */</span></div>
+<div class="line"><a id="l00346" name="l00346"></a><span class="lineno">  346</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_set_status1/w25qxx_get_status1 test.\n&quot;</span>);</div>
+<div class="line"><a id="l00347" name="l00347"></a><span class="lineno">  347</span>        </div>
+<div class="line"><a id="l00348" name="l00348"></a><span class="lineno">  348</span>        <span class="comment">/* set status1 */</span></div>
+<div class="line"><a id="l00349" name="l00349"></a><span class="lineno">  349</span>        res = <a class="code hl_function" href="group__w25qxx__advance__driver.html#ga246e0bb07c8bbb39731f17906779c012">w25qxx_set_status1</a>(&amp;gs_handle, 0x00);</div>
+<div class="line"><a id="l00350" name="l00350"></a><span class="lineno">  350</span>        <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00351" name="l00351"></a><span class="lineno">  351</span>        {</div>
+<div class="line"><a id="l00352" name="l00352"></a><span class="lineno">  352</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set status1 failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00353" name="l00353"></a><span class="lineno">  353</span>            (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00354" name="l00354"></a><span class="lineno">  354</span>           </div>
+<div class="line"><a id="l00355" name="l00355"></a><span class="lineno">  355</span>            <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00356" name="l00356"></a><span class="lineno">  356</span>        }</div>
+<div class="line"><a id="l00357" name="l00357"></a><span class="lineno">  357</span>        </div>
+<div class="line"><a id="l00358" name="l00358"></a><span class="lineno">  358</span>        <span class="comment">/* get status1 */</span></div>
+<div class="line"><a id="l00359" name="l00359"></a><span class="lineno">  359</span>        res = <a class="code hl_function" href="group__w25qxx__advance__driver.html#gaa77d2b00b4fb9cf586f77ace827ea7c6">w25qxx_get_status1</a>(&amp;gs_handle, (uint8_t *)&amp;status);</div>
+<div class="line"><a id="l00360" name="l00360"></a><span class="lineno">  360</span>        <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00361" name="l00361"></a><span class="lineno">  361</span>        {</div>
+<div class="line"><a id="l00362" name="l00362"></a><span class="lineno">  362</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: get status1 failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00363" name="l00363"></a><span class="lineno">  363</span>            (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00364" name="l00364"></a><span class="lineno">  364</span>           </div>
+<div class="line"><a id="l00365" name="l00365"></a><span class="lineno">  365</span>            <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00366" name="l00366"></a><span class="lineno">  366</span>        }</div>
+<div class="line"><a id="l00367" name="l00367"></a><span class="lineno">  367</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: status1 is 0x%02X.\n&quot;</span>, status);</div>
+<div class="line"><a id="l00368" name="l00368"></a><span class="lineno">  368</span>        </div>
+<div class="line"><a id="l00369" name="l00369"></a><span class="lineno">  369</span>        <span class="comment">/* w25qxx_set_status2/w25qxx_get_status2 test */</span></div>
+<div class="line"><a id="l00370" name="l00370"></a><span class="lineno">  370</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_set_status2/w25qxx_get_status2 test.\n&quot;</span>);</div>
+<div class="line"><a id="l00371" name="l00371"></a><span class="lineno">  371</span>        </div>
+<div class="line"><a id="l00372" name="l00372"></a><span class="lineno">  372</span>        <span class="comment">/* set status2 */</span></div>
+<div class="line"><a id="l00373" name="l00373"></a><span class="lineno">  373</span>        res = <a class="code hl_function" href="group__w25qxx__advance__driver.html#gaab5f28e8930d50dbc2178e39bc9fa456">w25qxx_set_status2</a>(&amp;gs_handle, 0x02);</div>
+<div class="line"><a id="l00374" name="l00374"></a><span class="lineno">  374</span>        <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00375" name="l00375"></a><span class="lineno">  375</span>        {</div>
+<div class="line"><a id="l00376" name="l00376"></a><span class="lineno">  376</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set status2 failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00377" name="l00377"></a><span class="lineno">  377</span>            (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00378" name="l00378"></a><span class="lineno">  378</span>           </div>
+<div class="line"><a id="l00379" name="l00379"></a><span class="lineno">  379</span>            <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00380" name="l00380"></a><span class="lineno">  380</span>        }</div>
+<div class="line"><a id="l00381" name="l00381"></a><span class="lineno">  381</span>        </div>
+<div class="line"><a id="l00382" name="l00382"></a><span class="lineno">  382</span>        <span class="comment">/* get status2 */</span></div>
+<div class="line"><a id="l00383" name="l00383"></a><span class="lineno">  383</span>        res = <a class="code hl_function" href="group__w25qxx__advance__driver.html#gaa21237ecbd5951b8017799066e7db5d9">w25qxx_get_status2</a>(&amp;gs_handle, (uint8_t *)&amp;status);</div>
+<div class="line"><a id="l00384" name="l00384"></a><span class="lineno">  384</span>        <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00385" name="l00385"></a><span class="lineno">  385</span>        {</div>
+<div class="line"><a id="l00386" name="l00386"></a><span class="lineno">  386</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: get status2 failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00387" name="l00387"></a><span class="lineno">  387</span>            (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00388" name="l00388"></a><span class="lineno">  388</span>           </div>
+<div class="line"><a id="l00389" name="l00389"></a><span class="lineno">  389</span>            <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00390" name="l00390"></a><span class="lineno">  390</span>        }</div>
+<div class="line"><a id="l00391" name="l00391"></a><span class="lineno">  391</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: status2 is 0x%02X.\n&quot;</span>, status);</div>
+<div class="line"><a id="l00392" name="l00392"></a><span class="lineno">  392</span>        </div>
+<div class="line"><a id="l00393" name="l00393"></a><span class="lineno">  393</span>        <span class="comment">/* w25qxx_set_status3/w25qxx_get_status3 test */</span></div>
+<div class="line"><a id="l00394" name="l00394"></a><span class="lineno">  394</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_set_status3/w25qxx_get_status3 test.\n&quot;</span>);</div>
+<div class="line"><a id="l00395" name="l00395"></a><span class="lineno">  395</span>        </div>
+<div class="line"><a id="l00396" name="l00396"></a><span class="lineno">  396</span>        <span class="comment">/* set status3 */</span></div>
+<div class="line"><a id="l00397" name="l00397"></a><span class="lineno">  397</span>        res = <a class="code hl_function" href="group__w25qxx__advance__driver.html#gada897a6c6d6acb99f4dd4ff9b65ad8ee">w25qxx_set_status3</a>(&amp;gs_handle, 0x60);</div>
+<div class="line"><a id="l00398" name="l00398"></a><span class="lineno">  398</span>        <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00399" name="l00399"></a><span class="lineno">  399</span>        {</div>
+<div class="line"><a id="l00400" name="l00400"></a><span class="lineno">  400</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set status3 failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00401" name="l00401"></a><span class="lineno">  401</span>            (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00402" name="l00402"></a><span class="lineno">  402</span>           </div>
+<div class="line"><a id="l00403" name="l00403"></a><span class="lineno">  403</span>            <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00404" name="l00404"></a><span class="lineno">  404</span>        }</div>
+<div class="line"><a id="l00405" name="l00405"></a><span class="lineno">  405</span>        </div>
+<div class="line"><a id="l00406" name="l00406"></a><span class="lineno">  406</span>        <span class="comment">/* get status3 */</span></div>
+<div class="line"><a id="l00407" name="l00407"></a><span class="lineno">  407</span>        res = <a class="code hl_function" href="group__w25qxx__advance__driver.html#ga99cf6a325a00921d4531004f0c1d75b1">w25qxx_get_status3</a>(&amp;gs_handle, (uint8_t *)&amp;status);</div>
+<div class="line"><a id="l00408" name="l00408"></a><span class="lineno">  408</span>        <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00409" name="l00409"></a><span class="lineno">  409</span>        {</div>
+<div class="line"><a id="l00410" name="l00410"></a><span class="lineno">  410</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: get status3 failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00411" name="l00411"></a><span class="lineno">  411</span>            (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00412" name="l00412"></a><span class="lineno">  412</span>           </div>
+<div class="line"><a id="l00413" name="l00413"></a><span class="lineno">  413</span>            <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00414" name="l00414"></a><span class="lineno">  414</span>        }</div>
+<div class="line"><a id="l00415" name="l00415"></a><span class="lineno">  415</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: status3 is 0x%02X.\n&quot;</span>, status);</div>
+<div class="line"><a id="l00416" name="l00416"></a><span class="lineno">  416</span>        </div>
+<div class="line"><a id="l00417" name="l00417"></a><span class="lineno">  417</span>        <span class="comment">/* w25qxx_enable_write test */</span></div>
+<div class="line"><a id="l00418" name="l00418"></a><span class="lineno">  418</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_enable_write test.\n&quot;</span>);</div>
+<div class="line"><a id="l00419" name="l00419"></a><span class="lineno">  419</span>        </div>
+<div class="line"><a id="l00420" name="l00420"></a><span class="lineno">  420</span>        <span class="comment">/* enable write */</span></div>
+<div class="line"><a id="l00421" name="l00421"></a><span class="lineno">  421</span>        res = <a class="code hl_function" href="group__w25qxx__advance__driver.html#gaeb269123feec054eaaf70f2ffb5797a3">w25qxx_enable_write</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00422" name="l00422"></a><span class="lineno">  422</span>        <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00423" name="l00423"></a><span class="lineno">  423</span>        {</div>
+<div class="line"><a id="l00424" name="l00424"></a><span class="lineno">  424</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: enable write failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00425" name="l00425"></a><span class="lineno">  425</span>            (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00426" name="l00426"></a><span class="lineno">  426</span>           </div>
+<div class="line"><a id="l00427" name="l00427"></a><span class="lineno">  427</span>            <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00428" name="l00428"></a><span class="lineno">  428</span>        }</div>
+<div class="line"><a id="l00429" name="l00429"></a><span class="lineno">  429</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: check enable write %s.\n&quot;</span>, res == 0 ? <span class="stringliteral">&quot;ok&quot;</span> : <span class="stringliteral">&quot;error&quot;</span>);</div>
+<div class="line"><a id="l00430" name="l00430"></a><span class="lineno">  430</span>        </div>
+<div class="line"><a id="l00431" name="l00431"></a><span class="lineno">  431</span>        <span class="comment">/* w25qxx_disable_write test */</span></div>
+<div class="line"><a id="l00432" name="l00432"></a><span class="lineno">  432</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_disable_write test.\n&quot;</span>);</div>
+<div class="line"><a id="l00433" name="l00433"></a><span class="lineno">  433</span>        </div>
+<div class="line"><a id="l00434" name="l00434"></a><span class="lineno">  434</span>        <span class="comment">/* disable write */</span></div>
+<div class="line"><a id="l00435" name="l00435"></a><span class="lineno">  435</span>        res = <a class="code hl_function" href="group__w25qxx__advance__driver.html#gac16a31269277051baad6c28fe4254b4a">w25qxx_disable_write</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00436" name="l00436"></a><span class="lineno">  436</span>        <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00437" name="l00437"></a><span class="lineno">  437</span>        {</div>
+<div class="line"><a id="l00438" name="l00438"></a><span class="lineno">  438</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: disable write failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00439" name="l00439"></a><span class="lineno">  439</span>            (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00440" name="l00440"></a><span class="lineno">  440</span>           </div>
+<div class="line"><a id="l00441" name="l00441"></a><span class="lineno">  441</span>            <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00442" name="l00442"></a><span class="lineno">  442</span>        }</div>
+<div class="line"><a id="l00443" name="l00443"></a><span class="lineno">  443</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: check disable write %s.\n&quot;</span>, res == 0 ? <span class="stringliteral">&quot;ok&quot;</span> : <span class="stringliteral">&quot;error&quot;</span>);</div>
+<div class="line"><a id="l00444" name="l00444"></a><span class="lineno">  444</span>        </div>
+<div class="line"><a id="l00445" name="l00445"></a><span class="lineno">  445</span>        <span class="comment">/* w25qxx_enable_write test */</span></div>
+<div class="line"><a id="l00446" name="l00446"></a><span class="lineno">  446</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_enable_write test.\n&quot;</span>);</div>
+<div class="line"><a id="l00447" name="l00447"></a><span class="lineno">  447</span>        </div>
+<div class="line"><a id="l00448" name="l00448"></a><span class="lineno">  448</span>        <span class="comment">/* enable sr write */</span></div>
+<div class="line"><a id="l00449" name="l00449"></a><span class="lineno">  449</span>        res = <a class="code hl_function" href="group__w25qxx__advance__driver.html#ga0f8889d6a25c32e150a2ab30753d461d">w25qxx_enable_volatile_sr_write</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00450" name="l00450"></a><span class="lineno">  450</span>        <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00451" name="l00451"></a><span class="lineno">  451</span>        {</div>
+<div class="line"><a id="l00452" name="l00452"></a><span class="lineno">  452</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: enable sr write failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00453" name="l00453"></a><span class="lineno">  453</span>            (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00454" name="l00454"></a><span class="lineno">  454</span>           </div>
+<div class="line"><a id="l00455" name="l00455"></a><span class="lineno">  455</span>            <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00456" name="l00456"></a><span class="lineno">  456</span>        }</div>
+<div class="line"><a id="l00457" name="l00457"></a><span class="lineno">  457</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: check enable sr write %s.\n&quot;</span>, res == 0 ? <span class="stringliteral">&quot;ok&quot;</span> : <span class="stringliteral">&quot;error&quot;</span>);</div>
+<div class="line"><a id="l00458" name="l00458"></a><span class="lineno">  458</span>        </div>
+<div class="line"><a id="l00459" name="l00459"></a><span class="lineno">  459</span>        <span class="comment">/* w25qxx_erase_program_suspend test */</span></div>
+<div class="line"><a id="l00460" name="l00460"></a><span class="lineno">  460</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_erase_program_suspend test.\n&quot;</span>);</div>
+<div class="line"><a id="l00461" name="l00461"></a><span class="lineno">  461</span>        </div>
+<div class="line"><a id="l00462" name="l00462"></a><span class="lineno">  462</span>        <span class="comment">/* erase program suspend */</span></div>
+<div class="line"><a id="l00463" name="l00463"></a><span class="lineno">  463</span>        res = <a class="code hl_function" href="group__w25qxx__advance__driver.html#gac7fbabc574c250eec100be861f5918ff">w25qxx_erase_program_suspend</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00464" name="l00464"></a><span class="lineno">  464</span>        <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00465" name="l00465"></a><span class="lineno">  465</span>        {</div>
+<div class="line"><a id="l00466" name="l00466"></a><span class="lineno">  466</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: erase program suspend failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00467" name="l00467"></a><span class="lineno">  467</span>            (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00468" name="l00468"></a><span class="lineno">  468</span>           </div>
+<div class="line"><a id="l00469" name="l00469"></a><span class="lineno">  469</span>            <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00470" name="l00470"></a><span class="lineno">  470</span>        }</div>
+<div class="line"><a id="l00471" name="l00471"></a><span class="lineno">  471</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: check erase program suspend %s.\n&quot;</span>, res == 0 ? <span class="stringliteral">&quot;ok&quot;</span> : <span class="stringliteral">&quot;error&quot;</span>);</div>
+<div class="line"><a id="l00472" name="l00472"></a><span class="lineno">  472</span>        </div>
+<div class="line"><a id="l00473" name="l00473"></a><span class="lineno">  473</span>        <span class="comment">/* w25qxx_erase_program_suspend test */</span></div>
+<div class="line"><a id="l00474" name="l00474"></a><span class="lineno">  474</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_erase_program_suspend test.\n&quot;</span>);</div>
+<div class="line"><a id="l00475" name="l00475"></a><span class="lineno">  475</span>        </div>
+<div class="line"><a id="l00476" name="l00476"></a><span class="lineno">  476</span>        <span class="comment">/* erase program resume */</span></div>
+<div class="line"><a id="l00477" name="l00477"></a><span class="lineno">  477</span>        res = <a class="code hl_function" href="group__w25qxx__advance__driver.html#ga05c69ac66309544eba4ff38a69f24c00">w25qxx_erase_program_resume</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00478" name="l00478"></a><span class="lineno">  478</span>        <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00479" name="l00479"></a><span class="lineno">  479</span>        {</div>
+<div class="line"><a id="l00480" name="l00480"></a><span class="lineno">  480</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: erase program resume failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00481" name="l00481"></a><span class="lineno">  481</span>            (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00482" name="l00482"></a><span class="lineno">  482</span>           </div>
+<div class="line"><a id="l00483" name="l00483"></a><span class="lineno">  483</span>            <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00484" name="l00484"></a><span class="lineno">  484</span>        }</div>
+<div class="line"><a id="l00485" name="l00485"></a><span class="lineno">  485</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: check erase program resume %s.\n&quot;</span>, res == 0 ? <span class="stringliteral">&quot;ok&quot;</span> : <span class="stringliteral">&quot;error&quot;</span>);</div>
+<div class="line"><a id="l00486" name="l00486"></a><span class="lineno">  486</span>        </div>
+<div class="line"><a id="l00487" name="l00487"></a><span class="lineno">  487</span>        <span class="comment">/* w25qxx_global_block_lock test */</span></div>
+<div class="line"><a id="l00488" name="l00488"></a><span class="lineno">  488</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_global_block_lock test.\n&quot;</span>);</div>
+<div class="line"><a id="l00489" name="l00489"></a><span class="lineno">  489</span>        </div>
+<div class="line"><a id="l00490" name="l00490"></a><span class="lineno">  490</span>        <span class="comment">/* global block lock */</span></div>
+<div class="line"><a id="l00491" name="l00491"></a><span class="lineno">  491</span>        res = <a class="code hl_function" href="group__w25qxx__advance__driver.html#gab5579bc42bc07a7657848140888a817c">w25qxx_global_block_lock</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00492" name="l00492"></a><span class="lineno">  492</span>        <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00493" name="l00493"></a><span class="lineno">  493</span>        {</div>
+<div class="line"><a id="l00494" name="l00494"></a><span class="lineno">  494</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: global block lock failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00495" name="l00495"></a><span class="lineno">  495</span>            (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00496" name="l00496"></a><span class="lineno">  496</span>           </div>
+<div class="line"><a id="l00497" name="l00497"></a><span class="lineno">  497</span>            <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00498" name="l00498"></a><span class="lineno">  498</span>        }</div>
+<div class="line"><a id="l00499" name="l00499"></a><span class="lineno">  499</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: check global block lock %s.\n&quot;</span>, res == 0 ? <span class="stringliteral">&quot;ok&quot;</span> : <span class="stringliteral">&quot;error&quot;</span>);</div>
+<div class="line"><a id="l00500" name="l00500"></a><span class="lineno">  500</span>        </div>
+<div class="line"><a id="l00501" name="l00501"></a><span class="lineno">  501</span>        <span class="comment">/* w25qxx_global_block_unlock test */</span></div>
+<div class="line"><a id="l00502" name="l00502"></a><span class="lineno">  502</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_global_block_unlock test.\n&quot;</span>);</div>
+<div class="line"><a id="l00503" name="l00503"></a><span class="lineno">  503</span>        </div>
+<div class="line"><a id="l00504" name="l00504"></a><span class="lineno">  504</span>        <span class="comment">/* global block unlock */</span></div>
+<div class="line"><a id="l00505" name="l00505"></a><span class="lineno">  505</span>        res = <a class="code hl_function" href="group__w25qxx__advance__driver.html#ga6d62f7d14945cfde7cde7a0e9a4e3afb">w25qxx_global_block_unlock</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00506" name="l00506"></a><span class="lineno">  506</span>        <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00507" name="l00507"></a><span class="lineno">  507</span>        {</div>
+<div class="line"><a id="l00508" name="l00508"></a><span class="lineno">  508</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: global block unlock failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00509" name="l00509"></a><span class="lineno">  509</span>            (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00510" name="l00510"></a><span class="lineno">  510</span>           </div>
+<div class="line"><a id="l00511" name="l00511"></a><span class="lineno">  511</span>            <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00512" name="l00512"></a><span class="lineno">  512</span>        }</div>
+<div class="line"><a id="l00513" name="l00513"></a><span class="lineno">  513</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: check global block unlock %s.\n&quot;</span>, res == 0 ? <span class="stringliteral">&quot;ok&quot;</span> : <span class="stringliteral">&quot;error&quot;</span>);</div>
+<div class="line"><a id="l00514" name="l00514"></a><span class="lineno">  514</span>        </div>
+<div class="line"><a id="l00515" name="l00515"></a><span class="lineno">  515</span>        <span class="comment">/* w25qxx_individual_block_lock test */</span></div>
+<div class="line"><a id="l00516" name="l00516"></a><span class="lineno">  516</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_individual_block_lock test.\n&quot;</span>);</div>
+<div class="line"><a id="l00517" name="l00517"></a><span class="lineno">  517</span>        </div>
+<div class="line"><a id="l00518" name="l00518"></a><span class="lineno">  518</span>        <span class="comment">/* individual block lock */</span></div>
+<div class="line"><a id="l00519" name="l00519"></a><span class="lineno">  519</span>        res = <a class="code hl_function" href="group__w25qxx__advance__driver.html#ga4f00c2c169cb7c3084841c6cd795e76b">w25qxx_individual_block_lock</a>(&amp;gs_handle, 0x00000000);</div>
+<div class="line"><a id="l00520" name="l00520"></a><span class="lineno">  520</span>        <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00521" name="l00521"></a><span class="lineno">  521</span>        {</div>
+<div class="line"><a id="l00522" name="l00522"></a><span class="lineno">  522</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: individual block lock failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00523" name="l00523"></a><span class="lineno">  523</span>            (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00524" name="l00524"></a><span class="lineno">  524</span>           </div>
+<div class="line"><a id="l00525" name="l00525"></a><span class="lineno">  525</span>            <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00526" name="l00526"></a><span class="lineno">  526</span>        }</div>
+<div class="line"><a id="l00527" name="l00527"></a><span class="lineno">  527</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: check individual block lock %s.\n&quot;</span>, res == 0 ? <span class="stringliteral">&quot;ok&quot;</span> : <span class="stringliteral">&quot;error&quot;</span>);</div>
+<div class="line"><a id="l00528" name="l00528"></a><span class="lineno">  528</span>        </div>
+<div class="line"><a id="l00529" name="l00529"></a><span class="lineno">  529</span>        <span class="comment">/* w25qxx_read_block_lock test */</span></div>
+<div class="line"><a id="l00530" name="l00530"></a><span class="lineno">  530</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_read_block_lock test.\n&quot;</span>);</div>
+<div class="line"><a id="l00531" name="l00531"></a><span class="lineno">  531</span>        </div>
+<div class="line"><a id="l00532" name="l00532"></a><span class="lineno">  532</span>        res = <a class="code hl_function" href="group__w25qxx__advance__driver.html#ga59e655ca78a175037ca810bbc8539a96">w25qxx_read_block_lock</a>(&amp;gs_handle, 0x00000000, (uint8_t *)&amp;status);</div>
+<div class="line"><a id="l00533" name="l00533"></a><span class="lineno">  533</span>        <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00534" name="l00534"></a><span class="lineno">  534</span>        {</div>
+<div class="line"><a id="l00535" name="l00535"></a><span class="lineno">  535</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: read block lock failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00536" name="l00536"></a><span class="lineno">  536</span>            (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00537" name="l00537"></a><span class="lineno">  537</span>           </div>
+<div class="line"><a id="l00538" name="l00538"></a><span class="lineno">  538</span>            <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00539" name="l00539"></a><span class="lineno">  539</span>        }</div>
+<div class="line"><a id="l00540" name="l00540"></a><span class="lineno">  540</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: check read block lock %s with %d.\n&quot;</span>, res == 0 ? <span class="stringliteral">&quot;ok&quot;</span> : <span class="stringliteral">&quot;error&quot;</span>, status);</div>
+<div class="line"><a id="l00541" name="l00541"></a><span class="lineno">  541</span>        </div>
+<div class="line"><a id="l00542" name="l00542"></a><span class="lineno">  542</span>        <span class="comment">/* w25qxx_individual_block_unlock test */</span></div>
+<div class="line"><a id="l00543" name="l00543"></a><span class="lineno">  543</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_individual_block_unlock test.\n&quot;</span>);</div>
+<div class="line"><a id="l00544" name="l00544"></a><span class="lineno">  544</span>        </div>
+<div class="line"><a id="l00545" name="l00545"></a><span class="lineno">  545</span>        <span class="comment">/* individual block unlock */</span></div>
+<div class="line"><a id="l00546" name="l00546"></a><span class="lineno">  546</span>        res = <a class="code hl_function" href="group__w25qxx__advance__driver.html#ga7f88cedf7619071b3235ba094915b2a7">w25qxx_individual_block_unlock</a>(&amp;gs_handle, 0x00000000);</div>
+<div class="line"><a id="l00547" name="l00547"></a><span class="lineno">  547</span>        <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00548" name="l00548"></a><span class="lineno">  548</span>        {</div>
+<div class="line"><a id="l00549" name="l00549"></a><span class="lineno">  549</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: individual block unlock failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00550" name="l00550"></a><span class="lineno">  550</span>            (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00551" name="l00551"></a><span class="lineno">  551</span>           </div>
+<div class="line"><a id="l00552" name="l00552"></a><span class="lineno">  552</span>            <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00553" name="l00553"></a><span class="lineno">  553</span>        }</div>
+<div class="line"><a id="l00554" name="l00554"></a><span class="lineno">  554</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: check individual block unlock %s.\n&quot;</span>, res == 0 ? <span class="stringliteral">&quot;ok&quot;</span> : <span class="stringliteral">&quot;error&quot;</span>);</div>
+<div class="line"><a id="l00555" name="l00555"></a><span class="lineno">  555</span> </div>
+<div class="line"><a id="l00556" name="l00556"></a><span class="lineno">  556</span>        <span class="comment">/* w25qxx_set_burst_with_wrap test */</span></div>
+<div class="line"><a id="l00557" name="l00557"></a><span class="lineno">  557</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_set_burst_with_wrap test.\n&quot;</span>);</div>
+<div class="line"><a id="l00558" name="l00558"></a><span class="lineno">  558</span>        </div>
+<div class="line"><a id="l00559" name="l00559"></a><span class="lineno">  559</span>        <span class="comment">/* set burst with wrap */</span></div>
+<div class="line"><a id="l00560" name="l00560"></a><span class="lineno">  560</span>        res = <a class="code hl_function" href="group__w25qxx__advance__driver.html#gac19c1d0f3fd48968ea2a93c1dbe3d75d">w25qxx_set_burst_with_wrap</a>(&amp;gs_handle, <a class="code hl_enumvalue" href="group__w25qxx__advance__driver.html#gga94bbae2bf8906903e8dc2a28c490723dae39a7ea65512a56d40aad2990d55815d">W25QXX_BURST_WRAP_NONE</a>);</div>
+<div class="line"><a id="l00561" name="l00561"></a><span class="lineno">  561</span>        <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00562" name="l00562"></a><span class="lineno">  562</span>        {</div>
+<div class="line"><a id="l00563" name="l00563"></a><span class="lineno">  563</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set burst with wrap failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00564" name="l00564"></a><span class="lineno">  564</span>            (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00565" name="l00565"></a><span class="lineno">  565</span>           </div>
+<div class="line"><a id="l00566" name="l00566"></a><span class="lineno">  566</span>            <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00567" name="l00567"></a><span class="lineno">  567</span>        }</div>
+<div class="line"><a id="l00568" name="l00568"></a><span class="lineno">  568</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: check set burst with wrap %s.\n&quot;</span>, res == 0 ? <span class="stringliteral">&quot;ok&quot;</span> : <span class="stringliteral">&quot;error&quot;</span>);</div>
+<div class="line"><a id="l00569" name="l00569"></a><span class="lineno">  569</span>        </div>
+<div class="line"><a id="l00570" name="l00570"></a><span class="lineno">  570</span>        <span class="comment">/* w25qxx_power_down test */</span></div>
+<div class="line"><a id="l00571" name="l00571"></a><span class="lineno">  571</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_power_down test.\n&quot;</span>);</div>
+<div class="line"><a id="l00572" name="l00572"></a><span class="lineno">  572</span>        </div>
+<div class="line"><a id="l00573" name="l00573"></a><span class="lineno">  573</span>        <span class="comment">/* power down */</span></div>
+<div class="line"><a id="l00574" name="l00574"></a><span class="lineno">  574</span>        res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#gae4effce67e36120325e3c7b245b90142">w25qxx_power_down</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00575" name="l00575"></a><span class="lineno">  575</span>        <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00576" name="l00576"></a><span class="lineno">  576</span>        {</div>
+<div class="line"><a id="l00577" name="l00577"></a><span class="lineno">  577</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: power down failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00578" name="l00578"></a><span class="lineno">  578</span>            (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00579" name="l00579"></a><span class="lineno">  579</span>           </div>
+<div class="line"><a id="l00580" name="l00580"></a><span class="lineno">  580</span>            <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00581" name="l00581"></a><span class="lineno">  581</span>        }</div>
+<div class="line"><a id="l00582" name="l00582"></a><span class="lineno">  582</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga964fa232abf98737cb98458eebfff82c">w25qxx_interface_delay_ms</a>(10);</div>
+<div class="line"><a id="l00583" name="l00583"></a><span class="lineno">  583</span>        </div>
+<div class="line"><a id="l00584" name="l00584"></a><span class="lineno">  584</span>        <span class="comment">/* w25qxx_release_power_down test */</span></div>
+<div class="line"><a id="l00585" name="l00585"></a><span class="lineno">  585</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_release_power_down test.\n&quot;</span>);</div>
+<div class="line"><a id="l00586" name="l00586"></a><span class="lineno">  586</span>        </div>
+<div class="line"><a id="l00587" name="l00587"></a><span class="lineno">  587</span>        <span class="comment">/* release power down */</span></div>
+<div class="line"><a id="l00588" name="l00588"></a><span class="lineno">  588</span>        res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#ga09c9b52877516a2ee4c080dc249e7331">w25qxx_release_power_down</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00589" name="l00589"></a><span class="lineno">  589</span>        <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00590" name="l00590"></a><span class="lineno">  590</span>        {</div>
+<div class="line"><a id="l00591" name="l00591"></a><span class="lineno">  591</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: release power down failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00592" name="l00592"></a><span class="lineno">  592</span>            (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00593" name="l00593"></a><span class="lineno">  593</span>           </div>
+<div class="line"><a id="l00594" name="l00594"></a><span class="lineno">  594</span>            <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00595" name="l00595"></a><span class="lineno">  595</span>        }</div>
+<div class="line"><a id="l00596" name="l00596"></a><span class="lineno">  596</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga964fa232abf98737cb98458eebfff82c">w25qxx_interface_delay_ms</a>(10);</div>
+<div class="line"><a id="l00597" name="l00597"></a><span class="lineno">  597</span>        </div>
+<div class="line"><a id="l00598" name="l00598"></a><span class="lineno">  598</span>        <span class="comment">/* w25qxx_enable_reset test */</span></div>
+<div class="line"><a id="l00599" name="l00599"></a><span class="lineno">  599</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_enable_reset test.\n&quot;</span>);</div>
+<div class="line"><a id="l00600" name="l00600"></a><span class="lineno">  600</span>        </div>
+<div class="line"><a id="l00601" name="l00601"></a><span class="lineno">  601</span>        <span class="comment">/* enable reset */</span></div>
+<div class="line"><a id="l00602" name="l00602"></a><span class="lineno">  602</span>        res = <a class="code hl_function" href="group__w25qxx__advance__driver.html#gab55b4e071e20feb58584025287949438">w25qxx_enable_reset</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00603" name="l00603"></a><span class="lineno">  603</span>        <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00604" name="l00604"></a><span class="lineno">  604</span>        {</div>
+<div class="line"><a id="l00605" name="l00605"></a><span class="lineno">  605</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: enable reset failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00606" name="l00606"></a><span class="lineno">  606</span>            (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00607" name="l00607"></a><span class="lineno">  607</span>           </div>
+<div class="line"><a id="l00608" name="l00608"></a><span class="lineno">  608</span>            <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00609" name="l00609"></a><span class="lineno">  609</span>        }</div>
+<div class="line"><a id="l00610" name="l00610"></a><span class="lineno">  610</span>        </div>
+<div class="line"><a id="l00611" name="l00611"></a><span class="lineno">  611</span>        <span class="comment">/* w25qxx_reset_device test */</span></div>
+<div class="line"><a id="l00612" name="l00612"></a><span class="lineno">  612</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_reset_device test.\n&quot;</span>);</div>
+<div class="line"><a id="l00613" name="l00613"></a><span class="lineno">  613</span>        </div>
+<div class="line"><a id="l00614" name="l00614"></a><span class="lineno">  614</span>        <span class="comment">/* reset device */</span></div>
+<div class="line"><a id="l00615" name="l00615"></a><span class="lineno">  615</span>        res = <a class="code hl_function" href="group__w25qxx__advance__driver.html#ga2abebfe2a8d9377eb88448ffca73f222">w25qxx_reset_device</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00616" name="l00616"></a><span class="lineno">  616</span>        <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00617" name="l00617"></a><span class="lineno">  617</span>        {</div>
+<div class="line"><a id="l00618" name="l00618"></a><span class="lineno">  618</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: reset device failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00619" name="l00619"></a><span class="lineno">  619</span>            (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00620" name="l00620"></a><span class="lineno">  620</span>           </div>
+<div class="line"><a id="l00621" name="l00621"></a><span class="lineno">  621</span>            <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00622" name="l00622"></a><span class="lineno">  622</span>        }</div>
+<div class="line"><a id="l00623" name="l00623"></a><span class="lineno">  623</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga964fa232abf98737cb98458eebfff82c">w25qxx_interface_delay_ms</a>(10);</div>
+<div class="line"><a id="l00624" name="l00624"></a><span class="lineno">  624</span>        </div>
+<div class="line"><a id="l00625" name="l00625"></a><span class="lineno">  625</span>        <span class="keywordflow">if</span> (type &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)</div>
+<div class="line"><a id="l00626" name="l00626"></a><span class="lineno">  626</span>        {</div>
+<div class="line"><a id="l00627" name="l00627"></a><span class="lineno">  627</span>            <span class="comment">/* set address mode 4 byte */</span></div>
+<div class="line"><a id="l00628" name="l00628"></a><span class="lineno">  628</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set address mode 4 byte.\n&quot;</span>);</div>
+<div class="line"><a id="l00629" name="l00629"></a><span class="lineno">  629</span>            </div>
+<div class="line"><a id="l00630" name="l00630"></a><span class="lineno">  630</span>            <span class="comment">/* set address mode 4 byte */</span></div>
+<div class="line"><a id="l00631" name="l00631"></a><span class="lineno">  631</span>            res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#gad0e125eff304ce66fb3956d2c8c80656">w25qxx_set_address_mode</a>(&amp;gs_handle, <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>);</div>
+<div class="line"><a id="l00632" name="l00632"></a><span class="lineno">  632</span>            <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00633" name="l00633"></a><span class="lineno">  633</span>            {</div>
+<div class="line"><a id="l00634" name="l00634"></a><span class="lineno">  634</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set address mode failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00635" name="l00635"></a><span class="lineno">  635</span>                (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00636" name="l00636"></a><span class="lineno">  636</span>               </div>
+<div class="line"><a id="l00637" name="l00637"></a><span class="lineno">  637</span>                <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00638" name="l00638"></a><span class="lineno">  638</span>            }</div>
+<div class="line"><a id="l00639" name="l00639"></a><span class="lineno">  639</span>            </div>
+<div class="line"><a id="l00640" name="l00640"></a><span class="lineno">  640</span>            <span class="comment">/* w25qxx_get_unique_id test */</span></div>
+<div class="line"><a id="l00641" name="l00641"></a><span class="lineno">  641</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_get_unique_id test.\n&quot;</span>);</div>
+<div class="line"><a id="l00642" name="l00642"></a><span class="lineno">  642</span>            </div>
+<div class="line"><a id="l00643" name="l00643"></a><span class="lineno">  643</span>            <span class="comment">/* get unique id */</span></div>
+<div class="line"><a id="l00644" name="l00644"></a><span class="lineno">  644</span>            res = <a class="code hl_function" href="group__w25qxx__advance__driver.html#ga11af244389478de68a6777076ee82d69">w25qxx_get_unique_id</a>(&amp;gs_handle, (uint8_t *)<span class="keywordtype">id</span>);</div>
+<div class="line"><a id="l00645" name="l00645"></a><span class="lineno">  645</span>            <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00646" name="l00646"></a><span class="lineno">  646</span>            {</div>
+<div class="line"><a id="l00647" name="l00647"></a><span class="lineno">  647</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: get unique id failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00648" name="l00648"></a><span class="lineno">  648</span>                (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00649" name="l00649"></a><span class="lineno">  649</span>               </div>
+<div class="line"><a id="l00650" name="l00650"></a><span class="lineno">  650</span>                <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00651" name="l00651"></a><span class="lineno">  651</span>            }</div>
+<div class="line"><a id="l00652" name="l00652"></a><span class="lineno">  652</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: unique id 0x%02X 0x%02X 0x%02X 0x%02X 0x%02X 0x%02X 0x%02X 0x%02X.\n&quot;</span>, </div>
+<div class="line"><a id="l00653" name="l00653"></a><span class="lineno">  653</span>                                         <span class="keywordtype">id</span>[0], <span class="keywordtype">id</span>[1], <span class="keywordtype">id</span>[2], <span class="keywordtype">id</span>[3], <span class="keywordtype">id</span>[4], <span class="keywordtype">id</span>[5], <span class="keywordtype">id</span>[6], <span class="keywordtype">id</span>[7]);</div>
+<div class="line"><a id="l00654" name="l00654"></a><span class="lineno">  654</span>                                         </div>
+<div class="line"><a id="l00655" name="l00655"></a><span class="lineno">  655</span>            <span class="comment">/* w25qxx_individual_block_lock test */</span></div>
+<div class="line"><a id="l00656" name="l00656"></a><span class="lineno">  656</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_individual_block_lock test.\n&quot;</span>);</div>
+<div class="line"><a id="l00657" name="l00657"></a><span class="lineno">  657</span>            </div>
+<div class="line"><a id="l00658" name="l00658"></a><span class="lineno">  658</span>            <span class="comment">/* individual block lock */</span></div>
+<div class="line"><a id="l00659" name="l00659"></a><span class="lineno">  659</span>            res = <a class="code hl_function" href="group__w25qxx__advance__driver.html#ga4f00c2c169cb7c3084841c6cd795e76b">w25qxx_individual_block_lock</a>(&amp;gs_handle, 0x00000000);</div>
+<div class="line"><a id="l00660" name="l00660"></a><span class="lineno">  660</span>            <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00661" name="l00661"></a><span class="lineno">  661</span>            {</div>
+<div class="line"><a id="l00662" name="l00662"></a><span class="lineno">  662</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: individual block lock failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00663" name="l00663"></a><span class="lineno">  663</span>                (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00664" name="l00664"></a><span class="lineno">  664</span>               </div>
+<div class="line"><a id="l00665" name="l00665"></a><span class="lineno">  665</span>                <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00666" name="l00666"></a><span class="lineno">  666</span>            }</div>
+<div class="line"><a id="l00667" name="l00667"></a><span class="lineno">  667</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: check individual block lock %s.\n&quot;</span>, res == 0 ? <span class="stringliteral">&quot;ok&quot;</span> : <span class="stringliteral">&quot;error&quot;</span>);</div>
+<div class="line"><a id="l00668" name="l00668"></a><span class="lineno">  668</span>            </div>
+<div class="line"><a id="l00669" name="l00669"></a><span class="lineno">  669</span>            <span class="comment">/* w25qxx_read_block_lock test */</span></div>
+<div class="line"><a id="l00670" name="l00670"></a><span class="lineno">  670</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_read_block_lock test.\n&quot;</span>);</div>
+<div class="line"><a id="l00671" name="l00671"></a><span class="lineno">  671</span>            </div>
+<div class="line"><a id="l00672" name="l00672"></a><span class="lineno">  672</span>            res = <a class="code hl_function" href="group__w25qxx__advance__driver.html#ga59e655ca78a175037ca810bbc8539a96">w25qxx_read_block_lock</a>(&amp;gs_handle, 0x00000000, (uint8_t *)&amp;status);</div>
+<div class="line"><a id="l00673" name="l00673"></a><span class="lineno">  673</span>            <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00674" name="l00674"></a><span class="lineno">  674</span>            {</div>
+<div class="line"><a id="l00675" name="l00675"></a><span class="lineno">  675</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: read block lock failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00676" name="l00676"></a><span class="lineno">  676</span>                (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00677" name="l00677"></a><span class="lineno">  677</span>               </div>
+<div class="line"><a id="l00678" name="l00678"></a><span class="lineno">  678</span>                <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00679" name="l00679"></a><span class="lineno">  679</span>            }</div>
+<div class="line"><a id="l00680" name="l00680"></a><span class="lineno">  680</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: check read block lock %s with %d.\n&quot;</span>, res == 0 ? <span class="stringliteral">&quot;ok&quot;</span> : <span class="stringliteral">&quot;error&quot;</span>, status);</div>
+<div class="line"><a id="l00681" name="l00681"></a><span class="lineno">  681</span>            </div>
+<div class="line"><a id="l00682" name="l00682"></a><span class="lineno">  682</span>            <span class="comment">/* w25qxx_individual_block_unlock test */</span></div>
+<div class="line"><a id="l00683" name="l00683"></a><span class="lineno">  683</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_individual_block_unlock test.\n&quot;</span>);</div>
+<div class="line"><a id="l00684" name="l00684"></a><span class="lineno">  684</span>            </div>
+<div class="line"><a id="l00685" name="l00685"></a><span class="lineno">  685</span>            <span class="comment">/* individual block unlock */</span></div>
+<div class="line"><a id="l00686" name="l00686"></a><span class="lineno">  686</span>            res = <a class="code hl_function" href="group__w25qxx__advance__driver.html#ga7f88cedf7619071b3235ba094915b2a7">w25qxx_individual_block_unlock</a>(&amp;gs_handle, 0x00000000);</div>
+<div class="line"><a id="l00687" name="l00687"></a><span class="lineno">  687</span>            <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00688" name="l00688"></a><span class="lineno">  688</span>            {</div>
+<div class="line"><a id="l00689" name="l00689"></a><span class="lineno">  689</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: individual block unlock failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00690" name="l00690"></a><span class="lineno">  690</span>                (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00691" name="l00691"></a><span class="lineno">  691</span>               </div>
+<div class="line"><a id="l00692" name="l00692"></a><span class="lineno">  692</span>                <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00693" name="l00693"></a><span class="lineno">  693</span>            }</div>
+<div class="line"><a id="l00694" name="l00694"></a><span class="lineno">  694</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: check individual block unlock %s.\n&quot;</span>, res == 0 ? <span class="stringliteral">&quot;ok&quot;</span> : <span class="stringliteral">&quot;error&quot;</span>);</div>
+<div class="line"><a id="l00695" name="l00695"></a><span class="lineno">  695</span>            </div>
+<div class="line"><a id="l00696" name="l00696"></a><span class="lineno">  696</span>            <span class="comment">/* set address mode 3 byte */</span></div>
+<div class="line"><a id="l00697" name="l00697"></a><span class="lineno">  697</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set address mode 3 byte.\n&quot;</span>);</div>
+<div class="line"><a id="l00698" name="l00698"></a><span class="lineno">  698</span>            </div>
+<div class="line"><a id="l00699" name="l00699"></a><span class="lineno">  699</span>            <span class="comment">/* set address mode 3 byte */</span></div>
+<div class="line"><a id="l00700" name="l00700"></a><span class="lineno">  700</span>            res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#gad0e125eff304ce66fb3956d2c8c80656">w25qxx_set_address_mode</a>(&amp;gs_handle, <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>);</div>
+<div class="line"><a id="l00701" name="l00701"></a><span class="lineno">  701</span>            <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00702" name="l00702"></a><span class="lineno">  702</span>            {</div>
+<div class="line"><a id="l00703" name="l00703"></a><span class="lineno">  703</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set address mode failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00704" name="l00704"></a><span class="lineno">  704</span>                (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00705" name="l00705"></a><span class="lineno">  705</span>               </div>
+<div class="line"><a id="l00706" name="l00706"></a><span class="lineno">  706</span>                <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00707" name="l00707"></a><span class="lineno">  707</span>            }</div>
+<div class="line"><a id="l00708" name="l00708"></a><span class="lineno">  708</span>        }</div>
+<div class="line"><a id="l00709" name="l00709"></a><span class="lineno">  709</span>    }</div>
+<div class="line"><a id="l00710" name="l00710"></a><span class="lineno">  710</span>    <span class="keywordflow">else</span></div>
+<div class="line"><a id="l00711" name="l00711"></a><span class="lineno">  711</span>    {</div>
+<div class="line"><a id="l00712" name="l00712"></a><span class="lineno">  712</span>        <span class="comment">/* w25qxx_get_manufacturer_device_id test */</span></div>
+<div class="line"><a id="l00713" name="l00713"></a><span class="lineno">  713</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_get_manufacturer_device_id test.\n&quot;</span>);</div>
+<div class="line"><a id="l00714" name="l00714"></a><span class="lineno">  714</span>        </div>
+<div class="line"><a id="l00715" name="l00715"></a><span class="lineno">  715</span>        <span class="comment">/* get manufacturer device id */</span></div>
+<div class="line"><a id="l00716" name="l00716"></a><span class="lineno">  716</span>        res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#ga921836a777b082ff4d0f322ccfda6b22">w25qxx_get_manufacturer_device_id</a>(&amp;gs_handle, (uint8_t *)&amp;manufacturer, (uint8_t *)device_id);</div>
+<div class="line"><a id="l00717" name="l00717"></a><span class="lineno">  717</span>        <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00718" name="l00718"></a><span class="lineno">  718</span>        {</div>
+<div class="line"><a id="l00719" name="l00719"></a><span class="lineno">  719</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: get manufacturer device id failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00720" name="l00720"></a><span class="lineno">  720</span>            (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00721" name="l00721"></a><span class="lineno">  721</span>           </div>
+<div class="line"><a id="l00722" name="l00722"></a><span class="lineno">  722</span>            <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00723" name="l00723"></a><span class="lineno">  723</span>        }</div>
+<div class="line"><a id="l00724" name="l00724"></a><span class="lineno">  724</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: manufacturer is 0x%02X, device id is 0x%02X.\n&quot;</span>, manufacturer, device_id[0]);</div>
+<div class="line"><a id="l00725" name="l00725"></a><span class="lineno">  725</span>        </div>
+<div class="line"><a id="l00726" name="l00726"></a><span class="lineno">  726</span>        <span class="comment">/* w25qxx_get_jedec_id test */</span></div>
+<div class="line"><a id="l00727" name="l00727"></a><span class="lineno">  727</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_get_jedec_id test.\n&quot;</span>);</div>
+<div class="line"><a id="l00728" name="l00728"></a><span class="lineno">  728</span>        </div>
+<div class="line"><a id="l00729" name="l00729"></a><span class="lineno">  729</span>        <span class="comment">/* get jedec id */</span></div>
+<div class="line"><a id="l00730" name="l00730"></a><span class="lineno">  730</span>        res = <a class="code hl_function" href="group__w25qxx__advance__driver.html#ga8a93ba14a032e10a27f1495fdcf56058">w25qxx_get_jedec_id</a>(&amp;gs_handle, (uint8_t *)&amp;manufacturer, (uint8_t *)device_id);</div>
+<div class="line"><a id="l00731" name="l00731"></a><span class="lineno">  731</span>        <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00732" name="l00732"></a><span class="lineno">  732</span>        {</div>
+<div class="line"><a id="l00733" name="l00733"></a><span class="lineno">  733</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: get jedec id failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00734" name="l00734"></a><span class="lineno">  734</span>            (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00735" name="l00735"></a><span class="lineno">  735</span>           </div>
+<div class="line"><a id="l00736" name="l00736"></a><span class="lineno">  736</span>            <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00737" name="l00737"></a><span class="lineno">  737</span>        }</div>
+<div class="line"><a id="l00738" name="l00738"></a><span class="lineno">  738</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: manufacturer is 0x%02X, device id is 0x%02X 0x%02X.\n&quot;</span>, manufacturer, </div>
+<div class="line"><a id="l00739" name="l00739"></a><span class="lineno">  739</span>                                     device_id[0], device_id[1]);</div>
+<div class="line"><a id="l00740" name="l00740"></a><span class="lineno">  740</span>        </div>
+<div class="line"><a id="l00741" name="l00741"></a><span class="lineno">  741</span>        <span class="comment">/* w25qxx_set_status1/w25qxx_get_status1 test */</span></div>
+<div class="line"><a id="l00742" name="l00742"></a><span class="lineno">  742</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_set_status1/w25qxx_get_status1 test.\n&quot;</span>);</div>
+<div class="line"><a id="l00743" name="l00743"></a><span class="lineno">  743</span>        </div>
+<div class="line"><a id="l00744" name="l00744"></a><span class="lineno">  744</span>        <span class="comment">/* set status1 */</span></div>
+<div class="line"><a id="l00745" name="l00745"></a><span class="lineno">  745</span>        res = <a class="code hl_function" href="group__w25qxx__advance__driver.html#ga246e0bb07c8bbb39731f17906779c012">w25qxx_set_status1</a>(&amp;gs_handle, 0x00);</div>
+<div class="line"><a id="l00746" name="l00746"></a><span class="lineno">  746</span>        <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00747" name="l00747"></a><span class="lineno">  747</span>        {</div>
+<div class="line"><a id="l00748" name="l00748"></a><span class="lineno">  748</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set status1 failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00749" name="l00749"></a><span class="lineno">  749</span>            (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00750" name="l00750"></a><span class="lineno">  750</span>           </div>
+<div class="line"><a id="l00751" name="l00751"></a><span class="lineno">  751</span>            <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00752" name="l00752"></a><span class="lineno">  752</span>        }</div>
+<div class="line"><a id="l00753" name="l00753"></a><span class="lineno">  753</span>        </div>
+<div class="line"><a id="l00754" name="l00754"></a><span class="lineno">  754</span>        <span class="comment">/* get status1 */</span></div>
+<div class="line"><a id="l00755" name="l00755"></a><span class="lineno">  755</span>        res = <a class="code hl_function" href="group__w25qxx__advance__driver.html#gaa77d2b00b4fb9cf586f77ace827ea7c6">w25qxx_get_status1</a>(&amp;gs_handle, (uint8_t *)&amp;status);</div>
+<div class="line"><a id="l00756" name="l00756"></a><span class="lineno">  756</span>        <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00757" name="l00757"></a><span class="lineno">  757</span>        {</div>
+<div class="line"><a id="l00758" name="l00758"></a><span class="lineno">  758</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: get status1 failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00759" name="l00759"></a><span class="lineno">  759</span>            (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00760" name="l00760"></a><span class="lineno">  760</span>           </div>
+<div class="line"><a id="l00761" name="l00761"></a><span class="lineno">  761</span>            <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00762" name="l00762"></a><span class="lineno">  762</span>        }</div>
+<div class="line"><a id="l00763" name="l00763"></a><span class="lineno">  763</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: status1 is 0x%02X.\n&quot;</span>, status);</div>
+<div class="line"><a id="l00764" name="l00764"></a><span class="lineno">  764</span>        </div>
+<div class="line"><a id="l00765" name="l00765"></a><span class="lineno">  765</span>        <span class="comment">/* w25qxx_set_status2/w25qxx_get_status2 test */</span></div>
+<div class="line"><a id="l00766" name="l00766"></a><span class="lineno">  766</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_set_status2/w25qxx_get_status2 test.\n&quot;</span>);</div>
+<div class="line"><a id="l00767" name="l00767"></a><span class="lineno">  767</span>        </div>
+<div class="line"><a id="l00768" name="l00768"></a><span class="lineno">  768</span>        <span class="comment">/* set status2 */</span></div>
+<div class="line"><a id="l00769" name="l00769"></a><span class="lineno">  769</span>        res = <a class="code hl_function" href="group__w25qxx__advance__driver.html#gaab5f28e8930d50dbc2178e39bc9fa456">w25qxx_set_status2</a>(&amp;gs_handle, 0x02);</div>
+<div class="line"><a id="l00770" name="l00770"></a><span class="lineno">  770</span>        <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00771" name="l00771"></a><span class="lineno">  771</span>        {</div>
+<div class="line"><a id="l00772" name="l00772"></a><span class="lineno">  772</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set status2 failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00773" name="l00773"></a><span class="lineno">  773</span>            (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00774" name="l00774"></a><span class="lineno">  774</span>           </div>
+<div class="line"><a id="l00775" name="l00775"></a><span class="lineno">  775</span>            <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00776" name="l00776"></a><span class="lineno">  776</span>        }</div>
+<div class="line"><a id="l00777" name="l00777"></a><span class="lineno">  777</span>        </div>
+<div class="line"><a id="l00778" name="l00778"></a><span class="lineno">  778</span>        <span class="comment">/* get status2 */</span></div>
+<div class="line"><a id="l00779" name="l00779"></a><span class="lineno">  779</span>        res = <a class="code hl_function" href="group__w25qxx__advance__driver.html#gaa21237ecbd5951b8017799066e7db5d9">w25qxx_get_status2</a>(&amp;gs_handle, (uint8_t *)&amp;status);</div>
+<div class="line"><a id="l00780" name="l00780"></a><span class="lineno">  780</span>        <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00781" name="l00781"></a><span class="lineno">  781</span>        {</div>
+<div class="line"><a id="l00782" name="l00782"></a><span class="lineno">  782</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: get status2 failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00783" name="l00783"></a><span class="lineno">  783</span>            (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00784" name="l00784"></a><span class="lineno">  784</span>           </div>
+<div class="line"><a id="l00785" name="l00785"></a><span class="lineno">  785</span>            <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00786" name="l00786"></a><span class="lineno">  786</span>        }</div>
+<div class="line"><a id="l00787" name="l00787"></a><span class="lineno">  787</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: status2 is 0x%02X.\n&quot;</span>, status);</div>
+<div class="line"><a id="l00788" name="l00788"></a><span class="lineno">  788</span>        </div>
+<div class="line"><a id="l00789" name="l00789"></a><span class="lineno">  789</span>        <span class="comment">/* w25qxx_set_status3/w25qxx_get_status3 test */</span></div>
+<div class="line"><a id="l00790" name="l00790"></a><span class="lineno">  790</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_set_status3/w25qxx_get_status3 test.\n&quot;</span>);</div>
+<div class="line"><a id="l00791" name="l00791"></a><span class="lineno">  791</span>        </div>
+<div class="line"><a id="l00792" name="l00792"></a><span class="lineno">  792</span>        <span class="comment">/* set status3 */</span></div>
+<div class="line"><a id="l00793" name="l00793"></a><span class="lineno">  793</span>        res = <a class="code hl_function" href="group__w25qxx__advance__driver.html#gada897a6c6d6acb99f4dd4ff9b65ad8ee">w25qxx_set_status3</a>(&amp;gs_handle, 0x60);</div>
+<div class="line"><a id="l00794" name="l00794"></a><span class="lineno">  794</span>        <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00795" name="l00795"></a><span class="lineno">  795</span>        {</div>
+<div class="line"><a id="l00796" name="l00796"></a><span class="lineno">  796</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set status3 failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00797" name="l00797"></a><span class="lineno">  797</span>            (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00798" name="l00798"></a><span class="lineno">  798</span>           </div>
+<div class="line"><a id="l00799" name="l00799"></a><span class="lineno">  799</span>            <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00800" name="l00800"></a><span class="lineno">  800</span>        }</div>
+<div class="line"><a id="l00801" name="l00801"></a><span class="lineno">  801</span>        </div>
+<div class="line"><a id="l00802" name="l00802"></a><span class="lineno">  802</span>        <span class="comment">/* get status3 */</span></div>
+<div class="line"><a id="l00803" name="l00803"></a><span class="lineno">  803</span>        res = <a class="code hl_function" href="group__w25qxx__advance__driver.html#ga99cf6a325a00921d4531004f0c1d75b1">w25qxx_get_status3</a>(&amp;gs_handle, (uint8_t *)&amp;status);</div>
+<div class="line"><a id="l00804" name="l00804"></a><span class="lineno">  804</span>        <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00805" name="l00805"></a><span class="lineno">  805</span>        {</div>
+<div class="line"><a id="l00806" name="l00806"></a><span class="lineno">  806</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: get status3 failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00807" name="l00807"></a><span class="lineno">  807</span>            (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00808" name="l00808"></a><span class="lineno">  808</span>           </div>
+<div class="line"><a id="l00809" name="l00809"></a><span class="lineno">  809</span>            <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00810" name="l00810"></a><span class="lineno">  810</span>        }</div>
+<div class="line"><a id="l00811" name="l00811"></a><span class="lineno">  811</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: status3 is 0x%02X.\n&quot;</span>, status);</div>
+<div class="line"><a id="l00812" name="l00812"></a><span class="lineno">  812</span>        </div>
+<div class="line"><a id="l00813" name="l00813"></a><span class="lineno">  813</span>        <span class="comment">/* w25qxx_enable_write test */</span></div>
+<div class="line"><a id="l00814" name="l00814"></a><span class="lineno">  814</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_enable_write test.\n&quot;</span>);</div>
+<div class="line"><a id="l00815" name="l00815"></a><span class="lineno">  815</span>        </div>
+<div class="line"><a id="l00816" name="l00816"></a><span class="lineno">  816</span>        <span class="comment">/* enable write */</span></div>
+<div class="line"><a id="l00817" name="l00817"></a><span class="lineno">  817</span>        res = <a class="code hl_function" href="group__w25qxx__advance__driver.html#gaeb269123feec054eaaf70f2ffb5797a3">w25qxx_enable_write</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00818" name="l00818"></a><span class="lineno">  818</span>        <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00819" name="l00819"></a><span class="lineno">  819</span>        {</div>
+<div class="line"><a id="l00820" name="l00820"></a><span class="lineno">  820</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: enable write failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00821" name="l00821"></a><span class="lineno">  821</span>            (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00822" name="l00822"></a><span class="lineno">  822</span>           </div>
+<div class="line"><a id="l00823" name="l00823"></a><span class="lineno">  823</span>            <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00824" name="l00824"></a><span class="lineno">  824</span>        }</div>
+<div class="line"><a id="l00825" name="l00825"></a><span class="lineno">  825</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: check enable write %s.\n&quot;</span>, res == 0 ? <span class="stringliteral">&quot;ok&quot;</span> : <span class="stringliteral">&quot;error&quot;</span>);</div>
+<div class="line"><a id="l00826" name="l00826"></a><span class="lineno">  826</span>        </div>
+<div class="line"><a id="l00827" name="l00827"></a><span class="lineno">  827</span>        <span class="comment">/* w25qxx_disable_write test */</span></div>
+<div class="line"><a id="l00828" name="l00828"></a><span class="lineno">  828</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_disable_write test.\n&quot;</span>);</div>
+<div class="line"><a id="l00829" name="l00829"></a><span class="lineno">  829</span>        </div>
+<div class="line"><a id="l00830" name="l00830"></a><span class="lineno">  830</span>        <span class="comment">/* disable write */</span></div>
+<div class="line"><a id="l00831" name="l00831"></a><span class="lineno">  831</span>        res = <a class="code hl_function" href="group__w25qxx__advance__driver.html#gac16a31269277051baad6c28fe4254b4a">w25qxx_disable_write</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00832" name="l00832"></a><span class="lineno">  832</span>        <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00833" name="l00833"></a><span class="lineno">  833</span>        {</div>
+<div class="line"><a id="l00834" name="l00834"></a><span class="lineno">  834</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: disable write failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00835" name="l00835"></a><span class="lineno">  835</span>            (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00836" name="l00836"></a><span class="lineno">  836</span>           </div>
+<div class="line"><a id="l00837" name="l00837"></a><span class="lineno">  837</span>            <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00838" name="l00838"></a><span class="lineno">  838</span>        }</div>
+<div class="line"><a id="l00839" name="l00839"></a><span class="lineno">  839</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: check disable write %s.\n&quot;</span>, res == 0 ? <span class="stringliteral">&quot;ok&quot;</span> : <span class="stringliteral">&quot;error&quot;</span>);</div>
+<div class="line"><a id="l00840" name="l00840"></a><span class="lineno">  840</span>        </div>
+<div class="line"><a id="l00841" name="l00841"></a><span class="lineno">  841</span>        <span class="comment">/* w25qxx_enable_write test */</span></div>
+<div class="line"><a id="l00842" name="l00842"></a><span class="lineno">  842</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_enable_write test.\n&quot;</span>);</div>
+<div class="line"><a id="l00843" name="l00843"></a><span class="lineno">  843</span>        </div>
+<div class="line"><a id="l00844" name="l00844"></a><span class="lineno">  844</span>        <span class="comment">/* enable sr write */</span></div>
+<div class="line"><a id="l00845" name="l00845"></a><span class="lineno">  845</span>        res = <a class="code hl_function" href="group__w25qxx__advance__driver.html#ga0f8889d6a25c32e150a2ab30753d461d">w25qxx_enable_volatile_sr_write</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00846" name="l00846"></a><span class="lineno">  846</span>        <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00847" name="l00847"></a><span class="lineno">  847</span>        {</div>
+<div class="line"><a id="l00848" name="l00848"></a><span class="lineno">  848</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: enable sr write failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00849" name="l00849"></a><span class="lineno">  849</span>            (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00850" name="l00850"></a><span class="lineno">  850</span>           </div>
+<div class="line"><a id="l00851" name="l00851"></a><span class="lineno">  851</span>            <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00852" name="l00852"></a><span class="lineno">  852</span>        }</div>
+<div class="line"><a id="l00853" name="l00853"></a><span class="lineno">  853</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: check enable sr write %s.\n&quot;</span>, res == 0 ? <span class="stringliteral">&quot;ok&quot;</span> : <span class="stringliteral">&quot;error&quot;</span>);</div>
+<div class="line"><a id="l00854" name="l00854"></a><span class="lineno">  854</span>        </div>
+<div class="line"><a id="l00855" name="l00855"></a><span class="lineno">  855</span>        <span class="comment">/* w25qxx_erase_program_suspend test */</span></div>
+<div class="line"><a id="l00856" name="l00856"></a><span class="lineno">  856</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_erase_program_suspend test.\n&quot;</span>);</div>
+<div class="line"><a id="l00857" name="l00857"></a><span class="lineno">  857</span>        </div>
+<div class="line"><a id="l00858" name="l00858"></a><span class="lineno">  858</span>        <span class="comment">/* erase program suspend */</span></div>
+<div class="line"><a id="l00859" name="l00859"></a><span class="lineno">  859</span>        res = <a class="code hl_function" href="group__w25qxx__advance__driver.html#gac7fbabc574c250eec100be861f5918ff">w25qxx_erase_program_suspend</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00860" name="l00860"></a><span class="lineno">  860</span>        <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00861" name="l00861"></a><span class="lineno">  861</span>        {</div>
+<div class="line"><a id="l00862" name="l00862"></a><span class="lineno">  862</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: erase program suspend failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00863" name="l00863"></a><span class="lineno">  863</span>            (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00864" name="l00864"></a><span class="lineno">  864</span>           </div>
+<div class="line"><a id="l00865" name="l00865"></a><span class="lineno">  865</span>            <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00866" name="l00866"></a><span class="lineno">  866</span>        }</div>
+<div class="line"><a id="l00867" name="l00867"></a><span class="lineno">  867</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: check erase program suspend %s.\n&quot;</span>, res == 0 ? <span class="stringliteral">&quot;ok&quot;</span> : <span class="stringliteral">&quot;error&quot;</span>);</div>
+<div class="line"><a id="l00868" name="l00868"></a><span class="lineno">  868</span>        </div>
+<div class="line"><a id="l00869" name="l00869"></a><span class="lineno">  869</span>        <span class="comment">/* w25qxx_erase_program_suspend test */</span></div>
+<div class="line"><a id="l00870" name="l00870"></a><span class="lineno">  870</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_erase_program_suspend test.\n&quot;</span>);</div>
+<div class="line"><a id="l00871" name="l00871"></a><span class="lineno">  871</span>        </div>
+<div class="line"><a id="l00872" name="l00872"></a><span class="lineno">  872</span>        <span class="comment">/* erase program resume */</span></div>
+<div class="line"><a id="l00873" name="l00873"></a><span class="lineno">  873</span>        res = <a class="code hl_function" href="group__w25qxx__advance__driver.html#ga05c69ac66309544eba4ff38a69f24c00">w25qxx_erase_program_resume</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00874" name="l00874"></a><span class="lineno">  874</span>        <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00875" name="l00875"></a><span class="lineno">  875</span>        {</div>
+<div class="line"><a id="l00876" name="l00876"></a><span class="lineno">  876</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: erase program resume failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00877" name="l00877"></a><span class="lineno">  877</span>            (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00878" name="l00878"></a><span class="lineno">  878</span>           </div>
+<div class="line"><a id="l00879" name="l00879"></a><span class="lineno">  879</span>            <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00880" name="l00880"></a><span class="lineno">  880</span>        }</div>
+<div class="line"><a id="l00881" name="l00881"></a><span class="lineno">  881</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: check erase program resume %s.\n&quot;</span>, res == 0 ? <span class="stringliteral">&quot;ok&quot;</span> : <span class="stringliteral">&quot;error&quot;</span>);</div>
+<div class="line"><a id="l00882" name="l00882"></a><span class="lineno">  882</span>        </div>
+<div class="line"><a id="l00883" name="l00883"></a><span class="lineno">  883</span>        <span class="comment">/* w25qxx_global_block_lock test */</span></div>
+<div class="line"><a id="l00884" name="l00884"></a><span class="lineno">  884</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_global_block_lock test.\n&quot;</span>);</div>
+<div class="line"><a id="l00885" name="l00885"></a><span class="lineno">  885</span>        </div>
+<div class="line"><a id="l00886" name="l00886"></a><span class="lineno">  886</span>        <span class="comment">/* global block lock */</span></div>
+<div class="line"><a id="l00887" name="l00887"></a><span class="lineno">  887</span>        res = <a class="code hl_function" href="group__w25qxx__advance__driver.html#gab5579bc42bc07a7657848140888a817c">w25qxx_global_block_lock</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00888" name="l00888"></a><span class="lineno">  888</span>        <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00889" name="l00889"></a><span class="lineno">  889</span>        {</div>
+<div class="line"><a id="l00890" name="l00890"></a><span class="lineno">  890</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: global block lock failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00891" name="l00891"></a><span class="lineno">  891</span>            (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00892" name="l00892"></a><span class="lineno">  892</span>           </div>
+<div class="line"><a id="l00893" name="l00893"></a><span class="lineno">  893</span>            <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00894" name="l00894"></a><span class="lineno">  894</span>        }</div>
+<div class="line"><a id="l00895" name="l00895"></a><span class="lineno">  895</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: check global block lock %s.\n&quot;</span>, res == 0 ? <span class="stringliteral">&quot;ok&quot;</span> : <span class="stringliteral">&quot;error&quot;</span>);</div>
+<div class="line"><a id="l00896" name="l00896"></a><span class="lineno">  896</span>        </div>
+<div class="line"><a id="l00897" name="l00897"></a><span class="lineno">  897</span>        <span class="comment">/* w25qxx_global_block_unlock test */</span></div>
+<div class="line"><a id="l00898" name="l00898"></a><span class="lineno">  898</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_global_block_unlock test.\n&quot;</span>);</div>
+<div class="line"><a id="l00899" name="l00899"></a><span class="lineno">  899</span>        </div>
+<div class="line"><a id="l00900" name="l00900"></a><span class="lineno">  900</span>        <span class="comment">/* global block unlock */</span></div>
+<div class="line"><a id="l00901" name="l00901"></a><span class="lineno">  901</span>        res = <a class="code hl_function" href="group__w25qxx__advance__driver.html#ga6d62f7d14945cfde7cde7a0e9a4e3afb">w25qxx_global_block_unlock</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00902" name="l00902"></a><span class="lineno">  902</span>        <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00903" name="l00903"></a><span class="lineno">  903</span>        {</div>
+<div class="line"><a id="l00904" name="l00904"></a><span class="lineno">  904</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: global block unlock failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00905" name="l00905"></a><span class="lineno">  905</span>            (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00906" name="l00906"></a><span class="lineno">  906</span>           </div>
+<div class="line"><a id="l00907" name="l00907"></a><span class="lineno">  907</span>            <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00908" name="l00908"></a><span class="lineno">  908</span>        }</div>
+<div class="line"><a id="l00909" name="l00909"></a><span class="lineno">  909</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: check global block unlock %s.\n&quot;</span>, res == 0 ? <span class="stringliteral">&quot;ok&quot;</span> : <span class="stringliteral">&quot;error&quot;</span>);</div>
+<div class="line"><a id="l00910" name="l00910"></a><span class="lineno">  910</span>        </div>
+<div class="line"><a id="l00911" name="l00911"></a><span class="lineno">  911</span>        <span class="comment">/* w25qxx_individual_block_lock test */</span></div>
+<div class="line"><a id="l00912" name="l00912"></a><span class="lineno">  912</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_individual_block_lock test.\n&quot;</span>);</div>
+<div class="line"><a id="l00913" name="l00913"></a><span class="lineno">  913</span>        </div>
+<div class="line"><a id="l00914" name="l00914"></a><span class="lineno">  914</span>        <span class="comment">/* individual block lock */</span></div>
+<div class="line"><a id="l00915" name="l00915"></a><span class="lineno">  915</span>        res = <a class="code hl_function" href="group__w25qxx__advance__driver.html#ga4f00c2c169cb7c3084841c6cd795e76b">w25qxx_individual_block_lock</a>(&amp;gs_handle, 0x00000000);</div>
+<div class="line"><a id="l00916" name="l00916"></a><span class="lineno">  916</span>        <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00917" name="l00917"></a><span class="lineno">  917</span>        {</div>
+<div class="line"><a id="l00918" name="l00918"></a><span class="lineno">  918</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: individual block lock failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00919" name="l00919"></a><span class="lineno">  919</span>            (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00920" name="l00920"></a><span class="lineno">  920</span>           </div>
+<div class="line"><a id="l00921" name="l00921"></a><span class="lineno">  921</span>            <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00922" name="l00922"></a><span class="lineno">  922</span>        }</div>
+<div class="line"><a id="l00923" name="l00923"></a><span class="lineno">  923</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: check individual block lock %s.\n&quot;</span>, res == 0 ? <span class="stringliteral">&quot;ok&quot;</span> : <span class="stringliteral">&quot;error&quot;</span>);</div>
+<div class="line"><a id="l00924" name="l00924"></a><span class="lineno">  924</span>        </div>
+<div class="line"><a id="l00925" name="l00925"></a><span class="lineno">  925</span>        <span class="comment">/* w25qxx_read_block_lock test */</span></div>
+<div class="line"><a id="l00926" name="l00926"></a><span class="lineno">  926</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_read_block_lock test.\n&quot;</span>);</div>
+<div class="line"><a id="l00927" name="l00927"></a><span class="lineno">  927</span>        </div>
+<div class="line"><a id="l00928" name="l00928"></a><span class="lineno">  928</span>        res = <a class="code hl_function" href="group__w25qxx__advance__driver.html#ga59e655ca78a175037ca810bbc8539a96">w25qxx_read_block_lock</a>(&amp;gs_handle, 0x00000000, (uint8_t *)&amp;status);</div>
+<div class="line"><a id="l00929" name="l00929"></a><span class="lineno">  929</span>        <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00930" name="l00930"></a><span class="lineno">  930</span>        {</div>
+<div class="line"><a id="l00931" name="l00931"></a><span class="lineno">  931</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: read block lock failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00932" name="l00932"></a><span class="lineno">  932</span>            (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00933" name="l00933"></a><span class="lineno">  933</span>           </div>
+<div class="line"><a id="l00934" name="l00934"></a><span class="lineno">  934</span>            <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00935" name="l00935"></a><span class="lineno">  935</span>        }</div>
+<div class="line"><a id="l00936" name="l00936"></a><span class="lineno">  936</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: check read block lock %s with %d.\n&quot;</span>, res == 0 ? <span class="stringliteral">&quot;ok&quot;</span> : <span class="stringliteral">&quot;error&quot;</span>, status);</div>
+<div class="line"><a id="l00937" name="l00937"></a><span class="lineno">  937</span>        </div>
+<div class="line"><a id="l00938" name="l00938"></a><span class="lineno">  938</span>        <span class="comment">/* w25qxx_individual_block_unlock test */</span></div>
+<div class="line"><a id="l00939" name="l00939"></a><span class="lineno">  939</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_individual_block_unlock test.\n&quot;</span>);</div>
+<div class="line"><a id="l00940" name="l00940"></a><span class="lineno">  940</span>        </div>
+<div class="line"><a id="l00941" name="l00941"></a><span class="lineno">  941</span>        <span class="comment">/* individual block unlock */</span></div>
+<div class="line"><a id="l00942" name="l00942"></a><span class="lineno">  942</span>        res = <a class="code hl_function" href="group__w25qxx__advance__driver.html#ga7f88cedf7619071b3235ba094915b2a7">w25qxx_individual_block_unlock</a>(&amp;gs_handle, 0x00000000);</div>
+<div class="line"><a id="l00943" name="l00943"></a><span class="lineno">  943</span>        <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00944" name="l00944"></a><span class="lineno">  944</span>        {</div>
+<div class="line"><a id="l00945" name="l00945"></a><span class="lineno">  945</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: individual block unlock failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00946" name="l00946"></a><span class="lineno">  946</span>            (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00947" name="l00947"></a><span class="lineno">  947</span>           </div>
+<div class="line"><a id="l00948" name="l00948"></a><span class="lineno">  948</span>            <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00949" name="l00949"></a><span class="lineno">  949</span>        }</div>
+<div class="line"><a id="l00950" name="l00950"></a><span class="lineno">  950</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: check individual block unlock %s.\n&quot;</span>, res == 0 ? <span class="stringliteral">&quot;ok&quot;</span> : <span class="stringliteral">&quot;error&quot;</span>);</div>
+<div class="line"><a id="l00951" name="l00951"></a><span class="lineno">  951</span>        </div>
+<div class="line"><a id="l00952" name="l00952"></a><span class="lineno">  952</span>        <span class="comment">/* w25qxx_power_down test */</span></div>
+<div class="line"><a id="l00953" name="l00953"></a><span class="lineno">  953</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_power_down test.\n&quot;</span>);</div>
+<div class="line"><a id="l00954" name="l00954"></a><span class="lineno">  954</span>        </div>
+<div class="line"><a id="l00955" name="l00955"></a><span class="lineno">  955</span>        <span class="comment">/* power down */</span></div>
+<div class="line"><a id="l00956" name="l00956"></a><span class="lineno">  956</span>        res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#gae4effce67e36120325e3c7b245b90142">w25qxx_power_down</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00957" name="l00957"></a><span class="lineno">  957</span>        <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00958" name="l00958"></a><span class="lineno">  958</span>        {</div>
+<div class="line"><a id="l00959" name="l00959"></a><span class="lineno">  959</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: power down failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00960" name="l00960"></a><span class="lineno">  960</span>            (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00961" name="l00961"></a><span class="lineno">  961</span>           </div>
+<div class="line"><a id="l00962" name="l00962"></a><span class="lineno">  962</span>            <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00963" name="l00963"></a><span class="lineno">  963</span>        }</div>
+<div class="line"><a id="l00964" name="l00964"></a><span class="lineno">  964</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga964fa232abf98737cb98458eebfff82c">w25qxx_interface_delay_ms</a>(10);</div>
+<div class="line"><a id="l00965" name="l00965"></a><span class="lineno">  965</span>        </div>
+<div class="line"><a id="l00966" name="l00966"></a><span class="lineno">  966</span>        <span class="comment">/* w25qxx_release_power_down test */</span></div>
+<div class="line"><a id="l00967" name="l00967"></a><span class="lineno">  967</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_release_power_down test.\n&quot;</span>);</div>
+<div class="line"><a id="l00968" name="l00968"></a><span class="lineno">  968</span>        </div>
+<div class="line"><a id="l00969" name="l00969"></a><span class="lineno">  969</span>        <span class="comment">/* release power down */</span></div>
+<div class="line"><a id="l00970" name="l00970"></a><span class="lineno">  970</span>        res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#ga09c9b52877516a2ee4c080dc249e7331">w25qxx_release_power_down</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00971" name="l00971"></a><span class="lineno">  971</span>        <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00972" name="l00972"></a><span class="lineno">  972</span>        {</div>
+<div class="line"><a id="l00973" name="l00973"></a><span class="lineno">  973</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: release power down failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00974" name="l00974"></a><span class="lineno">  974</span>            (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00975" name="l00975"></a><span class="lineno">  975</span>           </div>
+<div class="line"><a id="l00976" name="l00976"></a><span class="lineno">  976</span>            <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00977" name="l00977"></a><span class="lineno">  977</span>        }</div>
+<div class="line"><a id="l00978" name="l00978"></a><span class="lineno">  978</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga964fa232abf98737cb98458eebfff82c">w25qxx_interface_delay_ms</a>(10);</div>
+<div class="line"><a id="l00979" name="l00979"></a><span class="lineno">  979</span>        </div>
+<div class="line"><a id="l00980" name="l00980"></a><span class="lineno">  980</span>        <span class="comment">/* w25qxx_enable_reset test */</span></div>
+<div class="line"><a id="l00981" name="l00981"></a><span class="lineno">  981</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_enable_reset test.\n&quot;</span>);</div>
+<div class="line"><a id="l00982" name="l00982"></a><span class="lineno">  982</span>        </div>
+<div class="line"><a id="l00983" name="l00983"></a><span class="lineno">  983</span>        <span class="comment">/* enable reset */</span></div>
+<div class="line"><a id="l00984" name="l00984"></a><span class="lineno">  984</span>        res = <a class="code hl_function" href="group__w25qxx__advance__driver.html#gab55b4e071e20feb58584025287949438">w25qxx_enable_reset</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00985" name="l00985"></a><span class="lineno">  985</span>        <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00986" name="l00986"></a><span class="lineno">  986</span>        {</div>
+<div class="line"><a id="l00987" name="l00987"></a><span class="lineno">  987</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: enable reset failed.\n&quot;</span>);</div>
+<div class="line"><a id="l00988" name="l00988"></a><span class="lineno">  988</span>            (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00989" name="l00989"></a><span class="lineno">  989</span>           </div>
+<div class="line"><a id="l00990" name="l00990"></a><span class="lineno">  990</span>            <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l00991" name="l00991"></a><span class="lineno">  991</span>        }</div>
+<div class="line"><a id="l00992" name="l00992"></a><span class="lineno">  992</span>        </div>
+<div class="line"><a id="l00993" name="l00993"></a><span class="lineno">  993</span>        <span class="comment">/* w25qxx_reset_device test */</span></div>
+<div class="line"><a id="l00994" name="l00994"></a><span class="lineno">  994</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_reset_device test.\n&quot;</span>);</div>
+<div class="line"><a id="l00995" name="l00995"></a><span class="lineno">  995</span>        </div>
+<div class="line"><a id="l00996" name="l00996"></a><span class="lineno">  996</span>        <span class="comment">/* reset device */</span></div>
+<div class="line"><a id="l00997" name="l00997"></a><span class="lineno">  997</span>        res = <a class="code hl_function" href="group__w25qxx__advance__driver.html#ga2abebfe2a8d9377eb88448ffca73f222">w25qxx_reset_device</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l00998" name="l00998"></a><span class="lineno">  998</span>        <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l00999" name="l00999"></a><span class="lineno">  999</span>        {</div>
+<div class="line"><a id="l01000" name="l01000"></a><span class="lineno"> 1000</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: reset device failed.\n&quot;</span>);</div>
+<div class="line"><a id="l01001" name="l01001"></a><span class="lineno"> 1001</span>            (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l01002" name="l01002"></a><span class="lineno"> 1002</span>           </div>
+<div class="line"><a id="l01003" name="l01003"></a><span class="lineno"> 1003</span>            <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l01004" name="l01004"></a><span class="lineno"> 1004</span>        }</div>
+<div class="line"><a id="l01005" name="l01005"></a><span class="lineno"> 1005</span>        <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga964fa232abf98737cb98458eebfff82c">w25qxx_interface_delay_ms</a>(10);</div>
+<div class="line"><a id="l01006" name="l01006"></a><span class="lineno"> 1006</span>        </div>
+<div class="line"><a id="l01007" name="l01007"></a><span class="lineno"> 1007</span>        <span class="keywordflow">if</span> (type &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)</div>
+<div class="line"><a id="l01008" name="l01008"></a><span class="lineno"> 1008</span>        {</div>
+<div class="line"><a id="l01009" name="l01009"></a><span class="lineno"> 1009</span>            <span class="comment">/* set address mode 4 byte */</span></div>
+<div class="line"><a id="l01010" name="l01010"></a><span class="lineno"> 1010</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set address mode 4 byte.\n&quot;</span>);</div>
+<div class="line"><a id="l01011" name="l01011"></a><span class="lineno"> 1011</span>            </div>
+<div class="line"><a id="l01012" name="l01012"></a><span class="lineno"> 1012</span>            <span class="comment">/* set address mode 4 byte */</span></div>
+<div class="line"><a id="l01013" name="l01013"></a><span class="lineno"> 1013</span>            res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#gad0e125eff304ce66fb3956d2c8c80656">w25qxx_set_address_mode</a>(&amp;gs_handle, <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>);</div>
+<div class="line"><a id="l01014" name="l01014"></a><span class="lineno"> 1014</span>            <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l01015" name="l01015"></a><span class="lineno"> 1015</span>            {</div>
+<div class="line"><a id="l01016" name="l01016"></a><span class="lineno"> 1016</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set address mode failed.\n&quot;</span>);</div>
+<div class="line"><a id="l01017" name="l01017"></a><span class="lineno"> 1017</span>                (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l01018" name="l01018"></a><span class="lineno"> 1018</span>               </div>
+<div class="line"><a id="l01019" name="l01019"></a><span class="lineno"> 1019</span>                <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l01020" name="l01020"></a><span class="lineno"> 1020</span>            }</div>
+<div class="line"><a id="l01021" name="l01021"></a><span class="lineno"> 1021</span> </div>
+<div class="line"><a id="l01022" name="l01022"></a><span class="lineno"> 1022</span>            <span class="comment">/* w25qxx_individual_block_lock test */</span></div>
+<div class="line"><a id="l01023" name="l01023"></a><span class="lineno"> 1023</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_individual_block_lock test.\n&quot;</span>);</div>
+<div class="line"><a id="l01024" name="l01024"></a><span class="lineno"> 1024</span>            </div>
+<div class="line"><a id="l01025" name="l01025"></a><span class="lineno"> 1025</span>            <span class="comment">/* individual block lock */</span></div>
+<div class="line"><a id="l01026" name="l01026"></a><span class="lineno"> 1026</span>            res = <a class="code hl_function" href="group__w25qxx__advance__driver.html#ga4f00c2c169cb7c3084841c6cd795e76b">w25qxx_individual_block_lock</a>(&amp;gs_handle, 0x00000000);</div>
+<div class="line"><a id="l01027" name="l01027"></a><span class="lineno"> 1027</span>            <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l01028" name="l01028"></a><span class="lineno"> 1028</span>            {</div>
+<div class="line"><a id="l01029" name="l01029"></a><span class="lineno"> 1029</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: individual block lock failed.\n&quot;</span>);</div>
+<div class="line"><a id="l01030" name="l01030"></a><span class="lineno"> 1030</span>                (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l01031" name="l01031"></a><span class="lineno"> 1031</span>               </div>
+<div class="line"><a id="l01032" name="l01032"></a><span class="lineno"> 1032</span>                <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l01033" name="l01033"></a><span class="lineno"> 1033</span>            }</div>
+<div class="line"><a id="l01034" name="l01034"></a><span class="lineno"> 1034</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: check individual block lock %s.\n&quot;</span>, res == 0 ? <span class="stringliteral">&quot;ok&quot;</span> : <span class="stringliteral">&quot;error&quot;</span>);</div>
+<div class="line"><a id="l01035" name="l01035"></a><span class="lineno"> 1035</span>            </div>
+<div class="line"><a id="l01036" name="l01036"></a><span class="lineno"> 1036</span>            <span class="comment">/* w25qxx_individual_block_unlock test */</span></div>
+<div class="line"><a id="l01037" name="l01037"></a><span class="lineno"> 1037</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_individual_block_unlock test.\n&quot;</span>);</div>
+<div class="line"><a id="l01038" name="l01038"></a><span class="lineno"> 1038</span>            </div>
+<div class="line"><a id="l01039" name="l01039"></a><span class="lineno"> 1039</span>            <span class="comment">/* individual block unlock */</span></div>
+<div class="line"><a id="l01040" name="l01040"></a><span class="lineno"> 1040</span>            res = <a class="code hl_function" href="group__w25qxx__advance__driver.html#ga7f88cedf7619071b3235ba094915b2a7">w25qxx_individual_block_unlock</a>(&amp;gs_handle, 0x00000000);</div>
+<div class="line"><a id="l01041" name="l01041"></a><span class="lineno"> 1041</span>            <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l01042" name="l01042"></a><span class="lineno"> 1042</span>            {</div>
+<div class="line"><a id="l01043" name="l01043"></a><span class="lineno"> 1043</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: individual block unlock failed.\n&quot;</span>);</div>
+<div class="line"><a id="l01044" name="l01044"></a><span class="lineno"> 1044</span>                (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l01045" name="l01045"></a><span class="lineno"> 1045</span>               </div>
+<div class="line"><a id="l01046" name="l01046"></a><span class="lineno"> 1046</span>                <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l01047" name="l01047"></a><span class="lineno"> 1047</span>            }</div>
+<div class="line"><a id="l01048" name="l01048"></a><span class="lineno"> 1048</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: check individual block unlock %s.\n&quot;</span>, res == 0 ? <span class="stringliteral">&quot;ok&quot;</span> : <span class="stringliteral">&quot;error&quot;</span>);</div>
+<div class="line"><a id="l01049" name="l01049"></a><span class="lineno"> 1049</span>            </div>
+<div class="line"><a id="l01050" name="l01050"></a><span class="lineno"> 1050</span>            <span class="comment">/* w25qxx_read_block_lock test */</span></div>
+<div class="line"><a id="l01051" name="l01051"></a><span class="lineno"> 1051</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_read_block_lock test.\n&quot;</span>);</div>
+<div class="line"><a id="l01052" name="l01052"></a><span class="lineno"> 1052</span>            </div>
+<div class="line"><a id="l01053" name="l01053"></a><span class="lineno"> 1053</span>            res = <a class="code hl_function" href="group__w25qxx__advance__driver.html#ga59e655ca78a175037ca810bbc8539a96">w25qxx_read_block_lock</a>(&amp;gs_handle, 0x00000000, (uint8_t *)&amp;status);</div>
+<div class="line"><a id="l01054" name="l01054"></a><span class="lineno"> 1054</span>            <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l01055" name="l01055"></a><span class="lineno"> 1055</span>            {</div>
+<div class="line"><a id="l01056" name="l01056"></a><span class="lineno"> 1056</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: read block lock failed.\n&quot;</span>);</div>
+<div class="line"><a id="l01057" name="l01057"></a><span class="lineno"> 1057</span>                (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l01058" name="l01058"></a><span class="lineno"> 1058</span>               </div>
+<div class="line"><a id="l01059" name="l01059"></a><span class="lineno"> 1059</span>                <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l01060" name="l01060"></a><span class="lineno"> 1060</span>            }</div>
+<div class="line"><a id="l01061" name="l01061"></a><span class="lineno"> 1061</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: check read block lock %s with %d.\n&quot;</span>, res == 0 ? <span class="stringliteral">&quot;ok&quot;</span> : <span class="stringliteral">&quot;error&quot;</span>, status);</div>
+<div class="line"><a id="l01062" name="l01062"></a><span class="lineno"> 1062</span>            </div>
+<div class="line"><a id="l01063" name="l01063"></a><span class="lineno"> 1063</span>            <span class="comment">/* set address mode 3 byte */</span></div>
+<div class="line"><a id="l01064" name="l01064"></a><span class="lineno"> 1064</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set address mode 3 byte.\n&quot;</span>);</div>
+<div class="line"><a id="l01065" name="l01065"></a><span class="lineno"> 1065</span>            </div>
+<div class="line"><a id="l01066" name="l01066"></a><span class="lineno"> 1066</span>            <span class="comment">/* set address mode 3 byte */</span></div>
+<div class="line"><a id="l01067" name="l01067"></a><span class="lineno"> 1067</span>            res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#gad0e125eff304ce66fb3956d2c8c80656">w25qxx_set_address_mode</a>(&amp;gs_handle, <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>);</div>
+<div class="line"><a id="l01068" name="l01068"></a><span class="lineno"> 1068</span>            <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l01069" name="l01069"></a><span class="lineno"> 1069</span>            {</div>
+<div class="line"><a id="l01070" name="l01070"></a><span class="lineno"> 1070</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set address mode failed.\n&quot;</span>);</div>
+<div class="line"><a id="l01071" name="l01071"></a><span class="lineno"> 1071</span>                (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l01072" name="l01072"></a><span class="lineno"> 1072</span>               </div>
+<div class="line"><a id="l01073" name="l01073"></a><span class="lineno"> 1073</span>                <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l01074" name="l01074"></a><span class="lineno"> 1074</span>            }</div>
+<div class="line"><a id="l01075" name="l01075"></a><span class="lineno"> 1075</span>        }</div>
+<div class="line"><a id="l01076" name="l01076"></a><span class="lineno"> 1076</span>        </div>
+<div class="line"><a id="l01077" name="l01077"></a><span class="lineno"> 1077</span>        <span class="keywordflow">if</span> (dual_quad_spi_enable != 0)</div>
+<div class="line"><a id="l01078" name="l01078"></a><span class="lineno"> 1078</span>        {</div>
+<div class="line"><a id="l01079" name="l01079"></a><span class="lineno"> 1079</span>            <span class="comment">/* enter to spi mode */</span></div>
+<div class="line"><a id="l01080" name="l01080"></a><span class="lineno"> 1080</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: enter to spi mode.\n&quot;</span>);</div>
+<div class="line"><a id="l01081" name="l01081"></a><span class="lineno"> 1081</span>            </div>
+<div class="line"><a id="l01082" name="l01082"></a><span class="lineno"> 1082</span>            <span class="comment">/* exit qspi */</span></div>
+<div class="line"><a id="l01083" name="l01083"></a><span class="lineno"> 1083</span>            res = <a class="code hl_function" href="group__w25qxx__advance__driver.html#ga6b9f75f7426a54ffdb1f5a057f8188f4">w25qxx_exit_qspi_mode</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l01084" name="l01084"></a><span class="lineno"> 1084</span>            <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l01085" name="l01085"></a><span class="lineno"> 1085</span>            {</div>
+<div class="line"><a id="l01086" name="l01086"></a><span class="lineno"> 1086</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: exit qspi mode failed.\n&quot;</span>);</div>
+<div class="line"><a id="l01087" name="l01087"></a><span class="lineno"> 1087</span>                (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l01088" name="l01088"></a><span class="lineno"> 1088</span>               </div>
+<div class="line"><a id="l01089" name="l01089"></a><span class="lineno"> 1089</span>                <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l01090" name="l01090"></a><span class="lineno"> 1090</span>            }</div>
+<div class="line"><a id="l01091" name="l01091"></a><span class="lineno"> 1091</span>            </div>
+<div class="line"><a id="l01092" name="l01092"></a><span class="lineno"> 1092</span>            <span class="comment">/* set chip interface spi */</span></div>
+<div class="line"><a id="l01093" name="l01093"></a><span class="lineno"> 1093</span>            res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#ga50a62003d566402d46ada2f272c41eb5">w25qxx_set_interface</a>(&amp;gs_handle, <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a>);</div>
+<div class="line"><a id="l01094" name="l01094"></a><span class="lineno"> 1094</span>            <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l01095" name="l01095"></a><span class="lineno"> 1095</span>            {</div>
+<div class="line"><a id="l01096" name="l01096"></a><span class="lineno"> 1096</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set interface failed.\n&quot;</span>);</div>
+<div class="line"><a id="l01097" name="l01097"></a><span class="lineno"> 1097</span>               </div>
+<div class="line"><a id="l01098" name="l01098"></a><span class="lineno"> 1098</span>                <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l01099" name="l01099"></a><span class="lineno"> 1099</span>            }</div>
+<div class="line"><a id="l01100" name="l01100"></a><span class="lineno"> 1100</span>            </div>
+<div class="line"><a id="l01101" name="l01101"></a><span class="lineno"> 1101</span>            <span class="comment">/* w25qxx_get_manufacturer_device_id_dual_io test */</span></div>
+<div class="line"><a id="l01102" name="l01102"></a><span class="lineno"> 1102</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_get_manufacturer_device_id_dual_io test.\n&quot;</span>);</div>
+<div class="line"><a id="l01103" name="l01103"></a><span class="lineno"> 1103</span>            </div>
+<div class="line"><a id="l01104" name="l01104"></a><span class="lineno"> 1104</span>            <span class="comment">/* get manufacturer device id dual io */</span></div>
+<div class="line"><a id="l01105" name="l01105"></a><span class="lineno"> 1105</span>            res = <a class="code hl_function" href="group__w25qxx__advance__driver.html#ga1cd3aec1bdeabbaed5f049fbf83ceeb4">w25qxx_get_manufacturer_device_id_dual_io</a>(&amp;gs_handle, (uint8_t *)&amp;manufacturer, (uint8_t *)device_id);</div>
+<div class="line"><a id="l01106" name="l01106"></a><span class="lineno"> 1106</span>            <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l01107" name="l01107"></a><span class="lineno"> 1107</span>            {</div>
+<div class="line"><a id="l01108" name="l01108"></a><span class="lineno"> 1108</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: get manufacturer device id dual io failed.\n&quot;</span>);</div>
+<div class="line"><a id="l01109" name="l01109"></a><span class="lineno"> 1109</span>                (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l01110" name="l01110"></a><span class="lineno"> 1110</span>               </div>
+<div class="line"><a id="l01111" name="l01111"></a><span class="lineno"> 1111</span>                <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l01112" name="l01112"></a><span class="lineno"> 1112</span>            }</div>
+<div class="line"><a id="l01113" name="l01113"></a><span class="lineno"> 1113</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: manufacturer is 0x%02X, device id is 0x%02X.\n&quot;</span>, manufacturer, device_id[0]);</div>
+<div class="line"><a id="l01114" name="l01114"></a><span class="lineno"> 1114</span>            </div>
+<div class="line"><a id="l01115" name="l01115"></a><span class="lineno"> 1115</span>            <span class="comment">/* w25qxx_get_manufacturer_device_id_quad_io test */</span></div>
+<div class="line"><a id="l01116" name="l01116"></a><span class="lineno"> 1116</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_get_manufacturer_device_id_quad_io test.\n&quot;</span>);</div>
+<div class="line"><a id="l01117" name="l01117"></a><span class="lineno"> 1117</span>            </div>
+<div class="line"><a id="l01118" name="l01118"></a><span class="lineno"> 1118</span>            <span class="comment">/* get manufacturer device id quad io */</span></div>
+<div class="line"><a id="l01119" name="l01119"></a><span class="lineno"> 1119</span>            res = <a class="code hl_function" href="group__w25qxx__advance__driver.html#ga61bd3ce40b76b6862c6a53e0e37a3455">w25qxx_get_manufacturer_device_id_quad_io</a>(&amp;gs_handle, (uint8_t *)&amp;manufacturer, (uint8_t *)device_id);</div>
+<div class="line"><a id="l01120" name="l01120"></a><span class="lineno"> 1120</span>            <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l01121" name="l01121"></a><span class="lineno"> 1121</span>            {</div>
+<div class="line"><a id="l01122" name="l01122"></a><span class="lineno"> 1122</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: get manufacturer device id quad io failed.\n&quot;</span>);</div>
+<div class="line"><a id="l01123" name="l01123"></a><span class="lineno"> 1123</span>                (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l01124" name="l01124"></a><span class="lineno"> 1124</span>               </div>
+<div class="line"><a id="l01125" name="l01125"></a><span class="lineno"> 1125</span>                <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l01126" name="l01126"></a><span class="lineno"> 1126</span>            }</div>
+<div class="line"><a id="l01127" name="l01127"></a><span class="lineno"> 1127</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: manufacturer is 0x%02X, device id is 0x%02X.\n&quot;</span>, manufacturer, device_id[0]);</div>
+<div class="line"><a id="l01128" name="l01128"></a><span class="lineno"> 1128</span>            </div>
+<div class="line"><a id="l01129" name="l01129"></a><span class="lineno"> 1129</span>            <span class="keywordflow">if</span> (type &gt;= <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a>)</div>
+<div class="line"><a id="l01130" name="l01130"></a><span class="lineno"> 1130</span>            {</div>
+<div class="line"><a id="l01131" name="l01131"></a><span class="lineno"> 1131</span>                <span class="comment">/* set address mode 4 byte */</span></div>
+<div class="line"><a id="l01132" name="l01132"></a><span class="lineno"> 1132</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set address mode 4 byte.\n&quot;</span>);</div>
+<div class="line"><a id="l01133" name="l01133"></a><span class="lineno"> 1133</span>                </div>
+<div class="line"><a id="l01134" name="l01134"></a><span class="lineno"> 1134</span>                <span class="comment">/* set address mode 4 byte */</span></div>
+<div class="line"><a id="l01135" name="l01135"></a><span class="lineno"> 1135</span>                res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#gad0e125eff304ce66fb3956d2c8c80656">w25qxx_set_address_mode</a>(&amp;gs_handle, <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a>);</div>
+<div class="line"><a id="l01136" name="l01136"></a><span class="lineno"> 1136</span>                <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l01137" name="l01137"></a><span class="lineno"> 1137</span>                {</div>
+<div class="line"><a id="l01138" name="l01138"></a><span class="lineno"> 1138</span>                    <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set address mode failed.\n&quot;</span>);</div>
+<div class="line"><a id="l01139" name="l01139"></a><span class="lineno"> 1139</span>                    (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l01140" name="l01140"></a><span class="lineno"> 1140</span>                   </div>
+<div class="line"><a id="l01141" name="l01141"></a><span class="lineno"> 1141</span>                    <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l01142" name="l01142"></a><span class="lineno"> 1142</span>                }</div>
+<div class="line"><a id="l01143" name="l01143"></a><span class="lineno"> 1143</span>                </div>
+<div class="line"><a id="l01144" name="l01144"></a><span class="lineno"> 1144</span>                <span class="comment">/* w25qxx_get_manufacturer_device_id_dual_io test */</span></div>
+<div class="line"><a id="l01145" name="l01145"></a><span class="lineno"> 1145</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_get_manufacturer_device_id_dual_io test.\n&quot;</span>);</div>
+<div class="line"><a id="l01146" name="l01146"></a><span class="lineno"> 1146</span>                </div>
+<div class="line"><a id="l01147" name="l01147"></a><span class="lineno"> 1147</span>                <span class="comment">/* get manufacturer device id dual io */</span></div>
+<div class="line"><a id="l01148" name="l01148"></a><span class="lineno"> 1148</span>                res = <a class="code hl_function" href="group__w25qxx__advance__driver.html#ga1cd3aec1bdeabbaed5f049fbf83ceeb4">w25qxx_get_manufacturer_device_id_dual_io</a>(&amp;gs_handle, (uint8_t *)&amp;manufacturer, (uint8_t *)device_id);</div>
+<div class="line"><a id="l01149" name="l01149"></a><span class="lineno"> 1149</span>                <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l01150" name="l01150"></a><span class="lineno"> 1150</span>                {</div>
+<div class="line"><a id="l01151" name="l01151"></a><span class="lineno"> 1151</span>                    <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: get manufacturer device id dual io failed.\n&quot;</span>);</div>
+<div class="line"><a id="l01152" name="l01152"></a><span class="lineno"> 1152</span>                    (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l01153" name="l01153"></a><span class="lineno"> 1153</span>                   </div>
+<div class="line"><a id="l01154" name="l01154"></a><span class="lineno"> 1154</span>                    <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l01155" name="l01155"></a><span class="lineno"> 1155</span>                }</div>
+<div class="line"><a id="l01156" name="l01156"></a><span class="lineno"> 1156</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: manufacturer is 0x%02X, device id is 0x%02X.\n&quot;</span>, manufacturer, device_id[0]);</div>
+<div class="line"><a id="l01157" name="l01157"></a><span class="lineno"> 1157</span>                </div>
+<div class="line"><a id="l01158" name="l01158"></a><span class="lineno"> 1158</span>                <span class="comment">/* w25qxx_get_manufacturer_device_id_quad_io test */</span></div>
+<div class="line"><a id="l01159" name="l01159"></a><span class="lineno"> 1159</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: w25qxx_get_manufacturer_device_id_quad_io test.\n&quot;</span>);</div>
+<div class="line"><a id="l01160" name="l01160"></a><span class="lineno"> 1160</span>                </div>
+<div class="line"><a id="l01161" name="l01161"></a><span class="lineno"> 1161</span>                <span class="comment">/* get manufacturer device id quad io */</span></div>
+<div class="line"><a id="l01162" name="l01162"></a><span class="lineno"> 1162</span>                res = <a class="code hl_function" href="group__w25qxx__advance__driver.html#ga61bd3ce40b76b6862c6a53e0e37a3455">w25qxx_get_manufacturer_device_id_quad_io</a>(&amp;gs_handle, (uint8_t *)&amp;manufacturer, (uint8_t *)device_id);</div>
+<div class="line"><a id="l01163" name="l01163"></a><span class="lineno"> 1163</span>                <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l01164" name="l01164"></a><span class="lineno"> 1164</span>                {</div>
+<div class="line"><a id="l01165" name="l01165"></a><span class="lineno"> 1165</span>                    <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: get manufacturer device id quad io failed.\n&quot;</span>);</div>
+<div class="line"><a id="l01166" name="l01166"></a><span class="lineno"> 1166</span>                    (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l01167" name="l01167"></a><span class="lineno"> 1167</span>                   </div>
+<div class="line"><a id="l01168" name="l01168"></a><span class="lineno"> 1168</span>                    <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l01169" name="l01169"></a><span class="lineno"> 1169</span>                }</div>
+<div class="line"><a id="l01170" name="l01170"></a><span class="lineno"> 1170</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: manufacturer is 0x%02X, device id is 0x%02X.\n&quot;</span>, manufacturer, device_id[0]);</div>
+<div class="line"><a id="l01171" name="l01171"></a><span class="lineno"> 1171</span>                </div>
+<div class="line"><a id="l01172" name="l01172"></a><span class="lineno"> 1172</span>                <span class="comment">/* set address mode 3 byte */</span></div>
+<div class="line"><a id="l01173" name="l01173"></a><span class="lineno"> 1173</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set address mode 3 byte.\n&quot;</span>);</div>
+<div class="line"><a id="l01174" name="l01174"></a><span class="lineno"> 1174</span>                </div>
+<div class="line"><a id="l01175" name="l01175"></a><span class="lineno"> 1175</span>                <span class="comment">/* set address mode 3 byte */</span></div>
+<div class="line"><a id="l01176" name="l01176"></a><span class="lineno"> 1176</span>                res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#gad0e125eff304ce66fb3956d2c8c80656">w25qxx_set_address_mode</a>(&amp;gs_handle, <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a>);</div>
+<div class="line"><a id="l01177" name="l01177"></a><span class="lineno"> 1177</span>                <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l01178" name="l01178"></a><span class="lineno"> 1178</span>                {</div>
+<div class="line"><a id="l01179" name="l01179"></a><span class="lineno"> 1179</span>                    <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set address mode failed.\n&quot;</span>);</div>
+<div class="line"><a id="l01180" name="l01180"></a><span class="lineno"> 1180</span>                    (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l01181" name="l01181"></a><span class="lineno"> 1181</span>                   </div>
+<div class="line"><a id="l01182" name="l01182"></a><span class="lineno"> 1182</span>                    <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l01183" name="l01183"></a><span class="lineno"> 1183</span>                }</div>
+<div class="line"><a id="l01184" name="l01184"></a><span class="lineno"> 1184</span>            }</div>
+<div class="line"><a id="l01185" name="l01185"></a><span class="lineno"> 1185</span>            </div>
+<div class="line"><a id="l01186" name="l01186"></a><span class="lineno"> 1186</span>            <span class="comment">/* enter to qspi mode */</span></div>
+<div class="line"><a id="l01187" name="l01187"></a><span class="lineno"> 1187</span>            <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: enter to qspi mode.\n&quot;</span>);</div>
+<div class="line"><a id="l01188" name="l01188"></a><span class="lineno"> 1188</span>            </div>
+<div class="line"><a id="l01189" name="l01189"></a><span class="lineno"> 1189</span>            <span class="comment">/* enter qspi */</span></div>
+<div class="line"><a id="l01190" name="l01190"></a><span class="lineno"> 1190</span>            res = <a class="code hl_function" href="group__w25qxx__advance__driver.html#gaa5ab3548707a95ded115255432224c5a">w25qxx_enter_qspi_mode</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l01191" name="l01191"></a><span class="lineno"> 1191</span>            <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l01192" name="l01192"></a><span class="lineno"> 1192</span>            {</div>
+<div class="line"><a id="l01193" name="l01193"></a><span class="lineno"> 1193</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: enter qspi mode failed.\n&quot;</span>);</div>
+<div class="line"><a id="l01194" name="l01194"></a><span class="lineno"> 1194</span>                (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l01195" name="l01195"></a><span class="lineno"> 1195</span>               </div>
+<div class="line"><a id="l01196" name="l01196"></a><span class="lineno"> 1196</span>                <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l01197" name="l01197"></a><span class="lineno"> 1197</span>            }</div>
+<div class="line"><a id="l01198" name="l01198"></a><span class="lineno"> 1198</span>            </div>
+<div class="line"><a id="l01199" name="l01199"></a><span class="lineno"> 1199</span>            <span class="comment">/* set chip interface spi */</span></div>
+<div class="line"><a id="l01200" name="l01200"></a><span class="lineno"> 1200</span>            res = <a class="code hl_function" href="group__w25qxx__basic__driver.html#ga50a62003d566402d46ada2f272c41eb5">w25qxx_set_interface</a>(&amp;gs_handle, <a class="code hl_enumvalue" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2fea895dcb5c91da89fad1c12161ffd2d5d4">W25QXX_INTERFACE_QSPI</a>);</div>
+<div class="line"><a id="l01201" name="l01201"></a><span class="lineno"> 1201</span>            <span class="keywordflow">if</span> (res != 0)</div>
+<div class="line"><a id="l01202" name="l01202"></a><span class="lineno"> 1202</span>            {</div>
+<div class="line"><a id="l01203" name="l01203"></a><span class="lineno"> 1203</span>                <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: set interface failed.\n&quot;</span>);</div>
+<div class="line"><a id="l01204" name="l01204"></a><span class="lineno"> 1204</span>               </div>
+<div class="line"><a id="l01205" name="l01205"></a><span class="lineno"> 1205</span>                <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a id="l01206" name="l01206"></a><span class="lineno"> 1206</span>            }</div>
+<div class="line"><a id="l01207" name="l01207"></a><span class="lineno"> 1207</span>        }</div>
+<div class="line"><a id="l01208" name="l01208"></a><span class="lineno"> 1208</span>    }</div>
+<div class="line"><a id="l01209" name="l01209"></a><span class="lineno"> 1209</span>    </div>
+<div class="line"><a id="l01210" name="l01210"></a><span class="lineno"> 1210</span>    <span class="comment">/* finish read test */</span></div>
+<div class="line"><a id="l01211" name="l01211"></a><span class="lineno"> 1211</span>    <a class="code hl_function" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a>(<span class="stringliteral">&quot;w25qxx: finish register test.\n&quot;</span>);</div>
+<div class="line"><a id="l01212" name="l01212"></a><span class="lineno"> 1212</span>    (void)<a class="code hl_function" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a>(&amp;gs_handle);</div>
+<div class="line"><a id="l01213" name="l01213"></a><span class="lineno"> 1213</span>    </div>
+<div class="line"><a id="l01214" name="l01214"></a><span class="lineno"> 1214</span>    <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a id="l01215" name="l01215"></a><span class="lineno"> 1215</span>}</div>
+</div>
 <div class="ttc" id="adriver__w25qxx__register__test_8h_html"><div class="ttname"><a href="driver__w25qxx__register__test_8h.html">driver_w25qxx_register_test.h</a></div><div class="ttdoc">driver w25qxx register test header file</div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga05c69ac66309544eba4ff38a69f24c00"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga05c69ac66309544eba4ff38a69f24c00">w25qxx_erase_program_resume</a></div><div class="ttdeci">uint8_t w25qxx_erase_program_resume(w25qxx_handle_t *handle)</div><div class="ttdoc">resume erase or program</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l01722">driver_w25qxx.c:1722</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga0f8889d6a25c32e150a2ab30753d461d"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga0f8889d6a25c32e150a2ab30753d461d">w25qxx_enable_volatile_sr_write</a></div><div class="ttdeci">uint8_t w25qxx_enable_volatile_sr_write(w25qxx_handle_t *handle)</div><div class="ttdoc">enable volatile sr writing</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l00501">driver_w25qxx.c:501</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga11af244389478de68a6777076ee82d69"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga11af244389478de68a6777076ee82d69">w25qxx_get_unique_id</a></div><div class="ttdeci">uint8_t w25qxx_get_unique_id(w25qxx_handle_t *handle, uint8_t id[8])</div><div class="ttdoc">get the unique id</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l02764">driver_w25qxx.c:2764</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga1cd3aec1bdeabbaed5f049fbf83ceeb4"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga1cd3aec1bdeabbaed5f049fbf83ceeb4">w25qxx_get_manufacturer_device_id_dual_io</a></div><div class="ttdeci">uint8_t w25qxx_get_manufacturer_device_id_dual_io(w25qxx_handle_t *handle, uint8_t *manufacturer, uint8_t *device_id)</div><div class="ttdoc">get the manufacturer &amp;&amp; device id information with dual io</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l02038">driver_w25qxx.c:2038</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga246e0bb07c8bbb39731f17906779c012"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga246e0bb07c8bbb39731f17906779c012">w25qxx_set_status1</a></div><div class="ttdeci">uint8_t w25qxx_set_status1(w25qxx_handle_t *handle, uint8_t status)</div><div class="ttdoc">set the status 1</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l00863">driver_w25qxx.c:863</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga2abebfe2a8d9377eb88448ffca73f222"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga2abebfe2a8d9377eb88448ffca73f222">w25qxx_reset_device</a></div><div class="ttdeci">uint8_t w25qxx_reset_device(w25qxx_handle_t *handle)</div><div class="ttdoc">reset the device</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l02690">driver_w25qxx.c:2690</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga4f00c2c169cb7c3084841c6cd795e76b"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga4f00c2c169cb7c3084841c6cd795e76b">w25qxx_individual_block_lock</a></div><div class="ttdeci">uint8_t w25qxx_individual_block_lock(w25qxx_handle_t *handle, uint32_t addr)</div><div class="ttdoc">lock the individual block</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l06094">driver_w25qxx.c:6094</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga59e655ca78a175037ca810bbc8539a96"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga59e655ca78a175037ca810bbc8539a96">w25qxx_read_block_lock</a></div><div class="ttdeci">uint8_t w25qxx_read_block_lock(w25qxx_handle_t *handle, uint32_t addr, uint8_t *value)</div><div class="ttdoc">read the block lock</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l06529">driver_w25qxx.c:6529</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga61bd3ce40b76b6862c6a53e0e37a3455"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga61bd3ce40b76b6862c6a53e0e37a3455">w25qxx_get_manufacturer_device_id_quad_io</a></div><div class="ttdeci">uint8_t w25qxx_get_manufacturer_device_id_quad_io(w25qxx_handle_t *handle, uint8_t *manufacturer, uint8_t *device_id)</div><div class="ttdoc">get the manufacturer &amp;&amp; device id information with quad io</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l02122">driver_w25qxx.c:2122</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga6b9f75f7426a54ffdb1f5a057f8188f4"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga6b9f75f7426a54ffdb1f5a057f8188f4">w25qxx_exit_qspi_mode</a></div><div class="ttdeci">uint8_t w25qxx_exit_qspi_mode(w25qxx_handle_t *handle)</div><div class="ttdoc">exit the qspi mode</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l02572">driver_w25qxx.c:2572</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga6d62f7d14945cfde7cde7a0e9a4e3afb"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga6d62f7d14945cfde7cde7a0e9a4e3afb">w25qxx_global_block_unlock</a></div><div class="ttdeci">uint8_t w25qxx_global_block_unlock(w25qxx_handle_t *handle)</div><div class="ttdoc">unlock the whole block</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l02354">driver_w25qxx.c:2354</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga7f88cedf7619071b3235ba094915b2a7"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga7f88cedf7619071b3235ba094915b2a7">w25qxx_individual_block_unlock</a></div><div class="ttdeci">uint8_t w25qxx_individual_block_unlock(w25qxx_handle_t *handle, uint32_t addr)</div><div class="ttdoc">unlock the individual block</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l06311">driver_w25qxx.c:6311</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga8a93ba14a032e10a27f1495fdcf56058"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga8a93ba14a032e10a27f1495fdcf56058">w25qxx_get_jedec_id</a></div><div class="ttdeci">uint8_t w25qxx_get_jedec_id(w25qxx_handle_t *handle, uint8_t *manufacturer, uint8_t device_id[2])</div><div class="ttdoc">get the jedec id information</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l02203">driver_w25qxx.c:2203</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga99cf6a325a00921d4531004f0c1d75b1"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga99cf6a325a00921d4531004f0c1d75b1">w25qxx_get_status3</a></div><div class="ttdeci">uint8_t w25qxx_get_status3(w25qxx_handle_t *handle, uint8_t *status)</div><div class="ttdoc">get the status 3</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l00789">driver_w25qxx.c:789</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_gaa21237ecbd5951b8017799066e7db5d9"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gaa21237ecbd5951b8017799066e7db5d9">w25qxx_get_status2</a></div><div class="ttdeci">uint8_t w25qxx_get_status2(w25qxx_handle_t *handle, uint8_t *status)</div><div class="ttdoc">get the status 2</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l00716">driver_w25qxx.c:716</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_gaa5ab3548707a95ded115255432224c5a"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gaa5ab3548707a95ded115255432224c5a">w25qxx_enter_qspi_mode</a></div><div class="ttdeci">uint8_t w25qxx_enter_qspi_mode(w25qxx_handle_t *handle)</div><div class="ttdoc">enter the qspi mode</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l02494">driver_w25qxx.c:2494</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_gaa77d2b00b4fb9cf586f77ace827ea7c6"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gaa77d2b00b4fb9cf586f77ace827ea7c6">w25qxx_get_status1</a></div><div class="ttdeci">uint8_t w25qxx_get_status1(w25qxx_handle_t *handle, uint8_t *status)</div><div class="ttdoc">get the status 1</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l00643">driver_w25qxx.c:643</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_gaab5f28e8930d50dbc2178e39bc9fa456"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gaab5f28e8930d50dbc2178e39bc9fa456">w25qxx_set_status2</a></div><div class="ttdeci">uint8_t w25qxx_set_status2(w25qxx_handle_t *handle, uint8_t status)</div><div class="ttdoc">set the status 2</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l01062">driver_w25qxx.c:1062</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_gab5579bc42bc07a7657848140888a817c"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gab5579bc42bc07a7657848140888a817c">w25qxx_global_block_lock</a></div><div class="ttdeci">uint8_t w25qxx_global_block_lock(w25qxx_handle_t *handle)</div><div class="ttdoc">lock the whole block</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l02284">driver_w25qxx.c:2284</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_gab55b4e071e20feb58584025287949438"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gab55b4e071e20feb58584025287949438">w25qxx_enable_reset</a></div><div class="ttdeci">uint8_t w25qxx_enable_reset(w25qxx_handle_t *handle)</div><div class="ttdoc">enable the reset</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l02619">driver_w25qxx.c:2619</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_gac16a31269277051baad6c28fe4254b4a"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gac16a31269277051baad6c28fe4254b4a">w25qxx_disable_write</a></div><div class="ttdeci">uint8_t w25qxx_disable_write(w25qxx_handle_t *handle)</div><div class="ttdoc">disable writing</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l00572">driver_w25qxx.c:572</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_gac19c1d0f3fd48968ea2a93c1dbe3d75d"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gac19c1d0f3fd48968ea2a93c1dbe3d75d">w25qxx_set_burst_with_wrap</a></div><div class="ttdeci">uint8_t w25qxx_set_burst_with_wrap(w25qxx_handle_t *handle, w25qxx_burst_wrap_t wrap)</div><div class="ttdoc">set the burst with wrap</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l06746">driver_w25qxx.c:6746</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_gac7fbabc574c250eec100be861f5918ff"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gac7fbabc574c250eec100be861f5918ff">w25qxx_erase_program_suspend</a></div><div class="ttdeci">uint8_t w25qxx_erase_program_suspend(w25qxx_handle_t *handle)</div><div class="ttdoc">suspend erase or program</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l01650">driver_w25qxx.c:1650</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_gada897a6c6d6acb99f4dd4ff9b65ad8ee"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gada897a6c6d6acb99f4dd4ff9b65ad8ee">w25qxx_set_status3</a></div><div class="ttdeci">uint8_t w25qxx_set_status3(w25qxx_handle_t *handle, uint8_t status)</div><div class="ttdoc">set the status 3</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l01261">driver_w25qxx.c:1261</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_gaeb269123feec054eaaf70f2ffb5797a3"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gaeb269123feec054eaaf70f2ffb5797a3">w25qxx_enable_write</a></div><div class="ttdeci">uint8_t w25qxx_enable_write(w25qxx_handle_t *handle)</div><div class="ttdoc">enable writing</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l00431">driver_w25qxx.c:431</a></div></div>
-<div class="ttc" id="agroup__w25qxx__advance__driver_html_gga94bbae2bf8906903e8dc2a28c490723dae39a7ea65512a56d40aad2990d55815d"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gga94bbae2bf8906903e8dc2a28c490723dae39a7ea65512a56d40aad2990d55815d">W25QXX_BURST_WRAP_NONE</a></div><div class="ttdeci">@ W25QXX_BURST_WRAP_NONE</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00146">driver_w25qxx.h:146</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga09c9b52877516a2ee4c080dc249e7331"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga09c9b52877516a2ee4c080dc249e7331">w25qxx_release_power_down</a></div><div class="ttdeci">uint8_t w25qxx_release_power_down(w25qxx_handle_t *handle)</div><div class="ttdoc">release power down</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l01875">driver_w25qxx.c:1875</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga50a62003d566402d46ada2f272c41eb5"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga50a62003d566402d46ada2f272c41eb5">w25qxx_set_interface</a></div><div class="ttdeci">uint8_t w25qxx_set_interface(w25qxx_handle_t *handle, w25qxx_interface_t interface)</div><div class="ttdoc">set the chip interface</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l00259">driver_w25qxx.c:259</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga665139209b0abc386474a78d89cce6f2"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga665139209b0abc386474a78d89cce6f2">w25qxx_set_dual_quad_spi</a></div><div class="ttdeci">uint8_t w25qxx_set_dual_quad_spi(w25qxx_handle_t *handle, w25qxx_bool_t enable)</div><div class="ttdoc">enable or disable the dual quad spi</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l00175">driver_w25qxx.c:175</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga685379998dad173b6d9c0b0da270685c"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga685379998dad173b6d9c0b0da270685c">w25qxx_get_type</a></div><div class="ttdeci">uint8_t w25qxx_get_type(w25qxx_handle_t *handle, w25qxx_type_t *type)</div><div class="ttdoc">get the chip type</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l00238">driver_w25qxx.c:238</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga6cb4e5164464df549201dd96cb7a58b1"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga6cb4e5164464df549201dd96cb7a58b1">w25qxx_type_t</a></div><div class="ttdeci">w25qxx_type_t</div><div class="ttdoc">w25qxx type enumeration definition</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00062">driver_w25qxx.h:63</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga86ef839d475f3926a0be46bbc18d4b45"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga86ef839d475f3926a0be46bbc18d4b45">w25qxx_get_interface</a></div><div class="ttdeci">uint8_t w25qxx_get_interface(w25qxx_handle_t *handle, w25qxx_interface_t *interface)</div><div class="ttdoc">get the chip interface</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l00280">driver_w25qxx.c:280</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga8e7a163b3d255b8c7fc035d0d60f2491"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga8e7a163b3d255b8c7fc035d0d60f2491">w25qxx_init</a></div><div class="ttdeci">uint8_t w25qxx_init(w25qxx_handle_t *handle)</div><div class="ttdoc">initialize the chip</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l06819">driver_w25qxx.c:6819</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga921836a777b082ff4d0f322ccfda6b22"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga921836a777b082ff4d0f322ccfda6b22">w25qxx_get_manufacturer_device_id</a></div><div class="ttdeci">uint8_t w25qxx_get_manufacturer_device_id(w25qxx_handle_t *handle, uint8_t *manufacturer, uint8_t *device_id)</div><div class="ttdoc">get the manufacturer &amp;&amp; device id information</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l01952">driver_w25qxx.c:1952</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga996e2d3009432e7f8c1a5175c4438a57"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga996e2d3009432e7f8c1a5175c4438a57">w25qxx_info</a></div><div class="ttdeci">uint8_t w25qxx_info(w25qxx_info_t *info)</div><div class="ttdoc">get chip's information</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l08566">driver_w25qxx.c:8566</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_gaa293c3a46c4010a3af597a83e646de0d"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a></div><div class="ttdeci">uint8_t w25qxx_deinit(w25qxx_handle_t *handle)</div><div class="ttdoc">close the chip</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l07195">driver_w25qxx.c:7195</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_gaa57189cd4170b73f8b1300ca15e27de6"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gaa57189cd4170b73f8b1300ca15e27de6">w25qxx_set_type</a></div><div class="ttdeci">uint8_t w25qxx_set_type(w25qxx_handle_t *handle, w25qxx_type_t type)</div><div class="ttdoc">set the chip type</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l00217">driver_w25qxx.c:217</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_gacbf327a42336baf10713a1796ff4f2fe"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gacbf327a42336baf10713a1796ff4f2fe">w25qxx_interface_t</a></div><div class="ttdeci">w25qxx_interface_t</div><div class="ttdoc">w25qxx interface enumeration definition</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00075">driver_w25qxx.h:76</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_gad0e125eff304ce66fb3956d2c8c80656"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gad0e125eff304ce66fb3956d2c8c80656">w25qxx_set_address_mode</a></div><div class="ttdeci">uint8_t w25qxx_set_address_mode(w25qxx_handle_t *handle, w25qxx_address_mode_t mode)</div><div class="ttdoc">set the chip address mode</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l00304">driver_w25qxx.c:304</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_gae4effce67e36120325e3c7b245b90142"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gae4effce67e36120325e3c7b245b90142">w25qxx_power_down</a></div><div class="ttdeci">uint8_t w25qxx_power_down(w25qxx_handle_t *handle)</div><div class="ttdoc">power down</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8c_source.html#l01792">driver_w25qxx.c:1792</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_gafb2690946f5baf4be6f3a63dde5491fb"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gafb2690946f5baf4be6f3a63dde5491fb">w25qxx_bool_t</a></div><div class="ttdeci">w25qxx_bool_t</div><div class="ttdoc">w25qxx bool enumeration definition</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00084">driver_w25qxx.h:85</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_gga6cb4e5164464df549201dd96cb7a58b1a1ad4f72437de5f26cb7b212d4d91e7c2"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a1ad4f72437de5f26cb7b212d4d91e7c2">W25Q80</a></div><div class="ttdeci">@ W25Q80</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00064">driver_w25qxx.h:64</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_gga6cb4e5164464df549201dd96cb7a58b1a3ea98b2b3e06afa29441c51548bbb16e"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a3ea98b2b3e06afa29441c51548bbb16e">W25Q64</a></div><div class="ttdeci">@ W25Q64</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00067">driver_w25qxx.h:67</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_gga6cb4e5164464df549201dd96cb7a58b1a4fdad551be6485441db5951f196db7cb"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a4fdad551be6485441db5951f196db7cb">W25Q32</a></div><div class="ttdeci">@ W25Q32</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00066">driver_w25qxx.h:66</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_gga6cb4e5164464df549201dd96cb7a58b1a66acb81a2d520a7d92ce1d37210c6435"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a66acb81a2d520a7d92ce1d37210c6435">W25Q16</a></div><div class="ttdeci">@ W25Q16</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00065">driver_w25qxx.h:65</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_gga6cb4e5164464df549201dd96cb7a58b1a75afcbe71906d3884f4fcc119c1cabd5"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a75afcbe71906d3884f4fcc119c1cabd5">W25Q128</a></div><div class="ttdeci">@ W25Q128</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00068">driver_w25qxx.h:68</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a></div><div class="ttdeci">@ W25Q256</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00069">driver_w25qxx.h:69</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a></div><div class="ttdeci">@ W25QXX_ADDRESS_MODE_3_BYTE</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00095">driver_w25qxx.h:95</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a></div><div class="ttdeci">@ W25QXX_ADDRESS_MODE_4_BYTE</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00096">driver_w25qxx.h:96</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_ggacbf327a42336baf10713a1796ff4f2fea895dcb5c91da89fad1c12161ffd2d5d4"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2fea895dcb5c91da89fad1c12161ffd2d5d4">W25QXX_INTERFACE_QSPI</a></div><div class="ttdeci">@ W25QXX_INTERFACE_QSPI</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00078">driver_w25qxx.h:78</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a></div><div class="ttdeci">@ W25QXX_INTERFACE_SPI</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00077">driver_w25qxx.h:77</a></div></div>
-<div class="ttc" id="agroup__w25qxx__interface__driver_html_ga091f3607fcdd47f9e5f94cf1397bd46a"><div class="ttname"><a href="group__w25qxx__interface__driver.html#ga091f3607fcdd47f9e5f94cf1397bd46a">w25qxx_interface_spi_qspi_deinit</a></div><div class="ttdeci">uint8_t w25qxx_interface_spi_qspi_deinit(void)</div><div class="ttdoc">interface spi qspi bus deinit</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__interface__template_8c_source.html#l00058">driver_w25qxx_interface_template.c:58</a></div></div>
-<div class="ttc" id="agroup__w25qxx__interface__driver_html_ga2bdc17a556f1c801a38656331f3bb7b6"><div class="ttname"><a href="group__w25qxx__interface__driver.html#ga2bdc17a556f1c801a38656331f3bb7b6">w25qxx_interface_spi_qspi_init</a></div><div class="ttdeci">uint8_t w25qxx_interface_spi_qspi_init(void)</div><div class="ttdoc">interface spi qspi bus init</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__interface__template_8c_source.html#l00046">driver_w25qxx_interface_template.c:46</a></div></div>
-<div class="ttc" id="agroup__w25qxx__interface__driver_html_ga38e79039b913154c9dd1036ff52bb420"><div class="ttname"><a href="group__w25qxx__interface__driver.html#ga38e79039b913154c9dd1036ff52bb420">w25qxx_interface_delay_us</a></div><div class="ttdeci">void w25qxx_interface_delay_us(uint32_t us)</div><div class="ttdoc">interface delay us</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__interface__template_8c_source.html#l00108">driver_w25qxx_interface_template.c:108</a></div></div>
-<div class="ttc" id="agroup__w25qxx__interface__driver_html_ga3d76ea1f431978f6b55edfd0628c94cd"><div class="ttname"><a href="group__w25qxx__interface__driver.html#ga3d76ea1f431978f6b55edfd0628c94cd">w25qxx_interface_spi_qspi_write_read</a></div><div class="ttdeci">uint8_t w25qxx_interface_spi_qspi_write_read(uint8_t instruction, uint8_t instruction_line, uint32_t address, uint8_t address_line, uint8_t address_len, uint32_t alternate, uint8_t alternate_line, uint8_t alternate_len, uint8_t dummy, uint8_t *in_buf, uint32_t in_len, uint8_t *out_buf, uint32_t out_len, uint8_t data_line)</div><div class="ttdoc">interface spi qspi bus write read</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__interface__template_8c_source.html#l00084">driver_w25qxx_interface_template.c:84</a></div></div>
-<div class="ttc" id="agroup__w25qxx__interface__driver_html_ga5325474fa17f6833744e631613fd2a0e"><div class="ttname"><a href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a></div><div class="ttdeci">void w25qxx_interface_debug_print(const char *const fmt,...)</div><div class="ttdoc">interface print format data</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__interface__template_8c_source.html#l00118">driver_w25qxx_interface_template.c:118</a></div></div>
-<div class="ttc" id="agroup__w25qxx__interface__driver_html_ga964fa232abf98737cb98458eebfff82c"><div class="ttname"><a href="group__w25qxx__interface__driver.html#ga964fa232abf98737cb98458eebfff82c">w25qxx_interface_delay_ms</a></div><div class="ttdeci">void w25qxx_interface_delay_ms(uint32_t ms)</div><div class="ttdoc">interface delay ms</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__interface__template_8c_source.html#l00098">driver_w25qxx_interface_template.c:98</a></div></div>
-<div class="ttc" id="agroup__w25qxx__link__driver_html_ga7555618f13d2de0003ae6d9483085180"><div class="ttname"><a href="group__w25qxx__link__driver.html#ga7555618f13d2de0003ae6d9483085180">DRIVER_W25QXX_LINK_DELAY_MS</a></div><div class="ttdeci">#define DRIVER_W25QXX_LINK_DELAY_MS(HANDLE, FUC)</div><div class="ttdoc">link delay_ms function</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00297">driver_w25qxx.h:297</a></div></div>
-<div class="ttc" id="agroup__w25qxx__link__driver_html_ga995378489f95bc6bbddbe710557e3384"><div class="ttname"><a href="group__w25qxx__link__driver.html#ga995378489f95bc6bbddbe710557e3384">DRIVER_W25QXX_LINK_INIT</a></div><div class="ttdeci">#define DRIVER_W25QXX_LINK_INIT(HANDLE, STRUCTURE)</div><div class="ttdoc">initialize w25qxx_handle_t structure</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00265">driver_w25qxx.h:265</a></div></div>
-<div class="ttc" id="agroup__w25qxx__link__driver_html_gab2587de93f1dba5664eede8cd787a88a"><div class="ttname"><a href="group__w25qxx__link__driver.html#gab2587de93f1dba5664eede8cd787a88a">DRIVER_W25QXX_LINK_SPI_QSPI_INIT</a></div><div class="ttdeci">#define DRIVER_W25QXX_LINK_SPI_QSPI_INIT(HANDLE, FUC)</div><div class="ttdoc">link spi_qspi_init function</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00273">driver_w25qxx.h:273</a></div></div>
-<div class="ttc" id="agroup__w25qxx__link__driver_html_gab8d49ef9dca942fe5f37c30dcd7e22a6"><div class="ttname"><a href="group__w25qxx__link__driver.html#gab8d49ef9dca942fe5f37c30dcd7e22a6">DRIVER_W25QXX_LINK_DEBUG_PRINT</a></div><div class="ttdeci">#define DRIVER_W25QXX_LINK_DEBUG_PRINT(HANDLE, FUC)</div><div class="ttdoc">link debug_print function</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00313">driver_w25qxx.h:313</a></div></div>
-<div class="ttc" id="agroup__w25qxx__link__driver_html_gac8f0ca0a725790bace3241d1d616e3d1"><div class="ttname"><a href="group__w25qxx__link__driver.html#gac8f0ca0a725790bace3241d1d616e3d1">DRIVER_W25QXX_LINK_SPI_QSPI_WRITE_READ</a></div><div class="ttdeci">#define DRIVER_W25QXX_LINK_SPI_QSPI_WRITE_READ(HANDLE, FUC)</div><div class="ttdoc">link spi_qspi_write_read function</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00289">driver_w25qxx.h:289</a></div></div>
-<div class="ttc" id="agroup__w25qxx__link__driver_html_gaec8b55e83b46907be1dd9e7c50be550d"><div class="ttname"><a href="group__w25qxx__link__driver.html#gaec8b55e83b46907be1dd9e7c50be550d">DRIVER_W25QXX_LINK_SPI_QSPI_DEINIT</a></div><div class="ttdeci">#define DRIVER_W25QXX_LINK_SPI_QSPI_DEINIT(HANDLE, FUC)</div><div class="ttdoc">link spi_qspi_deinit function</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00281">driver_w25qxx.h:281</a></div></div>
-<div class="ttc" id="agroup__w25qxx__link__driver_html_gafc81bf850c80dfa316f0c6ab40be6e67"><div class="ttname"><a href="group__w25qxx__link__driver.html#gafc81bf850c80dfa316f0c6ab40be6e67">DRIVER_W25QXX_LINK_DELAY_US</a></div><div class="ttdeci">#define DRIVER_W25QXX_LINK_DELAY_US(HANDLE, FUC)</div><div class="ttdoc">link delay_us function</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00305">driver_w25qxx.h:305</a></div></div>
-<div class="ttc" id="agroup__w25qxx__test__driver_html_ga05d07036254d102ebea0d0b1e83862c8"><div class="ttname"><a href="group__w25qxx__test__driver.html#ga05d07036254d102ebea0d0b1e83862c8">w25qxx_register_test</a></div><div class="ttdeci">uint8_t w25qxx_register_test(w25qxx_type_t type, w25qxx_interface_t interface, w25qxx_bool_t dual_quad_spi_enable)</div><div class="ttdoc">register test</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__register__test_8c_source.html#l00051">driver_w25qxx_register_test.c:51</a></div></div>
-<div class="ttc" id="astructw25qxx__handle__s_html"><div class="ttname"><a href="structw25qxx__handle__s.html">w25qxx_handle_s</a></div><div class="ttdoc">w25qxx handle structure definition</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00209">driver_w25qxx.h:210</a></div></div>
-<div class="ttc" id="astructw25qxx__info__s_html"><div class="ttname"><a href="structw25qxx__info__s.html">w25qxx_info_s</a></div><div class="ttdoc">w25qxx information structure definition</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00235">driver_w25qxx.h:236</a></div></div>
-<div class="ttc" id="astructw25qxx__info__s_html_a3366a5dce9b829e03c3d321c2b4df3f6"><div class="ttname"><a href="structw25qxx__info__s.html#a3366a5dce9b829e03c3d321c2b4df3f6">w25qxx_info_s::temperature_max</a></div><div class="ttdeci">float temperature_max</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00244">driver_w25qxx.h:244</a></div></div>
-<div class="ttc" id="astructw25qxx__info__s_html_a3d2b12bcac7a85ea8646bff9debe8660"><div class="ttname"><a href="structw25qxx__info__s.html#a3d2b12bcac7a85ea8646bff9debe8660">w25qxx_info_s::supply_voltage_max_v</a></div><div class="ttdeci">float supply_voltage_max_v</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00241">driver_w25qxx.h:241</a></div></div>
-<div class="ttc" id="astructw25qxx__info__s_html_a41b0bd442708b70d252c50b92c75265a"><div class="ttname"><a href="structw25qxx__info__s.html#a41b0bd442708b70d252c50b92c75265a">w25qxx_info_s::driver_version</a></div><div class="ttdeci">uint32_t driver_version</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00245">driver_w25qxx.h:245</a></div></div>
-<div class="ttc" id="astructw25qxx__info__s_html_a5778305279cae46b2ecf862e97f73600"><div class="ttname"><a href="structw25qxx__info__s.html#a5778305279cae46b2ecf862e97f73600">w25qxx_info_s::interface</a></div><div class="ttdeci">char interface[16]</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00239">driver_w25qxx.h:239</a></div></div>
-<div class="ttc" id="astructw25qxx__info__s_html_a8f9dbe66ac0b66ebae0a36fcb4ba368e"><div class="ttname"><a href="structw25qxx__info__s.html#a8f9dbe66ac0b66ebae0a36fcb4ba368e">w25qxx_info_s::temperature_min</a></div><div class="ttdeci">float temperature_min</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00243">driver_w25qxx.h:243</a></div></div>
-<div class="ttc" id="astructw25qxx__info__s_html_a9db82802561bf22d799b03a345f1d1dc"><div class="ttname"><a href="structw25qxx__info__s.html#a9db82802561bf22d799b03a345f1d1dc">w25qxx_info_s::max_current_ma</a></div><div class="ttdeci">float max_current_ma</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00242">driver_w25qxx.h:242</a></div></div>
-<div class="ttc" id="astructw25qxx__info__s_html_ad25285dbf810c90f8eaf3fcef6f2b2ea"><div class="ttname"><a href="structw25qxx__info__s.html#ad25285dbf810c90f8eaf3fcef6f2b2ea">w25qxx_info_s::manufacturer_name</a></div><div class="ttdeci">char manufacturer_name[32]</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00238">driver_w25qxx.h:238</a></div></div>
-<div class="ttc" id="astructw25qxx__info__s_html_ad8bde6ddadaf43d951e62f3befb9d35a"><div class="ttname"><a href="structw25qxx__info__s.html#ad8bde6ddadaf43d951e62f3befb9d35a">w25qxx_info_s::supply_voltage_min_v</a></div><div class="ttdeci">float supply_voltage_min_v</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00240">driver_w25qxx.h:240</a></div></div>
-<div class="ttc" id="astructw25qxx__info__s_html_af890958c72bd715cc6454a10dc846ae6"><div class="ttname"><a href="structw25qxx__info__s.html#af890958c72bd715cc6454a10dc846ae6">w25qxx_info_s::chip_name</a></div><div class="ttdeci">char chip_name[32]</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00237">driver_w25qxx.h:237</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga05c69ac66309544eba4ff38a69f24c00"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga05c69ac66309544eba4ff38a69f24c00">w25qxx_erase_program_resume</a></div><div class="ttdeci">uint8_t w25qxx_erase_program_resume(w25qxx_handle_t *handle)</div><div class="ttdoc">resume erase or program</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l01722">driver_w25qxx.c:1722</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga0f8889d6a25c32e150a2ab30753d461d"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga0f8889d6a25c32e150a2ab30753d461d">w25qxx_enable_volatile_sr_write</a></div><div class="ttdeci">uint8_t w25qxx_enable_volatile_sr_write(w25qxx_handle_t *handle)</div><div class="ttdoc">enable volatile sr writing</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l00501">driver_w25qxx.c:501</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga11af244389478de68a6777076ee82d69"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga11af244389478de68a6777076ee82d69">w25qxx_get_unique_id</a></div><div class="ttdeci">uint8_t w25qxx_get_unique_id(w25qxx_handle_t *handle, uint8_t id[8])</div><div class="ttdoc">get the unique id</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l02764">driver_w25qxx.c:2764</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga1cd3aec1bdeabbaed5f049fbf83ceeb4"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga1cd3aec1bdeabbaed5f049fbf83ceeb4">w25qxx_get_manufacturer_device_id_dual_io</a></div><div class="ttdeci">uint8_t w25qxx_get_manufacturer_device_id_dual_io(w25qxx_handle_t *handle, uint8_t *manufacturer, uint8_t *device_id)</div><div class="ttdoc">get the manufacturer &amp;&amp; device id information with dual io</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l02038">driver_w25qxx.c:2038</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga246e0bb07c8bbb39731f17906779c012"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga246e0bb07c8bbb39731f17906779c012">w25qxx_set_status1</a></div><div class="ttdeci">uint8_t w25qxx_set_status1(w25qxx_handle_t *handle, uint8_t status)</div><div class="ttdoc">set the status 1</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l00863">driver_w25qxx.c:863</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga2abebfe2a8d9377eb88448ffca73f222"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga2abebfe2a8d9377eb88448ffca73f222">w25qxx_reset_device</a></div><div class="ttdeci">uint8_t w25qxx_reset_device(w25qxx_handle_t *handle)</div><div class="ttdoc">reset the device</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l02690">driver_w25qxx.c:2690</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga4f00c2c169cb7c3084841c6cd795e76b"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga4f00c2c169cb7c3084841c6cd795e76b">w25qxx_individual_block_lock</a></div><div class="ttdeci">uint8_t w25qxx_individual_block_lock(w25qxx_handle_t *handle, uint32_t addr)</div><div class="ttdoc">lock the individual block</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l06094">driver_w25qxx.c:6094</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga59e655ca78a175037ca810bbc8539a96"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga59e655ca78a175037ca810bbc8539a96">w25qxx_read_block_lock</a></div><div class="ttdeci">uint8_t w25qxx_read_block_lock(w25qxx_handle_t *handle, uint32_t addr, uint8_t *value)</div><div class="ttdoc">read the block lock</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l06529">driver_w25qxx.c:6529</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga61bd3ce40b76b6862c6a53e0e37a3455"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga61bd3ce40b76b6862c6a53e0e37a3455">w25qxx_get_manufacturer_device_id_quad_io</a></div><div class="ttdeci">uint8_t w25qxx_get_manufacturer_device_id_quad_io(w25qxx_handle_t *handle, uint8_t *manufacturer, uint8_t *device_id)</div><div class="ttdoc">get the manufacturer &amp;&amp; device id information with quad io</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l02122">driver_w25qxx.c:2122</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga6b9f75f7426a54ffdb1f5a057f8188f4"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga6b9f75f7426a54ffdb1f5a057f8188f4">w25qxx_exit_qspi_mode</a></div><div class="ttdeci">uint8_t w25qxx_exit_qspi_mode(w25qxx_handle_t *handle)</div><div class="ttdoc">exit the qspi mode</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l02572">driver_w25qxx.c:2572</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga6d62f7d14945cfde7cde7a0e9a4e3afb"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga6d62f7d14945cfde7cde7a0e9a4e3afb">w25qxx_global_block_unlock</a></div><div class="ttdeci">uint8_t w25qxx_global_block_unlock(w25qxx_handle_t *handle)</div><div class="ttdoc">unlock the whole block</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l02354">driver_w25qxx.c:2354</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga7f88cedf7619071b3235ba094915b2a7"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga7f88cedf7619071b3235ba094915b2a7">w25qxx_individual_block_unlock</a></div><div class="ttdeci">uint8_t w25qxx_individual_block_unlock(w25qxx_handle_t *handle, uint32_t addr)</div><div class="ttdoc">unlock the individual block</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l06311">driver_w25qxx.c:6311</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga8a93ba14a032e10a27f1495fdcf56058"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga8a93ba14a032e10a27f1495fdcf56058">w25qxx_get_jedec_id</a></div><div class="ttdeci">uint8_t w25qxx_get_jedec_id(w25qxx_handle_t *handle, uint8_t *manufacturer, uint8_t device_id[2])</div><div class="ttdoc">get the jedec id information</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l02203">driver_w25qxx.c:2203</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_ga99cf6a325a00921d4531004f0c1d75b1"><div class="ttname"><a href="group__w25qxx__advance__driver.html#ga99cf6a325a00921d4531004f0c1d75b1">w25qxx_get_status3</a></div><div class="ttdeci">uint8_t w25qxx_get_status3(w25qxx_handle_t *handle, uint8_t *status)</div><div class="ttdoc">get the status 3</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l00789">driver_w25qxx.c:789</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_gaa21237ecbd5951b8017799066e7db5d9"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gaa21237ecbd5951b8017799066e7db5d9">w25qxx_get_status2</a></div><div class="ttdeci">uint8_t w25qxx_get_status2(w25qxx_handle_t *handle, uint8_t *status)</div><div class="ttdoc">get the status 2</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l00716">driver_w25qxx.c:716</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_gaa5ab3548707a95ded115255432224c5a"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gaa5ab3548707a95ded115255432224c5a">w25qxx_enter_qspi_mode</a></div><div class="ttdeci">uint8_t w25qxx_enter_qspi_mode(w25qxx_handle_t *handle)</div><div class="ttdoc">enter the qspi mode</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l02494">driver_w25qxx.c:2494</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_gaa77d2b00b4fb9cf586f77ace827ea7c6"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gaa77d2b00b4fb9cf586f77ace827ea7c6">w25qxx_get_status1</a></div><div class="ttdeci">uint8_t w25qxx_get_status1(w25qxx_handle_t *handle, uint8_t *status)</div><div class="ttdoc">get the status 1</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l00643">driver_w25qxx.c:643</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_gaab5f28e8930d50dbc2178e39bc9fa456"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gaab5f28e8930d50dbc2178e39bc9fa456">w25qxx_set_status2</a></div><div class="ttdeci">uint8_t w25qxx_set_status2(w25qxx_handle_t *handle, uint8_t status)</div><div class="ttdoc">set the status 2</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l01062">driver_w25qxx.c:1062</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_gab5579bc42bc07a7657848140888a817c"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gab5579bc42bc07a7657848140888a817c">w25qxx_global_block_lock</a></div><div class="ttdeci">uint8_t w25qxx_global_block_lock(w25qxx_handle_t *handle)</div><div class="ttdoc">lock the whole block</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l02284">driver_w25qxx.c:2284</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_gab55b4e071e20feb58584025287949438"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gab55b4e071e20feb58584025287949438">w25qxx_enable_reset</a></div><div class="ttdeci">uint8_t w25qxx_enable_reset(w25qxx_handle_t *handle)</div><div class="ttdoc">enable the reset</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l02619">driver_w25qxx.c:2619</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_gac16a31269277051baad6c28fe4254b4a"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gac16a31269277051baad6c28fe4254b4a">w25qxx_disable_write</a></div><div class="ttdeci">uint8_t w25qxx_disable_write(w25qxx_handle_t *handle)</div><div class="ttdoc">disable writing</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l00572">driver_w25qxx.c:572</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_gac19c1d0f3fd48968ea2a93c1dbe3d75d"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gac19c1d0f3fd48968ea2a93c1dbe3d75d">w25qxx_set_burst_with_wrap</a></div><div class="ttdeci">uint8_t w25qxx_set_burst_with_wrap(w25qxx_handle_t *handle, w25qxx_burst_wrap_t wrap)</div><div class="ttdoc">set the burst with wrap</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l06746">driver_w25qxx.c:6746</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_gac7fbabc574c250eec100be861f5918ff"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gac7fbabc574c250eec100be861f5918ff">w25qxx_erase_program_suspend</a></div><div class="ttdeci">uint8_t w25qxx_erase_program_suspend(w25qxx_handle_t *handle)</div><div class="ttdoc">suspend erase or program</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l01650">driver_w25qxx.c:1650</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_gada897a6c6d6acb99f4dd4ff9b65ad8ee"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gada897a6c6d6acb99f4dd4ff9b65ad8ee">w25qxx_set_status3</a></div><div class="ttdeci">uint8_t w25qxx_set_status3(w25qxx_handle_t *handle, uint8_t status)</div><div class="ttdoc">set the status 3</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l01261">driver_w25qxx.c:1261</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_gaeb269123feec054eaaf70f2ffb5797a3"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gaeb269123feec054eaaf70f2ffb5797a3">w25qxx_enable_write</a></div><div class="ttdeci">uint8_t w25qxx_enable_write(w25qxx_handle_t *handle)</div><div class="ttdoc">enable writing</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l00431">driver_w25qxx.c:431</a></div></div>
+<div class="ttc" id="agroup__w25qxx__advance__driver_html_gga94bbae2bf8906903e8dc2a28c490723dae39a7ea65512a56d40aad2990d55815d"><div class="ttname"><a href="group__w25qxx__advance__driver.html#gga94bbae2bf8906903e8dc2a28c490723dae39a7ea65512a56d40aad2990d55815d">W25QXX_BURST_WRAP_NONE</a></div><div class="ttdeci">@ W25QXX_BURST_WRAP_NONE</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00146">driver_w25qxx.h:146</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga09c9b52877516a2ee4c080dc249e7331"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga09c9b52877516a2ee4c080dc249e7331">w25qxx_release_power_down</a></div><div class="ttdeci">uint8_t w25qxx_release_power_down(w25qxx_handle_t *handle)</div><div class="ttdoc">release power down</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l01875">driver_w25qxx.c:1875</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga50a62003d566402d46ada2f272c41eb5"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga50a62003d566402d46ada2f272c41eb5">w25qxx_set_interface</a></div><div class="ttdeci">uint8_t w25qxx_set_interface(w25qxx_handle_t *handle, w25qxx_interface_t interface)</div><div class="ttdoc">set the chip interface</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l00259">driver_w25qxx.c:259</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga665139209b0abc386474a78d89cce6f2"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga665139209b0abc386474a78d89cce6f2">w25qxx_set_dual_quad_spi</a></div><div class="ttdeci">uint8_t w25qxx_set_dual_quad_spi(w25qxx_handle_t *handle, w25qxx_bool_t enable)</div><div class="ttdoc">enable or disable the dual quad spi</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l00175">driver_w25qxx.c:175</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga685379998dad173b6d9c0b0da270685c"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga685379998dad173b6d9c0b0da270685c">w25qxx_get_type</a></div><div class="ttdeci">uint8_t w25qxx_get_type(w25qxx_handle_t *handle, w25qxx_type_t *type)</div><div class="ttdoc">get the chip type</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l00238">driver_w25qxx.c:238</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga6cb4e5164464df549201dd96cb7a58b1"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga6cb4e5164464df549201dd96cb7a58b1">w25qxx_type_t</a></div><div class="ttdeci">w25qxx_type_t</div><div class="ttdoc">w25qxx type enumeration definition</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00062">driver_w25qxx.h:63</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga86ef839d475f3926a0be46bbc18d4b45"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga86ef839d475f3926a0be46bbc18d4b45">w25qxx_get_interface</a></div><div class="ttdeci">uint8_t w25qxx_get_interface(w25qxx_handle_t *handle, w25qxx_interface_t *interface)</div><div class="ttdoc">get the chip interface</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l00280">driver_w25qxx.c:280</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga8e7a163b3d255b8c7fc035d0d60f2491"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga8e7a163b3d255b8c7fc035d0d60f2491">w25qxx_init</a></div><div class="ttdeci">uint8_t w25qxx_init(w25qxx_handle_t *handle)</div><div class="ttdoc">initialize the chip</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l06819">driver_w25qxx.c:6819</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga921836a777b082ff4d0f322ccfda6b22"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga921836a777b082ff4d0f322ccfda6b22">w25qxx_get_manufacturer_device_id</a></div><div class="ttdeci">uint8_t w25qxx_get_manufacturer_device_id(w25qxx_handle_t *handle, uint8_t *manufacturer, uint8_t *device_id)</div><div class="ttdoc">get the manufacturer &amp;&amp; device id information</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l01952">driver_w25qxx.c:1952</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga996e2d3009432e7f8c1a5175c4438a57"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga996e2d3009432e7f8c1a5175c4438a57">w25qxx_info</a></div><div class="ttdeci">uint8_t w25qxx_info(w25qxx_info_t *info)</div><div class="ttdoc">get chip's information</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l08566">driver_w25qxx.c:8566</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_gaa293c3a46c4010a3af597a83e646de0d"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a></div><div class="ttdeci">uint8_t w25qxx_deinit(w25qxx_handle_t *handle)</div><div class="ttdoc">close the chip</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l07195">driver_w25qxx.c:7195</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_gaa57189cd4170b73f8b1300ca15e27de6"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gaa57189cd4170b73f8b1300ca15e27de6">w25qxx_set_type</a></div><div class="ttdeci">uint8_t w25qxx_set_type(w25qxx_handle_t *handle, w25qxx_type_t type)</div><div class="ttdoc">set the chip type</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l00217">driver_w25qxx.c:217</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_gacbf327a42336baf10713a1796ff4f2fe"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gacbf327a42336baf10713a1796ff4f2fe">w25qxx_interface_t</a></div><div class="ttdeci">w25qxx_interface_t</div><div class="ttdoc">w25qxx interface enumeration definition</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00075">driver_w25qxx.h:76</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_gad0e125eff304ce66fb3956d2c8c80656"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gad0e125eff304ce66fb3956d2c8c80656">w25qxx_set_address_mode</a></div><div class="ttdeci">uint8_t w25qxx_set_address_mode(w25qxx_handle_t *handle, w25qxx_address_mode_t mode)</div><div class="ttdoc">set the chip address mode</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l00304">driver_w25qxx.c:304</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_gae4effce67e36120325e3c7b245b90142"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gae4effce67e36120325e3c7b245b90142">w25qxx_power_down</a></div><div class="ttdeci">uint8_t w25qxx_power_down(w25qxx_handle_t *handle)</div><div class="ttdoc">power down</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8c_source.html#l01792">driver_w25qxx.c:1792</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_gafb2690946f5baf4be6f3a63dde5491fb"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gafb2690946f5baf4be6f3a63dde5491fb">w25qxx_bool_t</a></div><div class="ttdeci">w25qxx_bool_t</div><div class="ttdoc">w25qxx bool enumeration definition</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00084">driver_w25qxx.h:85</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_gga6cb4e5164464df549201dd96cb7a58b1a1ad4f72437de5f26cb7b212d4d91e7c2"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a1ad4f72437de5f26cb7b212d4d91e7c2">W25Q80</a></div><div class="ttdeci">@ W25Q80</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00064">driver_w25qxx.h:64</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_gga6cb4e5164464df549201dd96cb7a58b1a3ea98b2b3e06afa29441c51548bbb16e"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a3ea98b2b3e06afa29441c51548bbb16e">W25Q64</a></div><div class="ttdeci">@ W25Q64</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00067">driver_w25qxx.h:67</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_gga6cb4e5164464df549201dd96cb7a58b1a4fdad551be6485441db5951f196db7cb"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a4fdad551be6485441db5951f196db7cb">W25Q32</a></div><div class="ttdeci">@ W25Q32</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00066">driver_w25qxx.h:66</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_gga6cb4e5164464df549201dd96cb7a58b1a66acb81a2d520a7d92ce1d37210c6435"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a66acb81a2d520a7d92ce1d37210c6435">W25Q16</a></div><div class="ttdeci">@ W25Q16</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00065">driver_w25qxx.h:65</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_gga6cb4e5164464df549201dd96cb7a58b1a75afcbe71906d3884f4fcc119c1cabd5"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a75afcbe71906d3884f4fcc119c1cabd5">W25Q128</a></div><div class="ttdeci">@ W25Q128</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00068">driver_w25qxx.h:68</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">W25Q256</a></div><div class="ttdeci">@ W25Q256</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00069">driver_w25qxx.h:69</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a></div><div class="ttdeci">@ W25QXX_ADDRESS_MODE_3_BYTE</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00095">driver_w25qxx.h:95</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a></div><div class="ttdeci">@ W25QXX_ADDRESS_MODE_4_BYTE</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00096">driver_w25qxx.h:96</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_ggacbf327a42336baf10713a1796ff4f2fea895dcb5c91da89fad1c12161ffd2d5d4"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2fea895dcb5c91da89fad1c12161ffd2d5d4">W25QXX_INTERFACE_QSPI</a></div><div class="ttdeci">@ W25QXX_INTERFACE_QSPI</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00078">driver_w25qxx.h:78</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a></div><div class="ttdeci">@ W25QXX_INTERFACE_SPI</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00077">driver_w25qxx.h:77</a></div></div>
+<div class="ttc" id="agroup__w25qxx__interface__driver_html_ga091f3607fcdd47f9e5f94cf1397bd46a"><div class="ttname"><a href="group__w25qxx__interface__driver.html#ga091f3607fcdd47f9e5f94cf1397bd46a">w25qxx_interface_spi_qspi_deinit</a></div><div class="ttdeci">uint8_t w25qxx_interface_spi_qspi_deinit(void)</div><div class="ttdoc">interface spi qspi bus deinit</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__interface__template_8c_source.html#l00058">driver_w25qxx_interface_template.c:58</a></div></div>
+<div class="ttc" id="agroup__w25qxx__interface__driver_html_ga2bdc17a556f1c801a38656331f3bb7b6"><div class="ttname"><a href="group__w25qxx__interface__driver.html#ga2bdc17a556f1c801a38656331f3bb7b6">w25qxx_interface_spi_qspi_init</a></div><div class="ttdeci">uint8_t w25qxx_interface_spi_qspi_init(void)</div><div class="ttdoc">interface spi qspi bus init</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__interface__template_8c_source.html#l00046">driver_w25qxx_interface_template.c:46</a></div></div>
+<div class="ttc" id="agroup__w25qxx__interface__driver_html_ga38e79039b913154c9dd1036ff52bb420"><div class="ttname"><a href="group__w25qxx__interface__driver.html#ga38e79039b913154c9dd1036ff52bb420">w25qxx_interface_delay_us</a></div><div class="ttdeci">void w25qxx_interface_delay_us(uint32_t us)</div><div class="ttdoc">interface delay us</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__interface__template_8c_source.html#l00108">driver_w25qxx_interface_template.c:108</a></div></div>
+<div class="ttc" id="agroup__w25qxx__interface__driver_html_ga3d76ea1f431978f6b55edfd0628c94cd"><div class="ttname"><a href="group__w25qxx__interface__driver.html#ga3d76ea1f431978f6b55edfd0628c94cd">w25qxx_interface_spi_qspi_write_read</a></div><div class="ttdeci">uint8_t w25qxx_interface_spi_qspi_write_read(uint8_t instruction, uint8_t instruction_line, uint32_t address, uint8_t address_line, uint8_t address_len, uint32_t alternate, uint8_t alternate_line, uint8_t alternate_len, uint8_t dummy, uint8_t *in_buf, uint32_t in_len, uint8_t *out_buf, uint32_t out_len, uint8_t data_line)</div><div class="ttdoc">interface spi qspi bus write read</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__interface__template_8c_source.html#l00084">driver_w25qxx_interface_template.c:84</a></div></div>
+<div class="ttc" id="agroup__w25qxx__interface__driver_html_ga5325474fa17f6833744e631613fd2a0e"><div class="ttname"><a href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a></div><div class="ttdeci">void w25qxx_interface_debug_print(const char *const fmt,...)</div><div class="ttdoc">interface print format data</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__interface__template_8c_source.html#l00118">driver_w25qxx_interface_template.c:118</a></div></div>
+<div class="ttc" id="agroup__w25qxx__interface__driver_html_ga964fa232abf98737cb98458eebfff82c"><div class="ttname"><a href="group__w25qxx__interface__driver.html#ga964fa232abf98737cb98458eebfff82c">w25qxx_interface_delay_ms</a></div><div class="ttdeci">void w25qxx_interface_delay_ms(uint32_t ms)</div><div class="ttdoc">interface delay ms</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__interface__template_8c_source.html#l00098">driver_w25qxx_interface_template.c:98</a></div></div>
+<div class="ttc" id="agroup__w25qxx__link__driver_html_ga7555618f13d2de0003ae6d9483085180"><div class="ttname"><a href="group__w25qxx__link__driver.html#ga7555618f13d2de0003ae6d9483085180">DRIVER_W25QXX_LINK_DELAY_MS</a></div><div class="ttdeci">#define DRIVER_W25QXX_LINK_DELAY_MS(HANDLE, FUC)</div><div class="ttdoc">link delay_ms function</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00297">driver_w25qxx.h:297</a></div></div>
+<div class="ttc" id="agroup__w25qxx__link__driver_html_ga995378489f95bc6bbddbe710557e3384"><div class="ttname"><a href="group__w25qxx__link__driver.html#ga995378489f95bc6bbddbe710557e3384">DRIVER_W25QXX_LINK_INIT</a></div><div class="ttdeci">#define DRIVER_W25QXX_LINK_INIT(HANDLE, STRUCTURE)</div><div class="ttdoc">initialize w25qxx_handle_t structure</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00265">driver_w25qxx.h:265</a></div></div>
+<div class="ttc" id="agroup__w25qxx__link__driver_html_gab2587de93f1dba5664eede8cd787a88a"><div class="ttname"><a href="group__w25qxx__link__driver.html#gab2587de93f1dba5664eede8cd787a88a">DRIVER_W25QXX_LINK_SPI_QSPI_INIT</a></div><div class="ttdeci">#define DRIVER_W25QXX_LINK_SPI_QSPI_INIT(HANDLE, FUC)</div><div class="ttdoc">link spi_qspi_init function</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00273">driver_w25qxx.h:273</a></div></div>
+<div class="ttc" id="agroup__w25qxx__link__driver_html_gab8d49ef9dca942fe5f37c30dcd7e22a6"><div class="ttname"><a href="group__w25qxx__link__driver.html#gab8d49ef9dca942fe5f37c30dcd7e22a6">DRIVER_W25QXX_LINK_DEBUG_PRINT</a></div><div class="ttdeci">#define DRIVER_W25QXX_LINK_DEBUG_PRINT(HANDLE, FUC)</div><div class="ttdoc">link debug_print function</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00313">driver_w25qxx.h:313</a></div></div>
+<div class="ttc" id="agroup__w25qxx__link__driver_html_gac8f0ca0a725790bace3241d1d616e3d1"><div class="ttname"><a href="group__w25qxx__link__driver.html#gac8f0ca0a725790bace3241d1d616e3d1">DRIVER_W25QXX_LINK_SPI_QSPI_WRITE_READ</a></div><div class="ttdeci">#define DRIVER_W25QXX_LINK_SPI_QSPI_WRITE_READ(HANDLE, FUC)</div><div class="ttdoc">link spi_qspi_write_read function</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00289">driver_w25qxx.h:289</a></div></div>
+<div class="ttc" id="agroup__w25qxx__link__driver_html_gaec8b55e83b46907be1dd9e7c50be550d"><div class="ttname"><a href="group__w25qxx__link__driver.html#gaec8b55e83b46907be1dd9e7c50be550d">DRIVER_W25QXX_LINK_SPI_QSPI_DEINIT</a></div><div class="ttdeci">#define DRIVER_W25QXX_LINK_SPI_QSPI_DEINIT(HANDLE, FUC)</div><div class="ttdoc">link spi_qspi_deinit function</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00281">driver_w25qxx.h:281</a></div></div>
+<div class="ttc" id="agroup__w25qxx__link__driver_html_gafc81bf850c80dfa316f0c6ab40be6e67"><div class="ttname"><a href="group__w25qxx__link__driver.html#gafc81bf850c80dfa316f0c6ab40be6e67">DRIVER_W25QXX_LINK_DELAY_US</a></div><div class="ttdeci">#define DRIVER_W25QXX_LINK_DELAY_US(HANDLE, FUC)</div><div class="ttdoc">link delay_us function</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00305">driver_w25qxx.h:305</a></div></div>
+<div class="ttc" id="agroup__w25qxx__test__driver_html_ga05d07036254d102ebea0d0b1e83862c8"><div class="ttname"><a href="group__w25qxx__test__driver.html#ga05d07036254d102ebea0d0b1e83862c8">w25qxx_register_test</a></div><div class="ttdeci">uint8_t w25qxx_register_test(w25qxx_type_t type, w25qxx_interface_t interface, w25qxx_bool_t dual_quad_spi_enable)</div><div class="ttdoc">register test</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__register__test_8c_source.html#l00051">driver_w25qxx_register_test.c:51</a></div></div>
+<div class="ttc" id="astructw25qxx__handle__s_html"><div class="ttname"><a href="structw25qxx__handle__s.html">w25qxx_handle_s</a></div><div class="ttdoc">w25qxx handle structure definition</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00209">driver_w25qxx.h:210</a></div></div>
+<div class="ttc" id="astructw25qxx__info__s_html"><div class="ttname"><a href="structw25qxx__info__s.html">w25qxx_info_s</a></div><div class="ttdoc">w25qxx information structure definition</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00235">driver_w25qxx.h:236</a></div></div>
+<div class="ttc" id="astructw25qxx__info__s_html_a3366a5dce9b829e03c3d321c2b4df3f6"><div class="ttname"><a href="structw25qxx__info__s.html#a3366a5dce9b829e03c3d321c2b4df3f6">w25qxx_info_s::temperature_max</a></div><div class="ttdeci">float temperature_max</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00244">driver_w25qxx.h:244</a></div></div>
+<div class="ttc" id="astructw25qxx__info__s_html_a3d2b12bcac7a85ea8646bff9debe8660"><div class="ttname"><a href="structw25qxx__info__s.html#a3d2b12bcac7a85ea8646bff9debe8660">w25qxx_info_s::supply_voltage_max_v</a></div><div class="ttdeci">float supply_voltage_max_v</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00241">driver_w25qxx.h:241</a></div></div>
+<div class="ttc" id="astructw25qxx__info__s_html_a41b0bd442708b70d252c50b92c75265a"><div class="ttname"><a href="structw25qxx__info__s.html#a41b0bd442708b70d252c50b92c75265a">w25qxx_info_s::driver_version</a></div><div class="ttdeci">uint32_t driver_version</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00245">driver_w25qxx.h:245</a></div></div>
+<div class="ttc" id="astructw25qxx__info__s_html_a5778305279cae46b2ecf862e97f73600"><div class="ttname"><a href="structw25qxx__info__s.html#a5778305279cae46b2ecf862e97f73600">w25qxx_info_s::interface</a></div><div class="ttdeci">char interface[16]</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00239">driver_w25qxx.h:239</a></div></div>
+<div class="ttc" id="astructw25qxx__info__s_html_a8f9dbe66ac0b66ebae0a36fcb4ba368e"><div class="ttname"><a href="structw25qxx__info__s.html#a8f9dbe66ac0b66ebae0a36fcb4ba368e">w25qxx_info_s::temperature_min</a></div><div class="ttdeci">float temperature_min</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00243">driver_w25qxx.h:243</a></div></div>
+<div class="ttc" id="astructw25qxx__info__s_html_a9db82802561bf22d799b03a345f1d1dc"><div class="ttname"><a href="structw25qxx__info__s.html#a9db82802561bf22d799b03a345f1d1dc">w25qxx_info_s::max_current_ma</a></div><div class="ttdeci">float max_current_ma</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00242">driver_w25qxx.h:242</a></div></div>
+<div class="ttc" id="astructw25qxx__info__s_html_ad25285dbf810c90f8eaf3fcef6f2b2ea"><div class="ttname"><a href="structw25qxx__info__s.html#ad25285dbf810c90f8eaf3fcef6f2b2ea">w25qxx_info_s::manufacturer_name</a></div><div class="ttdeci">char manufacturer_name[32]</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00238">driver_w25qxx.h:238</a></div></div>
+<div class="ttc" id="astructw25qxx__info__s_html_ad8bde6ddadaf43d951e62f3befb9d35a"><div class="ttname"><a href="structw25qxx__info__s.html#ad8bde6ddadaf43d951e62f3befb9d35a">w25qxx_info_s::supply_voltage_min_v</a></div><div class="ttdeci">float supply_voltage_min_v</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00240">driver_w25qxx.h:240</a></div></div>
+<div class="ttc" id="astructw25qxx__info__s_html_af890958c72bd715cc6454a10dc846ae6"><div class="ttname"><a href="structw25qxx__info__s.html#af890958c72bd715cc6454a10dc846ae6">w25qxx_info_s::chip_name</a></div><div class="ttdeci">char chip_name[32]</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00237">driver_w25qxx.h:237</a></div></div>
 </div><!-- fragment --></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
     <li class="navelem"><a class="el" href="dir_13e138d54eb8818da29c3992edef070a.html">test</a></li><li class="navelem"><a class="el" href="driver__w25qxx__register__test_8c.html">driver_w25qxx_register_test.c</a></li>
-    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
+    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/driver__w25qxx__register__test_8h.html b/doc/html/driver__w25qxx__register__test_8h.html
index e8b4455..7268249 100644
--- a/doc/html/driver__w25qxx__register__test_8h.html
+++ b/doc/html/driver__w25qxx__register__test_8h.html
@@ -1,9 +1,9 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.8"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>LibDriver W25QXX: test/driver_w25qxx_register_test.h File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -23,11 +23,10 @@
 <div id="titlearea">
 <table cellspacing="0" cellpadding="0">
  <tbody>
- <tr style="height: 56px;">
+ <tr id="projectrow">
   <td id="projectlogo"><img alt="Logo" src="doxygen.png"/></td>
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">LibDriver W25QXX
-   &#160;<span id="projectnumber">1.0.0</span>
+  <td id="projectalign">
+   <div id="projectname">LibDriver W25QXX<span id="projectnumber">&#160;1.0.0</span>
    </div>
    <div id="projectbrief">W25QXX full function driver</div>
   </td>
@@ -36,21 +35,22 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.8 -->
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search/",'.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
 <script type="text/javascript" src="menu.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(function() {
   initMenu('',true,false,'search.php','Search');
   $(document).ready(function() { init_search(); });
 });
-/* @license-end */</script>
+/* @license-end */
+</script>
 <div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
@@ -64,7 +64,7 @@
   </div>
 </div>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(document).ready(function(){initNavTree('driver__w25qxx__register__test_8h.html',''); initResizable(); });
 /* @license-end */
 </script>
@@ -78,16 +78,22 @@
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
 </div>
 
 <div class="header">
   <div class="summary">
 <a href="#func-members">Functions</a>  </div>
-  <div class="headertitle">
-<div class="title">driver_w25qxx_register_test.h File Reference</div>  </div>
+  <div class="headertitle"><div class="title">driver_w25qxx_register_test.h File Reference</div></div>
 </div><!--header-->
 <div class="contents">
 
@@ -97,10 +103,10 @@
 </div>
 <p><a href="driver__w25qxx__register__test_8h_source.html">Go to the source code of this file.</a></p>
 <table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
 Functions</h2></td></tr>
-<tr class="memitem:ga05d07036254d102ebea0d0b1e83862c8"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__test__driver.html#ga05d07036254d102ebea0d0b1e83862c8">w25qxx_register_test</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga6cb4e5164464df549201dd96cb7a58b1">w25qxx_type_t</a> type, <a class="el" href="group__w25qxx__basic__driver.html#gacbf327a42336baf10713a1796ff4f2fe">w25qxx_interface_t</a> interface, <a class="el" href="group__w25qxx__basic__driver.html#gafb2690946f5baf4be6f3a63dde5491fb">w25qxx_bool_t</a> dual_quad_spi_enable)</td></tr>
-<tr class="memdesc:ga05d07036254d102ebea0d0b1e83862c8"><td class="mdescLeft">&#160;</td><td class="mdescRight">register test  <a href="group__w25qxx__test__driver.html#ga05d07036254d102ebea0d0b1e83862c8">More...</a><br /></td></tr>
+<tr class="memitem:ga05d07036254d102ebea0d0b1e83862c8" id="r_ga05d07036254d102ebea0d0b1e83862c8"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__test__driver.html#ga05d07036254d102ebea0d0b1e83862c8">w25qxx_register_test</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga6cb4e5164464df549201dd96cb7a58b1">w25qxx_type_t</a> type, <a class="el" href="group__w25qxx__basic__driver.html#gacbf327a42336baf10713a1796ff4f2fe">w25qxx_interface_t</a> interface, <a class="el" href="group__w25qxx__basic__driver.html#gafb2690946f5baf4be6f3a63dde5491fb">w25qxx_bool_t</a> dual_quad_spi_enable)</td></tr>
+<tr class="memdesc:ga05d07036254d102ebea0d0b1e83862c8"><td class="mdescLeft">&#160;</td><td class="mdescRight">register test  <br /></td></tr>
 <tr class="separator:ga05d07036254d102ebea0d0b1e83862c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
@@ -128,7 +134,7 @@ <h3>history</h3>
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
     <li class="navelem"><a class="el" href="dir_13e138d54eb8818da29c3992edef070a.html">test</a></li><li class="navelem"><a class="el" href="driver__w25qxx__register__test_8h.html">driver_w25qxx_register_test.h</a></li>
-    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
+    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/driver__w25qxx__register__test_8h_source.html b/doc/html/driver__w25qxx__register__test_8h_source.html
index 4026e01..d33b098 100644
--- a/doc/html/driver__w25qxx__register__test_8h_source.html
+++ b/doc/html/driver__w25qxx__register__test_8h_source.html
@@ -1,9 +1,9 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.8"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>LibDriver W25QXX: test/driver_w25qxx_register_test.h Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -23,11 +23,10 @@
 <div id="titlearea">
 <table cellspacing="0" cellpadding="0">
  <tbody>
- <tr style="height: 56px;">
+ <tr id="projectrow">
   <td id="projectlogo"><img alt="Logo" src="doxygen.png"/></td>
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">LibDriver W25QXX
-   &#160;<span id="projectnumber">1.0.0</span>
+  <td id="projectalign">
+   <div id="projectname">LibDriver W25QXX<span id="projectnumber">&#160;1.0.0</span>
    </div>
    <div id="projectbrief">W25QXX full function driver</div>
   </td>
@@ -36,22 +35,28 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.8 -->
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search/",'.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
 <script type="text/javascript" src="menu.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(function() {
   initMenu('',true,false,'search.php','Search');
   $(document).ready(function() { init_search(); });
 });
-/* @license-end */</script>
+/* @license-end */
+</script>
 <div id="main-nav"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(document).ready(function() { init_codefold(0); });
+/* @license-end */
+</script>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -64,7 +69,7 @@
   </div>
 </div>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(document).ready(function(){initNavTree('driver__w25qxx__register__test_8h_source.html',''); initResizable(); });
 /* @license-end */
 </script>
@@ -78,45 +83,51 @@
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
 </div>
 
 <div class="header">
-  <div class="headertitle">
-<div class="title">driver_w25qxx_register_test.h</div>  </div>
+  <div class="headertitle"><div class="title">driver_w25qxx_register_test.h</div></div>
 </div><!--header-->
 <div class="contents">
-<a href="driver__w25qxx__register__test_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160; </div>
-<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="preprocessor">#ifndef DRIVER_W25QXX_REGISTER_TEST_H</span></div>
-<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;<span class="preprocessor">#define DRIVER_W25QXX_REGISTER_TEST_H</span></div>
-<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160; </div>
-<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="driver__w25qxx__interface_8h.html">driver_w25qxx_interface.h</a>&quot;</span></div>
-<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160; </div>
-<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;<span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span>{</div>
-<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160; </div>
-<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;uint8_t <a class="code" href="group__w25qxx__test__driver.html#ga05d07036254d102ebea0d0b1e83862c8">w25qxx_register_test</a>(<a class="code" href="group__w25qxx__basic__driver.html#ga6cb4e5164464df549201dd96cb7a58b1">w25qxx_type_t</a> type, <a class="code" href="group__w25qxx__basic__driver.html#gacbf327a42336baf10713a1796ff4f2fe">w25qxx_interface_t</a> interface, <a class="code" href="group__w25qxx__basic__driver.html#gafb2690946f5baf4be6f3a63dde5491fb">w25qxx_bool_t</a> dual_quad_spi_enable);</div>
-<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160; </div>
-<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;}</div>
-<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160; </div>
-<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;<span class="preprocessor">#endif</span></div>
+<a href="driver__w25qxx__register__test_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno">    1</span> </div>
+<div class="line"><a id="l00037" name="l00037"></a><span class="lineno">   37</span><span class="preprocessor">#ifndef DRIVER_W25QXX_REGISTER_TEST_H</span></div>
+<div class="line"><a id="l00038" name="l00038"></a><span class="lineno">   38</span><span class="preprocessor">#define DRIVER_W25QXX_REGISTER_TEST_H</span></div>
+<div class="line"><a id="l00039" name="l00039"></a><span class="lineno">   39</span> </div>
+<div class="line"><a id="l00040" name="l00040"></a><span class="lineno">   40</span><span class="preprocessor">#include &quot;<a class="code" href="driver__w25qxx__interface_8h.html">driver_w25qxx_interface.h</a>&quot;</span></div>
+<div class="line"><a id="l00041" name="l00041"></a><span class="lineno">   41</span> </div>
+<div class="line"><a id="l00042" name="l00042"></a><span class="lineno">   42</span><span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a id="l00043" name="l00043"></a><span class="lineno">   43</span><span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span>{</div>
+<div class="line"><a id="l00044" name="l00044"></a><span class="lineno">   44</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l00045" name="l00045"></a><span class="lineno">   45</span> </div>
+<div class="line"><a id="l00063" name="l00063"></a><span class="lineno">   63</span>uint8_t <a class="code hl_function" href="group__w25qxx__test__driver.html#ga05d07036254d102ebea0d0b1e83862c8">w25qxx_register_test</a>(<a class="code hl_enumeration" href="group__w25qxx__basic__driver.html#ga6cb4e5164464df549201dd96cb7a58b1">w25qxx_type_t</a> type, <a class="code hl_enumeration" href="group__w25qxx__basic__driver.html#gacbf327a42336baf10713a1796ff4f2fe">w25qxx_interface_t</a> interface, <a class="code hl_enumeration" href="group__w25qxx__basic__driver.html#gafb2690946f5baf4be6f3a63dde5491fb">w25qxx_bool_t</a> dual_quad_spi_enable);</div>
+<div class="line"><a id="l00064" name="l00064"></a><span class="lineno">   64</span> </div>
+<div class="line"><a id="l00069" name="l00069"></a><span class="lineno">   69</span><span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a id="l00070" name="l00070"></a><span class="lineno">   70</span>}</div>
+<div class="line"><a id="l00071" name="l00071"></a><span class="lineno">   71</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l00072" name="l00072"></a><span class="lineno">   72</span> </div>
+<div class="line"><a id="l00073" name="l00073"></a><span class="lineno">   73</span><span class="preprocessor">#endif</span></div>
 <div class="ttc" id="adriver__w25qxx__interface_8h_html"><div class="ttname"><a href="driver__w25qxx__interface_8h.html">driver_w25qxx_interface.h</a></div><div class="ttdoc">driver w25qxx interface header file</div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga6cb4e5164464df549201dd96cb7a58b1"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga6cb4e5164464df549201dd96cb7a58b1">w25qxx_type_t</a></div><div class="ttdeci">w25qxx_type_t</div><div class="ttdoc">w25qxx type enumeration definition</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00062">driver_w25qxx.h:63</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_gacbf327a42336baf10713a1796ff4f2fe"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gacbf327a42336baf10713a1796ff4f2fe">w25qxx_interface_t</a></div><div class="ttdeci">w25qxx_interface_t</div><div class="ttdoc">w25qxx interface enumeration definition</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00075">driver_w25qxx.h:76</a></div></div>
-<div class="ttc" id="agroup__w25qxx__basic__driver_html_gafb2690946f5baf4be6f3a63dde5491fb"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gafb2690946f5baf4be6f3a63dde5491fb">w25qxx_bool_t</a></div><div class="ttdeci">w25qxx_bool_t</div><div class="ttdoc">w25qxx bool enumeration definition</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx_8h_source.html#l00084">driver_w25qxx.h:85</a></div></div>
-<div class="ttc" id="agroup__w25qxx__test__driver_html_ga05d07036254d102ebea0d0b1e83862c8"><div class="ttname"><a href="group__w25qxx__test__driver.html#ga05d07036254d102ebea0d0b1e83862c8">w25qxx_register_test</a></div><div class="ttdeci">uint8_t w25qxx_register_test(w25qxx_type_t type, w25qxx_interface_t interface, w25qxx_bool_t dual_quad_spi_enable)</div><div class="ttdoc">register test</div><div class="ttdef"><b>Definition:</b> <a href="driver__w25qxx__register__test_8c_source.html#l00051">driver_w25qxx_register_test.c:51</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_ga6cb4e5164464df549201dd96cb7a58b1"><div class="ttname"><a href="group__w25qxx__basic__driver.html#ga6cb4e5164464df549201dd96cb7a58b1">w25qxx_type_t</a></div><div class="ttdeci">w25qxx_type_t</div><div class="ttdoc">w25qxx type enumeration definition</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00062">driver_w25qxx.h:63</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_gacbf327a42336baf10713a1796ff4f2fe"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gacbf327a42336baf10713a1796ff4f2fe">w25qxx_interface_t</a></div><div class="ttdeci">w25qxx_interface_t</div><div class="ttdoc">w25qxx interface enumeration definition</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00075">driver_w25qxx.h:76</a></div></div>
+<div class="ttc" id="agroup__w25qxx__basic__driver_html_gafb2690946f5baf4be6f3a63dde5491fb"><div class="ttname"><a href="group__w25qxx__basic__driver.html#gafb2690946f5baf4be6f3a63dde5491fb">w25qxx_bool_t</a></div><div class="ttdeci">w25qxx_bool_t</div><div class="ttdoc">w25qxx bool enumeration definition</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx_8h_source.html#l00084">driver_w25qxx.h:85</a></div></div>
+<div class="ttc" id="agroup__w25qxx__test__driver_html_ga05d07036254d102ebea0d0b1e83862c8"><div class="ttname"><a href="group__w25qxx__test__driver.html#ga05d07036254d102ebea0d0b1e83862c8">w25qxx_register_test</a></div><div class="ttdeci">uint8_t w25qxx_register_test(w25qxx_type_t type, w25qxx_interface_t interface, w25qxx_bool_t dual_quad_spi_enable)</div><div class="ttdoc">register test</div><div class="ttdef"><b>Definition</b> <a href="driver__w25qxx__register__test_8c_source.html#l00051">driver_w25qxx_register_test.c:51</a></div></div>
 </div><!-- fragment --></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
     <li class="navelem"><a class="el" href="dir_13e138d54eb8818da29c3992edef070a.html">test</a></li><li class="navelem"><a class="el" href="driver__w25qxx__register__test_8h.html">driver_w25qxx_register_test.h</a></li>
-    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
+    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/dynsections.js b/doc/html/dynsections.js
index 88f2c27..9b28156 100644
--- a/doc/html/dynsections.js
+++ b/doc/html/dynsections.js
@@ -47,6 +47,8 @@ function updateStripes()
 {
   $('table.directory tr').
        removeClass('even').filter(':visible:even').addClass('even');
+  $('table.directory tr').
+       removeClass('odd').filter(':visible:odd').addClass('odd');
 }
 
 function toggleLevel(level)
@@ -118,11 +120,80 @@ function toggleInherit(id)
     $(img).attr('src',src.substring(0,src.length-10)+'open.png');
   }
 }
-/* @license-end */
 
+var opened=true;
+// in case HTML_COLORSTYLE is LIGHT or DARK the vars will be replaced, so we write them out explicitly and use double quotes
+var plusImg  = [ "var(--fold-plus-image)",  "var(--fold-plus-image-relpath)" ];
+var minusImg = [ "var(--fold-minus-image)", "var(--fold-minus-image-relpath)" ];
+
+// toggle all folding blocks
+function codefold_toggle_all(relPath) {
+ if (opened) {
+   $('#fold_all').css('background-image',plusImg[relPath]);
+   $('div[id^=foldopen]').hide();
+   $('div[id^=foldclosed]').show();
+ } else {
+   $('#fold_all').css('background-image',minusImg[relPath]);
+   $('div[id^=foldopen]').show();
+   $('div[id^=foldclosed]').hide();
+ }
+ opened=!opened;
+}
+
+// toggle single folding block
+function codefold_toggle(id) {
+  $('#foldopen'+id).toggle();
+  $('#foldclosed'+id).toggle();
+}
+function init_codefold(relPath) {
+  $('span[class=lineno]').css(
+    {'padding-right':'4px',
+     'margin-right':'2px',
+     'display':'inline-block',
+     'width':'54px',
+     'background':'linear-gradient(var(--fold-line-color),var(--fold-line-color)) no-repeat 46px/2px 100%'
+    });
+  // add global toggle to first line
+  $('span[class=lineno]:first').append('<span class="fold" id="fold_all" '+
+                                             'onclick="javascript:codefold_toggle_all('+relPath+');" '+
+                                             'style="background-image:'+minusImg[relPath]+';"></span>');
+  // add vertical lines to other rows
+  $('span[class=lineno]').not(':eq(0)').append('<span class="fold"></span>');
+  // add toggle controls to lines with fold divs
+  $('div[class=foldopen]').each(function() {
+    // extract specific id to use
+    var id    = $(this).attr('id').replace('foldopen','');
+    // extract start and end foldable fragment attributes
+    var start = $(this).attr('data-start');
+    var end   = $(this).attr('data-end');
+    // replace normal fold span with controls for the first line of a foldable fragment
+    $(this).find('span[class=fold]:first').replaceWith('<span class="fold" '+
+                                                       'onclick="javascript:codefold_toggle(\''+id+'\');" '+
+                                                       'style="background-image:'+minusImg[relPath]+';"></span>');
+    // append div for folded (closed) representation
+    $(this).after('<div id="foldclosed'+id+'" class="foldclosed" style="display:none;"></div>');
+    // extract the first line from the "open" section to represent closed content
+    var line = $(this).children().first().clone();
+    // remove any glow that might still be active on the original line
+    $(line).removeClass('glow');
+    if (start) {
+      // if line already ends with a start marker (e.g. trailing {), remove it
+      $(line).html($(line).html().replace(new RegExp('\\s*'+start+'\\s*$','g'),''));
+    }
+    // replace minus with plus symbol
+    $(line).find('span[class=fold]').css('background-image',plusImg[relPath]);
+    // append ellipsis
+    $(line).append(' '+start+'<a href="javascript:codefold_toggle(\''+id+'\')">&#8230;</a>'+end);
+    // insert constructed line into closed div
+    $('#foldclosed'+id).html(line);
+  });
+}
+
+/* @license-end */
 $(document).ready(function() {
   $('.code,.codeRef').each(function() {
     $(this).data('powertip',$('#a'+$(this).attr('href').replace(/.*\//,'').replace(/[^a-z_A-Z0-9]/g,'_')).html());
+    $.fn.powerTip.smartPlacementLists.s = [ 's', 'n', 'ne', 'se' ];
     $(this).powerTip({ placement: 's', smartPlacement: true, mouseOnToPopup: true });
   });
 });
diff --git a/doc/html/files.html b/doc/html/files.html
index b2984b5..07064d4 100644
--- a/doc/html/files.html
+++ b/doc/html/files.html
@@ -1,9 +1,9 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.8"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>LibDriver W25QXX: File List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -23,11 +23,10 @@
 <div id="titlearea">
 <table cellspacing="0" cellpadding="0">
  <tbody>
- <tr style="height: 56px;">
+ <tr id="projectrow">
   <td id="projectlogo"><img alt="Logo" src="doxygen.png"/></td>
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">LibDriver W25QXX
-   &#160;<span id="projectnumber">1.0.0</span>
+  <td id="projectalign">
+   <div id="projectname">LibDriver W25QXX<span id="projectnumber">&#160;1.0.0</span>
    </div>
    <div id="projectbrief">W25QXX full function driver</div>
   </td>
@@ -36,21 +35,22 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.8 -->
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search/",'.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
 <script type="text/javascript" src="menu.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(function() {
   initMenu('',true,false,'search.php','Search');
   $(document).ready(function() { init_search(); });
 });
-/* @license-end */</script>
+/* @license-end */
+</script>
 <div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
@@ -64,7 +64,7 @@
   </div>
 </div>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(document).ready(function(){initNavTree('files.html',''); initResizable(); });
 /* @license-end */
 </script>
@@ -78,36 +78,42 @@
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
 </div>
 
 <div class="header">
-  <div class="headertitle">
-<div class="title">File List</div>  </div>
+  <div class="headertitle"><div class="title">File List</div></div>
 </div><!--header-->
 <div class="contents">
 <div class="textblock">Here is a list of all files with brief descriptions:</div><div class="directory">
 <div class="levels">[detail level <span onclick="javascript:toggleLevel(1);">1</span><span onclick="javascript:toggleLevel(2);">2</span><span onclick="javascript:toggleLevel(3);">3</span>]</div><table class="directory">
 <tr id="row_0_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_0_" class="arrow" onclick="toggleFolder('0_')">&#9660;</span><span id="img_0_" class="iconfopen" onclick="toggleFolder('0_')">&#160;</span><a class="el" href="dir_e68e8157741866f444e17edd764ebbae.html" target="_self">doc</a></td><td class="desc"></td></tr>
-<tr id="row_0_0_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_0_0_" class="arrow" onclick="toggleFolder('0_0_')">&#9660;</span><span id="img_0_0_" class="iconfopen" onclick="toggleFolder('0_0_')">&#160;</span><a class="el" href="dir_11ec664f88f5f079ad4de1adb8458c37.html" target="_self">mainpage</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_0_0_" class="arrow" onclick="toggleFolder('0_0_')">&#9660;</span><span id="img_0_0_" class="iconfopen" onclick="toggleFolder('0_0_')">&#160;</span><a class="el" href="dir_11ec664f88f5f079ad4de1adb8458c37.html" target="_self">mainpage</a></td><td class="desc"></td></tr>
 <tr id="row_0_0_0_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="mainpage_8h_source.html"><span class="icondoc"></span></a><a class="el" href="mainpage_8h.html" target="_self">mainpage.h</a></td><td class="desc"></td></tr>
-<tr id="row_1_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_1_" class="arrow" onclick="toggleFolder('1_')">&#9660;</span><span id="img_1_" class="iconfopen" onclick="toggleFolder('1_')">&#160;</span><a class="el" href="dir_cfafba98a580ce4b62f8a6fa96d7cbb0.html" target="_self">example</a></td><td class="desc"></td></tr>
+<tr id="row_1_" class="odd"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_1_" class="arrow" onclick="toggleFolder('1_')">&#9660;</span><span id="img_1_" class="iconfopen" onclick="toggleFolder('1_')">&#160;</span><a class="el" href="dir_cfafba98a580ce4b62f8a6fa96d7cbb0.html" target="_self">example</a></td><td class="desc"></td></tr>
 <tr id="row_1_0_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="driver__w25qxx__advance_8c_source.html"><span class="icondoc"></span></a><a class="el" href="driver__w25qxx__advance_8c.html" target="_self">driver_w25qxx_advance.c</a></td><td class="desc">Driver w25qxx advance source file </td></tr>
-<tr id="row_1_1_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="driver__w25qxx__advance_8h_source.html"><span class="icondoc"></span></a><a class="el" href="driver__w25qxx__advance_8h.html" target="_self">driver_w25qxx_advance.h</a></td><td class="desc">Driver w25qxx advance header file </td></tr>
+<tr id="row_1_1_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="driver__w25qxx__advance_8h_source.html"><span class="icondoc"></span></a><a class="el" href="driver__w25qxx__advance_8h.html" target="_self">driver_w25qxx_advance.h</a></td><td class="desc">Driver w25qxx advance header file </td></tr>
 <tr id="row_1_2_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="driver__w25qxx__basic_8c_source.html"><span class="icondoc"></span></a><a class="el" href="driver__w25qxx__basic_8c.html" target="_self">driver_w25qxx_basic.c</a></td><td class="desc">Driver w25qxx basic source file </td></tr>
-<tr id="row_1_3_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="driver__w25qxx__basic_8h_source.html"><span class="icondoc"></span></a><a class="el" href="driver__w25qxx__basic_8h.html" target="_self">driver_w25qxx_basic.h</a></td><td class="desc">Driver w25qxx basic header file </td></tr>
+<tr id="row_1_3_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="driver__w25qxx__basic_8h_source.html"><span class="icondoc"></span></a><a class="el" href="driver__w25qxx__basic_8h.html" target="_self">driver_w25qxx_basic.h</a></td><td class="desc">Driver w25qxx basic header file </td></tr>
 <tr id="row_2_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_2_" class="arrow" onclick="toggleFolder('2_')">&#9660;</span><span id="img_2_" class="iconfopen" onclick="toggleFolder('2_')">&#160;</span><a class="el" href="dir_b31d54d5631803016a26f28213a41162.html" target="_self">interface</a></td><td class="desc"></td></tr>
-<tr id="row_2_0_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="driver__w25qxx__interface_8h_source.html"><span class="icondoc"></span></a><a class="el" href="driver__w25qxx__interface_8h.html" target="_self">driver_w25qxx_interface.h</a></td><td class="desc">Driver w25qxx interface header file </td></tr>
+<tr id="row_2_0_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="driver__w25qxx__interface_8h_source.html"><span class="icondoc"></span></a><a class="el" href="driver__w25qxx__interface_8h.html" target="_self">driver_w25qxx_interface.h</a></td><td class="desc">Driver w25qxx interface header file </td></tr>
 <tr id="row_2_1_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="driver__w25qxx__interface__template_8c_source.html"><span class="icondoc"></span></a><a class="el" href="driver__w25qxx__interface__template_8c.html" target="_self">driver_w25qxx_interface_template.c</a></td><td class="desc">Driver w25qxx interface template source file </td></tr>
-<tr id="row_3_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_3_" class="arrow" onclick="toggleFolder('3_')">&#9660;</span><span id="img_3_" class="iconfopen" onclick="toggleFolder('3_')">&#160;</span><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html" target="_self">src</a></td><td class="desc"></td></tr>
+<tr id="row_3_" class="odd"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_3_" class="arrow" onclick="toggleFolder('3_')">&#9660;</span><span id="img_3_" class="iconfopen" onclick="toggleFolder('3_')">&#160;</span><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html" target="_self">src</a></td><td class="desc"></td></tr>
 <tr id="row_3_0_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="driver__w25qxx_8c_source.html"><span class="icondoc"></span></a><a class="el" href="driver__w25qxx_8c.html" target="_self">driver_w25qxx.c</a></td><td class="desc">Driver w25qxx source file </td></tr>
-<tr id="row_3_1_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="driver__w25qxx_8h_source.html"><span class="icondoc"></span></a><a class="el" href="driver__w25qxx_8h.html" target="_self">driver_w25qxx.h</a></td><td class="desc">Driver w25qxx header file </td></tr>
+<tr id="row_3_1_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="driver__w25qxx_8h_source.html"><span class="icondoc"></span></a><a class="el" href="driver__w25qxx_8h.html" target="_self">driver_w25qxx.h</a></td><td class="desc">Driver w25qxx header file </td></tr>
 <tr id="row_4_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_4_" class="arrow" onclick="toggleFolder('4_')">&#9660;</span><span id="img_4_" class="iconfopen" onclick="toggleFolder('4_')">&#160;</span><a class="el" href="dir_13e138d54eb8818da29c3992edef070a.html" target="_self">test</a></td><td class="desc"></td></tr>
-<tr id="row_4_0_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="driver__w25qxx__read__test_8c_source.html"><span class="icondoc"></span></a><a class="el" href="driver__w25qxx__read__test_8c.html" target="_self">driver_w25qxx_read_test.c</a></td><td class="desc">Driver w25qxx read test source file </td></tr>
+<tr id="row_4_0_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="driver__w25qxx__read__test_8c_source.html"><span class="icondoc"></span></a><a class="el" href="driver__w25qxx__read__test_8c.html" target="_self">driver_w25qxx_read_test.c</a></td><td class="desc">Driver w25qxx read test source file </td></tr>
 <tr id="row_4_1_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="driver__w25qxx__read__test_8h_source.html"><span class="icondoc"></span></a><a class="el" href="driver__w25qxx__read__test_8h.html" target="_self">driver_w25qxx_read_test.h</a></td><td class="desc">Driver w25qxx read test header file </td></tr>
-<tr id="row_4_2_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="driver__w25qxx__register__test_8c_source.html"><span class="icondoc"></span></a><a class="el" href="driver__w25qxx__register__test_8c.html" target="_self">driver_w25qxx_register_test.c</a></td><td class="desc">Driver w25qxx register test source file </td></tr>
+<tr id="row_4_2_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="driver__w25qxx__register__test_8c_source.html"><span class="icondoc"></span></a><a class="el" href="driver__w25qxx__register__test_8c.html" target="_self">driver_w25qxx_register_test.c</a></td><td class="desc">Driver w25qxx register test source file </td></tr>
 <tr id="row_4_3_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="driver__w25qxx__register__test_8h_source.html"><span class="icondoc"></span></a><a class="el" href="driver__w25qxx__register__test_8h.html" target="_self">driver_w25qxx_register_test.h</a></td><td class="desc">Driver w25qxx register test header file </td></tr>
 </table>
 </div><!-- directory -->
@@ -116,7 +122,7 @@
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
-    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
+    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/folderclosed.svg b/doc/html/folderclosed.svg
new file mode 100644
index 0000000..b04bed2
--- /dev/null
+++ b/doc/html/folderclosed.svg
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "https://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" width="16" height="24" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve">
+<g style="fill:#4665A2;">
+<path d="M1,5.998l-0,16.002c-0,1.326 0.527,2.598 1.464,3.536c0.938,0.937 2.21,1.464 3.536,1.464c5.322,0 14.678,-0 20,0c1.326,0 2.598,-0.527 3.536,-1.464c0.937,-0.938 1.464,-2.21 1.464,-3.536c0,-3.486 0,-8.514 0,-12c0,-1.326 -0.527,-2.598 -1.464,-3.536c-0.938,-0.937 -2.21,-1.464 -3.536,-1.464c-0,0 -10.586,0 -10.586,0c0,-0 -3.707,-3.707 -3.707,-3.707c-0.187,-0.188 -0.442,-0.293 -0.707,-0.293l-5.002,0c-2.76,0 -4.998,2.238 -4.998,4.998Zm2,-0l-0,16.002c-0,0.796 0.316,1.559 0.879,2.121c0.562,0.563 1.325,0.879 2.121,0.879l20,0c0.796,0 1.559,-0.316 2.121,-0.879c0.563,-0.562 0.879,-1.325 0.879,-2.121c0,-3.486 0,-8.514 0,-12c0,-0.796 -0.316,-1.559 -0.879,-2.121c-0.562,-0.563 -1.325,-0.879 -2.121,-0.879c-7.738,0 -11,0 -11,0c-0.265,0 -0.52,-0.105 -0.707,-0.293c-0,0 -3.707,-3.707 -3.707,-3.707c-0,0 -4.588,0 -4.588,0c-1.656,0 -2.998,1.342 -2.998,2.998Z"/>
+</g>
+<g style="fill:#D8DFEE;stroke-width:0;">
+<path d="M 5.6063709,24.951908 C 4.3924646,24.775461 3.4197129,23.899792 3.1031586,22.698521 L 3.0216155,22.389078 V 13.997725 5.6063709 L 3.1037477,5.2982247 C 3.3956682,4.2029881 4.1802788,3.412126 5.2787258,3.105917 5.5646428,3.0262132 5.6154982,3.0244963 8.0611641,3.0119829 l 2.4911989,-0.012746 1.932009,1.9300342 c 1.344142,1.3427669 1.976319,1.9498819 2.07763,1.9952626 0.137456,0.061571 0.474218,0.066269 6.006826,0.083795 l 5.861206,0.018568 0.29124,0.081916 c 1.094895,0.3079569 1.890116,1.109428 2.175567,2.192667 l 0.08154,0.3094425 V 16 22.389078 l -0.08154,0.309443 c -0.28446,1.079482 -1.086411,1.888085 -2.175567,2.193614 l -0.29124,0.0817 -10.302616,0.0049 c -5.700217,0.0027 -10.4001945,-0.0093 -10.5210471,-0.02684 z"/>
+</g>
+</svg>
diff --git a/doc/html/folderclosedd.svg b/doc/html/folderclosedd.svg
new file mode 100644
index 0000000..52f0166
--- /dev/null
+++ b/doc/html/folderclosedd.svg
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "https://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" width="16" height="24" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve">
+<g style="fill:#C4CFE5;">
+<path d="M1,5.998l-0,16.002c-0,1.326 0.527,2.598 1.464,3.536c0.938,0.937 2.21,1.464 3.536,1.464c5.322,0 14.678,-0 20,0c1.326,0 2.598,-0.527 3.536,-1.464c0.937,-0.938 1.464,-2.21 1.464,-3.536c0,-3.486 0,-8.514 0,-12c0,-1.326 -0.527,-2.598 -1.464,-3.536c-0.938,-0.937 -2.21,-1.464 -3.536,-1.464c-0,0 -10.586,0 -10.586,0c0,-0 -3.707,-3.707 -3.707,-3.707c-0.187,-0.188 -0.442,-0.293 -0.707,-0.293l-5.002,0c-2.76,0 -4.998,2.238 -4.998,4.998Zm2,-0l-0,16.002c-0,0.796 0.316,1.559 0.879,2.121c0.562,0.563 1.325,0.879 2.121,0.879l20,0c0.796,0 1.559,-0.316 2.121,-0.879c0.563,-0.562 0.879,-1.325 0.879,-2.121c0,-3.486 0,-8.514 0,-12c0,-0.796 -0.316,-1.559 -0.879,-2.121c-0.562,-0.563 -1.325,-0.879 -2.121,-0.879c-7.738,0 -11,0 -11,0c-0.265,0 -0.52,-0.105 -0.707,-0.293c-0,0 -3.707,-3.707 -3.707,-3.707c-0,0 -4.588,0 -4.588,0c-1.656,0 -2.998,1.342 -2.998,2.998Z"/>
+</g>
+<g style="fill:#4665A2;stroke-width:0;">
+<path d="M 5.6063709,24.951908 C 4.3924646,24.775461 3.4197129,23.899792 3.1031586,22.698521 L 3.0216155,22.389078 V 13.997725 5.6063709 L 3.1037477,5.2982247 C 3.3956682,4.2029881 4.1802788,3.412126 5.2787258,3.105917 5.5646428,3.0262132 5.6154982,3.0244963 8.0611641,3.0119829 l 2.4911989,-0.012746 1.932009,1.9300342 c 1.344142,1.3427669 1.976319,1.9498819 2.07763,1.9952626 0.137456,0.061571 0.474218,0.066269 6.006826,0.083795 l 5.861206,0.018568 0.29124,0.081916 c 1.094895,0.3079569 1.890116,1.109428 2.175567,2.192667 l 0.08154,0.3094425 V 16 22.389078 l -0.08154,0.309443 c -0.28446,1.079482 -1.086411,1.888085 -2.175567,2.193614 l -0.29124,0.0817 -10.302616,0.0049 c -5.700217,0.0027 -10.4001945,-0.0093 -10.5210471,-0.02684 z"/>
+</g>
+</svg>
diff --git a/doc/html/folderopen.svg b/doc/html/folderopen.svg
new file mode 100644
index 0000000..f6896dd
--- /dev/null
+++ b/doc/html/folderopen.svg
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "https://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" width="16" height="24" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve">
+<g style="fill:#4665A2;">
+<path
+   d="M1,5.998l0,16.002c-0,1.326 0.527,2.598 1.464,3.536c0.938,0.937 2.21,1.464 3.536,1.464c5.322,0 14.678,-0 20,0c1.326,0 2.598,-0.527 3.536,-1.464c0.937,-0.938 1.464,-2.21 1.464,-3.536c0,-3.486 0,-8.514 0,-12c0,-1.326 -0.527,-2.598 -1.464,-3.536c-0.938,-0.937 -2.21,-1.464 -3.536,-1.464c-0,0 -10.586,0 -10.586,0c0,-0 -3.707,-3.707 -3.707,-3.707c-0.187,-0.188 -0.442,-0.293 -0.707,-0.293l-5.002,0c-2.76,0 -4.998,2.238 -4.998,4.998Zm28,14.415l-3.456,-5.925c-0.538,-0.921 -1.524,-1.488 -2.591,-1.488c-0,0 -12.905,0 -12.906,0c-1.067,0 -2.053,0.567 -2.591,1.488l-4.453,7.635c0.03,0.751 0.342,1.465 0.876,1.998c0.562,0.563 1.325,0.879 2.121,0.879l20,0c0.796,0 1.559,-0.316 2.121,-0.879c0.563,-0.562 0.879,-1.325 0.879,-2.121l0,-1.587Zm0,-3.969l0,-6.444c0,-0.796 -0.316,-1.559 -0.879,-2.121c-0.562,-0.563 -1.325,-0.879 -2.121,-0.879c-7.738,0 -11,0 -11,0c-0.265,0 -0.52,-0.105 -0.707,-0.293c-0,0 -3.707,-3.707 -3.707,-3.707c-0,0 -4.588,0 -4.588,0c-1.656,0 -2.998,1.342 -2.998,2.998l0,12.16l2.729,-4.677c0.896,-1.536 2.54,-2.481 4.318,-2.481c3.354,0 9.552,0 12.906,0c1.778,0 3.422,0.945 4.318,2.481l1.729,2.963Z"
+   id="path2" />
+</g>
+<g style="fill:#D8DFEE;stroke-width:0;">
+<path
+   d="M 5.3879408,24.913408 C 4.1598821,24.650818 3.1571088,23.558656 3.053503,22.370876 L 3.0312746,22.116041 5.2606813,18.293515 C 6.486855,16.191126 7.5598351,14.372696 7.6450818,14.25256 8.0043056,13.746312 8.5423079,13.363007 9.2104664,13.137285 l 0.2548351,-0.08609 6.9294785,-0.0097 c 6.805096,-0.0095 6.934944,-0.0084 7.234011,0.06267 0.695577,0.165199 1.290483,0.557253 1.714887,1.130141 0.08158,0.110125 0.938747,1.556711 1.90481,3.214634 l 1.756479,3.014406 -0.0186,0.971942 c -0.01387,0.724723 -0.03365,1.032131 -0.07778,1.208575 -0.242792,0.970733 -0.88732,1.735415 -1.772382,2.102793 -0.58835,0.244217 0.247209,0.227436 -11.161974,0.224159 -9.0281537,-0.0026 -10.3636023,-0.0098 -10.5862902,-0.05746 z"
+   id="path199" /><path
+   d="M 3.0126385,11.849829 3.0235061,5.5881684 3.1020974,5.2969283 C 3.3478146,4.3863605 3.93576,3.6757372 4.756668,3.2971229 5.3293315,3.0330025 5.1813272,3.0450949 8.0130385,3.0310668 l 2.5522875,-0.012644 1.918693,1.9107086 c 1.404146,1.3983023 1.964459,1.9332518 2.089351,1.9947704 l 0.170657,0.084062 5.897611,0.019367 c 5.553257,0.018236 5.910365,0.023213 6.116041,0.085231 1.102257,0.3323708 1.857042,1.1184422 2.154229,2.2435244 0.05645,0.2137228 0.06373,0.5643981 0.07519,3.6220748 0.0076,2.032169 -5.42e-4,3.370979 -0.02041,3.349261 -0.0182,-0.0199 -0.414296,-0.691472 -0.880217,-1.492382 -0.46592,-0.80091 -0.93093,-1.577954 -1.033354,-1.726764 -0.735716,-1.0689 -1.983568,-1.844244 -3.315972,-2.060353 -0.280375,-0.04548 -1.345158,-0.05334 -7.238708,-0.05347 -4.713933,-1.09e-4 -6.9931825,0.01221 -7.1717862,0.03874 -1.3002273,0.193134 -2.4770512,0.889916 -3.283628,1.944192 -0.1076466,0.140705 -0.8359664,1.353438 -1.6184885,2.694963 L 3.0017709,18.11149 Z"
+   id="path201" />
+</g>
+</svg>
diff --git a/doc/html/folderopend.svg b/doc/html/folderopend.svg
new file mode 100644
index 0000000..2d1f06e
--- /dev/null
+++ b/doc/html/folderopend.svg
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "https://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" width="16" height="24" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve">
+<g style="fill:#C4CFE5;">
+<path d="M1,5.998l0,16.002c-0,1.326 0.527,2.598 1.464,3.536c0.938,0.937 2.21,1.464 3.536,1.464c5.322,0 14.678,-0 20,0c1.326,0 2.598,-0.527 3.536,-1.464c0.937,-0.938 1.464,-2.21 1.464,-3.536c0,-3.486 0,-8.514 0,-12c0,-1.326 -0.527,-2.598 -1.464,-3.536c-0.938,-0.937 -2.21,-1.464 -3.536,-1.464c-0,0 -10.586,0 -10.586,0c0,-0 -3.707,-3.707 -3.707,-3.707c-0.187,-0.188 -0.442,-0.293 -0.707,-0.293l-5.002,0c-2.76,0 -4.998,2.238 -4.998,4.998Zm28,14.415l-3.456,-5.925c-0.538,-0.921 -1.524,-1.488 -2.591,-1.488c-0,0 -12.905,0 -12.906,0c-1.067,0 -2.053,0.567 -2.591,1.488l-4.453,7.635c0.03,0.751 0.342,1.465 0.876,1.998c0.562,0.563 1.325,0.879 2.121,0.879l20,0c0.796,0 1.559,-0.316 2.121,-0.879c0.563,-0.562 0.879,-1.325 0.879,-2.121l0,-1.587Zm0,-3.969l0,-6.444c0,-0.796 -0.316,-1.559 -0.879,-2.121c-0.562,-0.563 -1.325,-0.879 -2.121,-0.879c-7.738,0 -11,0 -11,0c-0.265,0 -0.52,-0.105 -0.707,-0.293c-0,0 -3.707,-3.707 -3.707,-3.707c-0,0 -4.588,0 -4.588,0c-1.656,0 -2.998,1.342 -2.998,2.998l0,12.16l2.729,-4.677c0.896,-1.536 2.54,-2.481 4.318,-2.481c3.354,0 9.552,0 12.906,0c1.778,0 3.422,0.945 4.318,2.481l1.729,2.963Z"/>
+</g>
+<g style="fill:#4665A2;stroke-width:0;">
+<path d="M 5.3879408,24.913408 C 4.1598821,24.650818 3.1571088,23.558656 3.053503,22.370876 L 3.0312746,22.116041 5.2606813,18.293515 C 6.486855,16.191126 7.5598351,14.372696 7.6450818,14.25256 8.0043056,13.746312 8.5423079,13.363007 9.2104664,13.137285 l 0.2548351,-0.08609 6.9294785,-0.0097 c 6.805096,-0.0095 6.934944,-0.0084 7.234011,0.06267 0.695577,0.165199 1.290483,0.557253 1.714887,1.130141 0.08158,0.110125 0.938747,1.556711 1.90481,3.214634 l 1.756479,3.014406 -0.0186,0.971942 c -0.01387,0.724723 -0.03365,1.032131 -0.07778,1.208575 -0.242792,0.970733 -0.88732,1.735415 -1.772382,2.102793 -0.58835,0.244217 0.247209,0.227436 -11.161974,0.224159 -9.0281537,-0.0026 -10.3636023,-0.0098 -10.5862902,-0.05746 z" />
+<path d="M 3.0126385,11.849829 3.0235061,5.5881684 3.1020974,5.2969283 C 3.3478146,4.3863605 3.93576,3.6757372 4.756668,3.2971229 5.3293315,3.0330025 5.1813272,3.0450949 8.0130385,3.0310668 l 2.5522875,-0.012644 1.918693,1.9107086 c 1.404146,1.3983023 1.964459,1.9332518 2.089351,1.9947704 l 0.170657,0.084062 5.897611,0.019367 c 5.553257,0.018236 5.910365,0.023213 6.116041,0.085231 1.102257,0.3323708 1.857042,1.1184422 2.154229,2.2435244 0.05645,0.2137228 0.06373,0.5643981 0.07519,3.6220748 0.0076,2.032169 -5.42e-4,3.370979 -0.02041,3.349261 -0.0182,-0.0199 -0.414296,-0.691472 -0.880217,-1.492382 -0.46592,-0.80091 -0.93093,-1.577954 -1.033354,-1.726764 -0.735716,-1.0689 -1.983568,-1.844244 -3.315972,-2.060353 -0.280375,-0.04548 -1.345158,-0.05334 -7.238708,-0.05347 -4.713933,-1.09e-4 -6.9931825,0.01221 -7.1717862,0.03874 -1.3002273,0.193134 -2.4770512,0.889916 -3.283628,1.944192 -0.1076466,0.140705 -0.8359664,1.353438 -1.6184885,2.694963 L 3.0017709,18.11149 Z" />
+</g>
+</svg>
diff --git a/doc/html/functions.html b/doc/html/functions.html
index 5934253..9004eb1 100644
--- a/doc/html/functions.html
+++ b/doc/html/functions.html
@@ -1,9 +1,9 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.8"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>LibDriver W25QXX: Data Fields</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -23,11 +23,10 @@
 <div id="titlearea">
 <table cellspacing="0" cellpadding="0">
  <tbody>
- <tr style="height: 56px;">
+ <tr id="projectrow">
   <td id="projectlogo"><img alt="Logo" src="doxygen.png"/></td>
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">LibDriver W25QXX
-   &#160;<span id="projectnumber">1.0.0</span>
+  <td id="projectalign">
+   <div id="projectname">LibDriver W25QXX<span id="projectnumber">&#160;1.0.0</span>
    </div>
    <div id="projectbrief">W25QXX full function driver</div>
   </td>
@@ -36,21 +35,22 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.8 -->
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search/",'.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
 <script type="text/javascript" src="menu.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(function() {
   initMenu('',true,false,'search.php','Search');
   $(document).ready(function() { init_search(); });
 });
-/* @license-end */</script>
+/* @license-end */
+</script>
 <div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
@@ -64,7 +64,7 @@
   </div>
 </div>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(document).ready(function(){initNavTree('functions.html',''); initResizable(); });
 /* @license-end */
 </script>
@@ -78,92 +78,51 @@
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
 </div>
 
 <div class="contents">
 <div class="textblock">Here is a list of all struct and union fields with links to the structures/unions they belong to:</div><ul>
-<li>address_mode
-: <a class="el" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">w25qxx_handle_s</a>
-</li>
-<li>buf
-: <a class="el" href="structw25qxx__handle__s.html#a2121914a1858618e9216fa2daf0a42a2">w25qxx_handle_s</a>
-</li>
-<li>buf_4k
-: <a class="el" href="structw25qxx__handle__s.html#ac80aa2927adf500634749513e88c474b">w25qxx_handle_s</a>
-</li>
-<li>chip_name
-: <a class="el" href="structw25qxx__info__s.html#af890958c72bd715cc6454a10dc846ae6">w25qxx_info_s</a>
-</li>
-<li>debug_print
-: <a class="el" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">w25qxx_handle_s</a>
-</li>
-<li>delay_ms
-: <a class="el" href="structw25qxx__handle__s.html#a406c9433252b7366de417b7a60915c81">w25qxx_handle_s</a>
-</li>
-<li>delay_us
-: <a class="el" href="structw25qxx__handle__s.html#a97ffc4fce945527bd6ab25a3596caef7">w25qxx_handle_s</a>
-</li>
-<li>driver_version
-: <a class="el" href="structw25qxx__info__s.html#a41b0bd442708b70d252c50b92c75265a">w25qxx_info_s</a>
-</li>
-<li>dual_quad_spi_enable
-: <a class="el" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">w25qxx_handle_s</a>
-</li>
-<li>dummy
-: <a class="el" href="structw25qxx__handle__s.html#aff7b59f569ec689a7580bd6911daafd5">w25qxx_handle_s</a>
-</li>
-<li>inited
-: <a class="el" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">w25qxx_handle_s</a>
-</li>
-<li>interface
-: <a class="el" href="structw25qxx__info__s.html#a5778305279cae46b2ecf862e97f73600">w25qxx_info_s</a>
-</li>
-<li>manufacturer_name
-: <a class="el" href="structw25qxx__info__s.html#ad25285dbf810c90f8eaf3fcef6f2b2ea">w25qxx_info_s</a>
-</li>
-<li>max_current_ma
-: <a class="el" href="structw25qxx__info__s.html#a9db82802561bf22d799b03a345f1d1dc">w25qxx_info_s</a>
-</li>
-<li>param
-: <a class="el" href="structw25qxx__handle__s.html#a3d28993689552e18d554dc0644efcf16">w25qxx_handle_s</a>
-</li>
-<li>spi_qspi
-: <a class="el" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">w25qxx_handle_s</a>
-</li>
-<li>spi_qspi_deinit
-: <a class="el" href="structw25qxx__handle__s.html#a4568e23228174b7d32678d9a96d2420c">w25qxx_handle_s</a>
-</li>
-<li>spi_qspi_init
-: <a class="el" href="structw25qxx__handle__s.html#aec834df46e5185868dfdcc6fcec2e801">w25qxx_handle_s</a>
-</li>
-<li>spi_qspi_write_read
-: <a class="el" href="structw25qxx__handle__s.html#a2d39cde883403779e3da9dd39c32bec5">w25qxx_handle_s</a>
-</li>
-<li>supply_voltage_max_v
-: <a class="el" href="structw25qxx__info__s.html#a3d2b12bcac7a85ea8646bff9debe8660">w25qxx_info_s</a>
-</li>
-<li>supply_voltage_min_v
-: <a class="el" href="structw25qxx__info__s.html#ad8bde6ddadaf43d951e62f3befb9d35a">w25qxx_info_s</a>
-</li>
-<li>temperature_max
-: <a class="el" href="structw25qxx__info__s.html#a3366a5dce9b829e03c3d321c2b4df3f6">w25qxx_info_s</a>
-</li>
-<li>temperature_min
-: <a class="el" href="structw25qxx__info__s.html#a8f9dbe66ac0b66ebae0a36fcb4ba368e">w25qxx_info_s</a>
-</li>
-<li>type
-: <a class="el" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">w25qxx_handle_s</a>
-</li>
+<li>address_mode&#160;:&#160;<a class="el" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">w25qxx_handle_s</a></li>
+<li>buf&#160;:&#160;<a class="el" href="structw25qxx__handle__s.html#a2121914a1858618e9216fa2daf0a42a2">w25qxx_handle_s</a></li>
+<li>buf_4k&#160;:&#160;<a class="el" href="structw25qxx__handle__s.html#ac80aa2927adf500634749513e88c474b">w25qxx_handle_s</a></li>
+<li>chip_name&#160;:&#160;<a class="el" href="structw25qxx__info__s.html#af890958c72bd715cc6454a10dc846ae6">w25qxx_info_s</a></li>
+<li>debug_print&#160;:&#160;<a class="el" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">w25qxx_handle_s</a></li>
+<li>delay_ms&#160;:&#160;<a class="el" href="structw25qxx__handle__s.html#a406c9433252b7366de417b7a60915c81">w25qxx_handle_s</a></li>
+<li>delay_us&#160;:&#160;<a class="el" href="structw25qxx__handle__s.html#a97ffc4fce945527bd6ab25a3596caef7">w25qxx_handle_s</a></li>
+<li>driver_version&#160;:&#160;<a class="el" href="structw25qxx__info__s.html#a41b0bd442708b70d252c50b92c75265a">w25qxx_info_s</a></li>
+<li>dual_quad_spi_enable&#160;:&#160;<a class="el" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">w25qxx_handle_s</a></li>
+<li>dummy&#160;:&#160;<a class="el" href="structw25qxx__handle__s.html#aff7b59f569ec689a7580bd6911daafd5">w25qxx_handle_s</a></li>
+<li>inited&#160;:&#160;<a class="el" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">w25qxx_handle_s</a></li>
+<li>interface&#160;:&#160;<a class="el" href="structw25qxx__info__s.html#a5778305279cae46b2ecf862e97f73600">w25qxx_info_s</a></li>
+<li>manufacturer_name&#160;:&#160;<a class="el" href="structw25qxx__info__s.html#ad25285dbf810c90f8eaf3fcef6f2b2ea">w25qxx_info_s</a></li>
+<li>max_current_ma&#160;:&#160;<a class="el" href="structw25qxx__info__s.html#a9db82802561bf22d799b03a345f1d1dc">w25qxx_info_s</a></li>
+<li>param&#160;:&#160;<a class="el" href="structw25qxx__handle__s.html#a3d28993689552e18d554dc0644efcf16">w25qxx_handle_s</a></li>
+<li>spi_qspi&#160;:&#160;<a class="el" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">w25qxx_handle_s</a></li>
+<li>spi_qspi_deinit&#160;:&#160;<a class="el" href="structw25qxx__handle__s.html#a4568e23228174b7d32678d9a96d2420c">w25qxx_handle_s</a></li>
+<li>spi_qspi_init&#160;:&#160;<a class="el" href="structw25qxx__handle__s.html#aec834df46e5185868dfdcc6fcec2e801">w25qxx_handle_s</a></li>
+<li>spi_qspi_write_read&#160;:&#160;<a class="el" href="structw25qxx__handle__s.html#a2d39cde883403779e3da9dd39c32bec5">w25qxx_handle_s</a></li>
+<li>supply_voltage_max_v&#160;:&#160;<a class="el" href="structw25qxx__info__s.html#a3d2b12bcac7a85ea8646bff9debe8660">w25qxx_info_s</a></li>
+<li>supply_voltage_min_v&#160;:&#160;<a class="el" href="structw25qxx__info__s.html#ad8bde6ddadaf43d951e62f3befb9d35a">w25qxx_info_s</a></li>
+<li>temperature_max&#160;:&#160;<a class="el" href="structw25qxx__info__s.html#a3366a5dce9b829e03c3d321c2b4df3f6">w25qxx_info_s</a></li>
+<li>temperature_min&#160;:&#160;<a class="el" href="structw25qxx__info__s.html#a8f9dbe66ac0b66ebae0a36fcb4ba368e">w25qxx_info_s</a></li>
+<li>type&#160;:&#160;<a class="el" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">w25qxx_handle_s</a></li>
 </ul>
 </div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
-    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
+    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/functions_vars.html b/doc/html/functions_vars.html
index edbe3ad..37bac95 100644
--- a/doc/html/functions_vars.html
+++ b/doc/html/functions_vars.html
@@ -1,9 +1,9 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.8"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>LibDriver W25QXX: Data Fields - Variables</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -23,11 +23,10 @@
 <div id="titlearea">
 <table cellspacing="0" cellpadding="0">
  <tbody>
- <tr style="height: 56px;">
+ <tr id="projectrow">
   <td id="projectlogo"><img alt="Logo" src="doxygen.png"/></td>
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">LibDriver W25QXX
-   &#160;<span id="projectnumber">1.0.0</span>
+  <td id="projectalign">
+   <div id="projectname">LibDriver W25QXX<span id="projectnumber">&#160;1.0.0</span>
    </div>
    <div id="projectbrief">W25QXX full function driver</div>
   </td>
@@ -36,21 +35,22 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.8 -->
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search/",'.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
 <script type="text/javascript" src="menu.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(function() {
   initMenu('',true,false,'search.php','Search');
   $(document).ready(function() { init_search(); });
 });
-/* @license-end */</script>
+/* @license-end */
+</script>
 <div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
@@ -64,7 +64,7 @@
   </div>
 </div>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(document).ready(function(){initNavTree('functions_vars.html',''); initResizable(); });
 /* @license-end */
 </script>
@@ -78,92 +78,51 @@
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
 </div>
 
 <div class="contents">
-&#160;<ul>
-<li>address_mode
-: <a class="el" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">w25qxx_handle_s</a>
-</li>
-<li>buf
-: <a class="el" href="structw25qxx__handle__s.html#a2121914a1858618e9216fa2daf0a42a2">w25qxx_handle_s</a>
-</li>
-<li>buf_4k
-: <a class="el" href="structw25qxx__handle__s.html#ac80aa2927adf500634749513e88c474b">w25qxx_handle_s</a>
-</li>
-<li>chip_name
-: <a class="el" href="structw25qxx__info__s.html#af890958c72bd715cc6454a10dc846ae6">w25qxx_info_s</a>
-</li>
-<li>debug_print
-: <a class="el" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">w25qxx_handle_s</a>
-</li>
-<li>delay_ms
-: <a class="el" href="structw25qxx__handle__s.html#a406c9433252b7366de417b7a60915c81">w25qxx_handle_s</a>
-</li>
-<li>delay_us
-: <a class="el" href="structw25qxx__handle__s.html#a97ffc4fce945527bd6ab25a3596caef7">w25qxx_handle_s</a>
-</li>
-<li>driver_version
-: <a class="el" href="structw25qxx__info__s.html#a41b0bd442708b70d252c50b92c75265a">w25qxx_info_s</a>
-</li>
-<li>dual_quad_spi_enable
-: <a class="el" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">w25qxx_handle_s</a>
-</li>
-<li>dummy
-: <a class="el" href="structw25qxx__handle__s.html#aff7b59f569ec689a7580bd6911daafd5">w25qxx_handle_s</a>
-</li>
-<li>inited
-: <a class="el" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">w25qxx_handle_s</a>
-</li>
-<li>interface
-: <a class="el" href="structw25qxx__info__s.html#a5778305279cae46b2ecf862e97f73600">w25qxx_info_s</a>
-</li>
-<li>manufacturer_name
-: <a class="el" href="structw25qxx__info__s.html#ad25285dbf810c90f8eaf3fcef6f2b2ea">w25qxx_info_s</a>
-</li>
-<li>max_current_ma
-: <a class="el" href="structw25qxx__info__s.html#a9db82802561bf22d799b03a345f1d1dc">w25qxx_info_s</a>
-</li>
-<li>param
-: <a class="el" href="structw25qxx__handle__s.html#a3d28993689552e18d554dc0644efcf16">w25qxx_handle_s</a>
-</li>
-<li>spi_qspi
-: <a class="el" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">w25qxx_handle_s</a>
-</li>
-<li>spi_qspi_deinit
-: <a class="el" href="structw25qxx__handle__s.html#a4568e23228174b7d32678d9a96d2420c">w25qxx_handle_s</a>
-</li>
-<li>spi_qspi_init
-: <a class="el" href="structw25qxx__handle__s.html#aec834df46e5185868dfdcc6fcec2e801">w25qxx_handle_s</a>
-</li>
-<li>spi_qspi_write_read
-: <a class="el" href="structw25qxx__handle__s.html#a2d39cde883403779e3da9dd39c32bec5">w25qxx_handle_s</a>
-</li>
-<li>supply_voltage_max_v
-: <a class="el" href="structw25qxx__info__s.html#a3d2b12bcac7a85ea8646bff9debe8660">w25qxx_info_s</a>
-</li>
-<li>supply_voltage_min_v
-: <a class="el" href="structw25qxx__info__s.html#ad8bde6ddadaf43d951e62f3befb9d35a">w25qxx_info_s</a>
-</li>
-<li>temperature_max
-: <a class="el" href="structw25qxx__info__s.html#a3366a5dce9b829e03c3d321c2b4df3f6">w25qxx_info_s</a>
-</li>
-<li>temperature_min
-: <a class="el" href="structw25qxx__info__s.html#a8f9dbe66ac0b66ebae0a36fcb4ba368e">w25qxx_info_s</a>
-</li>
-<li>type
-: <a class="el" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">w25qxx_handle_s</a>
-</li>
+<div class="textblock">Here is a list of all variables with links to the structures/unions they belong to:</div><ul>
+<li>address_mode&#160;:&#160;<a class="el" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">w25qxx_handle_s</a></li>
+<li>buf&#160;:&#160;<a class="el" href="structw25qxx__handle__s.html#a2121914a1858618e9216fa2daf0a42a2">w25qxx_handle_s</a></li>
+<li>buf_4k&#160;:&#160;<a class="el" href="structw25qxx__handle__s.html#ac80aa2927adf500634749513e88c474b">w25qxx_handle_s</a></li>
+<li>chip_name&#160;:&#160;<a class="el" href="structw25qxx__info__s.html#af890958c72bd715cc6454a10dc846ae6">w25qxx_info_s</a></li>
+<li>debug_print&#160;:&#160;<a class="el" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">w25qxx_handle_s</a></li>
+<li>delay_ms&#160;:&#160;<a class="el" href="structw25qxx__handle__s.html#a406c9433252b7366de417b7a60915c81">w25qxx_handle_s</a></li>
+<li>delay_us&#160;:&#160;<a class="el" href="structw25qxx__handle__s.html#a97ffc4fce945527bd6ab25a3596caef7">w25qxx_handle_s</a></li>
+<li>driver_version&#160;:&#160;<a class="el" href="structw25qxx__info__s.html#a41b0bd442708b70d252c50b92c75265a">w25qxx_info_s</a></li>
+<li>dual_quad_spi_enable&#160;:&#160;<a class="el" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">w25qxx_handle_s</a></li>
+<li>dummy&#160;:&#160;<a class="el" href="structw25qxx__handle__s.html#aff7b59f569ec689a7580bd6911daafd5">w25qxx_handle_s</a></li>
+<li>inited&#160;:&#160;<a class="el" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">w25qxx_handle_s</a></li>
+<li>interface&#160;:&#160;<a class="el" href="structw25qxx__info__s.html#a5778305279cae46b2ecf862e97f73600">w25qxx_info_s</a></li>
+<li>manufacturer_name&#160;:&#160;<a class="el" href="structw25qxx__info__s.html#ad25285dbf810c90f8eaf3fcef6f2b2ea">w25qxx_info_s</a></li>
+<li>max_current_ma&#160;:&#160;<a class="el" href="structw25qxx__info__s.html#a9db82802561bf22d799b03a345f1d1dc">w25qxx_info_s</a></li>
+<li>param&#160;:&#160;<a class="el" href="structw25qxx__handle__s.html#a3d28993689552e18d554dc0644efcf16">w25qxx_handle_s</a></li>
+<li>spi_qspi&#160;:&#160;<a class="el" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">w25qxx_handle_s</a></li>
+<li>spi_qspi_deinit&#160;:&#160;<a class="el" href="structw25qxx__handle__s.html#a4568e23228174b7d32678d9a96d2420c">w25qxx_handle_s</a></li>
+<li>spi_qspi_init&#160;:&#160;<a class="el" href="structw25qxx__handle__s.html#aec834df46e5185868dfdcc6fcec2e801">w25qxx_handle_s</a></li>
+<li>spi_qspi_write_read&#160;:&#160;<a class="el" href="structw25qxx__handle__s.html#a2d39cde883403779e3da9dd39c32bec5">w25qxx_handle_s</a></li>
+<li>supply_voltage_max_v&#160;:&#160;<a class="el" href="structw25qxx__info__s.html#a3d2b12bcac7a85ea8646bff9debe8660">w25qxx_info_s</a></li>
+<li>supply_voltage_min_v&#160;:&#160;<a class="el" href="structw25qxx__info__s.html#ad8bde6ddadaf43d951e62f3befb9d35a">w25qxx_info_s</a></li>
+<li>temperature_max&#160;:&#160;<a class="el" href="structw25qxx__info__s.html#a3366a5dce9b829e03c3d321c2b4df3f6">w25qxx_info_s</a></li>
+<li>temperature_min&#160;:&#160;<a class="el" href="structw25qxx__info__s.html#a8f9dbe66ac0b66ebae0a36fcb4ba368e">w25qxx_info_s</a></li>
+<li>type&#160;:&#160;<a class="el" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">w25qxx_handle_s</a></li>
 </ul>
 </div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
-    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
+    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/globals.html b/doc/html/globals.html
index 22614bf..c73e086 100644
--- a/doc/html/globals.html
+++ b/doc/html/globals.html
@@ -1,9 +1,9 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.8"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>LibDriver W25QXX: Globals</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -23,11 +23,10 @@
 <div id="titlearea">
 <table cellspacing="0" cellpadding="0">
  <tbody>
- <tr style="height: 56px;">
+ <tr id="projectrow">
   <td id="projectlogo"><img alt="Logo" src="doxygen.png"/></td>
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">LibDriver W25QXX
-   &#160;<span id="projectnumber">1.0.0</span>
+  <td id="projectalign">
+   <div id="projectname">LibDriver W25QXX<span id="projectnumber">&#160;1.0.0</span>
    </div>
    <div id="projectbrief">W25QXX full function driver</div>
   </td>
@@ -36,21 +35,22 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.8 -->
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search/",'.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
 <script type="text/javascript" src="menu.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(function() {
   initMenu('',true,false,'search.php','Search');
   $(document).ready(function() { init_search(); });
 });
-/* @license-end */</script>
+/* @license-end */
+</script>
 <div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
@@ -64,7 +64,7 @@
   </div>
 </div>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(document).ready(function(){initNavTree('globals.html',''); initResizable(); });
 /* @license-end */
 </script>
@@ -78,25 +78,30 @@
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
 </div>
 
 <div class="contents">
 <div class="textblock">Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:</div>
 
-<h3><a id="index_c"></a>- c -</h3><ul>
-<li>CHIP_NAME
-: <a class="el" href="driver__w25qxx_8c.html#adc9da0a24824ca1239b593f6459b3954">driver_w25qxx.c</a>
-</li>
+<h3><a id="index_c" name="index_c"></a>- c -</h3><ul>
+<li>CHIP_NAME&#160;:&#160;<a class="el" href="driver__w25qxx_8c.html#adc9da0a24824ca1239b593f6459b3954">driver_w25qxx.c</a></li>
 </ul>
 </div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
-    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
+    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/globals_d.html b/doc/html/globals_d.html
index 030df10..d0c6095 100644
--- a/doc/html/globals_d.html
+++ b/doc/html/globals_d.html
@@ -1,9 +1,9 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.8"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>LibDriver W25QXX: Globals</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -23,11 +23,10 @@
 <div id="titlearea">
 <table cellspacing="0" cellpadding="0">
  <tbody>
- <tr style="height: 56px;">
+ <tr id="projectrow">
   <td id="projectlogo"><img alt="Logo" src="doxygen.png"/></td>
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">LibDriver W25QXX
-   &#160;<span id="projectnumber">1.0.0</span>
+  <td id="projectalign">
+   <div id="projectname">LibDriver W25QXX<span id="projectnumber">&#160;1.0.0</span>
    </div>
    <div id="projectbrief">W25QXX full function driver</div>
   </td>
@@ -36,21 +35,22 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.8 -->
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search/",'.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
 <script type="text/javascript" src="menu.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(function() {
   initMenu('',true,false,'search.php','Search');
   $(document).ready(function() { init_search(); });
 });
-/* @license-end */</script>
+/* @license-end */
+</script>
 <div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
@@ -64,7 +64,7 @@
   </div>
 </div>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(document).ready(function(){initNavTree('globals_d.html',''); initResizable(); });
 /* @license-end */
 </script>
@@ -78,46 +78,37 @@
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
 </div>
 
 <div class="contents">
 <div class="textblock">Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:</div>
 
-<h3><a id="index_d"></a>- d -</h3><ul>
-<li>DRIVER_VERSION
-: <a class="el" href="driver__w25qxx_8c.html#ae578001fe043b4cca7a0edd801cfe9c4">driver_w25qxx.c</a>
-</li>
-<li>DRIVER_W25QXX_LINK_DEBUG_PRINT
-: <a class="el" href="group__w25qxx__link__driver.html#gab8d49ef9dca942fe5f37c30dcd7e22a6">driver_w25qxx.h</a>
-</li>
-<li>DRIVER_W25QXX_LINK_DELAY_MS
-: <a class="el" href="group__w25qxx__link__driver.html#ga7555618f13d2de0003ae6d9483085180">driver_w25qxx.h</a>
-</li>
-<li>DRIVER_W25QXX_LINK_DELAY_US
-: <a class="el" href="group__w25qxx__link__driver.html#gafc81bf850c80dfa316f0c6ab40be6e67">driver_w25qxx.h</a>
-</li>
-<li>DRIVER_W25QXX_LINK_INIT
-: <a class="el" href="group__w25qxx__link__driver.html#ga995378489f95bc6bbddbe710557e3384">driver_w25qxx.h</a>
-</li>
-<li>DRIVER_W25QXX_LINK_SPI_QSPI_DEINIT
-: <a class="el" href="group__w25qxx__link__driver.html#gaec8b55e83b46907be1dd9e7c50be550d">driver_w25qxx.h</a>
-</li>
-<li>DRIVER_W25QXX_LINK_SPI_QSPI_INIT
-: <a class="el" href="group__w25qxx__link__driver.html#gab2587de93f1dba5664eede8cd787a88a">driver_w25qxx.h</a>
-</li>
-<li>DRIVER_W25QXX_LINK_SPI_QSPI_WRITE_READ
-: <a class="el" href="group__w25qxx__link__driver.html#gac8f0ca0a725790bace3241d1d616e3d1">driver_w25qxx.h</a>
-</li>
+<h3><a id="index_d" name="index_d"></a>- d -</h3><ul>
+<li>DRIVER_VERSION&#160;:&#160;<a class="el" href="driver__w25qxx_8c.html#ae578001fe043b4cca7a0edd801cfe9c4">driver_w25qxx.c</a></li>
+<li>DRIVER_W25QXX_LINK_DEBUG_PRINT&#160;:&#160;<a class="el" href="group__w25qxx__link__driver.html#gab8d49ef9dca942fe5f37c30dcd7e22a6">driver_w25qxx.h</a></li>
+<li>DRIVER_W25QXX_LINK_DELAY_MS&#160;:&#160;<a class="el" href="group__w25qxx__link__driver.html#ga7555618f13d2de0003ae6d9483085180">driver_w25qxx.h</a></li>
+<li>DRIVER_W25QXX_LINK_DELAY_US&#160;:&#160;<a class="el" href="group__w25qxx__link__driver.html#gafc81bf850c80dfa316f0c6ab40be6e67">driver_w25qxx.h</a></li>
+<li>DRIVER_W25QXX_LINK_INIT&#160;:&#160;<a class="el" href="group__w25qxx__link__driver.html#ga995378489f95bc6bbddbe710557e3384">driver_w25qxx.h</a></li>
+<li>DRIVER_W25QXX_LINK_SPI_QSPI_DEINIT&#160;:&#160;<a class="el" href="group__w25qxx__link__driver.html#gaec8b55e83b46907be1dd9e7c50be550d">driver_w25qxx.h</a></li>
+<li>DRIVER_W25QXX_LINK_SPI_QSPI_INIT&#160;:&#160;<a class="el" href="group__w25qxx__link__driver.html#gab2587de93f1dba5664eede8cd787a88a">driver_w25qxx.h</a></li>
+<li>DRIVER_W25QXX_LINK_SPI_QSPI_WRITE_READ&#160;:&#160;<a class="el" href="group__w25qxx__link__driver.html#gac8f0ca0a725790bace3241d1d616e3d1">driver_w25qxx.h</a></li>
 </ul>
 </div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
-    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
+    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/globals_defs.html b/doc/html/globals_defs.html
index 8f28f83..ce31c31 100644
--- a/doc/html/globals_defs.html
+++ b/doc/html/globals_defs.html
@@ -1,9 +1,9 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.8"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>LibDriver W25QXX: Globals</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -23,11 +23,10 @@
 <div id="titlearea">
 <table cellspacing="0" cellpadding="0">
  <tbody>
- <tr style="height: 56px;">
+ <tr id="projectrow">
   <td id="projectlogo"><img alt="Logo" src="doxygen.png"/></td>
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">LibDriver W25QXX
-   &#160;<span id="projectnumber">1.0.0</span>
+  <td id="projectalign">
+   <div id="projectname">LibDriver W25QXX<span id="projectnumber">&#160;1.0.0</span>
    </div>
    <div id="projectbrief">W25QXX full function driver</div>
   </td>
@@ -36,21 +35,22 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.8 -->
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search/",'.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
 <script type="text/javascript" src="menu.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(function() {
   initMenu('',true,false,'search.php','Search');
   $(document).ready(function() { init_search(); });
 });
-/* @license-end */</script>
+/* @license-end */
+</script>
 <div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
@@ -64,7 +64,7 @@
   </div>
 </div>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(document).ready(function(){initNavTree('globals_defs.html',''); initResizable(); });
 /* @license-end */
 </script>
@@ -78,225 +78,110 @@
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
 </div>
 
 <div class="contents">
-&#160;
+<div class="textblock">Here is a list of all macros with links to the files they belong to:</div>
 
-<h3><a id="index_c"></a>- c -</h3><ul>
-<li>CHIP_NAME
-: <a class="el" href="driver__w25qxx_8c.html#adc9da0a24824ca1239b593f6459b3954">driver_w25qxx.c</a>
-</li>
+<h3><a id="index_c" name="index_c"></a>- c -</h3><ul>
+<li>CHIP_NAME&#160;:&#160;<a class="el" href="driver__w25qxx_8c.html#adc9da0a24824ca1239b593f6459b3954">driver_w25qxx.c</a></li>
 </ul>
 
 
-<h3><a id="index_d"></a>- d -</h3><ul>
-<li>DRIVER_VERSION
-: <a class="el" href="driver__w25qxx_8c.html#ae578001fe043b4cca7a0edd801cfe9c4">driver_w25qxx.c</a>
-</li>
-<li>DRIVER_W25QXX_LINK_DEBUG_PRINT
-: <a class="el" href="group__w25qxx__link__driver.html#gab8d49ef9dca942fe5f37c30dcd7e22a6">driver_w25qxx.h</a>
-</li>
-<li>DRIVER_W25QXX_LINK_DELAY_MS
-: <a class="el" href="group__w25qxx__link__driver.html#ga7555618f13d2de0003ae6d9483085180">driver_w25qxx.h</a>
-</li>
-<li>DRIVER_W25QXX_LINK_DELAY_US
-: <a class="el" href="group__w25qxx__link__driver.html#gafc81bf850c80dfa316f0c6ab40be6e67">driver_w25qxx.h</a>
-</li>
-<li>DRIVER_W25QXX_LINK_INIT
-: <a class="el" href="group__w25qxx__link__driver.html#ga995378489f95bc6bbddbe710557e3384">driver_w25qxx.h</a>
-</li>
-<li>DRIVER_W25QXX_LINK_SPI_QSPI_DEINIT
-: <a class="el" href="group__w25qxx__link__driver.html#gaec8b55e83b46907be1dd9e7c50be550d">driver_w25qxx.h</a>
-</li>
-<li>DRIVER_W25QXX_LINK_SPI_QSPI_INIT
-: <a class="el" href="group__w25qxx__link__driver.html#gab2587de93f1dba5664eede8cd787a88a">driver_w25qxx.h</a>
-</li>
-<li>DRIVER_W25QXX_LINK_SPI_QSPI_WRITE_READ
-: <a class="el" href="group__w25qxx__link__driver.html#gac8f0ca0a725790bace3241d1d616e3d1">driver_w25qxx.h</a>
-</li>
+<h3><a id="index_d" name="index_d"></a>- d -</h3><ul>
+<li>DRIVER_VERSION&#160;:&#160;<a class="el" href="driver__w25qxx_8c.html#ae578001fe043b4cca7a0edd801cfe9c4">driver_w25qxx.c</a></li>
+<li>DRIVER_W25QXX_LINK_DEBUG_PRINT&#160;:&#160;<a class="el" href="group__w25qxx__link__driver.html#gab8d49ef9dca942fe5f37c30dcd7e22a6">driver_w25qxx.h</a></li>
+<li>DRIVER_W25QXX_LINK_DELAY_MS&#160;:&#160;<a class="el" href="group__w25qxx__link__driver.html#ga7555618f13d2de0003ae6d9483085180">driver_w25qxx.h</a></li>
+<li>DRIVER_W25QXX_LINK_DELAY_US&#160;:&#160;<a class="el" href="group__w25qxx__link__driver.html#gafc81bf850c80dfa316f0c6ab40be6e67">driver_w25qxx.h</a></li>
+<li>DRIVER_W25QXX_LINK_INIT&#160;:&#160;<a class="el" href="group__w25qxx__link__driver.html#ga995378489f95bc6bbddbe710557e3384">driver_w25qxx.h</a></li>
+<li>DRIVER_W25QXX_LINK_SPI_QSPI_DEINIT&#160;:&#160;<a class="el" href="group__w25qxx__link__driver.html#gaec8b55e83b46907be1dd9e7c50be550d">driver_w25qxx.h</a></li>
+<li>DRIVER_W25QXX_LINK_SPI_QSPI_INIT&#160;:&#160;<a class="el" href="group__w25qxx__link__driver.html#gab2587de93f1dba5664eede8cd787a88a">driver_w25qxx.h</a></li>
+<li>DRIVER_W25QXX_LINK_SPI_QSPI_WRITE_READ&#160;:&#160;<a class="el" href="group__w25qxx__link__driver.html#gac8f0ca0a725790bace3241d1d616e3d1">driver_w25qxx.h</a></li>
 </ul>
 
 
-<h3><a id="index_m"></a>- m -</h3><ul>
-<li>MANUFACTURER_NAME
-: <a class="el" href="driver__w25qxx_8c.html#aaa2b8f5b105c3019df0cb346f472e803">driver_w25qxx.c</a>
-</li>
-<li>MAX_CURRENT
-: <a class="el" href="driver__w25qxx_8c.html#a2989837a37d6d63b59c6dd541b785435">driver_w25qxx.c</a>
-</li>
+<h3><a id="index_m" name="index_m"></a>- m -</h3><ul>
+<li>MANUFACTURER_NAME&#160;:&#160;<a class="el" href="driver__w25qxx_8c.html#aaa2b8f5b105c3019df0cb346f472e803">driver_w25qxx.c</a></li>
+<li>MAX_CURRENT&#160;:&#160;<a class="el" href="driver__w25qxx_8c.html#a2989837a37d6d63b59c6dd541b785435">driver_w25qxx.c</a></li>
 </ul>
 
 
-<h3><a id="index_s"></a>- s -</h3><ul>
-<li>SUPPLY_VOLTAGE_MAX
-: <a class="el" href="driver__w25qxx_8c.html#a68eba8b601afe11f1b871d944976c035">driver_w25qxx.c</a>
-</li>
-<li>SUPPLY_VOLTAGE_MIN
-: <a class="el" href="driver__w25qxx_8c.html#aac8d8cbd899667d609787ef4cf37054d">driver_w25qxx.c</a>
-</li>
+<h3><a id="index_s" name="index_s"></a>- s -</h3><ul>
+<li>SUPPLY_VOLTAGE_MAX&#160;:&#160;<a class="el" href="driver__w25qxx_8c.html#a68eba8b601afe11f1b871d944976c035">driver_w25qxx.c</a></li>
+<li>SUPPLY_VOLTAGE_MIN&#160;:&#160;<a class="el" href="driver__w25qxx_8c.html#aac8d8cbd899667d609787ef4cf37054d">driver_w25qxx.c</a></li>
 </ul>
 
 
-<h3><a id="index_t"></a>- t -</h3><ul>
-<li>TEMPERATURE_MAX
-: <a class="el" href="driver__w25qxx_8c.html#a90c0b20d54005712fcc8cb01281360e9">driver_w25qxx.c</a>
-</li>
-<li>TEMPERATURE_MIN
-: <a class="el" href="driver__w25qxx_8c.html#aab353db5bf4eb787f86a2080f609a551">driver_w25qxx.c</a>
-</li>
+<h3><a id="index_t" name="index_t"></a>- t -</h3><ul>
+<li>TEMPERATURE_MAX&#160;:&#160;<a class="el" href="driver__w25qxx_8c.html#a90c0b20d54005712fcc8cb01281360e9">driver_w25qxx.c</a></li>
+<li>TEMPERATURE_MIN&#160;:&#160;<a class="el" href="driver__w25qxx_8c.html#aab353db5bf4eb787f86a2080f609a551">driver_w25qxx.c</a></li>
 </ul>
 
 
-<h3><a id="index_w"></a>- w -</h3><ul>
-<li>W25QXX_COMMAND_BLOCK_ERASE_32K
-: <a class="el" href="driver__w25qxx_8c.html#a8bfb4e869985f5fa21ea7d1d262f90ad">driver_w25qxx.c</a>
-</li>
-<li>W25QXX_COMMAND_BLOCK_ERASE_64K
-: <a class="el" href="driver__w25qxx_8c.html#a4c5a1ed46f4d662a61bc06573ab548a0">driver_w25qxx.c</a>
-</li>
-<li>W25QXX_COMMAND_CHIP_ERASE
-: <a class="el" href="driver__w25qxx_8c.html#a63ec9ecd709fcb69107756f253616a6e">driver_w25qxx.c</a>
-</li>
-<li>W25QXX_COMMAND_DEVICE_ID_DUAL_IO
-: <a class="el" href="driver__w25qxx_8c.html#a374c09f79cc61a3e7ac374bca5122e25">driver_w25qxx.c</a>
-</li>
-<li>W25QXX_COMMAND_DEVICE_ID_QUAD_IO
-: <a class="el" href="driver__w25qxx_8c.html#a7573bc250d850078be3221c29521bc5c">driver_w25qxx.c</a>
-</li>
-<li>W25QXX_COMMAND_ENABLE_RESET
-: <a class="el" href="driver__w25qxx_8c.html#a6dae3a832abc19d1861fafb32f231d94">driver_w25qxx.c</a>
-</li>
-<li>W25QXX_COMMAND_ENTER_QSPI_MODE
-: <a class="el" href="driver__w25qxx_8c.html#a052d5373086b473bf0d450ea1bd73828">driver_w25qxx.c</a>
-</li>
-<li>W25QXX_COMMAND_ERASE_PROGRAM_RESUME
-: <a class="el" href="driver__w25qxx_8c.html#a0daeb46fb8b219a3d6b37d426c5c0e95">driver_w25qxx.c</a>
-</li>
-<li>W25QXX_COMMAND_ERASE_PROGRAM_SUSPEND
-: <a class="el" href="driver__w25qxx_8c.html#a43f9a1e3c03d4a7d2a991e81f0e89f51">driver_w25qxx.c</a>
-</li>
-<li>W25QXX_COMMAND_ERASE_SECURITY_REGISTER
-: <a class="el" href="driver__w25qxx_8c.html#a842f8d646fc8f8ed72422fc1d789498c">driver_w25qxx.c</a>
-</li>
-<li>W25QXX_COMMAND_FAST_READ
-: <a class="el" href="driver__w25qxx_8c.html#ac957b31a68db8c14f88a196a98b0aa18">driver_w25qxx.c</a>
-</li>
-<li>W25QXX_COMMAND_FAST_READ_DUAL_IO
-: <a class="el" href="driver__w25qxx_8c.html#a2232ada3558228c2902d654989ca65f1">driver_w25qxx.c</a>
-</li>
-<li>W25QXX_COMMAND_FAST_READ_DUAL_OUTPUT
-: <a class="el" href="driver__w25qxx_8c.html#a8d49efa8b978ae8fd3eb18d0e5ae73e8">driver_w25qxx.c</a>
-</li>
-<li>W25QXX_COMMAND_FAST_READ_QUAD_IO
-: <a class="el" href="driver__w25qxx_8c.html#a80d19998d9d1218d0fa69e7d4d6b0ecb">driver_w25qxx.c</a>
-</li>
-<li>W25QXX_COMMAND_FAST_READ_QUAD_OUTPUT
-: <a class="el" href="driver__w25qxx_8c.html#a54ddb3d948c4bb95cc62199676c817b2">driver_w25qxx.c</a>
-</li>
-<li>W25QXX_COMMAND_GLOBAL_BLOCK_SECTOR_LOCK
-: <a class="el" href="driver__w25qxx_8c.html#af81bc9ddfc8da8eb911435e835536ffb">driver_w25qxx.c</a>
-</li>
-<li>W25QXX_COMMAND_GLOBAL_BLOCK_SECTOR_UNLOCK
-: <a class="el" href="driver__w25qxx_8c.html#ab96d2ad8602a5a50c988b8c09d4bbbc5">driver_w25qxx.c</a>
-</li>
-<li>W25QXX_COMMAND_INDIVIDUAL_BLOCK_LOCK
-: <a class="el" href="driver__w25qxx_8c.html#a328f6a9635b1ec6868410375de90b0df">driver_w25qxx.c</a>
-</li>
-<li>W25QXX_COMMAND_INDIVIDUAL_BLOCK_UNLOCK
-: <a class="el" href="driver__w25qxx_8c.html#a3cc8b61583b5eb9d7c1ecd6831689718">driver_w25qxx.c</a>
-</li>
-<li>W25QXX_COMMAND_JEDEC_ID
-: <a class="el" href="driver__w25qxx_8c.html#a54f3ece548cd5eadc94642235442315a">driver_w25qxx.c</a>
-</li>
-<li>W25QXX_COMMAND_OCTAL_WORD_READ_QUAD_IO
-: <a class="el" href="driver__w25qxx_8c.html#acb7f8599b26c29356651690ec9b25e66">driver_w25qxx.c</a>
-</li>
-<li>W25QXX_COMMAND_PAGE_PROGRAM
-: <a class="el" href="driver__w25qxx_8c.html#aebca01f1f7fd279523d29e579998574a">driver_w25qxx.c</a>
-</li>
-<li>W25QXX_COMMAND_POWER_DOWN
-: <a class="el" href="driver__w25qxx_8c.html#a6fe4d603e33b7c8b8310a884e02a130b">driver_w25qxx.c</a>
-</li>
-<li>W25QXX_COMMAND_PROGRAM_SECURITY_REGISTER
-: <a class="el" href="driver__w25qxx_8c.html#a915ab53f5f2d1cad6b954205e76cb4d5">driver_w25qxx.c</a>
-</li>
-<li>W25QXX_COMMAND_QUAD_PAGE_PROGRAM
-: <a class="el" href="driver__w25qxx_8c.html#a8212fac3d1e43024621b6b560a8dddfe">driver_w25qxx.c</a>
-</li>
-<li>W25QXX_COMMAND_READ_BLOCK_LOCK
-: <a class="el" href="driver__w25qxx_8c.html#a19e055bec30de0ad30e7f8ab5feea6a8">driver_w25qxx.c</a>
-</li>
-<li>W25QXX_COMMAND_READ_DATA
-: <a class="el" href="driver__w25qxx_8c.html#a23fcd6d9b067580d534d626c43b7cff3">driver_w25qxx.c</a>
-</li>
-<li>W25QXX_COMMAND_READ_MANUFACTURER
-: <a class="el" href="driver__w25qxx_8c.html#af6d9a5bc0b57b041e22af80b85e53f56">driver_w25qxx.c</a>
-</li>
-<li>W25QXX_COMMAND_READ_SECURITY_REGISTER
-: <a class="el" href="driver__w25qxx_8c.html#a4dc5fb2c3c15ef86df56b534b874a919">driver_w25qxx.c</a>
-</li>
-<li>W25QXX_COMMAND_READ_SFDP_REGISTER
-: <a class="el" href="driver__w25qxx_8c.html#a63774c5ebbdf5445466d840fad567bf6">driver_w25qxx.c</a>
-</li>
-<li>W25QXX_COMMAND_READ_STATUS_REG1
-: <a class="el" href="driver__w25qxx_8c.html#adf682969c34f4b31a87dd92dd18ccea3">driver_w25qxx.c</a>
-</li>
-<li>W25QXX_COMMAND_READ_STATUS_REG2
-: <a class="el" href="driver__w25qxx_8c.html#a4a8cdc5b6ce75029df877263bdf35f2a">driver_w25qxx.c</a>
-</li>
-<li>W25QXX_COMMAND_READ_STATUS_REG3
-: <a class="el" href="driver__w25qxx_8c.html#a09798bdb3fabdf7bb4cfd8bce18100ce">driver_w25qxx.c</a>
-</li>
-<li>W25QXX_COMMAND_READ_UNIQUE_ID
-: <a class="el" href="driver__w25qxx_8c.html#a6aeed0a651b31064f25ab2f57fdacf2f">driver_w25qxx.c</a>
-</li>
-<li>W25QXX_COMMAND_RELEASE_POWER_DOWN
-: <a class="el" href="driver__w25qxx_8c.html#ad344065461b2c71521017984f040b425">driver_w25qxx.c</a>
-</li>
-<li>W25QXX_COMMAND_RESET_DEVICE
-: <a class="el" href="driver__w25qxx_8c.html#ab25182298c921c8f7f42216e0d5aa56b">driver_w25qxx.c</a>
-</li>
-<li>W25QXX_COMMAND_SECTOR_ERASE_4K
-: <a class="el" href="driver__w25qxx_8c.html#a6e7cd159f91e23930450725fd6910f9c">driver_w25qxx.c</a>
-</li>
-<li>W25QXX_COMMAND_SET_BURST_WITH_WRAP
-: <a class="el" href="driver__w25qxx_8c.html#acfb19490258b26729fa83fdd60c4d822">driver_w25qxx.c</a>
-</li>
-<li>W25QXX_COMMAND_VOLATILE_SR_WRITE_ENABLE
-: <a class="el" href="driver__w25qxx_8c.html#a7c9e980e30f499dd97b02935c91f2c02">driver_w25qxx.c</a>
-</li>
-<li>W25QXX_COMMAND_WORD_READ_QUAD_IO
-: <a class="el" href="driver__w25qxx_8c.html#a947382a74ac06eb8a2ff8f5bcb1b744d">driver_w25qxx.c</a>
-</li>
-<li>W25QXX_COMMAND_WRITE_DISABLE
-: <a class="el" href="driver__w25qxx_8c.html#a36dfb1951fe152d63e3715a161646713">driver_w25qxx.c</a>
-</li>
-<li>W25QXX_COMMAND_WRITE_ENABLE
-: <a class="el" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">driver_w25qxx.c</a>
-</li>
-<li>W25QXX_COMMAND_WRITE_STATUS_REG1
-: <a class="el" href="driver__w25qxx_8c.html#a932f54ff92de8bbab4602ab85ac6c155">driver_w25qxx.c</a>
-</li>
-<li>W25QXX_COMMAND_WRITE_STATUS_REG2
-: <a class="el" href="driver__w25qxx_8c.html#a4be10ed873d56bb183d9b1bde9105135">driver_w25qxx.c</a>
-</li>
-<li>W25QXX_COMMAND_WRITE_STATUS_REG3
-: <a class="el" href="driver__w25qxx_8c.html#a6d099dc6afb59cc950d3abe96b840158">driver_w25qxx.c</a>
-</li>
-<li>W25QXX_ENABLE_ERASE_READ_TEST
-: <a class="el" href="group__w25qxx__test__driver.html#ga8be86baae6f8448171125c70da1fbfa0">driver_w25qxx_read_test.h</a>
-</li>
+<h3><a id="index_w" name="index_w"></a>- w -</h3><ul>
+<li>W25QXX_COMMAND_BLOCK_ERASE_32K&#160;:&#160;<a class="el" href="driver__w25qxx_8c.html#a8bfb4e869985f5fa21ea7d1d262f90ad">driver_w25qxx.c</a></li>
+<li>W25QXX_COMMAND_BLOCK_ERASE_64K&#160;:&#160;<a class="el" href="driver__w25qxx_8c.html#a4c5a1ed46f4d662a61bc06573ab548a0">driver_w25qxx.c</a></li>
+<li>W25QXX_COMMAND_CHIP_ERASE&#160;:&#160;<a class="el" href="driver__w25qxx_8c.html#a63ec9ecd709fcb69107756f253616a6e">driver_w25qxx.c</a></li>
+<li>W25QXX_COMMAND_DEVICE_ID_DUAL_IO&#160;:&#160;<a class="el" href="driver__w25qxx_8c.html#a374c09f79cc61a3e7ac374bca5122e25">driver_w25qxx.c</a></li>
+<li>W25QXX_COMMAND_DEVICE_ID_QUAD_IO&#160;:&#160;<a class="el" href="driver__w25qxx_8c.html#a7573bc250d850078be3221c29521bc5c">driver_w25qxx.c</a></li>
+<li>W25QXX_COMMAND_ENABLE_RESET&#160;:&#160;<a class="el" href="driver__w25qxx_8c.html#a6dae3a832abc19d1861fafb32f231d94">driver_w25qxx.c</a></li>
+<li>W25QXX_COMMAND_ENTER_QSPI_MODE&#160;:&#160;<a class="el" href="driver__w25qxx_8c.html#a052d5373086b473bf0d450ea1bd73828">driver_w25qxx.c</a></li>
+<li>W25QXX_COMMAND_ERASE_PROGRAM_RESUME&#160;:&#160;<a class="el" href="driver__w25qxx_8c.html#a0daeb46fb8b219a3d6b37d426c5c0e95">driver_w25qxx.c</a></li>
+<li>W25QXX_COMMAND_ERASE_PROGRAM_SUSPEND&#160;:&#160;<a class="el" href="driver__w25qxx_8c.html#a43f9a1e3c03d4a7d2a991e81f0e89f51">driver_w25qxx.c</a></li>
+<li>W25QXX_COMMAND_ERASE_SECURITY_REGISTER&#160;:&#160;<a class="el" href="driver__w25qxx_8c.html#a842f8d646fc8f8ed72422fc1d789498c">driver_w25qxx.c</a></li>
+<li>W25QXX_COMMAND_FAST_READ&#160;:&#160;<a class="el" href="driver__w25qxx_8c.html#ac957b31a68db8c14f88a196a98b0aa18">driver_w25qxx.c</a></li>
+<li>W25QXX_COMMAND_FAST_READ_DUAL_IO&#160;:&#160;<a class="el" href="driver__w25qxx_8c.html#a2232ada3558228c2902d654989ca65f1">driver_w25qxx.c</a></li>
+<li>W25QXX_COMMAND_FAST_READ_DUAL_OUTPUT&#160;:&#160;<a class="el" href="driver__w25qxx_8c.html#a8d49efa8b978ae8fd3eb18d0e5ae73e8">driver_w25qxx.c</a></li>
+<li>W25QXX_COMMAND_FAST_READ_QUAD_IO&#160;:&#160;<a class="el" href="driver__w25qxx_8c.html#a80d19998d9d1218d0fa69e7d4d6b0ecb">driver_w25qxx.c</a></li>
+<li>W25QXX_COMMAND_FAST_READ_QUAD_OUTPUT&#160;:&#160;<a class="el" href="driver__w25qxx_8c.html#a54ddb3d948c4bb95cc62199676c817b2">driver_w25qxx.c</a></li>
+<li>W25QXX_COMMAND_GLOBAL_BLOCK_SECTOR_LOCK&#160;:&#160;<a class="el" href="driver__w25qxx_8c.html#af81bc9ddfc8da8eb911435e835536ffb">driver_w25qxx.c</a></li>
+<li>W25QXX_COMMAND_GLOBAL_BLOCK_SECTOR_UNLOCK&#160;:&#160;<a class="el" href="driver__w25qxx_8c.html#ab96d2ad8602a5a50c988b8c09d4bbbc5">driver_w25qxx.c</a></li>
+<li>W25QXX_COMMAND_INDIVIDUAL_BLOCK_LOCK&#160;:&#160;<a class="el" href="driver__w25qxx_8c.html#a328f6a9635b1ec6868410375de90b0df">driver_w25qxx.c</a></li>
+<li>W25QXX_COMMAND_INDIVIDUAL_BLOCK_UNLOCK&#160;:&#160;<a class="el" href="driver__w25qxx_8c.html#a3cc8b61583b5eb9d7c1ecd6831689718">driver_w25qxx.c</a></li>
+<li>W25QXX_COMMAND_JEDEC_ID&#160;:&#160;<a class="el" href="driver__w25qxx_8c.html#a54f3ece548cd5eadc94642235442315a">driver_w25qxx.c</a></li>
+<li>W25QXX_COMMAND_OCTAL_WORD_READ_QUAD_IO&#160;:&#160;<a class="el" href="driver__w25qxx_8c.html#acb7f8599b26c29356651690ec9b25e66">driver_w25qxx.c</a></li>
+<li>W25QXX_COMMAND_PAGE_PROGRAM&#160;:&#160;<a class="el" href="driver__w25qxx_8c.html#aebca01f1f7fd279523d29e579998574a">driver_w25qxx.c</a></li>
+<li>W25QXX_COMMAND_POWER_DOWN&#160;:&#160;<a class="el" href="driver__w25qxx_8c.html#a6fe4d603e33b7c8b8310a884e02a130b">driver_w25qxx.c</a></li>
+<li>W25QXX_COMMAND_PROGRAM_SECURITY_REGISTER&#160;:&#160;<a class="el" href="driver__w25qxx_8c.html#a915ab53f5f2d1cad6b954205e76cb4d5">driver_w25qxx.c</a></li>
+<li>W25QXX_COMMAND_QUAD_PAGE_PROGRAM&#160;:&#160;<a class="el" href="driver__w25qxx_8c.html#a8212fac3d1e43024621b6b560a8dddfe">driver_w25qxx.c</a></li>
+<li>W25QXX_COMMAND_READ_BLOCK_LOCK&#160;:&#160;<a class="el" href="driver__w25qxx_8c.html#a19e055bec30de0ad30e7f8ab5feea6a8">driver_w25qxx.c</a></li>
+<li>W25QXX_COMMAND_READ_DATA&#160;:&#160;<a class="el" href="driver__w25qxx_8c.html#a23fcd6d9b067580d534d626c43b7cff3">driver_w25qxx.c</a></li>
+<li>W25QXX_COMMAND_READ_MANUFACTURER&#160;:&#160;<a class="el" href="driver__w25qxx_8c.html#af6d9a5bc0b57b041e22af80b85e53f56">driver_w25qxx.c</a></li>
+<li>W25QXX_COMMAND_READ_SECURITY_REGISTER&#160;:&#160;<a class="el" href="driver__w25qxx_8c.html#a4dc5fb2c3c15ef86df56b534b874a919">driver_w25qxx.c</a></li>
+<li>W25QXX_COMMAND_READ_SFDP_REGISTER&#160;:&#160;<a class="el" href="driver__w25qxx_8c.html#a63774c5ebbdf5445466d840fad567bf6">driver_w25qxx.c</a></li>
+<li>W25QXX_COMMAND_READ_STATUS_REG1&#160;:&#160;<a class="el" href="driver__w25qxx_8c.html#adf682969c34f4b31a87dd92dd18ccea3">driver_w25qxx.c</a></li>
+<li>W25QXX_COMMAND_READ_STATUS_REG2&#160;:&#160;<a class="el" href="driver__w25qxx_8c.html#a4a8cdc5b6ce75029df877263bdf35f2a">driver_w25qxx.c</a></li>
+<li>W25QXX_COMMAND_READ_STATUS_REG3&#160;:&#160;<a class="el" href="driver__w25qxx_8c.html#a09798bdb3fabdf7bb4cfd8bce18100ce">driver_w25qxx.c</a></li>
+<li>W25QXX_COMMAND_READ_UNIQUE_ID&#160;:&#160;<a class="el" href="driver__w25qxx_8c.html#a6aeed0a651b31064f25ab2f57fdacf2f">driver_w25qxx.c</a></li>
+<li>W25QXX_COMMAND_RELEASE_POWER_DOWN&#160;:&#160;<a class="el" href="driver__w25qxx_8c.html#ad344065461b2c71521017984f040b425">driver_w25qxx.c</a></li>
+<li>W25QXX_COMMAND_RESET_DEVICE&#160;:&#160;<a class="el" href="driver__w25qxx_8c.html#ab25182298c921c8f7f42216e0d5aa56b">driver_w25qxx.c</a></li>
+<li>W25QXX_COMMAND_SECTOR_ERASE_4K&#160;:&#160;<a class="el" href="driver__w25qxx_8c.html#a6e7cd159f91e23930450725fd6910f9c">driver_w25qxx.c</a></li>
+<li>W25QXX_COMMAND_SET_BURST_WITH_WRAP&#160;:&#160;<a class="el" href="driver__w25qxx_8c.html#acfb19490258b26729fa83fdd60c4d822">driver_w25qxx.c</a></li>
+<li>W25QXX_COMMAND_VOLATILE_SR_WRITE_ENABLE&#160;:&#160;<a class="el" href="driver__w25qxx_8c.html#a7c9e980e30f499dd97b02935c91f2c02">driver_w25qxx.c</a></li>
+<li>W25QXX_COMMAND_WORD_READ_QUAD_IO&#160;:&#160;<a class="el" href="driver__w25qxx_8c.html#a947382a74ac06eb8a2ff8f5bcb1b744d">driver_w25qxx.c</a></li>
+<li>W25QXX_COMMAND_WRITE_DISABLE&#160;:&#160;<a class="el" href="driver__w25qxx_8c.html#a36dfb1951fe152d63e3715a161646713">driver_w25qxx.c</a></li>
+<li>W25QXX_COMMAND_WRITE_ENABLE&#160;:&#160;<a class="el" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">driver_w25qxx.c</a></li>
+<li>W25QXX_COMMAND_WRITE_STATUS_REG1&#160;:&#160;<a class="el" href="driver__w25qxx_8c.html#a932f54ff92de8bbab4602ab85ac6c155">driver_w25qxx.c</a></li>
+<li>W25QXX_COMMAND_WRITE_STATUS_REG2&#160;:&#160;<a class="el" href="driver__w25qxx_8c.html#a4be10ed873d56bb183d9b1bde9105135">driver_w25qxx.c</a></li>
+<li>W25QXX_COMMAND_WRITE_STATUS_REG3&#160;:&#160;<a class="el" href="driver__w25qxx_8c.html#a6d099dc6afb59cc950d3abe96b840158">driver_w25qxx.c</a></li>
+<li>W25QXX_ENABLE_ERASE_READ_TEST&#160;:&#160;<a class="el" href="group__w25qxx__test__driver.html#ga8be86baae6f8448171125c70da1fbfa0">driver_w25qxx_read_test.h</a></li>
 </ul>
 </div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
-    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
+    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/globals_enum.html b/doc/html/globals_enum.html
index 02cd4a7..1f3de2e 100644
--- a/doc/html/globals_enum.html
+++ b/doc/html/globals_enum.html
@@ -1,9 +1,9 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.8"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>LibDriver W25QXX: Globals</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -23,11 +23,10 @@
 <div id="titlearea">
 <table cellspacing="0" cellpadding="0">
  <tbody>
- <tr style="height: 56px;">
+ <tr id="projectrow">
   <td id="projectlogo"><img alt="Logo" src="doxygen.png"/></td>
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">LibDriver W25QXX
-   &#160;<span id="projectnumber">1.0.0</span>
+  <td id="projectalign">
+   <div id="projectname">LibDriver W25QXX<span id="projectnumber">&#160;1.0.0</span>
    </div>
    <div id="projectbrief">W25QXX full function driver</div>
   </td>
@@ -36,21 +35,22 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.8 -->
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search/",'.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
 <script type="text/javascript" src="menu.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(function() {
   initMenu('',true,false,'search.php','Search');
   $(document).ready(function() { init_search(); });
 });
-/* @license-end */</script>
+/* @license-end */
+</script>
 <div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
@@ -64,7 +64,7 @@
   </div>
 </div>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(document).ready(function(){initNavTree('globals_enum.html',''); initResizable(); });
 /* @license-end */
 </script>
@@ -78,53 +78,38 @@
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
 </div>
 
 <div class="contents">
-&#160;<ul>
-<li>w25qxx_address_mode_t
-: <a class="el" href="group__w25qxx__basic__driver.html#gaa4c45f146d1ade8a2da8e751818fa4a2">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_bool_t
-: <a class="el" href="group__w25qxx__basic__driver.html#gafb2690946f5baf4be6f3a63dde5491fb">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_burst_wrap_t
-: <a class="el" href="group__w25qxx__advance__driver.html#ga94bbae2bf8906903e8dc2a28c490723d">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_interface_t
-: <a class="el" href="group__w25qxx__basic__driver.html#gacbf327a42336baf10713a1796ff4f2fe">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_qspi_read_dummy_t
-: <a class="el" href="group__w25qxx__advance__driver.html#ga6ff284154302248f00db269146545443">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_qspi_read_wrap_length_t
-: <a class="el" href="group__w25qxx__advance__driver.html#ga2fd3023819e1aebe089a4a72eb136da3">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_security_register_t
-: <a class="el" href="group__w25qxx__advance__driver.html#ga81ddc7d4b9f4f124163beea19cc33c7e">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_status1_t
-: <a class="el" href="group__w25qxx__advance__driver.html#ga9e41a72d1e25d39d88ce7108a9b25595">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_status2_t
-: <a class="el" href="group__w25qxx__advance__driver.html#ga0d28076f6fc7d3ae9dd7f8410069a277">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_status3_t
-: <a class="el" href="group__w25qxx__advance__driver.html#gace18ebb2eac49cbde44a2935916f44ac">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_type_t
-: <a class="el" href="group__w25qxx__basic__driver.html#ga6cb4e5164464df549201dd96cb7a58b1">driver_w25qxx.h</a>
-</li>
+<div class="textblock">Here is a list of all enums with links to the files they belong to:</div><ul>
+<li>w25qxx_address_mode_t&#160;:&#160;<a class="el" href="group__w25qxx__basic__driver.html#gaa4c45f146d1ade8a2da8e751818fa4a2">driver_w25qxx.h</a></li>
+<li>w25qxx_bool_t&#160;:&#160;<a class="el" href="group__w25qxx__basic__driver.html#gafb2690946f5baf4be6f3a63dde5491fb">driver_w25qxx.h</a></li>
+<li>w25qxx_burst_wrap_t&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#ga94bbae2bf8906903e8dc2a28c490723d">driver_w25qxx.h</a></li>
+<li>w25qxx_interface_t&#160;:&#160;<a class="el" href="group__w25qxx__basic__driver.html#gacbf327a42336baf10713a1796ff4f2fe">driver_w25qxx.h</a></li>
+<li>w25qxx_qspi_read_dummy_t&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#ga6ff284154302248f00db269146545443">driver_w25qxx.h</a></li>
+<li>w25qxx_qspi_read_wrap_length_t&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#ga2fd3023819e1aebe089a4a72eb136da3">driver_w25qxx.h</a></li>
+<li>w25qxx_security_register_t&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#ga81ddc7d4b9f4f124163beea19cc33c7e">driver_w25qxx.h</a></li>
+<li>w25qxx_status1_t&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#ga9e41a72d1e25d39d88ce7108a9b25595">driver_w25qxx.h</a></li>
+<li>w25qxx_status2_t&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#ga0d28076f6fc7d3ae9dd7f8410069a277">driver_w25qxx.h</a></li>
+<li>w25qxx_status3_t&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#gace18ebb2eac49cbde44a2935916f44ac">driver_w25qxx.h</a></li>
+<li>w25qxx_type_t&#160;:&#160;<a class="el" href="group__w25qxx__basic__driver.html#ga6cb4e5164464df549201dd96cb7a58b1">driver_w25qxx.h</a></li>
 </ul>
 </div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
-    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
+    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/globals_eval.html b/doc/html/globals_eval.html
index 609fe00..a5ef6e4 100644
--- a/doc/html/globals_eval.html
+++ b/doc/html/globals_eval.html
@@ -1,9 +1,9 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.8"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>LibDriver W25QXX: Globals</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -23,11 +23,10 @@
 <div id="titlearea">
 <table cellspacing="0" cellpadding="0">
  <tbody>
- <tr style="height: 56px;">
+ <tr id="projectrow">
   <td id="projectlogo"><img alt="Logo" src="doxygen.png"/></td>
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">LibDriver W25QXX
-   &#160;<span id="projectnumber">1.0.0</span>
+  <td id="projectalign">
+   <div id="projectname">LibDriver W25QXX<span id="projectnumber">&#160;1.0.0</span>
    </div>
    <div id="projectbrief">W25QXX full function driver</div>
   </td>
@@ -36,21 +35,22 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.8 -->
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search/",'.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
 <script type="text/javascript" src="menu.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(function() {
   initMenu('',true,false,'search.php','Search');
   $(document).ready(function() { init_search(); });
 });
-/* @license-end */</script>
+/* @license-end */
+</script>
 <div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
@@ -64,7 +64,7 @@
   </div>
 </div>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(document).ready(function(){initNavTree('globals_eval.html',''); initResizable(); });
 /* @license-end */
 </script>
@@ -78,175 +78,80 @@
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
 </div>
 
 <div class="contents">
-&#160;
+<div class="textblock">Here is a list of all enum values with links to the files they belong to:</div>
 
-<h3><a id="index_w"></a>- w -</h3><ul>
-<li>W25Q128
-: <a class="el" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a75afcbe71906d3884f4fcc119c1cabd5">driver_w25qxx.h</a>
-</li>
-<li>W25Q16
-: <a class="el" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a66acb81a2d520a7d92ce1d37210c6435">driver_w25qxx.h</a>
-</li>
-<li>W25Q256
-: <a class="el" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">driver_w25qxx.h</a>
-</li>
-<li>W25Q32
-: <a class="el" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a4fdad551be6485441db5951f196db7cb">driver_w25qxx.h</a>
-</li>
-<li>W25Q64
-: <a class="el" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a3ea98b2b3e06afa29441c51548bbb16e">driver_w25qxx.h</a>
-</li>
-<li>W25Q80
-: <a class="el" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a1ad4f72437de5f26cb7b212d4d91e7c2">driver_w25qxx.h</a>
-</li>
-<li>W25QXX_ADDRESS_MODE_3_BYTE
-: <a class="el" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">driver_w25qxx.h</a>
-</li>
-<li>W25QXX_ADDRESS_MODE_4_BYTE
-: <a class="el" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">driver_w25qxx.h</a>
-</li>
-<li>W25QXX_BOOL_FALSE
-: <a class="el" href="group__w25qxx__basic__driver.html#ggafb2690946f5baf4be6f3a63dde5491fba02afbdc2c6c3d761cd31ac39c857ee9a">driver_w25qxx.h</a>
-</li>
-<li>W25QXX_BOOL_TRUE
-: <a class="el" href="group__w25qxx__basic__driver.html#ggafb2690946f5baf4be6f3a63dde5491fbae2a935d12b0b1bc9fc321246ee0e0df8">driver_w25qxx.h</a>
-</li>
-<li>W25QXX_BURST_WRAP_16_BYTE
-: <a class="el" href="group__w25qxx__advance__driver.html#gga94bbae2bf8906903e8dc2a28c490723dafec1eb230b49fbda6ffcc1eeda64179a">driver_w25qxx.h</a>
-</li>
-<li>W25QXX_BURST_WRAP_32_BYTE
-: <a class="el" href="group__w25qxx__advance__driver.html#gga94bbae2bf8906903e8dc2a28c490723dae2ac810153f9515a145773c34409b995">driver_w25qxx.h</a>
-</li>
-<li>W25QXX_BURST_WRAP_64_BYTE
-: <a class="el" href="group__w25qxx__advance__driver.html#gga94bbae2bf8906903e8dc2a28c490723da2a3afd7924b00cf74abe83f5216c8915">driver_w25qxx.h</a>
-</li>
-<li>W25QXX_BURST_WRAP_8_BYTE
-: <a class="el" href="group__w25qxx__advance__driver.html#gga94bbae2bf8906903e8dc2a28c490723da35edf6c31d0fe1771ab79669d13b7af8">driver_w25qxx.h</a>
-</li>
-<li>W25QXX_BURST_WRAP_NONE
-: <a class="el" href="group__w25qxx__advance__driver.html#gga94bbae2bf8906903e8dc2a28c490723dae39a7ea65512a56d40aad2990d55815d">driver_w25qxx.h</a>
-</li>
-<li>W25QXX_INTERFACE_QSPI
-: <a class="el" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2fea895dcb5c91da89fad1c12161ffd2d5d4">driver_w25qxx.h</a>
-</li>
-<li>W25QXX_INTERFACE_SPI
-: <a class="el" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">driver_w25qxx.h</a>
-</li>
-<li>W25QXX_QSPI_READ_DUMMY_2_33MHZ
-: <a class="el" href="group__w25qxx__advance__driver.html#gga6ff284154302248f00db269146545443ad73634a0f4534c3ae35d4242b2bc8f13">driver_w25qxx.h</a>
-</li>
-<li>W25QXX_QSPI_READ_DUMMY_4_55MHZ
-: <a class="el" href="group__w25qxx__advance__driver.html#gga6ff284154302248f00db269146545443a6423b5606e72af6479fe31a6a9883aeb">driver_w25qxx.h</a>
-</li>
-<li>W25QXX_QSPI_READ_DUMMY_6_80MHZ
-: <a class="el" href="group__w25qxx__advance__driver.html#gga6ff284154302248f00db269146545443a78393debe12bbb3efb710e38e3c1d550">driver_w25qxx.h</a>
-</li>
-<li>W25QXX_QSPI_READ_DUMMY_8_80MHZ
-: <a class="el" href="group__w25qxx__advance__driver.html#gga6ff284154302248f00db269146545443ade1d3511f15c7d92de8c5d8967c471c3">driver_w25qxx.h</a>
-</li>
-<li>W25QXX_QSPI_READ_WRAP_LENGTH_16_BYTE
-: <a class="el" href="group__w25qxx__advance__driver.html#gga2fd3023819e1aebe089a4a72eb136da3ae6bc2fcd2d4fc3af63f22da56a3b393b">driver_w25qxx.h</a>
-</li>
-<li>W25QXX_QSPI_READ_WRAP_LENGTH_32_BYTE
-: <a class="el" href="group__w25qxx__advance__driver.html#gga2fd3023819e1aebe089a4a72eb136da3aa5f2e6b5718a85ab9241125e84181216">driver_w25qxx.h</a>
-</li>
-<li>W25QXX_QSPI_READ_WRAP_LENGTH_64_BYTE
-: <a class="el" href="group__w25qxx__advance__driver.html#gga2fd3023819e1aebe089a4a72eb136da3a736f25eeae36f6a0b62d4cb1666a689f">driver_w25qxx.h</a>
-</li>
-<li>W25QXX_QSPI_READ_WRAP_LENGTH_8_BYTE
-: <a class="el" href="group__w25qxx__advance__driver.html#gga2fd3023819e1aebe089a4a72eb136da3a5b8fa1026c564fe83f3f0f0edb89d1dd">driver_w25qxx.h</a>
-</li>
-<li>W25QXX_SECURITY_REGISTER_1
-: <a class="el" href="group__w25qxx__advance__driver.html#gga81ddc7d4b9f4f124163beea19cc33c7eaaf27484a497c13915c8acb0161cf137d">driver_w25qxx.h</a>
-</li>
-<li>W25QXX_SECURITY_REGISTER_2
-: <a class="el" href="group__w25qxx__advance__driver.html#gga81ddc7d4b9f4f124163beea19cc33c7ea3353a88090850174ca163d56e4d7089c">driver_w25qxx.h</a>
-</li>
-<li>W25QXX_SECURITY_REGISTER_3
-: <a class="el" href="group__w25qxx__advance__driver.html#gga81ddc7d4b9f4f124163beea19cc33c7ea65b73162d921075bed8cb8d848948900">driver_w25qxx.h</a>
-</li>
-<li>W25QXX_STATUS1_BLOCK_PROTECT_0
-: <a class="el" href="group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a7b7e8922009c0d6a88bbfad76a812262">driver_w25qxx.h</a>
-</li>
-<li>W25QXX_STATUS1_BLOCK_PROTECT_1
-: <a class="el" href="group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a3465f02625d38730630b60cd01e92085">driver_w25qxx.h</a>
-</li>
-<li>W25QXX_STATUS1_BLOCK_PROTECT_2
-: <a class="el" href="group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a9a02180228dbb94e9d302b667fda884f">driver_w25qxx.h</a>
-</li>
-<li>W25QXX_STATUS1_ERASE_WRITE_PROGRESS
-: <a class="el" href="group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595ae1ce566fc564776e98a5c7edefe8c5ea">driver_w25qxx.h</a>
-</li>
-<li>W25QXX_STATUS1_SECTOR_PROTECT_OR_TOP_BOTTOM_PROTECT
-: <a class="el" href="group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a9522040a098337442eff127e1598776d">driver_w25qxx.h</a>
-</li>
-<li>W25QXX_STATUS1_STATUS_REGISTER_PROTECT_0
-: <a class="el" href="group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a00d1d224963ec1f38ac97802480b2129">driver_w25qxx.h</a>
-</li>
-<li>W25QXX_STATUS1_TOP_BOTTOM_PROTECT_OR_BLOCK_PROTECT_3
-: <a class="el" href="group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a63bc45b7e0e19de7e58e3494eb4046c5">driver_w25qxx.h</a>
-</li>
-<li>W25QXX_STATUS1_WRITE_ENABLE_LATCH
-: <a class="el" href="group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a1438a76d1be1aa02e4f7450a045c02e3">driver_w25qxx.h</a>
-</li>
-<li>W25QXX_STATUS2_COMPLEMENT_PROTECT
-: <a class="el" href="group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277a517e9e50ada30462f902d01e8d5579dc">driver_w25qxx.h</a>
-</li>
-<li>W25QXX_STATUS2_QUAD_ENABLE
-: <a class="el" href="group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277aa920a9c9a590fb8740419d8d2e4230f3">driver_w25qxx.h</a>
-</li>
-<li>W25QXX_STATUS2_SECURITY_REGISTER_1_LOCK_BITS
-: <a class="el" href="group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277a7a631c1c153cc099a52883b40007079e">driver_w25qxx.h</a>
-</li>
-<li>W25QXX_STATUS2_SECURITY_REGISTER_2_LOCK_BITS
-: <a class="el" href="group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277a24a99f1a97023ae103c1bec3027bbf26">driver_w25qxx.h</a>
-</li>
-<li>W25QXX_STATUS2_SECURITY_REGISTER_3_LOCK_BITS
-: <a class="el" href="group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277a0f3e2b3059d56f974724a8284142e69a">driver_w25qxx.h</a>
-</li>
-<li>W25QXX_STATUS2_STATUS_REGISTER_PROTECT_1
-: <a class="el" href="group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277a5a89a885ba2a59eccd0445443e3bbac6">driver_w25qxx.h</a>
-</li>
-<li>W25QXX_STATUS2_SUSPEND_STATUS
-: <a class="el" href="group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277a3fdb54846709f77391e426c626a19152">driver_w25qxx.h</a>
-</li>
-<li>W25QXX_STATUS3_CURRENT_ADDRESS_MODE
-: <a class="el" href="group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44aca3c822d6eacd9747ca2173607a09591ac">driver_w25qxx.h</a>
-</li>
-<li>W25QXX_STATUS3_HOLD_RESET_FUNCTION
-: <a class="el" href="group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44aca9ab13d5388af0156c4e4de08765ec401">driver_w25qxx.h</a>
-</li>
-<li>W25QXX_STATUS3_OUTPUT_DRIVER_STRENGTH_100_PERCENTAGE
-: <a class="el" href="group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44acab5b1ce328b88d08f3d55ed776e01fedb">driver_w25qxx.h</a>
-</li>
-<li>W25QXX_STATUS3_OUTPUT_DRIVER_STRENGTH_25_PERCENTAGE
-: <a class="el" href="group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44acae645c265a6beb76a088352e2f4bfb4e1">driver_w25qxx.h</a>
-</li>
-<li>W25QXX_STATUS3_OUTPUT_DRIVER_STRENGTH_50_PERCENTAGE
-: <a class="el" href="group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44aca8abcd821f1f0d02b3d9179c7ab58d0e0">driver_w25qxx.h</a>
-</li>
-<li>W25QXX_STATUS3_OUTPUT_DRIVER_STRENGTH_75_PERCENTAGE
-: <a class="el" href="group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44aca7ab6ace72a02afc20f92f48e975b60b7">driver_w25qxx.h</a>
-</li>
-<li>W25QXX_STATUS3_POWER_UP_ADDRESS_MODE
-: <a class="el" href="group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44acadc8d5949eaea0c6ce4e17c6e746f4f65">driver_w25qxx.h</a>
-</li>
-<li>W25QXX_STATUS3_WRITE_PROTECT_SELECTION
-: <a class="el" href="group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44aca7dc507c444fb395a4956bf50d78f1ee3">driver_w25qxx.h</a>
-</li>
+<h3><a id="index_w" name="index_w"></a>- w -</h3><ul>
+<li>W25Q128&#160;:&#160;<a class="el" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a75afcbe71906d3884f4fcc119c1cabd5">driver_w25qxx.h</a></li>
+<li>W25Q16&#160;:&#160;<a class="el" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a66acb81a2d520a7d92ce1d37210c6435">driver_w25qxx.h</a></li>
+<li>W25Q256&#160;:&#160;<a class="el" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">driver_w25qxx.h</a></li>
+<li>W25Q32&#160;:&#160;<a class="el" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a4fdad551be6485441db5951f196db7cb">driver_w25qxx.h</a></li>
+<li>W25Q64&#160;:&#160;<a class="el" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a3ea98b2b3e06afa29441c51548bbb16e">driver_w25qxx.h</a></li>
+<li>W25Q80&#160;:&#160;<a class="el" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a1ad4f72437de5f26cb7b212d4d91e7c2">driver_w25qxx.h</a></li>
+<li>W25QXX_ADDRESS_MODE_3_BYTE&#160;:&#160;<a class="el" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">driver_w25qxx.h</a></li>
+<li>W25QXX_ADDRESS_MODE_4_BYTE&#160;:&#160;<a class="el" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">driver_w25qxx.h</a></li>
+<li>W25QXX_BOOL_FALSE&#160;:&#160;<a class="el" href="group__w25qxx__basic__driver.html#ggafb2690946f5baf4be6f3a63dde5491fba02afbdc2c6c3d761cd31ac39c857ee9a">driver_w25qxx.h</a></li>
+<li>W25QXX_BOOL_TRUE&#160;:&#160;<a class="el" href="group__w25qxx__basic__driver.html#ggafb2690946f5baf4be6f3a63dde5491fbae2a935d12b0b1bc9fc321246ee0e0df8">driver_w25qxx.h</a></li>
+<li>W25QXX_BURST_WRAP_16_BYTE&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#gga94bbae2bf8906903e8dc2a28c490723dafec1eb230b49fbda6ffcc1eeda64179a">driver_w25qxx.h</a></li>
+<li>W25QXX_BURST_WRAP_32_BYTE&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#gga94bbae2bf8906903e8dc2a28c490723dae2ac810153f9515a145773c34409b995">driver_w25qxx.h</a></li>
+<li>W25QXX_BURST_WRAP_64_BYTE&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#gga94bbae2bf8906903e8dc2a28c490723da2a3afd7924b00cf74abe83f5216c8915">driver_w25qxx.h</a></li>
+<li>W25QXX_BURST_WRAP_8_BYTE&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#gga94bbae2bf8906903e8dc2a28c490723da35edf6c31d0fe1771ab79669d13b7af8">driver_w25qxx.h</a></li>
+<li>W25QXX_BURST_WRAP_NONE&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#gga94bbae2bf8906903e8dc2a28c490723dae39a7ea65512a56d40aad2990d55815d">driver_w25qxx.h</a></li>
+<li>W25QXX_INTERFACE_QSPI&#160;:&#160;<a class="el" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2fea895dcb5c91da89fad1c12161ffd2d5d4">driver_w25qxx.h</a></li>
+<li>W25QXX_INTERFACE_SPI&#160;:&#160;<a class="el" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">driver_w25qxx.h</a></li>
+<li>W25QXX_QSPI_READ_DUMMY_2_33MHZ&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#gga6ff284154302248f00db269146545443ad73634a0f4534c3ae35d4242b2bc8f13">driver_w25qxx.h</a></li>
+<li>W25QXX_QSPI_READ_DUMMY_4_55MHZ&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#gga6ff284154302248f00db269146545443a6423b5606e72af6479fe31a6a9883aeb">driver_w25qxx.h</a></li>
+<li>W25QXX_QSPI_READ_DUMMY_6_80MHZ&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#gga6ff284154302248f00db269146545443a78393debe12bbb3efb710e38e3c1d550">driver_w25qxx.h</a></li>
+<li>W25QXX_QSPI_READ_DUMMY_8_80MHZ&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#gga6ff284154302248f00db269146545443ade1d3511f15c7d92de8c5d8967c471c3">driver_w25qxx.h</a></li>
+<li>W25QXX_QSPI_READ_WRAP_LENGTH_16_BYTE&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#gga2fd3023819e1aebe089a4a72eb136da3ae6bc2fcd2d4fc3af63f22da56a3b393b">driver_w25qxx.h</a></li>
+<li>W25QXX_QSPI_READ_WRAP_LENGTH_32_BYTE&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#gga2fd3023819e1aebe089a4a72eb136da3aa5f2e6b5718a85ab9241125e84181216">driver_w25qxx.h</a></li>
+<li>W25QXX_QSPI_READ_WRAP_LENGTH_64_BYTE&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#gga2fd3023819e1aebe089a4a72eb136da3a736f25eeae36f6a0b62d4cb1666a689f">driver_w25qxx.h</a></li>
+<li>W25QXX_QSPI_READ_WRAP_LENGTH_8_BYTE&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#gga2fd3023819e1aebe089a4a72eb136da3a5b8fa1026c564fe83f3f0f0edb89d1dd">driver_w25qxx.h</a></li>
+<li>W25QXX_SECURITY_REGISTER_1&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#gga81ddc7d4b9f4f124163beea19cc33c7eaaf27484a497c13915c8acb0161cf137d">driver_w25qxx.h</a></li>
+<li>W25QXX_SECURITY_REGISTER_2&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#gga81ddc7d4b9f4f124163beea19cc33c7ea3353a88090850174ca163d56e4d7089c">driver_w25qxx.h</a></li>
+<li>W25QXX_SECURITY_REGISTER_3&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#gga81ddc7d4b9f4f124163beea19cc33c7ea65b73162d921075bed8cb8d848948900">driver_w25qxx.h</a></li>
+<li>W25QXX_STATUS1_BLOCK_PROTECT_0&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a7b7e8922009c0d6a88bbfad76a812262">driver_w25qxx.h</a></li>
+<li>W25QXX_STATUS1_BLOCK_PROTECT_1&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a3465f02625d38730630b60cd01e92085">driver_w25qxx.h</a></li>
+<li>W25QXX_STATUS1_BLOCK_PROTECT_2&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a9a02180228dbb94e9d302b667fda884f">driver_w25qxx.h</a></li>
+<li>W25QXX_STATUS1_ERASE_WRITE_PROGRESS&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595ae1ce566fc564776e98a5c7edefe8c5ea">driver_w25qxx.h</a></li>
+<li>W25QXX_STATUS1_SECTOR_PROTECT_OR_TOP_BOTTOM_PROTECT&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a9522040a098337442eff127e1598776d">driver_w25qxx.h</a></li>
+<li>W25QXX_STATUS1_STATUS_REGISTER_PROTECT_0&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a00d1d224963ec1f38ac97802480b2129">driver_w25qxx.h</a></li>
+<li>W25QXX_STATUS1_TOP_BOTTOM_PROTECT_OR_BLOCK_PROTECT_3&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a63bc45b7e0e19de7e58e3494eb4046c5">driver_w25qxx.h</a></li>
+<li>W25QXX_STATUS1_WRITE_ENABLE_LATCH&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a1438a76d1be1aa02e4f7450a045c02e3">driver_w25qxx.h</a></li>
+<li>W25QXX_STATUS2_COMPLEMENT_PROTECT&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277a517e9e50ada30462f902d01e8d5579dc">driver_w25qxx.h</a></li>
+<li>W25QXX_STATUS2_QUAD_ENABLE&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277aa920a9c9a590fb8740419d8d2e4230f3">driver_w25qxx.h</a></li>
+<li>W25QXX_STATUS2_SECURITY_REGISTER_1_LOCK_BITS&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277a7a631c1c153cc099a52883b40007079e">driver_w25qxx.h</a></li>
+<li>W25QXX_STATUS2_SECURITY_REGISTER_2_LOCK_BITS&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277a24a99f1a97023ae103c1bec3027bbf26">driver_w25qxx.h</a></li>
+<li>W25QXX_STATUS2_SECURITY_REGISTER_3_LOCK_BITS&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277a0f3e2b3059d56f974724a8284142e69a">driver_w25qxx.h</a></li>
+<li>W25QXX_STATUS2_STATUS_REGISTER_PROTECT_1&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277a5a89a885ba2a59eccd0445443e3bbac6">driver_w25qxx.h</a></li>
+<li>W25QXX_STATUS2_SUSPEND_STATUS&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277a3fdb54846709f77391e426c626a19152">driver_w25qxx.h</a></li>
+<li>W25QXX_STATUS3_CURRENT_ADDRESS_MODE&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44aca3c822d6eacd9747ca2173607a09591ac">driver_w25qxx.h</a></li>
+<li>W25QXX_STATUS3_HOLD_RESET_FUNCTION&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44aca9ab13d5388af0156c4e4de08765ec401">driver_w25qxx.h</a></li>
+<li>W25QXX_STATUS3_OUTPUT_DRIVER_STRENGTH_100_PERCENTAGE&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44acab5b1ce328b88d08f3d55ed776e01fedb">driver_w25qxx.h</a></li>
+<li>W25QXX_STATUS3_OUTPUT_DRIVER_STRENGTH_25_PERCENTAGE&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44acae645c265a6beb76a088352e2f4bfb4e1">driver_w25qxx.h</a></li>
+<li>W25QXX_STATUS3_OUTPUT_DRIVER_STRENGTH_50_PERCENTAGE&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44aca8abcd821f1f0d02b3d9179c7ab58d0e0">driver_w25qxx.h</a></li>
+<li>W25QXX_STATUS3_OUTPUT_DRIVER_STRENGTH_75_PERCENTAGE&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44aca7ab6ace72a02afc20f92f48e975b60b7">driver_w25qxx.h</a></li>
+<li>W25QXX_STATUS3_POWER_UP_ADDRESS_MODE&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44acadc8d5949eaea0c6ce4e17c6e746f4f65">driver_w25qxx.h</a></li>
+<li>W25QXX_STATUS3_WRITE_PROTECT_SELECTION&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44aca7dc507c444fb395a4956bf50d78f1ee3">driver_w25qxx.h</a></li>
 </ul>
 </div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
-    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
+    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/globals_func.html b/doc/html/globals_func.html
index addfc24..2554a57 100644
--- a/doc/html/globals_func.html
+++ b/doc/html/globals_func.html
@@ -1,9 +1,9 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.8"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>LibDriver W25QXX: Globals</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -23,11 +23,10 @@
 <div id="titlearea">
 <table cellspacing="0" cellpadding="0">
  <tbody>
- <tr style="height: 56px;">
+ <tr id="projectrow">
   <td id="projectlogo"><img alt="Logo" src="doxygen.png"/></td>
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">LibDriver W25QXX
-   &#160;<span id="projectnumber">1.0.0</span>
+  <td id="projectalign">
+   <div id="projectname">LibDriver W25QXX<span id="projectnumber">&#160;1.0.0</span>
    </div>
    <div id="projectbrief">W25QXX full function driver</div>
   </td>
@@ -36,21 +35,22 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.8 -->
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search/",'.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
 <script type="text/javascript" src="menu.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(function() {
   initMenu('',true,false,'search.php','Search');
   $(document).ready(function() { init_search(); });
 });
-/* @license-end */</script>
+/* @license-end */
+</script>
 <div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
@@ -64,7 +64,7 @@
   </div>
 </div>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(document).ready(function(){initNavTree('globals_func.html',''); initResizable(); });
 /* @license-end */
 </script>
@@ -78,498 +78,148 @@
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
 </div>
 
 <div class="contents">
-&#160;
+<div class="textblock">Here is a list of all functions with links to the files they belong to:</div>
 
-<h3><a id="index_w"></a>- w -</h3><ul>
-<li>w25qxx_advance_block_erase_32k()
-: <a class="el" href="group__w25qxx__example__driver.html#gaee04edb9e97785e423dffe14a1cad780">driver_w25qxx_advance.c</a>
-, <a class="el" href="group__w25qxx__example__driver.html#gaee04edb9e97785e423dffe14a1cad780">driver_w25qxx_advance.h</a>
-</li>
-<li>w25qxx_advance_block_erase_64k()
-: <a class="el" href="group__w25qxx__example__driver.html#gae7cba4e0b22a1043fe304e46148fa13c">driver_w25qxx_advance.c</a>
-, <a class="el" href="group__w25qxx__example__driver.html#gae7cba4e0b22a1043fe304e46148fa13c">driver_w25qxx_advance.h</a>
-</li>
-<li>w25qxx_advance_chip_erase()
-: <a class="el" href="group__w25qxx__example__driver.html#ga15cb243f227ef8d897ef3208b622bded">driver_w25qxx_advance.c</a>
-, <a class="el" href="group__w25qxx__example__driver.html#ga15cb243f227ef8d897ef3208b622bded">driver_w25qxx_advance.h</a>
-</li>
-<li>w25qxx_advance_deinit()
-: <a class="el" href="group__w25qxx__example__driver.html#gaf390bbb2c4140f49d25822d963ead722">driver_w25qxx_advance.c</a>
-, <a class="el" href="group__w25qxx__example__driver.html#gaf390bbb2c4140f49d25822d963ead722">driver_w25qxx_advance.h</a>
-</li>
-<li>w25qxx_advance_fast_read()
-: <a class="el" href="group__w25qxx__example__driver.html#ga7ade25a387b9d03ddecefd86fb328389">driver_w25qxx_advance.c</a>
-, <a class="el" href="group__w25qxx__example__driver.html#ga7ade25a387b9d03ddecefd86fb328389">driver_w25qxx_advance.h</a>
-</li>
-<li>w25qxx_advance_get_get_jedec_id()
-: <a class="el" href="group__w25qxx__example__driver.html#gacc7435a39b61c44f0ce16690d5da896b">driver_w25qxx_advance.c</a>
-, <a class="el" href="group__w25qxx__example__driver.html#gacc7435a39b61c44f0ce16690d5da896b">driver_w25qxx_advance.h</a>
-</li>
-<li>w25qxx_advance_get_id()
-: <a class="el" href="group__w25qxx__example__driver.html#ga0f49d960f8b6c6498ab293b369ffc389">driver_w25qxx_advance.c</a>
-, <a class="el" href="group__w25qxx__example__driver.html#ga0f49d960f8b6c6498ab293b369ffc389">driver_w25qxx_advance.h</a>
-</li>
-<li>w25qxx_advance_get_status1()
-: <a class="el" href="group__w25qxx__example__driver.html#ga4c1be6979b4dc878d07ec86b8624c9d2">driver_w25qxx_advance.c</a>
-, <a class="el" href="group__w25qxx__example__driver.html#ga4c1be6979b4dc878d07ec86b8624c9d2">driver_w25qxx_advance.h</a>
-</li>
-<li>w25qxx_advance_get_status2()
-: <a class="el" href="group__w25qxx__example__driver.html#gaf4736fff906c2f0c1dbed26b20847052">driver_w25qxx_advance.c</a>
-, <a class="el" href="group__w25qxx__example__driver.html#gaf4736fff906c2f0c1dbed26b20847052">driver_w25qxx_advance.h</a>
-</li>
-<li>w25qxx_advance_get_status3()
-: <a class="el" href="group__w25qxx__example__driver.html#ga31bcd3d2cc68d2fc589685b5087bd8b3">driver_w25qxx_advance.c</a>
-, <a class="el" href="group__w25qxx__example__driver.html#ga31bcd3d2cc68d2fc589685b5087bd8b3">driver_w25qxx_advance.h</a>
-</li>
-<li>w25qxx_advance_global_block_lock()
-: <a class="el" href="group__w25qxx__example__driver.html#ga2cbcc018dc11a870d2e0fc3a8946b1d8">driver_w25qxx_advance.c</a>
-, <a class="el" href="group__w25qxx__example__driver.html#ga2cbcc018dc11a870d2e0fc3a8946b1d8">driver_w25qxx_advance.h</a>
-</li>
-<li>w25qxx_advance_global_block_unlock()
-: <a class="el" href="group__w25qxx__example__driver.html#ga67c70da103511d1cff9274e61a08ce56">driver_w25qxx_advance.c</a>
-, <a class="el" href="group__w25qxx__example__driver.html#ga67c70da103511d1cff9274e61a08ce56">driver_w25qxx_advance.h</a>
-</li>
-<li>w25qxx_advance_individual_block_lock()
-: <a class="el" href="group__w25qxx__example__driver.html#gaa7af99e92b3e81f5b202575b55dc3a7c">driver_w25qxx_advance.c</a>
-, <a class="el" href="group__w25qxx__example__driver.html#gaa7af99e92b3e81f5b202575b55dc3a7c">driver_w25qxx_advance.h</a>
-</li>
-<li>w25qxx_advance_individual_block_unlock()
-: <a class="el" href="group__w25qxx__example__driver.html#ga66726fc451c7804e8fec6eb46a6a77d6">driver_w25qxx_advance.c</a>
-, <a class="el" href="group__w25qxx__example__driver.html#ga66726fc451c7804e8fec6eb46a6a77d6">driver_w25qxx_advance.h</a>
-</li>
-<li>w25qxx_advance_init()
-: <a class="el" href="group__w25qxx__example__driver.html#ga413b420bc199d09ce5cafee4a4debb28">driver_w25qxx_advance.c</a>
-, <a class="el" href="group__w25qxx__example__driver.html#ga413b420bc199d09ce5cafee4a4debb28">driver_w25qxx_advance.h</a>
-</li>
-<li>w25qxx_advance_only_qspi_set_read_parameters()
-: <a class="el" href="group__w25qxx__example__driver.html#gace2a5b7acd9798cfcaa2b5eb2f18e1d1">driver_w25qxx_advance.c</a>
-, <a class="el" href="group__w25qxx__example__driver.html#gace2a5b7acd9798cfcaa2b5eb2f18e1d1">driver_w25qxx_advance.h</a>
-</li>
-<li>w25qxx_advance_only_spi_fast_read_dual_io()
-: <a class="el" href="group__w25qxx__example__driver.html#ga4bbaf1a989fae25d16d07edb1e38ca4f">driver_w25qxx_advance.c</a>
-, <a class="el" href="group__w25qxx__example__driver.html#ga4bbaf1a989fae25d16d07edb1e38ca4f">driver_w25qxx_advance.h</a>
-</li>
-<li>w25qxx_advance_only_spi_fast_read_dual_output()
-: <a class="el" href="group__w25qxx__example__driver.html#ga364d891407cf323d3686d36ad6357604">driver_w25qxx_advance.c</a>
-, <a class="el" href="group__w25qxx__example__driver.html#ga364d891407cf323d3686d36ad6357604">driver_w25qxx_advance.h</a>
-</li>
-<li>w25qxx_advance_only_spi_fast_read_quad_io()
-: <a class="el" href="group__w25qxx__example__driver.html#ga395add1fa33f4f70d0ba52b38842dbdb">driver_w25qxx_advance.c</a>
-, <a class="el" href="group__w25qxx__example__driver.html#ga395add1fa33f4f70d0ba52b38842dbdb">driver_w25qxx_advance.h</a>
-</li>
-<li>w25qxx_advance_only_spi_fast_read_quad_output()
-: <a class="el" href="group__w25qxx__example__driver.html#gaf5f978c432de7d6adaf41cd256724a01">driver_w25qxx_advance.c</a>
-, <a class="el" href="group__w25qxx__example__driver.html#gaf5f978c432de7d6adaf41cd256724a01">driver_w25qxx_advance.h</a>
-</li>
-<li>w25qxx_advance_only_spi_get_manufacturer_device_id_dual_io()
-: <a class="el" href="group__w25qxx__example__driver.html#gac0d9e08a37ee37563c8dbb501608a668">driver_w25qxx_advance.c</a>
-, <a class="el" href="group__w25qxx__example__driver.html#gac0d9e08a37ee37563c8dbb501608a668">driver_w25qxx_advance.h</a>
-</li>
-<li>w25qxx_advance_only_spi_get_manufacturer_device_id_quad_io()
-: <a class="el" href="group__w25qxx__example__driver.html#ga6142b5a1e8602e2990dec34015812615">driver_w25qxx_advance.c</a>
-, <a class="el" href="group__w25qxx__example__driver.html#ga6142b5a1e8602e2990dec34015812615">driver_w25qxx_advance.h</a>
-</li>
-<li>w25qxx_advance_only_spi_get_sfdp()
-: <a class="el" href="group__w25qxx__example__driver.html#ga9b1854e0ae52f57523bc2fa7cc0656df">driver_w25qxx_advance.c</a>
-, <a class="el" href="group__w25qxx__example__driver.html#ga9b1854e0ae52f57523bc2fa7cc0656df">driver_w25qxx_advance.h</a>
-</li>
-<li>w25qxx_advance_only_spi_get_unique_id()
-: <a class="el" href="group__w25qxx__example__driver.html#ga374d35b73fa61d5f7464c3effdae1d57">driver_w25qxx_advance.c</a>
-, <a class="el" href="group__w25qxx__example__driver.html#ga374d35b73fa61d5f7464c3effdae1d57">driver_w25qxx_advance.h</a>
-</li>
-<li>w25qxx_advance_only_spi_octal_word_read_quad_io()
-: <a class="el" href="group__w25qxx__example__driver.html#ga825a567c535236d7d18ffccf07df59e9">driver_w25qxx_advance.c</a>
-, <a class="el" href="group__w25qxx__example__driver.html#ga825a567c535236d7d18ffccf07df59e9">driver_w25qxx_advance.h</a>
-</li>
-<li>w25qxx_advance_only_spi_page_program_quad_input()
-: <a class="el" href="group__w25qxx__example__driver.html#gad243655eb738e44c50e6079c983fd782">driver_w25qxx_advance.c</a>
-, <a class="el" href="group__w25qxx__example__driver.html#gad243655eb738e44c50e6079c983fd782">driver_w25qxx_advance.h</a>
-</li>
-<li>w25qxx_advance_only_spi_read()
-: <a class="el" href="group__w25qxx__example__driver.html#gac1c7f320706dd6d6d937da75b8a4da93">driver_w25qxx_advance.c</a>
-, <a class="el" href="group__w25qxx__example__driver.html#gac1c7f320706dd6d6d937da75b8a4da93">driver_w25qxx_advance.h</a>
-</li>
-<li>w25qxx_advance_only_spi_read_security_register()
-: <a class="el" href="group__w25qxx__example__driver.html#ga02652a58ee418b432cf77505809d7d42">driver_w25qxx_advance.c</a>
-, <a class="el" href="group__w25qxx__example__driver.html#ga02652a58ee418b432cf77505809d7d42">driver_w25qxx_advance.h</a>
-</li>
-<li>w25qxx_advance_only_spi_set_burst_with_wrap()
-: <a class="el" href="group__w25qxx__example__driver.html#ga16411577fcb794f7485912f5db1bdde9">driver_w25qxx_advance.c</a>
-, <a class="el" href="group__w25qxx__example__driver.html#ga16411577fcb794f7485912f5db1bdde9">driver_w25qxx_advance.h</a>
-</li>
-<li>w25qxx_advance_only_spi_word_read_quad_io()
-: <a class="el" href="group__w25qxx__example__driver.html#gaca6b4c6ea32dd96a4ae8714e2862d67a">driver_w25qxx_advance.c</a>
-, <a class="el" href="group__w25qxx__example__driver.html#gaca6b4c6ea32dd96a4ae8714e2862d67a">driver_w25qxx_advance.h</a>
-</li>
-<li>w25qxx_advance_only_spi_write_security_register()
-: <a class="el" href="group__w25qxx__example__driver.html#gaa6c5f97106e769ba071973cc2e782ad4">driver_w25qxx_advance.c</a>
-, <a class="el" href="group__w25qxx__example__driver.html#gaa6c5f97106e769ba071973cc2e782ad4">driver_w25qxx_advance.h</a>
-</li>
-<li>w25qxx_advance_page_program()
-: <a class="el" href="group__w25qxx__example__driver.html#ga39ff13988a3d451231cec3260c13a4cd">driver_w25qxx_advance.c</a>
-, <a class="el" href="group__w25qxx__example__driver.html#ga39ff13988a3d451231cec3260c13a4cd">driver_w25qxx_advance.h</a>
-</li>
-<li>w25qxx_advance_power_down()
-: <a class="el" href="group__w25qxx__example__driver.html#ga5599de31797633ae75a63bcd5a8f4736">driver_w25qxx_advance.c</a>
-, <a class="el" href="group__w25qxx__example__driver.html#ga5599de31797633ae75a63bcd5a8f4736">driver_w25qxx_advance.h</a>
-</li>
-<li>w25qxx_advance_read()
-: <a class="el" href="group__w25qxx__example__driver.html#ga013a389763200b54daaa345adf9329dc">driver_w25qxx_advance.c</a>
-, <a class="el" href="group__w25qxx__example__driver.html#ga013a389763200b54daaa345adf9329dc">driver_w25qxx_advance.h</a>
-</li>
-<li>w25qxx_advance_read_block_lock()
-: <a class="el" href="group__w25qxx__example__driver.html#gac1773fe914a01825ca28346205601036">driver_w25qxx_advance.c</a>
-, <a class="el" href="group__w25qxx__example__driver.html#gac1773fe914a01825ca28346205601036">driver_w25qxx_advance.h</a>
-</li>
-<li>w25qxx_advance_reset()
-: <a class="el" href="group__w25qxx__example__driver.html#ga0f65053ad28443f19ed73dbc3412b5b2">driver_w25qxx_advance.c</a>
-, <a class="el" href="group__w25qxx__example__driver.html#ga0f65053ad28443f19ed73dbc3412b5b2">driver_w25qxx_advance.h</a>
-</li>
-<li>w25qxx_advance_sector_erase_4k()
-: <a class="el" href="group__w25qxx__example__driver.html#ga9325acc424c95624f15e11631082201d">driver_w25qxx_advance.c</a>
-, <a class="el" href="group__w25qxx__example__driver.html#ga9325acc424c95624f15e11631082201d">driver_w25qxx_advance.h</a>
-</li>
-<li>w25qxx_advance_set_status1()
-: <a class="el" href="group__w25qxx__example__driver.html#ga5e4938b4575c417ae22fa82079459b1a">driver_w25qxx_advance.c</a>
-, <a class="el" href="group__w25qxx__example__driver.html#ga5e4938b4575c417ae22fa82079459b1a">driver_w25qxx_advance.h</a>
-</li>
-<li>w25qxx_advance_set_status2()
-: <a class="el" href="group__w25qxx__example__driver.html#ga9bc0e696b700d66f15b3605e10d33718">driver_w25qxx_advance.c</a>
-, <a class="el" href="group__w25qxx__example__driver.html#ga9bc0e696b700d66f15b3605e10d33718">driver_w25qxx_advance.h</a>
-</li>
-<li>w25qxx_advance_set_status3()
-: <a class="el" href="group__w25qxx__example__driver.html#gab5c990ebd4874137b7d23f2b896d4601">driver_w25qxx_advance.c</a>
-, <a class="el" href="group__w25qxx__example__driver.html#gab5c990ebd4874137b7d23f2b896d4601">driver_w25qxx_advance.h</a>
-</li>
-<li>w25qxx_advance_wake_up()
-: <a class="el" href="group__w25qxx__example__driver.html#ga8a57e2d056d452abc14b0a08d4223251">driver_w25qxx_advance.c</a>
-, <a class="el" href="group__w25qxx__example__driver.html#ga8a57e2d056d452abc14b0a08d4223251">driver_w25qxx_advance.h</a>
-</li>
-<li>w25qxx_advance_write()
-: <a class="el" href="group__w25qxx__example__driver.html#ga63f4e1dce2ef7c7de56461524fd22d04">driver_w25qxx_advance.c</a>
-, <a class="el" href="group__w25qxx__example__driver.html#ga63f4e1dce2ef7c7de56461524fd22d04">driver_w25qxx_advance.h</a>
-</li>
-<li>w25qxx_basic_chip_erase()
-: <a class="el" href="group__w25qxx__example__driver.html#gaf78e9f136e29b826c1a2b337b8451d6d">driver_w25qxx_basic.c</a>
-, <a class="el" href="group__w25qxx__example__driver.html#gaf78e9f136e29b826c1a2b337b8451d6d">driver_w25qxx_basic.h</a>
-</li>
-<li>w25qxx_basic_deinit()
-: <a class="el" href="group__w25qxx__example__driver.html#gaeb167c2924a3490e9a8d11e0c57d2dc0">driver_w25qxx_basic.c</a>
-, <a class="el" href="group__w25qxx__example__driver.html#gaeb167c2924a3490e9a8d11e0c57d2dc0">driver_w25qxx_basic.h</a>
-</li>
-<li>w25qxx_basic_get_id()
-: <a class="el" href="group__w25qxx__example__driver.html#gacdda3af55c024b55fc9939aa23650356">driver_w25qxx_basic.c</a>
-, <a class="el" href="group__w25qxx__example__driver.html#gacdda3af55c024b55fc9939aa23650356">driver_w25qxx_basic.h</a>
-</li>
-<li>w25qxx_basic_init()
-: <a class="el" href="group__w25qxx__example__driver.html#ga1e20768311dfdf33c77b442fa874b61a">driver_w25qxx_basic.c</a>
-, <a class="el" href="group__w25qxx__example__driver.html#ga1e20768311dfdf33c77b442fa874b61a">driver_w25qxx_basic.h</a>
-</li>
-<li>w25qxx_basic_power_down()
-: <a class="el" href="group__w25qxx__example__driver.html#ga572c9f7a0bf2e7ab43dc078121162ec3">driver_w25qxx_basic.c</a>
-, <a class="el" href="group__w25qxx__example__driver.html#ga572c9f7a0bf2e7ab43dc078121162ec3">driver_w25qxx_basic.h</a>
-</li>
-<li>w25qxx_basic_read()
-: <a class="el" href="group__w25qxx__example__driver.html#ga143fa1f19a792142339f3d4e9ce078d0">driver_w25qxx_basic.c</a>
-, <a class="el" href="group__w25qxx__example__driver.html#ga143fa1f19a792142339f3d4e9ce078d0">driver_w25qxx_basic.h</a>
-</li>
-<li>w25qxx_basic_wake_up()
-: <a class="el" href="group__w25qxx__example__driver.html#ga02914409a9db38f35bc89d9fc4d96a17">driver_w25qxx_basic.c</a>
-, <a class="el" href="group__w25qxx__example__driver.html#ga02914409a9db38f35bc89d9fc4d96a17">driver_w25qxx_basic.h</a>
-</li>
-<li>w25qxx_basic_write()
-: <a class="el" href="group__w25qxx__example__driver.html#ga5cf24fc78e1b45e845d02ec9133f46ab">driver_w25qxx_basic.c</a>
-, <a class="el" href="group__w25qxx__example__driver.html#ga5cf24fc78e1b45e845d02ec9133f46ab">driver_w25qxx_basic.h</a>
-</li>
-<li>w25qxx_block_erase_32k()
-: <a class="el" href="group__w25qxx__basic__driver.html#ga39c8fb382e8c3e4d57232dfa79af781c">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__basic__driver.html#ga39c8fb382e8c3e4d57232dfa79af781c">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_block_erase_64k()
-: <a class="el" href="group__w25qxx__basic__driver.html#gaf53bc5f6073482b9b74efd417ec7ac83">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__basic__driver.html#gaf53bc5f6073482b9b74efd417ec7ac83">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_chip_erase()
-: <a class="el" href="group__w25qxx__basic__driver.html#ga0862833b36831f92684980b2e21f2e39">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__basic__driver.html#ga0862833b36831f92684980b2e21f2e39">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_deinit()
-: <a class="el" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_disable_write()
-: <a class="el" href="group__w25qxx__advance__driver.html#gac16a31269277051baad6c28fe4254b4a">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__advance__driver.html#gac16a31269277051baad6c28fe4254b4a">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_enable_reset()
-: <a class="el" href="group__w25qxx__advance__driver.html#gab55b4e071e20feb58584025287949438">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__advance__driver.html#gab55b4e071e20feb58584025287949438">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_enable_volatile_sr_write()
-: <a class="el" href="group__w25qxx__advance__driver.html#ga0f8889d6a25c32e150a2ab30753d461d">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__advance__driver.html#ga0f8889d6a25c32e150a2ab30753d461d">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_enable_write()
-: <a class="el" href="group__w25qxx__advance__driver.html#gaeb269123feec054eaaf70f2ffb5797a3">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__advance__driver.html#gaeb269123feec054eaaf70f2ffb5797a3">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_enter_qspi_mode()
-: <a class="el" href="group__w25qxx__advance__driver.html#gaa5ab3548707a95ded115255432224c5a">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__advance__driver.html#gaa5ab3548707a95ded115255432224c5a">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_erase_program_resume()
-: <a class="el" href="group__w25qxx__advance__driver.html#ga05c69ac66309544eba4ff38a69f24c00">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__advance__driver.html#ga05c69ac66309544eba4ff38a69f24c00">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_erase_program_suspend()
-: <a class="el" href="group__w25qxx__advance__driver.html#gac7fbabc574c250eec100be861f5918ff">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__advance__driver.html#gac7fbabc574c250eec100be861f5918ff">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_erase_security_register()
-: <a class="el" href="group__w25qxx__advance__driver.html#gaf297e2c6877c64f8fd10a555f783ddaf">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__advance__driver.html#gaf297e2c6877c64f8fd10a555f783ddaf">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_exit_qspi_mode()
-: <a class="el" href="group__w25qxx__advance__driver.html#ga6b9f75f7426a54ffdb1f5a057f8188f4">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__advance__driver.html#ga6b9f75f7426a54ffdb1f5a057f8188f4">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_fast_read()
-: <a class="el" href="group__w25qxx__basic__driver.html#gac345ba10af5ad355578fa97697487123">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__basic__driver.html#gac345ba10af5ad355578fa97697487123">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_fast_read_dual_io()
-: <a class="el" href="group__w25qxx__advance__driver.html#gac894f4650905cba10dd3a31284de6d5e">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__advance__driver.html#gac894f4650905cba10dd3a31284de6d5e">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_fast_read_dual_output()
-: <a class="el" href="group__w25qxx__advance__driver.html#ga7a19230ca3916816ea8fb7421483d293">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__advance__driver.html#ga7a19230ca3916816ea8fb7421483d293">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_fast_read_quad_io()
-: <a class="el" href="group__w25qxx__advance__driver.html#gab97a64bd3776874518f60381d921ae41">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__advance__driver.html#gab97a64bd3776874518f60381d921ae41">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_fast_read_quad_output()
-: <a class="el" href="group__w25qxx__advance__driver.html#gaf4bfafd1f80aa0316a4b1a15183dcd50">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__advance__driver.html#gaf4bfafd1f80aa0316a4b1a15183dcd50">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_get_address_mode()
-: <a class="el" href="group__w25qxx__basic__driver.html#ga3a52036a97b12fcbe2280b0901a80b90">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__basic__driver.html#ga3a52036a97b12fcbe2280b0901a80b90">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_get_dual_quad_spi()
-: <a class="el" href="group__w25qxx__basic__driver.html#gad4c9b8b0a2d0916c13567f9d7e494cf8">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__basic__driver.html#gad4c9b8b0a2d0916c13567f9d7e494cf8">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_get_interface()
-: <a class="el" href="group__w25qxx__basic__driver.html#ga86ef839d475f3926a0be46bbc18d4b45">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__basic__driver.html#ga86ef839d475f3926a0be46bbc18d4b45">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_get_jedec_id()
-: <a class="el" href="group__w25qxx__advance__driver.html#ga8a93ba14a032e10a27f1495fdcf56058">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__advance__driver.html#ga8a93ba14a032e10a27f1495fdcf56058">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_get_manufacturer_device_id()
-: <a class="el" href="group__w25qxx__basic__driver.html#ga921836a777b082ff4d0f322ccfda6b22">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__basic__driver.html#ga921836a777b082ff4d0f322ccfda6b22">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_get_manufacturer_device_id_dual_io()
-: <a class="el" href="group__w25qxx__advance__driver.html#ga1cd3aec1bdeabbaed5f049fbf83ceeb4">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__advance__driver.html#ga1cd3aec1bdeabbaed5f049fbf83ceeb4">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_get_manufacturer_device_id_quad_io()
-: <a class="el" href="group__w25qxx__advance__driver.html#ga61bd3ce40b76b6862c6a53e0e37a3455">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__advance__driver.html#ga61bd3ce40b76b6862c6a53e0e37a3455">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_get_sfdp()
-: <a class="el" href="group__w25qxx__advance__driver.html#ga244a91b9c0c32e899ca89e1943045624">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__advance__driver.html#ga244a91b9c0c32e899ca89e1943045624">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_get_status1()
-: <a class="el" href="group__w25qxx__advance__driver.html#gaa77d2b00b4fb9cf586f77ace827ea7c6">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__advance__driver.html#gaa77d2b00b4fb9cf586f77ace827ea7c6">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_get_status2()
-: <a class="el" href="group__w25qxx__advance__driver.html#gaa21237ecbd5951b8017799066e7db5d9">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__advance__driver.html#gaa21237ecbd5951b8017799066e7db5d9">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_get_status3()
-: <a class="el" href="group__w25qxx__advance__driver.html#ga99cf6a325a00921d4531004f0c1d75b1">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__advance__driver.html#ga99cf6a325a00921d4531004f0c1d75b1">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_get_type()
-: <a class="el" href="group__w25qxx__basic__driver.html#ga685379998dad173b6d9c0b0da270685c">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__basic__driver.html#ga685379998dad173b6d9c0b0da270685c">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_get_unique_id()
-: <a class="el" href="group__w25qxx__advance__driver.html#ga11af244389478de68a6777076ee82d69">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__advance__driver.html#ga11af244389478de68a6777076ee82d69">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_global_block_lock()
-: <a class="el" href="group__w25qxx__advance__driver.html#gab5579bc42bc07a7657848140888a817c">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__advance__driver.html#gab5579bc42bc07a7657848140888a817c">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_global_block_unlock()
-: <a class="el" href="group__w25qxx__advance__driver.html#ga6d62f7d14945cfde7cde7a0e9a4e3afb">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__advance__driver.html#ga6d62f7d14945cfde7cde7a0e9a4e3afb">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_individual_block_lock()
-: <a class="el" href="group__w25qxx__advance__driver.html#ga4f00c2c169cb7c3084841c6cd795e76b">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__advance__driver.html#ga4f00c2c169cb7c3084841c6cd795e76b">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_individual_block_unlock()
-: <a class="el" href="group__w25qxx__advance__driver.html#ga7f88cedf7619071b3235ba094915b2a7">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__advance__driver.html#ga7f88cedf7619071b3235ba094915b2a7">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_info()
-: <a class="el" href="group__w25qxx__basic__driver.html#ga996e2d3009432e7f8c1a5175c4438a57">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__basic__driver.html#ga996e2d3009432e7f8c1a5175c4438a57">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_init()
-: <a class="el" href="group__w25qxx__basic__driver.html#ga8e7a163b3d255b8c7fc035d0d60f2491">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__basic__driver.html#ga8e7a163b3d255b8c7fc035d0d60f2491">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_interface_debug_print()
-: <a class="el" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">driver_w25qxx_interface.h</a>
-, <a class="el" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">driver_w25qxx_interface_template.c</a>
-</li>
-<li>w25qxx_interface_delay_ms()
-: <a class="el" href="group__w25qxx__interface__driver.html#ga964fa232abf98737cb98458eebfff82c">driver_w25qxx_interface.h</a>
-, <a class="el" href="group__w25qxx__interface__driver.html#ga964fa232abf98737cb98458eebfff82c">driver_w25qxx_interface_template.c</a>
-</li>
-<li>w25qxx_interface_delay_us()
-: <a class="el" href="group__w25qxx__interface__driver.html#ga38e79039b913154c9dd1036ff52bb420">driver_w25qxx_interface.h</a>
-, <a class="el" href="group__w25qxx__interface__driver.html#ga38e79039b913154c9dd1036ff52bb420">driver_w25qxx_interface_template.c</a>
-</li>
-<li>w25qxx_interface_spi_qspi_deinit()
-: <a class="el" href="group__w25qxx__interface__driver.html#ga091f3607fcdd47f9e5f94cf1397bd46a">driver_w25qxx_interface.h</a>
-, <a class="el" href="group__w25qxx__interface__driver.html#ga091f3607fcdd47f9e5f94cf1397bd46a">driver_w25qxx_interface_template.c</a>
-</li>
-<li>w25qxx_interface_spi_qspi_init()
-: <a class="el" href="group__w25qxx__interface__driver.html#ga2bdc17a556f1c801a38656331f3bb7b6">driver_w25qxx_interface.h</a>
-, <a class="el" href="group__w25qxx__interface__driver.html#ga2bdc17a556f1c801a38656331f3bb7b6">driver_w25qxx_interface_template.c</a>
-</li>
-<li>w25qxx_interface_spi_qspi_write_read()
-: <a class="el" href="group__w25qxx__interface__driver.html#ga3d76ea1f431978f6b55edfd0628c94cd">driver_w25qxx_interface.h</a>
-, <a class="el" href="group__w25qxx__interface__driver.html#ga3d76ea1f431978f6b55edfd0628c94cd">driver_w25qxx_interface_template.c</a>
-</li>
-<li>w25qxx_octal_word_read_quad_io()
-: <a class="el" href="group__w25qxx__advance__driver.html#ga88a62ec42e86db821ff3f0d3ab541dbb">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__advance__driver.html#ga88a62ec42e86db821ff3f0d3ab541dbb">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_only_spi_read()
-: <a class="el" href="group__w25qxx__basic__driver.html#ga1e9ebf198137d23558dbf6470213c472">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__basic__driver.html#ga1e9ebf198137d23558dbf6470213c472">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_page_program()
-: <a class="el" href="group__w25qxx__basic__driver.html#ga6280e7e4ab26306436e2c210617a28b3">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__basic__driver.html#ga6280e7e4ab26306436e2c210617a28b3">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_page_program_quad_input()
-: <a class="el" href="group__w25qxx__advance__driver.html#ga1f80bbbaaa852eecfffb87737889363d">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__advance__driver.html#ga1f80bbbaaa852eecfffb87737889363d">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_power_down()
-: <a class="el" href="group__w25qxx__basic__driver.html#gae4effce67e36120325e3c7b245b90142">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__basic__driver.html#gae4effce67e36120325e3c7b245b90142">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_program_security_register()
-: <a class="el" href="group__w25qxx__advance__driver.html#ga4e9c059ff78866e478e835cb27a92899">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__advance__driver.html#ga4e9c059ff78866e478e835cb27a92899">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_read()
-: <a class="el" href="group__w25qxx__basic__driver.html#gae7479fc9ce911a52e3c5b6f1a615b879">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__basic__driver.html#gae7479fc9ce911a52e3c5b6f1a615b879">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_read_block_lock()
-: <a class="el" href="group__w25qxx__advance__driver.html#ga59e655ca78a175037ca810bbc8539a96">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__advance__driver.html#ga59e655ca78a175037ca810bbc8539a96">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_read_security_register()
-: <a class="el" href="group__w25qxx__advance__driver.html#ga4c65debc4947bd9a61e0073105164b9c">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__advance__driver.html#ga4c65debc4947bd9a61e0073105164b9c">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_read_test()
-: <a class="el" href="group__w25qxx__test__driver.html#ga4ce42ca34d33cd64cb823040780999af">driver_w25qxx_read_test.c</a>
-, <a class="el" href="group__w25qxx__test__driver.html#ga4ce42ca34d33cd64cb823040780999af">driver_w25qxx_read_test.h</a>
-</li>
-<li>w25qxx_register_test()
-: <a class="el" href="group__w25qxx__test__driver.html#ga05d07036254d102ebea0d0b1e83862c8">driver_w25qxx_register_test.c</a>
-, <a class="el" href="group__w25qxx__test__driver.html#ga05d07036254d102ebea0d0b1e83862c8">driver_w25qxx_register_test.h</a>
-</li>
-<li>w25qxx_release_power_down()
-: <a class="el" href="group__w25qxx__basic__driver.html#ga09c9b52877516a2ee4c080dc249e7331">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__basic__driver.html#ga09c9b52877516a2ee4c080dc249e7331">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_reset_device()
-: <a class="el" href="group__w25qxx__advance__driver.html#ga2abebfe2a8d9377eb88448ffca73f222">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__advance__driver.html#ga2abebfe2a8d9377eb88448ffca73f222">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_sector_erase_4k()
-: <a class="el" href="group__w25qxx__basic__driver.html#ga9a03c51b4c84655350c15fbfce0a6b40">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__basic__driver.html#ga9a03c51b4c84655350c15fbfce0a6b40">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_set_address_mode()
-: <a class="el" href="group__w25qxx__basic__driver.html#gad0e125eff304ce66fb3956d2c8c80656">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__basic__driver.html#gad0e125eff304ce66fb3956d2c8c80656">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_set_burst_with_wrap()
-: <a class="el" href="group__w25qxx__advance__driver.html#gac19c1d0f3fd48968ea2a93c1dbe3d75d">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__advance__driver.html#gac19c1d0f3fd48968ea2a93c1dbe3d75d">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_set_dual_quad_spi()
-: <a class="el" href="group__w25qxx__basic__driver.html#ga665139209b0abc386474a78d89cce6f2">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__basic__driver.html#ga665139209b0abc386474a78d89cce6f2">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_set_interface()
-: <a class="el" href="group__w25qxx__basic__driver.html#ga50a62003d566402d46ada2f272c41eb5">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__basic__driver.html#ga50a62003d566402d46ada2f272c41eb5">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_set_read_parameters()
-: <a class="el" href="group__w25qxx__advance__driver.html#ga9ad10781d888b32b43b9eba45d049624">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__advance__driver.html#ga9ad10781d888b32b43b9eba45d049624">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_set_status1()
-: <a class="el" href="group__w25qxx__advance__driver.html#ga246e0bb07c8bbb39731f17906779c012">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__advance__driver.html#ga246e0bb07c8bbb39731f17906779c012">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_set_status2()
-: <a class="el" href="group__w25qxx__advance__driver.html#gaab5f28e8930d50dbc2178e39bc9fa456">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__advance__driver.html#gaab5f28e8930d50dbc2178e39bc9fa456">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_set_status3()
-: <a class="el" href="group__w25qxx__advance__driver.html#gada897a6c6d6acb99f4dd4ff9b65ad8ee">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__advance__driver.html#gada897a6c6d6acb99f4dd4ff9b65ad8ee">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_set_type()
-: <a class="el" href="group__w25qxx__basic__driver.html#gaa57189cd4170b73f8b1300ca15e27de6">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__basic__driver.html#gaa57189cd4170b73f8b1300ca15e27de6">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_word_read_quad_io()
-: <a class="el" href="group__w25qxx__advance__driver.html#gad97d7e410dd77c49334097a0fd332660">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__advance__driver.html#gad97d7e410dd77c49334097a0fd332660">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_write()
-: <a class="el" href="group__w25qxx__basic__driver.html#gaaee8264d840e51460821cb6e609338ee">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__basic__driver.html#gaaee8264d840e51460821cb6e609338ee">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_write_read_reg()
-: <a class="el" href="group__w25qxx__extern__driver.html#ga9623a3bec148b148498480518a66cb2b">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__extern__driver.html#ga9623a3bec148b148498480518a66cb2b">driver_w25qxx.h</a>
-</li>
+<h3><a id="index_w" name="index_w"></a>- w -</h3><ul>
+<li>w25qxx_advance_block_erase_32k()&#160;:&#160;<a class="el" href="group__w25qxx__example__driver.html#gaee04edb9e97785e423dffe14a1cad780">driver_w25qxx_advance.c</a>, <a class="el" href="group__w25qxx__example__driver.html#gaee04edb9e97785e423dffe14a1cad780">driver_w25qxx_advance.h</a></li>
+<li>w25qxx_advance_block_erase_64k()&#160;:&#160;<a class="el" href="group__w25qxx__example__driver.html#gae7cba4e0b22a1043fe304e46148fa13c">driver_w25qxx_advance.c</a>, <a class="el" href="group__w25qxx__example__driver.html#gae7cba4e0b22a1043fe304e46148fa13c">driver_w25qxx_advance.h</a></li>
+<li>w25qxx_advance_chip_erase()&#160;:&#160;<a class="el" href="group__w25qxx__example__driver.html#ga15cb243f227ef8d897ef3208b622bded">driver_w25qxx_advance.c</a>, <a class="el" href="group__w25qxx__example__driver.html#ga15cb243f227ef8d897ef3208b622bded">driver_w25qxx_advance.h</a></li>
+<li>w25qxx_advance_deinit()&#160;:&#160;<a class="el" href="group__w25qxx__example__driver.html#gaf390bbb2c4140f49d25822d963ead722">driver_w25qxx_advance.c</a>, <a class="el" href="group__w25qxx__example__driver.html#gaf390bbb2c4140f49d25822d963ead722">driver_w25qxx_advance.h</a></li>
+<li>w25qxx_advance_fast_read()&#160;:&#160;<a class="el" href="group__w25qxx__example__driver.html#ga7ade25a387b9d03ddecefd86fb328389">driver_w25qxx_advance.c</a>, <a class="el" href="group__w25qxx__example__driver.html#ga7ade25a387b9d03ddecefd86fb328389">driver_w25qxx_advance.h</a></li>
+<li>w25qxx_advance_get_get_jedec_id()&#160;:&#160;<a class="el" href="group__w25qxx__example__driver.html#gacc7435a39b61c44f0ce16690d5da896b">driver_w25qxx_advance.c</a>, <a class="el" href="group__w25qxx__example__driver.html#gacc7435a39b61c44f0ce16690d5da896b">driver_w25qxx_advance.h</a></li>
+<li>w25qxx_advance_get_id()&#160;:&#160;<a class="el" href="group__w25qxx__example__driver.html#ga0f49d960f8b6c6498ab293b369ffc389">driver_w25qxx_advance.c</a>, <a class="el" href="group__w25qxx__example__driver.html#ga0f49d960f8b6c6498ab293b369ffc389">driver_w25qxx_advance.h</a></li>
+<li>w25qxx_advance_get_status1()&#160;:&#160;<a class="el" href="group__w25qxx__example__driver.html#ga4c1be6979b4dc878d07ec86b8624c9d2">driver_w25qxx_advance.c</a>, <a class="el" href="group__w25qxx__example__driver.html#ga4c1be6979b4dc878d07ec86b8624c9d2">driver_w25qxx_advance.h</a></li>
+<li>w25qxx_advance_get_status2()&#160;:&#160;<a class="el" href="group__w25qxx__example__driver.html#gaf4736fff906c2f0c1dbed26b20847052">driver_w25qxx_advance.c</a>, <a class="el" href="group__w25qxx__example__driver.html#gaf4736fff906c2f0c1dbed26b20847052">driver_w25qxx_advance.h</a></li>
+<li>w25qxx_advance_get_status3()&#160;:&#160;<a class="el" href="group__w25qxx__example__driver.html#ga31bcd3d2cc68d2fc589685b5087bd8b3">driver_w25qxx_advance.c</a>, <a class="el" href="group__w25qxx__example__driver.html#ga31bcd3d2cc68d2fc589685b5087bd8b3">driver_w25qxx_advance.h</a></li>
+<li>w25qxx_advance_global_block_lock()&#160;:&#160;<a class="el" href="group__w25qxx__example__driver.html#ga2cbcc018dc11a870d2e0fc3a8946b1d8">driver_w25qxx_advance.c</a>, <a class="el" href="group__w25qxx__example__driver.html#ga2cbcc018dc11a870d2e0fc3a8946b1d8">driver_w25qxx_advance.h</a></li>
+<li>w25qxx_advance_global_block_unlock()&#160;:&#160;<a class="el" href="group__w25qxx__example__driver.html#ga67c70da103511d1cff9274e61a08ce56">driver_w25qxx_advance.c</a>, <a class="el" href="group__w25qxx__example__driver.html#ga67c70da103511d1cff9274e61a08ce56">driver_w25qxx_advance.h</a></li>
+<li>w25qxx_advance_individual_block_lock()&#160;:&#160;<a class="el" href="group__w25qxx__example__driver.html#gaa7af99e92b3e81f5b202575b55dc3a7c">driver_w25qxx_advance.c</a>, <a class="el" href="group__w25qxx__example__driver.html#gaa7af99e92b3e81f5b202575b55dc3a7c">driver_w25qxx_advance.h</a></li>
+<li>w25qxx_advance_individual_block_unlock()&#160;:&#160;<a class="el" href="group__w25qxx__example__driver.html#ga66726fc451c7804e8fec6eb46a6a77d6">driver_w25qxx_advance.c</a>, <a class="el" href="group__w25qxx__example__driver.html#ga66726fc451c7804e8fec6eb46a6a77d6">driver_w25qxx_advance.h</a></li>
+<li>w25qxx_advance_init()&#160;:&#160;<a class="el" href="group__w25qxx__example__driver.html#ga413b420bc199d09ce5cafee4a4debb28">driver_w25qxx_advance.c</a>, <a class="el" href="group__w25qxx__example__driver.html#ga413b420bc199d09ce5cafee4a4debb28">driver_w25qxx_advance.h</a></li>
+<li>w25qxx_advance_only_qspi_set_read_parameters()&#160;:&#160;<a class="el" href="group__w25qxx__example__driver.html#gace2a5b7acd9798cfcaa2b5eb2f18e1d1">driver_w25qxx_advance.c</a>, <a class="el" href="group__w25qxx__example__driver.html#gace2a5b7acd9798cfcaa2b5eb2f18e1d1">driver_w25qxx_advance.h</a></li>
+<li>w25qxx_advance_only_spi_fast_read_dual_io()&#160;:&#160;<a class="el" href="group__w25qxx__example__driver.html#ga4bbaf1a989fae25d16d07edb1e38ca4f">driver_w25qxx_advance.c</a>, <a class="el" href="group__w25qxx__example__driver.html#ga4bbaf1a989fae25d16d07edb1e38ca4f">driver_w25qxx_advance.h</a></li>
+<li>w25qxx_advance_only_spi_fast_read_dual_output()&#160;:&#160;<a class="el" href="group__w25qxx__example__driver.html#ga364d891407cf323d3686d36ad6357604">driver_w25qxx_advance.c</a>, <a class="el" href="group__w25qxx__example__driver.html#ga364d891407cf323d3686d36ad6357604">driver_w25qxx_advance.h</a></li>
+<li>w25qxx_advance_only_spi_fast_read_quad_io()&#160;:&#160;<a class="el" href="group__w25qxx__example__driver.html#ga395add1fa33f4f70d0ba52b38842dbdb">driver_w25qxx_advance.c</a>, <a class="el" href="group__w25qxx__example__driver.html#ga395add1fa33f4f70d0ba52b38842dbdb">driver_w25qxx_advance.h</a></li>
+<li>w25qxx_advance_only_spi_fast_read_quad_output()&#160;:&#160;<a class="el" href="group__w25qxx__example__driver.html#gaf5f978c432de7d6adaf41cd256724a01">driver_w25qxx_advance.c</a>, <a class="el" href="group__w25qxx__example__driver.html#gaf5f978c432de7d6adaf41cd256724a01">driver_w25qxx_advance.h</a></li>
+<li>w25qxx_advance_only_spi_get_manufacturer_device_id_dual_io()&#160;:&#160;<a class="el" href="group__w25qxx__example__driver.html#gac0d9e08a37ee37563c8dbb501608a668">driver_w25qxx_advance.c</a>, <a class="el" href="group__w25qxx__example__driver.html#gac0d9e08a37ee37563c8dbb501608a668">driver_w25qxx_advance.h</a></li>
+<li>w25qxx_advance_only_spi_get_manufacturer_device_id_quad_io()&#160;:&#160;<a class="el" href="group__w25qxx__example__driver.html#ga6142b5a1e8602e2990dec34015812615">driver_w25qxx_advance.c</a>, <a class="el" href="group__w25qxx__example__driver.html#ga6142b5a1e8602e2990dec34015812615">driver_w25qxx_advance.h</a></li>
+<li>w25qxx_advance_only_spi_get_sfdp()&#160;:&#160;<a class="el" href="group__w25qxx__example__driver.html#ga9b1854e0ae52f57523bc2fa7cc0656df">driver_w25qxx_advance.c</a>, <a class="el" href="group__w25qxx__example__driver.html#ga9b1854e0ae52f57523bc2fa7cc0656df">driver_w25qxx_advance.h</a></li>
+<li>w25qxx_advance_only_spi_get_unique_id()&#160;:&#160;<a class="el" href="group__w25qxx__example__driver.html#ga374d35b73fa61d5f7464c3effdae1d57">driver_w25qxx_advance.c</a>, <a class="el" href="group__w25qxx__example__driver.html#ga374d35b73fa61d5f7464c3effdae1d57">driver_w25qxx_advance.h</a></li>
+<li>w25qxx_advance_only_spi_octal_word_read_quad_io()&#160;:&#160;<a class="el" href="group__w25qxx__example__driver.html#ga825a567c535236d7d18ffccf07df59e9">driver_w25qxx_advance.c</a>, <a class="el" href="group__w25qxx__example__driver.html#ga825a567c535236d7d18ffccf07df59e9">driver_w25qxx_advance.h</a></li>
+<li>w25qxx_advance_only_spi_page_program_quad_input()&#160;:&#160;<a class="el" href="group__w25qxx__example__driver.html#gad243655eb738e44c50e6079c983fd782">driver_w25qxx_advance.c</a>, <a class="el" href="group__w25qxx__example__driver.html#gad243655eb738e44c50e6079c983fd782">driver_w25qxx_advance.h</a></li>
+<li>w25qxx_advance_only_spi_read()&#160;:&#160;<a class="el" href="group__w25qxx__example__driver.html#gac1c7f320706dd6d6d937da75b8a4da93">driver_w25qxx_advance.c</a>, <a class="el" href="group__w25qxx__example__driver.html#gac1c7f320706dd6d6d937da75b8a4da93">driver_w25qxx_advance.h</a></li>
+<li>w25qxx_advance_only_spi_read_security_register()&#160;:&#160;<a class="el" href="group__w25qxx__example__driver.html#ga02652a58ee418b432cf77505809d7d42">driver_w25qxx_advance.c</a>, <a class="el" href="group__w25qxx__example__driver.html#ga02652a58ee418b432cf77505809d7d42">driver_w25qxx_advance.h</a></li>
+<li>w25qxx_advance_only_spi_set_burst_with_wrap()&#160;:&#160;<a class="el" href="group__w25qxx__example__driver.html#ga16411577fcb794f7485912f5db1bdde9">driver_w25qxx_advance.c</a>, <a class="el" href="group__w25qxx__example__driver.html#ga16411577fcb794f7485912f5db1bdde9">driver_w25qxx_advance.h</a></li>
+<li>w25qxx_advance_only_spi_word_read_quad_io()&#160;:&#160;<a class="el" href="group__w25qxx__example__driver.html#gaca6b4c6ea32dd96a4ae8714e2862d67a">driver_w25qxx_advance.c</a>, <a class="el" href="group__w25qxx__example__driver.html#gaca6b4c6ea32dd96a4ae8714e2862d67a">driver_w25qxx_advance.h</a></li>
+<li>w25qxx_advance_only_spi_write_security_register()&#160;:&#160;<a class="el" href="group__w25qxx__example__driver.html#gaa6c5f97106e769ba071973cc2e782ad4">driver_w25qxx_advance.c</a>, <a class="el" href="group__w25qxx__example__driver.html#gaa6c5f97106e769ba071973cc2e782ad4">driver_w25qxx_advance.h</a></li>
+<li>w25qxx_advance_page_program()&#160;:&#160;<a class="el" href="group__w25qxx__example__driver.html#ga39ff13988a3d451231cec3260c13a4cd">driver_w25qxx_advance.c</a>, <a class="el" href="group__w25qxx__example__driver.html#ga39ff13988a3d451231cec3260c13a4cd">driver_w25qxx_advance.h</a></li>
+<li>w25qxx_advance_power_down()&#160;:&#160;<a class="el" href="group__w25qxx__example__driver.html#ga5599de31797633ae75a63bcd5a8f4736">driver_w25qxx_advance.c</a>, <a class="el" href="group__w25qxx__example__driver.html#ga5599de31797633ae75a63bcd5a8f4736">driver_w25qxx_advance.h</a></li>
+<li>w25qxx_advance_read()&#160;:&#160;<a class="el" href="group__w25qxx__example__driver.html#ga013a389763200b54daaa345adf9329dc">driver_w25qxx_advance.c</a>, <a class="el" href="group__w25qxx__example__driver.html#ga013a389763200b54daaa345adf9329dc">driver_w25qxx_advance.h</a></li>
+<li>w25qxx_advance_read_block_lock()&#160;:&#160;<a class="el" href="group__w25qxx__example__driver.html#gac1773fe914a01825ca28346205601036">driver_w25qxx_advance.c</a>, <a class="el" href="group__w25qxx__example__driver.html#gac1773fe914a01825ca28346205601036">driver_w25qxx_advance.h</a></li>
+<li>w25qxx_advance_reset()&#160;:&#160;<a class="el" href="group__w25qxx__example__driver.html#ga0f65053ad28443f19ed73dbc3412b5b2">driver_w25qxx_advance.c</a>, <a class="el" href="group__w25qxx__example__driver.html#ga0f65053ad28443f19ed73dbc3412b5b2">driver_w25qxx_advance.h</a></li>
+<li>w25qxx_advance_sector_erase_4k()&#160;:&#160;<a class="el" href="group__w25qxx__example__driver.html#ga9325acc424c95624f15e11631082201d">driver_w25qxx_advance.c</a>, <a class="el" href="group__w25qxx__example__driver.html#ga9325acc424c95624f15e11631082201d">driver_w25qxx_advance.h</a></li>
+<li>w25qxx_advance_set_status1()&#160;:&#160;<a class="el" href="group__w25qxx__example__driver.html#ga5e4938b4575c417ae22fa82079459b1a">driver_w25qxx_advance.c</a>, <a class="el" href="group__w25qxx__example__driver.html#ga5e4938b4575c417ae22fa82079459b1a">driver_w25qxx_advance.h</a></li>
+<li>w25qxx_advance_set_status2()&#160;:&#160;<a class="el" href="group__w25qxx__example__driver.html#ga9bc0e696b700d66f15b3605e10d33718">driver_w25qxx_advance.c</a>, <a class="el" href="group__w25qxx__example__driver.html#ga9bc0e696b700d66f15b3605e10d33718">driver_w25qxx_advance.h</a></li>
+<li>w25qxx_advance_set_status3()&#160;:&#160;<a class="el" href="group__w25qxx__example__driver.html#gab5c990ebd4874137b7d23f2b896d4601">driver_w25qxx_advance.c</a>, <a class="el" href="group__w25qxx__example__driver.html#gab5c990ebd4874137b7d23f2b896d4601">driver_w25qxx_advance.h</a></li>
+<li>w25qxx_advance_wake_up()&#160;:&#160;<a class="el" href="group__w25qxx__example__driver.html#ga8a57e2d056d452abc14b0a08d4223251">driver_w25qxx_advance.c</a>, <a class="el" href="group__w25qxx__example__driver.html#ga8a57e2d056d452abc14b0a08d4223251">driver_w25qxx_advance.h</a></li>
+<li>w25qxx_advance_write()&#160;:&#160;<a class="el" href="group__w25qxx__example__driver.html#ga63f4e1dce2ef7c7de56461524fd22d04">driver_w25qxx_advance.c</a>, <a class="el" href="group__w25qxx__example__driver.html#ga63f4e1dce2ef7c7de56461524fd22d04">driver_w25qxx_advance.h</a></li>
+<li>w25qxx_basic_chip_erase()&#160;:&#160;<a class="el" href="group__w25qxx__example__driver.html#gaf78e9f136e29b826c1a2b337b8451d6d">driver_w25qxx_basic.c</a>, <a class="el" href="group__w25qxx__example__driver.html#gaf78e9f136e29b826c1a2b337b8451d6d">driver_w25qxx_basic.h</a></li>
+<li>w25qxx_basic_deinit()&#160;:&#160;<a class="el" href="group__w25qxx__example__driver.html#gaeb167c2924a3490e9a8d11e0c57d2dc0">driver_w25qxx_basic.c</a>, <a class="el" href="group__w25qxx__example__driver.html#gaeb167c2924a3490e9a8d11e0c57d2dc0">driver_w25qxx_basic.h</a></li>
+<li>w25qxx_basic_get_id()&#160;:&#160;<a class="el" href="group__w25qxx__example__driver.html#gacdda3af55c024b55fc9939aa23650356">driver_w25qxx_basic.c</a>, <a class="el" href="group__w25qxx__example__driver.html#gacdda3af55c024b55fc9939aa23650356">driver_w25qxx_basic.h</a></li>
+<li>w25qxx_basic_init()&#160;:&#160;<a class="el" href="group__w25qxx__example__driver.html#ga1e20768311dfdf33c77b442fa874b61a">driver_w25qxx_basic.c</a>, <a class="el" href="group__w25qxx__example__driver.html#ga1e20768311dfdf33c77b442fa874b61a">driver_w25qxx_basic.h</a></li>
+<li>w25qxx_basic_power_down()&#160;:&#160;<a class="el" href="group__w25qxx__example__driver.html#ga572c9f7a0bf2e7ab43dc078121162ec3">driver_w25qxx_basic.c</a>, <a class="el" href="group__w25qxx__example__driver.html#ga572c9f7a0bf2e7ab43dc078121162ec3">driver_w25qxx_basic.h</a></li>
+<li>w25qxx_basic_read()&#160;:&#160;<a class="el" href="group__w25qxx__example__driver.html#ga143fa1f19a792142339f3d4e9ce078d0">driver_w25qxx_basic.c</a>, <a class="el" href="group__w25qxx__example__driver.html#ga143fa1f19a792142339f3d4e9ce078d0">driver_w25qxx_basic.h</a></li>
+<li>w25qxx_basic_wake_up()&#160;:&#160;<a class="el" href="group__w25qxx__example__driver.html#ga02914409a9db38f35bc89d9fc4d96a17">driver_w25qxx_basic.c</a>, <a class="el" href="group__w25qxx__example__driver.html#ga02914409a9db38f35bc89d9fc4d96a17">driver_w25qxx_basic.h</a></li>
+<li>w25qxx_basic_write()&#160;:&#160;<a class="el" href="group__w25qxx__example__driver.html#ga5cf24fc78e1b45e845d02ec9133f46ab">driver_w25qxx_basic.c</a>, <a class="el" href="group__w25qxx__example__driver.html#ga5cf24fc78e1b45e845d02ec9133f46ab">driver_w25qxx_basic.h</a></li>
+<li>w25qxx_block_erase_32k()&#160;:&#160;<a class="el" href="group__w25qxx__basic__driver.html#ga39c8fb382e8c3e4d57232dfa79af781c">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__basic__driver.html#ga39c8fb382e8c3e4d57232dfa79af781c">driver_w25qxx.h</a></li>
+<li>w25qxx_block_erase_64k()&#160;:&#160;<a class="el" href="group__w25qxx__basic__driver.html#gaf53bc5f6073482b9b74efd417ec7ac83">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__basic__driver.html#gaf53bc5f6073482b9b74efd417ec7ac83">driver_w25qxx.h</a></li>
+<li>w25qxx_chip_erase()&#160;:&#160;<a class="el" href="group__w25qxx__basic__driver.html#ga0862833b36831f92684980b2e21f2e39">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__basic__driver.html#ga0862833b36831f92684980b2e21f2e39">driver_w25qxx.h</a></li>
+<li>w25qxx_deinit()&#160;:&#160;<a class="el" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">driver_w25qxx.h</a></li>
+<li>w25qxx_disable_write()&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#gac16a31269277051baad6c28fe4254b4a">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__advance__driver.html#gac16a31269277051baad6c28fe4254b4a">driver_w25qxx.h</a></li>
+<li>w25qxx_enable_reset()&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#gab55b4e071e20feb58584025287949438">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__advance__driver.html#gab55b4e071e20feb58584025287949438">driver_w25qxx.h</a></li>
+<li>w25qxx_enable_volatile_sr_write()&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#ga0f8889d6a25c32e150a2ab30753d461d">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__advance__driver.html#ga0f8889d6a25c32e150a2ab30753d461d">driver_w25qxx.h</a></li>
+<li>w25qxx_enable_write()&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#gaeb269123feec054eaaf70f2ffb5797a3">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__advance__driver.html#gaeb269123feec054eaaf70f2ffb5797a3">driver_w25qxx.h</a></li>
+<li>w25qxx_enter_qspi_mode()&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#gaa5ab3548707a95ded115255432224c5a">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__advance__driver.html#gaa5ab3548707a95ded115255432224c5a">driver_w25qxx.h</a></li>
+<li>w25qxx_erase_program_resume()&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#ga05c69ac66309544eba4ff38a69f24c00">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__advance__driver.html#ga05c69ac66309544eba4ff38a69f24c00">driver_w25qxx.h</a></li>
+<li>w25qxx_erase_program_suspend()&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#gac7fbabc574c250eec100be861f5918ff">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__advance__driver.html#gac7fbabc574c250eec100be861f5918ff">driver_w25qxx.h</a></li>
+<li>w25qxx_erase_security_register()&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#gaf297e2c6877c64f8fd10a555f783ddaf">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__advance__driver.html#gaf297e2c6877c64f8fd10a555f783ddaf">driver_w25qxx.h</a></li>
+<li>w25qxx_exit_qspi_mode()&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#ga6b9f75f7426a54ffdb1f5a057f8188f4">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__advance__driver.html#ga6b9f75f7426a54ffdb1f5a057f8188f4">driver_w25qxx.h</a></li>
+<li>w25qxx_fast_read()&#160;:&#160;<a class="el" href="group__w25qxx__basic__driver.html#gac345ba10af5ad355578fa97697487123">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__basic__driver.html#gac345ba10af5ad355578fa97697487123">driver_w25qxx.h</a></li>
+<li>w25qxx_fast_read_dual_io()&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#gac894f4650905cba10dd3a31284de6d5e">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__advance__driver.html#gac894f4650905cba10dd3a31284de6d5e">driver_w25qxx.h</a></li>
+<li>w25qxx_fast_read_dual_output()&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#ga7a19230ca3916816ea8fb7421483d293">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__advance__driver.html#ga7a19230ca3916816ea8fb7421483d293">driver_w25qxx.h</a></li>
+<li>w25qxx_fast_read_quad_io()&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#gab97a64bd3776874518f60381d921ae41">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__advance__driver.html#gab97a64bd3776874518f60381d921ae41">driver_w25qxx.h</a></li>
+<li>w25qxx_fast_read_quad_output()&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#gaf4bfafd1f80aa0316a4b1a15183dcd50">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__advance__driver.html#gaf4bfafd1f80aa0316a4b1a15183dcd50">driver_w25qxx.h</a></li>
+<li>w25qxx_get_address_mode()&#160;:&#160;<a class="el" href="group__w25qxx__basic__driver.html#ga3a52036a97b12fcbe2280b0901a80b90">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__basic__driver.html#ga3a52036a97b12fcbe2280b0901a80b90">driver_w25qxx.h</a></li>
+<li>w25qxx_get_dual_quad_spi()&#160;:&#160;<a class="el" href="group__w25qxx__basic__driver.html#gad4c9b8b0a2d0916c13567f9d7e494cf8">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__basic__driver.html#gad4c9b8b0a2d0916c13567f9d7e494cf8">driver_w25qxx.h</a></li>
+<li>w25qxx_get_interface()&#160;:&#160;<a class="el" href="group__w25qxx__basic__driver.html#ga86ef839d475f3926a0be46bbc18d4b45">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__basic__driver.html#ga86ef839d475f3926a0be46bbc18d4b45">driver_w25qxx.h</a></li>
+<li>w25qxx_get_jedec_id()&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#ga8a93ba14a032e10a27f1495fdcf56058">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__advance__driver.html#ga8a93ba14a032e10a27f1495fdcf56058">driver_w25qxx.h</a></li>
+<li>w25qxx_get_manufacturer_device_id()&#160;:&#160;<a class="el" href="group__w25qxx__basic__driver.html#ga921836a777b082ff4d0f322ccfda6b22">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__basic__driver.html#ga921836a777b082ff4d0f322ccfda6b22">driver_w25qxx.h</a></li>
+<li>w25qxx_get_manufacturer_device_id_dual_io()&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#ga1cd3aec1bdeabbaed5f049fbf83ceeb4">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__advance__driver.html#ga1cd3aec1bdeabbaed5f049fbf83ceeb4">driver_w25qxx.h</a></li>
+<li>w25qxx_get_manufacturer_device_id_quad_io()&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#ga61bd3ce40b76b6862c6a53e0e37a3455">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__advance__driver.html#ga61bd3ce40b76b6862c6a53e0e37a3455">driver_w25qxx.h</a></li>
+<li>w25qxx_get_sfdp()&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#ga244a91b9c0c32e899ca89e1943045624">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__advance__driver.html#ga244a91b9c0c32e899ca89e1943045624">driver_w25qxx.h</a></li>
+<li>w25qxx_get_status1()&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#gaa77d2b00b4fb9cf586f77ace827ea7c6">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__advance__driver.html#gaa77d2b00b4fb9cf586f77ace827ea7c6">driver_w25qxx.h</a></li>
+<li>w25qxx_get_status2()&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#gaa21237ecbd5951b8017799066e7db5d9">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__advance__driver.html#gaa21237ecbd5951b8017799066e7db5d9">driver_w25qxx.h</a></li>
+<li>w25qxx_get_status3()&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#ga99cf6a325a00921d4531004f0c1d75b1">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__advance__driver.html#ga99cf6a325a00921d4531004f0c1d75b1">driver_w25qxx.h</a></li>
+<li>w25qxx_get_type()&#160;:&#160;<a class="el" href="group__w25qxx__basic__driver.html#ga685379998dad173b6d9c0b0da270685c">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__basic__driver.html#ga685379998dad173b6d9c0b0da270685c">driver_w25qxx.h</a></li>
+<li>w25qxx_get_unique_id()&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#ga11af244389478de68a6777076ee82d69">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__advance__driver.html#ga11af244389478de68a6777076ee82d69">driver_w25qxx.h</a></li>
+<li>w25qxx_global_block_lock()&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#gab5579bc42bc07a7657848140888a817c">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__advance__driver.html#gab5579bc42bc07a7657848140888a817c">driver_w25qxx.h</a></li>
+<li>w25qxx_global_block_unlock()&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#ga6d62f7d14945cfde7cde7a0e9a4e3afb">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__advance__driver.html#ga6d62f7d14945cfde7cde7a0e9a4e3afb">driver_w25qxx.h</a></li>
+<li>w25qxx_individual_block_lock()&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#ga4f00c2c169cb7c3084841c6cd795e76b">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__advance__driver.html#ga4f00c2c169cb7c3084841c6cd795e76b">driver_w25qxx.h</a></li>
+<li>w25qxx_individual_block_unlock()&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#ga7f88cedf7619071b3235ba094915b2a7">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__advance__driver.html#ga7f88cedf7619071b3235ba094915b2a7">driver_w25qxx.h</a></li>
+<li>w25qxx_info()&#160;:&#160;<a class="el" href="group__w25qxx__basic__driver.html#ga996e2d3009432e7f8c1a5175c4438a57">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__basic__driver.html#ga996e2d3009432e7f8c1a5175c4438a57">driver_w25qxx.h</a></li>
+<li>w25qxx_init()&#160;:&#160;<a class="el" href="group__w25qxx__basic__driver.html#ga8e7a163b3d255b8c7fc035d0d60f2491">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__basic__driver.html#ga8e7a163b3d255b8c7fc035d0d60f2491">driver_w25qxx.h</a></li>
+<li>w25qxx_interface_debug_print()&#160;:&#160;<a class="el" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">driver_w25qxx_interface.h</a>, <a class="el" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">driver_w25qxx_interface_template.c</a></li>
+<li>w25qxx_interface_delay_ms()&#160;:&#160;<a class="el" href="group__w25qxx__interface__driver.html#ga964fa232abf98737cb98458eebfff82c">driver_w25qxx_interface.h</a>, <a class="el" href="group__w25qxx__interface__driver.html#ga964fa232abf98737cb98458eebfff82c">driver_w25qxx_interface_template.c</a></li>
+<li>w25qxx_interface_delay_us()&#160;:&#160;<a class="el" href="group__w25qxx__interface__driver.html#ga38e79039b913154c9dd1036ff52bb420">driver_w25qxx_interface.h</a>, <a class="el" href="group__w25qxx__interface__driver.html#ga38e79039b913154c9dd1036ff52bb420">driver_w25qxx_interface_template.c</a></li>
+<li>w25qxx_interface_spi_qspi_deinit()&#160;:&#160;<a class="el" href="group__w25qxx__interface__driver.html#ga091f3607fcdd47f9e5f94cf1397bd46a">driver_w25qxx_interface.h</a>, <a class="el" href="group__w25qxx__interface__driver.html#ga091f3607fcdd47f9e5f94cf1397bd46a">driver_w25qxx_interface_template.c</a></li>
+<li>w25qxx_interface_spi_qspi_init()&#160;:&#160;<a class="el" href="group__w25qxx__interface__driver.html#ga2bdc17a556f1c801a38656331f3bb7b6">driver_w25qxx_interface.h</a>, <a class="el" href="group__w25qxx__interface__driver.html#ga2bdc17a556f1c801a38656331f3bb7b6">driver_w25qxx_interface_template.c</a></li>
+<li>w25qxx_interface_spi_qspi_write_read()&#160;:&#160;<a class="el" href="group__w25qxx__interface__driver.html#ga3d76ea1f431978f6b55edfd0628c94cd">driver_w25qxx_interface.h</a>, <a class="el" href="group__w25qxx__interface__driver.html#ga3d76ea1f431978f6b55edfd0628c94cd">driver_w25qxx_interface_template.c</a></li>
+<li>w25qxx_octal_word_read_quad_io()&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#ga88a62ec42e86db821ff3f0d3ab541dbb">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__advance__driver.html#ga88a62ec42e86db821ff3f0d3ab541dbb">driver_w25qxx.h</a></li>
+<li>w25qxx_only_spi_read()&#160;:&#160;<a class="el" href="group__w25qxx__basic__driver.html#ga1e9ebf198137d23558dbf6470213c472">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__basic__driver.html#ga1e9ebf198137d23558dbf6470213c472">driver_w25qxx.h</a></li>
+<li>w25qxx_page_program()&#160;:&#160;<a class="el" href="group__w25qxx__basic__driver.html#ga6280e7e4ab26306436e2c210617a28b3">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__basic__driver.html#ga6280e7e4ab26306436e2c210617a28b3">driver_w25qxx.h</a></li>
+<li>w25qxx_page_program_quad_input()&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#ga1f80bbbaaa852eecfffb87737889363d">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__advance__driver.html#ga1f80bbbaaa852eecfffb87737889363d">driver_w25qxx.h</a></li>
+<li>w25qxx_power_down()&#160;:&#160;<a class="el" href="group__w25qxx__basic__driver.html#gae4effce67e36120325e3c7b245b90142">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__basic__driver.html#gae4effce67e36120325e3c7b245b90142">driver_w25qxx.h</a></li>
+<li>w25qxx_program_security_register()&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#ga4e9c059ff78866e478e835cb27a92899">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__advance__driver.html#ga4e9c059ff78866e478e835cb27a92899">driver_w25qxx.h</a></li>
+<li>w25qxx_read()&#160;:&#160;<a class="el" href="group__w25qxx__basic__driver.html#gae7479fc9ce911a52e3c5b6f1a615b879">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__basic__driver.html#gae7479fc9ce911a52e3c5b6f1a615b879">driver_w25qxx.h</a></li>
+<li>w25qxx_read_block_lock()&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#ga59e655ca78a175037ca810bbc8539a96">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__advance__driver.html#ga59e655ca78a175037ca810bbc8539a96">driver_w25qxx.h</a></li>
+<li>w25qxx_read_security_register()&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#ga4c65debc4947bd9a61e0073105164b9c">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__advance__driver.html#ga4c65debc4947bd9a61e0073105164b9c">driver_w25qxx.h</a></li>
+<li>w25qxx_read_test()&#160;:&#160;<a class="el" href="group__w25qxx__test__driver.html#ga4ce42ca34d33cd64cb823040780999af">driver_w25qxx_read_test.c</a>, <a class="el" href="group__w25qxx__test__driver.html#ga4ce42ca34d33cd64cb823040780999af">driver_w25qxx_read_test.h</a></li>
+<li>w25qxx_register_test()&#160;:&#160;<a class="el" href="group__w25qxx__test__driver.html#ga05d07036254d102ebea0d0b1e83862c8">driver_w25qxx_register_test.c</a>, <a class="el" href="group__w25qxx__test__driver.html#ga05d07036254d102ebea0d0b1e83862c8">driver_w25qxx_register_test.h</a></li>
+<li>w25qxx_release_power_down()&#160;:&#160;<a class="el" href="group__w25qxx__basic__driver.html#ga09c9b52877516a2ee4c080dc249e7331">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__basic__driver.html#ga09c9b52877516a2ee4c080dc249e7331">driver_w25qxx.h</a></li>
+<li>w25qxx_reset_device()&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#ga2abebfe2a8d9377eb88448ffca73f222">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__advance__driver.html#ga2abebfe2a8d9377eb88448ffca73f222">driver_w25qxx.h</a></li>
+<li>w25qxx_sector_erase_4k()&#160;:&#160;<a class="el" href="group__w25qxx__basic__driver.html#ga9a03c51b4c84655350c15fbfce0a6b40">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__basic__driver.html#ga9a03c51b4c84655350c15fbfce0a6b40">driver_w25qxx.h</a></li>
+<li>w25qxx_set_address_mode()&#160;:&#160;<a class="el" href="group__w25qxx__basic__driver.html#gad0e125eff304ce66fb3956d2c8c80656">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__basic__driver.html#gad0e125eff304ce66fb3956d2c8c80656">driver_w25qxx.h</a></li>
+<li>w25qxx_set_burst_with_wrap()&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#gac19c1d0f3fd48968ea2a93c1dbe3d75d">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__advance__driver.html#gac19c1d0f3fd48968ea2a93c1dbe3d75d">driver_w25qxx.h</a></li>
+<li>w25qxx_set_dual_quad_spi()&#160;:&#160;<a class="el" href="group__w25qxx__basic__driver.html#ga665139209b0abc386474a78d89cce6f2">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__basic__driver.html#ga665139209b0abc386474a78d89cce6f2">driver_w25qxx.h</a></li>
+<li>w25qxx_set_interface()&#160;:&#160;<a class="el" href="group__w25qxx__basic__driver.html#ga50a62003d566402d46ada2f272c41eb5">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__basic__driver.html#ga50a62003d566402d46ada2f272c41eb5">driver_w25qxx.h</a></li>
+<li>w25qxx_set_read_parameters()&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#ga9ad10781d888b32b43b9eba45d049624">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__advance__driver.html#ga9ad10781d888b32b43b9eba45d049624">driver_w25qxx.h</a></li>
+<li>w25qxx_set_status1()&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#ga246e0bb07c8bbb39731f17906779c012">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__advance__driver.html#ga246e0bb07c8bbb39731f17906779c012">driver_w25qxx.h</a></li>
+<li>w25qxx_set_status2()&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#gaab5f28e8930d50dbc2178e39bc9fa456">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__advance__driver.html#gaab5f28e8930d50dbc2178e39bc9fa456">driver_w25qxx.h</a></li>
+<li>w25qxx_set_status3()&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#gada897a6c6d6acb99f4dd4ff9b65ad8ee">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__advance__driver.html#gada897a6c6d6acb99f4dd4ff9b65ad8ee">driver_w25qxx.h</a></li>
+<li>w25qxx_set_type()&#160;:&#160;<a class="el" href="group__w25qxx__basic__driver.html#gaa57189cd4170b73f8b1300ca15e27de6">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__basic__driver.html#gaa57189cd4170b73f8b1300ca15e27de6">driver_w25qxx.h</a></li>
+<li>w25qxx_word_read_quad_io()&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#gad97d7e410dd77c49334097a0fd332660">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__advance__driver.html#gad97d7e410dd77c49334097a0fd332660">driver_w25qxx.h</a></li>
+<li>w25qxx_write()&#160;:&#160;<a class="el" href="group__w25qxx__basic__driver.html#gaaee8264d840e51460821cb6e609338ee">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__basic__driver.html#gaaee8264d840e51460821cb6e609338ee">driver_w25qxx.h</a></li>
+<li>w25qxx_write_read_reg()&#160;:&#160;<a class="el" href="group__w25qxx__extern__driver.html#ga9623a3bec148b148498480518a66cb2b">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__extern__driver.html#ga9623a3bec148b148498480518a66cb2b">driver_w25qxx.h</a></li>
 </ul>
 </div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
-    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
+    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/globals_m.html b/doc/html/globals_m.html
index f28da87..a7bed39 100644
--- a/doc/html/globals_m.html
+++ b/doc/html/globals_m.html
@@ -1,9 +1,9 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.8"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>LibDriver W25QXX: Globals</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -23,11 +23,10 @@
 <div id="titlearea">
 <table cellspacing="0" cellpadding="0">
  <tbody>
- <tr style="height: 56px;">
+ <tr id="projectrow">
   <td id="projectlogo"><img alt="Logo" src="doxygen.png"/></td>
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">LibDriver W25QXX
-   &#160;<span id="projectnumber">1.0.0</span>
+  <td id="projectalign">
+   <div id="projectname">LibDriver W25QXX<span id="projectnumber">&#160;1.0.0</span>
    </div>
    <div id="projectbrief">W25QXX full function driver</div>
   </td>
@@ -36,21 +35,22 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.8 -->
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search/",'.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
 <script type="text/javascript" src="menu.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(function() {
   initMenu('',true,false,'search.php','Search');
   $(document).ready(function() { init_search(); });
 });
-/* @license-end */</script>
+/* @license-end */
+</script>
 <div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
@@ -64,7 +64,7 @@
   </div>
 </div>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(document).ready(function(){initNavTree('globals_m.html',''); initResizable(); });
 /* @license-end */
 </script>
@@ -78,28 +78,31 @@
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
 </div>
 
 <div class="contents">
 <div class="textblock">Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:</div>
 
-<h3><a id="index_m"></a>- m -</h3><ul>
-<li>MANUFACTURER_NAME
-: <a class="el" href="driver__w25qxx_8c.html#aaa2b8f5b105c3019df0cb346f472e803">driver_w25qxx.c</a>
-</li>
-<li>MAX_CURRENT
-: <a class="el" href="driver__w25qxx_8c.html#a2989837a37d6d63b59c6dd541b785435">driver_w25qxx.c</a>
-</li>
+<h3><a id="index_m" name="index_m"></a>- m -</h3><ul>
+<li>MANUFACTURER_NAME&#160;:&#160;<a class="el" href="driver__w25qxx_8c.html#aaa2b8f5b105c3019df0cb346f472e803">driver_w25qxx.c</a></li>
+<li>MAX_CURRENT&#160;:&#160;<a class="el" href="driver__w25qxx_8c.html#a2989837a37d6d63b59c6dd541b785435">driver_w25qxx.c</a></li>
 </ul>
 </div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
-    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
+    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/globals_s.html b/doc/html/globals_s.html
index 4b4b0d3..15dcdf6 100644
--- a/doc/html/globals_s.html
+++ b/doc/html/globals_s.html
@@ -1,9 +1,9 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.8"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>LibDriver W25QXX: Globals</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -23,11 +23,10 @@
 <div id="titlearea">
 <table cellspacing="0" cellpadding="0">
  <tbody>
- <tr style="height: 56px;">
+ <tr id="projectrow">
   <td id="projectlogo"><img alt="Logo" src="doxygen.png"/></td>
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">LibDriver W25QXX
-   &#160;<span id="projectnumber">1.0.0</span>
+  <td id="projectalign">
+   <div id="projectname">LibDriver W25QXX<span id="projectnumber">&#160;1.0.0</span>
    </div>
    <div id="projectbrief">W25QXX full function driver</div>
   </td>
@@ -36,21 +35,22 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.8 -->
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search/",'.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
 <script type="text/javascript" src="menu.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(function() {
   initMenu('',true,false,'search.php','Search');
   $(document).ready(function() { init_search(); });
 });
-/* @license-end */</script>
+/* @license-end */
+</script>
 <div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
@@ -64,7 +64,7 @@
   </div>
 </div>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(document).ready(function(){initNavTree('globals_s.html',''); initResizable(); });
 /* @license-end */
 </script>
@@ -78,28 +78,31 @@
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
 </div>
 
 <div class="contents">
 <div class="textblock">Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:</div>
 
-<h3><a id="index_s"></a>- s -</h3><ul>
-<li>SUPPLY_VOLTAGE_MAX
-: <a class="el" href="driver__w25qxx_8c.html#a68eba8b601afe11f1b871d944976c035">driver_w25qxx.c</a>
-</li>
-<li>SUPPLY_VOLTAGE_MIN
-: <a class="el" href="driver__w25qxx_8c.html#aac8d8cbd899667d609787ef4cf37054d">driver_w25qxx.c</a>
-</li>
+<h3><a id="index_s" name="index_s"></a>- s -</h3><ul>
+<li>SUPPLY_VOLTAGE_MAX&#160;:&#160;<a class="el" href="driver__w25qxx_8c.html#a68eba8b601afe11f1b871d944976c035">driver_w25qxx.c</a></li>
+<li>SUPPLY_VOLTAGE_MIN&#160;:&#160;<a class="el" href="driver__w25qxx_8c.html#aac8d8cbd899667d609787ef4cf37054d">driver_w25qxx.c</a></li>
 </ul>
 </div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
-    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
+    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/globals_t.html b/doc/html/globals_t.html
index cd61f9d..ae3b68a 100644
--- a/doc/html/globals_t.html
+++ b/doc/html/globals_t.html
@@ -1,9 +1,9 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.8"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>LibDriver W25QXX: Globals</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -23,11 +23,10 @@
 <div id="titlearea">
 <table cellspacing="0" cellpadding="0">
  <tbody>
- <tr style="height: 56px;">
+ <tr id="projectrow">
   <td id="projectlogo"><img alt="Logo" src="doxygen.png"/></td>
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">LibDriver W25QXX
-   &#160;<span id="projectnumber">1.0.0</span>
+  <td id="projectalign">
+   <div id="projectname">LibDriver W25QXX<span id="projectnumber">&#160;1.0.0</span>
    </div>
    <div id="projectbrief">W25QXX full function driver</div>
   </td>
@@ -36,21 +35,22 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.8 -->
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search/",'.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
 <script type="text/javascript" src="menu.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(function() {
   initMenu('',true,false,'search.php','Search');
   $(document).ready(function() { init_search(); });
 });
-/* @license-end */</script>
+/* @license-end */
+</script>
 <div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
@@ -64,7 +64,7 @@
   </div>
 </div>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(document).ready(function(){initNavTree('globals_t.html',''); initResizable(); });
 /* @license-end */
 </script>
@@ -78,28 +78,31 @@
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
 </div>
 
 <div class="contents">
 <div class="textblock">Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:</div>
 
-<h3><a id="index_t"></a>- t -</h3><ul>
-<li>TEMPERATURE_MAX
-: <a class="el" href="driver__w25qxx_8c.html#a90c0b20d54005712fcc8cb01281360e9">driver_w25qxx.c</a>
-</li>
-<li>TEMPERATURE_MIN
-: <a class="el" href="driver__w25qxx_8c.html#aab353db5bf4eb787f86a2080f609a551">driver_w25qxx.c</a>
-</li>
+<h3><a id="index_t" name="index_t"></a>- t -</h3><ul>
+<li>TEMPERATURE_MAX&#160;:&#160;<a class="el" href="driver__w25qxx_8c.html#a90c0b20d54005712fcc8cb01281360e9">driver_w25qxx.c</a></li>
+<li>TEMPERATURE_MIN&#160;:&#160;<a class="el" href="driver__w25qxx_8c.html#aab353db5bf4eb787f86a2080f609a551">driver_w25qxx.c</a></li>
 </ul>
 </div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
-    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
+    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/globals_type.html b/doc/html/globals_type.html
index a5d5c7f..e82f2c2 100644
--- a/doc/html/globals_type.html
+++ b/doc/html/globals_type.html
@@ -1,9 +1,9 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.8"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>LibDriver W25QXX: Globals</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -23,11 +23,10 @@
 <div id="titlearea">
 <table cellspacing="0" cellpadding="0">
  <tbody>
- <tr style="height: 56px;">
+ <tr id="projectrow">
   <td id="projectlogo"><img alt="Logo" src="doxygen.png"/></td>
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">LibDriver W25QXX
-   &#160;<span id="projectnumber">1.0.0</span>
+  <td id="projectalign">
+   <div id="projectname">LibDriver W25QXX<span id="projectnumber">&#160;1.0.0</span>
    </div>
    <div id="projectbrief">W25QXX full function driver</div>
   </td>
@@ -36,21 +35,22 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.8 -->
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search/",'.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
 <script type="text/javascript" src="menu.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(function() {
   initMenu('',true,false,'search.php','Search');
   $(document).ready(function() { init_search(); });
 });
-/* @license-end */</script>
+/* @license-end */
+</script>
 <div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
@@ -64,7 +64,7 @@
   </div>
 </div>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(document).ready(function(){initNavTree('globals_type.html',''); initResizable(); });
 /* @license-end */
 </script>
@@ -78,26 +78,29 @@
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
 </div>
 
 <div class="contents">
-&#160;<ul>
-<li>w25qxx_handle_t
-: <a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_info_t
-: <a class="el" href="group__w25qxx__basic__driver.html#ga601d841ddd0ff8ad3ab52e07c679ef19">driver_w25qxx.h</a>
-</li>
+<div class="textblock">Here is a list of all typedefs with links to the files they belong to:</div><ul>
+<li>w25qxx_handle_t&#160;:&#160;<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">driver_w25qxx.h</a></li>
+<li>w25qxx_info_t&#160;:&#160;<a class="el" href="group__w25qxx__basic__driver.html#ga601d841ddd0ff8ad3ab52e07c679ef19">driver_w25qxx.h</a></li>
 </ul>
 </div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
-    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
+    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/globals_w.html b/doc/html/globals_w.html
index 4e1a211..795e5d8 100644
--- a/doc/html/globals_w.html
+++ b/doc/html/globals_w.html
@@ -1,9 +1,9 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.8"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>LibDriver W25QXX: Globals</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -23,11 +23,10 @@
 <div id="titlearea">
 <table cellspacing="0" cellpadding="0">
  <tbody>
- <tr style="height: 56px;">
+ <tr id="projectrow">
   <td id="projectlogo"><img alt="Logo" src="doxygen.png"/></td>
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">LibDriver W25QXX
-   &#160;<span id="projectnumber">1.0.0</span>
+  <td id="projectalign">
+   <div id="projectname">LibDriver W25QXX<span id="projectnumber">&#160;1.0.0</span>
    </div>
    <div id="projectbrief">W25QXX full function driver</div>
   </td>
@@ -36,21 +35,22 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.8 -->
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search/",'.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
 <script type="text/javascript" src="menu.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(function() {
   initMenu('',true,false,'search.php','Search');
   $(document).ready(function() { init_search(); });
 });
-/* @license-end */</script>
+/* @license-end */
+</script>
 <div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
@@ -64,7 +64,7 @@
   </div>
 </div>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(document).ready(function(){initNavTree('globals_w.html',''); initResizable(); });
 /* @license-end */
 </script>
@@ -78,828 +78,258 @@
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
 </div>
 
 <div class="contents">
 <div class="textblock">Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:</div>
 
-<h3><a id="index_w"></a>- w -</h3><ul>
-<li>W25Q128
-: <a class="el" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a75afcbe71906d3884f4fcc119c1cabd5">driver_w25qxx.h</a>
-</li>
-<li>W25Q16
-: <a class="el" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a66acb81a2d520a7d92ce1d37210c6435">driver_w25qxx.h</a>
-</li>
-<li>W25Q256
-: <a class="el" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">driver_w25qxx.h</a>
-</li>
-<li>W25Q32
-: <a class="el" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a4fdad551be6485441db5951f196db7cb">driver_w25qxx.h</a>
-</li>
-<li>W25Q64
-: <a class="el" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a3ea98b2b3e06afa29441c51548bbb16e">driver_w25qxx.h</a>
-</li>
-<li>W25Q80
-: <a class="el" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a1ad4f72437de5f26cb7b212d4d91e7c2">driver_w25qxx.h</a>
-</li>
-<li>W25QXX_ADDRESS_MODE_3_BYTE
-: <a class="el" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">driver_w25qxx.h</a>
-</li>
-<li>W25QXX_ADDRESS_MODE_4_BYTE
-: <a class="el" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_address_mode_t
-: <a class="el" href="group__w25qxx__basic__driver.html#gaa4c45f146d1ade8a2da8e751818fa4a2">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_advance_block_erase_32k()
-: <a class="el" href="group__w25qxx__example__driver.html#gaee04edb9e97785e423dffe14a1cad780">driver_w25qxx_advance.c</a>
-, <a class="el" href="group__w25qxx__example__driver.html#gaee04edb9e97785e423dffe14a1cad780">driver_w25qxx_advance.h</a>
-</li>
-<li>w25qxx_advance_block_erase_64k()
-: <a class="el" href="group__w25qxx__example__driver.html#gae7cba4e0b22a1043fe304e46148fa13c">driver_w25qxx_advance.c</a>
-, <a class="el" href="group__w25qxx__example__driver.html#gae7cba4e0b22a1043fe304e46148fa13c">driver_w25qxx_advance.h</a>
-</li>
-<li>w25qxx_advance_chip_erase()
-: <a class="el" href="group__w25qxx__example__driver.html#ga15cb243f227ef8d897ef3208b622bded">driver_w25qxx_advance.c</a>
-, <a class="el" href="group__w25qxx__example__driver.html#ga15cb243f227ef8d897ef3208b622bded">driver_w25qxx_advance.h</a>
-</li>
-<li>w25qxx_advance_deinit()
-: <a class="el" href="group__w25qxx__example__driver.html#gaf390bbb2c4140f49d25822d963ead722">driver_w25qxx_advance.c</a>
-, <a class="el" href="group__w25qxx__example__driver.html#gaf390bbb2c4140f49d25822d963ead722">driver_w25qxx_advance.h</a>
-</li>
-<li>w25qxx_advance_fast_read()
-: <a class="el" href="group__w25qxx__example__driver.html#ga7ade25a387b9d03ddecefd86fb328389">driver_w25qxx_advance.c</a>
-, <a class="el" href="group__w25qxx__example__driver.html#ga7ade25a387b9d03ddecefd86fb328389">driver_w25qxx_advance.h</a>
-</li>
-<li>w25qxx_advance_get_get_jedec_id()
-: <a class="el" href="group__w25qxx__example__driver.html#gacc7435a39b61c44f0ce16690d5da896b">driver_w25qxx_advance.c</a>
-, <a class="el" href="group__w25qxx__example__driver.html#gacc7435a39b61c44f0ce16690d5da896b">driver_w25qxx_advance.h</a>
-</li>
-<li>w25qxx_advance_get_id()
-: <a class="el" href="group__w25qxx__example__driver.html#ga0f49d960f8b6c6498ab293b369ffc389">driver_w25qxx_advance.c</a>
-, <a class="el" href="group__w25qxx__example__driver.html#ga0f49d960f8b6c6498ab293b369ffc389">driver_w25qxx_advance.h</a>
-</li>
-<li>w25qxx_advance_get_status1()
-: <a class="el" href="group__w25qxx__example__driver.html#ga4c1be6979b4dc878d07ec86b8624c9d2">driver_w25qxx_advance.c</a>
-, <a class="el" href="group__w25qxx__example__driver.html#ga4c1be6979b4dc878d07ec86b8624c9d2">driver_w25qxx_advance.h</a>
-</li>
-<li>w25qxx_advance_get_status2()
-: <a class="el" href="group__w25qxx__example__driver.html#gaf4736fff906c2f0c1dbed26b20847052">driver_w25qxx_advance.c</a>
-, <a class="el" href="group__w25qxx__example__driver.html#gaf4736fff906c2f0c1dbed26b20847052">driver_w25qxx_advance.h</a>
-</li>
-<li>w25qxx_advance_get_status3()
-: <a class="el" href="group__w25qxx__example__driver.html#ga31bcd3d2cc68d2fc589685b5087bd8b3">driver_w25qxx_advance.c</a>
-, <a class="el" href="group__w25qxx__example__driver.html#ga31bcd3d2cc68d2fc589685b5087bd8b3">driver_w25qxx_advance.h</a>
-</li>
-<li>w25qxx_advance_global_block_lock()
-: <a class="el" href="group__w25qxx__example__driver.html#ga2cbcc018dc11a870d2e0fc3a8946b1d8">driver_w25qxx_advance.c</a>
-, <a class="el" href="group__w25qxx__example__driver.html#ga2cbcc018dc11a870d2e0fc3a8946b1d8">driver_w25qxx_advance.h</a>
-</li>
-<li>w25qxx_advance_global_block_unlock()
-: <a class="el" href="group__w25qxx__example__driver.html#ga67c70da103511d1cff9274e61a08ce56">driver_w25qxx_advance.c</a>
-, <a class="el" href="group__w25qxx__example__driver.html#ga67c70da103511d1cff9274e61a08ce56">driver_w25qxx_advance.h</a>
-</li>
-<li>w25qxx_advance_individual_block_lock()
-: <a class="el" href="group__w25qxx__example__driver.html#gaa7af99e92b3e81f5b202575b55dc3a7c">driver_w25qxx_advance.c</a>
-, <a class="el" href="group__w25qxx__example__driver.html#gaa7af99e92b3e81f5b202575b55dc3a7c">driver_w25qxx_advance.h</a>
-</li>
-<li>w25qxx_advance_individual_block_unlock()
-: <a class="el" href="group__w25qxx__example__driver.html#ga66726fc451c7804e8fec6eb46a6a77d6">driver_w25qxx_advance.c</a>
-, <a class="el" href="group__w25qxx__example__driver.html#ga66726fc451c7804e8fec6eb46a6a77d6">driver_w25qxx_advance.h</a>
-</li>
-<li>w25qxx_advance_init()
-: <a class="el" href="group__w25qxx__example__driver.html#ga413b420bc199d09ce5cafee4a4debb28">driver_w25qxx_advance.c</a>
-, <a class="el" href="group__w25qxx__example__driver.html#ga413b420bc199d09ce5cafee4a4debb28">driver_w25qxx_advance.h</a>
-</li>
-<li>w25qxx_advance_only_qspi_set_read_parameters()
-: <a class="el" href="group__w25qxx__example__driver.html#gace2a5b7acd9798cfcaa2b5eb2f18e1d1">driver_w25qxx_advance.c</a>
-, <a class="el" href="group__w25qxx__example__driver.html#gace2a5b7acd9798cfcaa2b5eb2f18e1d1">driver_w25qxx_advance.h</a>
-</li>
-<li>w25qxx_advance_only_spi_fast_read_dual_io()
-: <a class="el" href="group__w25qxx__example__driver.html#ga4bbaf1a989fae25d16d07edb1e38ca4f">driver_w25qxx_advance.c</a>
-, <a class="el" href="group__w25qxx__example__driver.html#ga4bbaf1a989fae25d16d07edb1e38ca4f">driver_w25qxx_advance.h</a>
-</li>
-<li>w25qxx_advance_only_spi_fast_read_dual_output()
-: <a class="el" href="group__w25qxx__example__driver.html#ga364d891407cf323d3686d36ad6357604">driver_w25qxx_advance.c</a>
-, <a class="el" href="group__w25qxx__example__driver.html#ga364d891407cf323d3686d36ad6357604">driver_w25qxx_advance.h</a>
-</li>
-<li>w25qxx_advance_only_spi_fast_read_quad_io()
-: <a class="el" href="group__w25qxx__example__driver.html#ga395add1fa33f4f70d0ba52b38842dbdb">driver_w25qxx_advance.c</a>
-, <a class="el" href="group__w25qxx__example__driver.html#ga395add1fa33f4f70d0ba52b38842dbdb">driver_w25qxx_advance.h</a>
-</li>
-<li>w25qxx_advance_only_spi_fast_read_quad_output()
-: <a class="el" href="group__w25qxx__example__driver.html#gaf5f978c432de7d6adaf41cd256724a01">driver_w25qxx_advance.c</a>
-, <a class="el" href="group__w25qxx__example__driver.html#gaf5f978c432de7d6adaf41cd256724a01">driver_w25qxx_advance.h</a>
-</li>
-<li>w25qxx_advance_only_spi_get_manufacturer_device_id_dual_io()
-: <a class="el" href="group__w25qxx__example__driver.html#gac0d9e08a37ee37563c8dbb501608a668">driver_w25qxx_advance.c</a>
-, <a class="el" href="group__w25qxx__example__driver.html#gac0d9e08a37ee37563c8dbb501608a668">driver_w25qxx_advance.h</a>
-</li>
-<li>w25qxx_advance_only_spi_get_manufacturer_device_id_quad_io()
-: <a class="el" href="group__w25qxx__example__driver.html#ga6142b5a1e8602e2990dec34015812615">driver_w25qxx_advance.c</a>
-, <a class="el" href="group__w25qxx__example__driver.html#ga6142b5a1e8602e2990dec34015812615">driver_w25qxx_advance.h</a>
-</li>
-<li>w25qxx_advance_only_spi_get_sfdp()
-: <a class="el" href="group__w25qxx__example__driver.html#ga9b1854e0ae52f57523bc2fa7cc0656df">driver_w25qxx_advance.c</a>
-, <a class="el" href="group__w25qxx__example__driver.html#ga9b1854e0ae52f57523bc2fa7cc0656df">driver_w25qxx_advance.h</a>
-</li>
-<li>w25qxx_advance_only_spi_get_unique_id()
-: <a class="el" href="group__w25qxx__example__driver.html#ga374d35b73fa61d5f7464c3effdae1d57">driver_w25qxx_advance.c</a>
-, <a class="el" href="group__w25qxx__example__driver.html#ga374d35b73fa61d5f7464c3effdae1d57">driver_w25qxx_advance.h</a>
-</li>
-<li>w25qxx_advance_only_spi_octal_word_read_quad_io()
-: <a class="el" href="group__w25qxx__example__driver.html#ga825a567c535236d7d18ffccf07df59e9">driver_w25qxx_advance.c</a>
-, <a class="el" href="group__w25qxx__example__driver.html#ga825a567c535236d7d18ffccf07df59e9">driver_w25qxx_advance.h</a>
-</li>
-<li>w25qxx_advance_only_spi_page_program_quad_input()
-: <a class="el" href="group__w25qxx__example__driver.html#gad243655eb738e44c50e6079c983fd782">driver_w25qxx_advance.c</a>
-, <a class="el" href="group__w25qxx__example__driver.html#gad243655eb738e44c50e6079c983fd782">driver_w25qxx_advance.h</a>
-</li>
-<li>w25qxx_advance_only_spi_read()
-: <a class="el" href="group__w25qxx__example__driver.html#gac1c7f320706dd6d6d937da75b8a4da93">driver_w25qxx_advance.c</a>
-, <a class="el" href="group__w25qxx__example__driver.html#gac1c7f320706dd6d6d937da75b8a4da93">driver_w25qxx_advance.h</a>
-</li>
-<li>w25qxx_advance_only_spi_read_security_register()
-: <a class="el" href="group__w25qxx__example__driver.html#ga02652a58ee418b432cf77505809d7d42">driver_w25qxx_advance.c</a>
-, <a class="el" href="group__w25qxx__example__driver.html#ga02652a58ee418b432cf77505809d7d42">driver_w25qxx_advance.h</a>
-</li>
-<li>w25qxx_advance_only_spi_set_burst_with_wrap()
-: <a class="el" href="group__w25qxx__example__driver.html#ga16411577fcb794f7485912f5db1bdde9">driver_w25qxx_advance.c</a>
-, <a class="el" href="group__w25qxx__example__driver.html#ga16411577fcb794f7485912f5db1bdde9">driver_w25qxx_advance.h</a>
-</li>
-<li>w25qxx_advance_only_spi_word_read_quad_io()
-: <a class="el" href="group__w25qxx__example__driver.html#gaca6b4c6ea32dd96a4ae8714e2862d67a">driver_w25qxx_advance.c</a>
-, <a class="el" href="group__w25qxx__example__driver.html#gaca6b4c6ea32dd96a4ae8714e2862d67a">driver_w25qxx_advance.h</a>
-</li>
-<li>w25qxx_advance_only_spi_write_security_register()
-: <a class="el" href="group__w25qxx__example__driver.html#gaa6c5f97106e769ba071973cc2e782ad4">driver_w25qxx_advance.c</a>
-, <a class="el" href="group__w25qxx__example__driver.html#gaa6c5f97106e769ba071973cc2e782ad4">driver_w25qxx_advance.h</a>
-</li>
-<li>w25qxx_advance_page_program()
-: <a class="el" href="group__w25qxx__example__driver.html#ga39ff13988a3d451231cec3260c13a4cd">driver_w25qxx_advance.c</a>
-, <a class="el" href="group__w25qxx__example__driver.html#ga39ff13988a3d451231cec3260c13a4cd">driver_w25qxx_advance.h</a>
-</li>
-<li>w25qxx_advance_power_down()
-: <a class="el" href="group__w25qxx__example__driver.html#ga5599de31797633ae75a63bcd5a8f4736">driver_w25qxx_advance.c</a>
-, <a class="el" href="group__w25qxx__example__driver.html#ga5599de31797633ae75a63bcd5a8f4736">driver_w25qxx_advance.h</a>
-</li>
-<li>w25qxx_advance_read()
-: <a class="el" href="group__w25qxx__example__driver.html#ga013a389763200b54daaa345adf9329dc">driver_w25qxx_advance.c</a>
-, <a class="el" href="group__w25qxx__example__driver.html#ga013a389763200b54daaa345adf9329dc">driver_w25qxx_advance.h</a>
-</li>
-<li>w25qxx_advance_read_block_lock()
-: <a class="el" href="group__w25qxx__example__driver.html#gac1773fe914a01825ca28346205601036">driver_w25qxx_advance.c</a>
-, <a class="el" href="group__w25qxx__example__driver.html#gac1773fe914a01825ca28346205601036">driver_w25qxx_advance.h</a>
-</li>
-<li>w25qxx_advance_reset()
-: <a class="el" href="group__w25qxx__example__driver.html#ga0f65053ad28443f19ed73dbc3412b5b2">driver_w25qxx_advance.c</a>
-, <a class="el" href="group__w25qxx__example__driver.html#ga0f65053ad28443f19ed73dbc3412b5b2">driver_w25qxx_advance.h</a>
-</li>
-<li>w25qxx_advance_sector_erase_4k()
-: <a class="el" href="group__w25qxx__example__driver.html#ga9325acc424c95624f15e11631082201d">driver_w25qxx_advance.c</a>
-, <a class="el" href="group__w25qxx__example__driver.html#ga9325acc424c95624f15e11631082201d">driver_w25qxx_advance.h</a>
-</li>
-<li>w25qxx_advance_set_status1()
-: <a class="el" href="group__w25qxx__example__driver.html#ga5e4938b4575c417ae22fa82079459b1a">driver_w25qxx_advance.c</a>
-, <a class="el" href="group__w25qxx__example__driver.html#ga5e4938b4575c417ae22fa82079459b1a">driver_w25qxx_advance.h</a>
-</li>
-<li>w25qxx_advance_set_status2()
-: <a class="el" href="group__w25qxx__example__driver.html#ga9bc0e696b700d66f15b3605e10d33718">driver_w25qxx_advance.c</a>
-, <a class="el" href="group__w25qxx__example__driver.html#ga9bc0e696b700d66f15b3605e10d33718">driver_w25qxx_advance.h</a>
-</li>
-<li>w25qxx_advance_set_status3()
-: <a class="el" href="group__w25qxx__example__driver.html#gab5c990ebd4874137b7d23f2b896d4601">driver_w25qxx_advance.c</a>
-, <a class="el" href="group__w25qxx__example__driver.html#gab5c990ebd4874137b7d23f2b896d4601">driver_w25qxx_advance.h</a>
-</li>
-<li>w25qxx_advance_wake_up()
-: <a class="el" href="group__w25qxx__example__driver.html#ga8a57e2d056d452abc14b0a08d4223251">driver_w25qxx_advance.c</a>
-, <a class="el" href="group__w25qxx__example__driver.html#ga8a57e2d056d452abc14b0a08d4223251">driver_w25qxx_advance.h</a>
-</li>
-<li>w25qxx_advance_write()
-: <a class="el" href="group__w25qxx__example__driver.html#ga63f4e1dce2ef7c7de56461524fd22d04">driver_w25qxx_advance.c</a>
-, <a class="el" href="group__w25qxx__example__driver.html#ga63f4e1dce2ef7c7de56461524fd22d04">driver_w25qxx_advance.h</a>
-</li>
-<li>w25qxx_basic_chip_erase()
-: <a class="el" href="group__w25qxx__example__driver.html#gaf78e9f136e29b826c1a2b337b8451d6d">driver_w25qxx_basic.c</a>
-, <a class="el" href="group__w25qxx__example__driver.html#gaf78e9f136e29b826c1a2b337b8451d6d">driver_w25qxx_basic.h</a>
-</li>
-<li>w25qxx_basic_deinit()
-: <a class="el" href="group__w25qxx__example__driver.html#gaeb167c2924a3490e9a8d11e0c57d2dc0">driver_w25qxx_basic.c</a>
-, <a class="el" href="group__w25qxx__example__driver.html#gaeb167c2924a3490e9a8d11e0c57d2dc0">driver_w25qxx_basic.h</a>
-</li>
-<li>w25qxx_basic_get_id()
-: <a class="el" href="group__w25qxx__example__driver.html#gacdda3af55c024b55fc9939aa23650356">driver_w25qxx_basic.c</a>
-, <a class="el" href="group__w25qxx__example__driver.html#gacdda3af55c024b55fc9939aa23650356">driver_w25qxx_basic.h</a>
-</li>
-<li>w25qxx_basic_init()
-: <a class="el" href="group__w25qxx__example__driver.html#ga1e20768311dfdf33c77b442fa874b61a">driver_w25qxx_basic.c</a>
-, <a class="el" href="group__w25qxx__example__driver.html#ga1e20768311dfdf33c77b442fa874b61a">driver_w25qxx_basic.h</a>
-</li>
-<li>w25qxx_basic_power_down()
-: <a class="el" href="group__w25qxx__example__driver.html#ga572c9f7a0bf2e7ab43dc078121162ec3">driver_w25qxx_basic.c</a>
-, <a class="el" href="group__w25qxx__example__driver.html#ga572c9f7a0bf2e7ab43dc078121162ec3">driver_w25qxx_basic.h</a>
-</li>
-<li>w25qxx_basic_read()
-: <a class="el" href="group__w25qxx__example__driver.html#ga143fa1f19a792142339f3d4e9ce078d0">driver_w25qxx_basic.c</a>
-, <a class="el" href="group__w25qxx__example__driver.html#ga143fa1f19a792142339f3d4e9ce078d0">driver_w25qxx_basic.h</a>
-</li>
-<li>w25qxx_basic_wake_up()
-: <a class="el" href="group__w25qxx__example__driver.html#ga02914409a9db38f35bc89d9fc4d96a17">driver_w25qxx_basic.c</a>
-, <a class="el" href="group__w25qxx__example__driver.html#ga02914409a9db38f35bc89d9fc4d96a17">driver_w25qxx_basic.h</a>
-</li>
-<li>w25qxx_basic_write()
-: <a class="el" href="group__w25qxx__example__driver.html#ga5cf24fc78e1b45e845d02ec9133f46ab">driver_w25qxx_basic.c</a>
-, <a class="el" href="group__w25qxx__example__driver.html#ga5cf24fc78e1b45e845d02ec9133f46ab">driver_w25qxx_basic.h</a>
-</li>
-<li>w25qxx_block_erase_32k()
-: <a class="el" href="group__w25qxx__basic__driver.html#ga39c8fb382e8c3e4d57232dfa79af781c">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__basic__driver.html#ga39c8fb382e8c3e4d57232dfa79af781c">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_block_erase_64k()
-: <a class="el" href="group__w25qxx__basic__driver.html#gaf53bc5f6073482b9b74efd417ec7ac83">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__basic__driver.html#gaf53bc5f6073482b9b74efd417ec7ac83">driver_w25qxx.h</a>
-</li>
-<li>W25QXX_BOOL_FALSE
-: <a class="el" href="group__w25qxx__basic__driver.html#ggafb2690946f5baf4be6f3a63dde5491fba02afbdc2c6c3d761cd31ac39c857ee9a">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_bool_t
-: <a class="el" href="group__w25qxx__basic__driver.html#gafb2690946f5baf4be6f3a63dde5491fb">driver_w25qxx.h</a>
-</li>
-<li>W25QXX_BOOL_TRUE
-: <a class="el" href="group__w25qxx__basic__driver.html#ggafb2690946f5baf4be6f3a63dde5491fbae2a935d12b0b1bc9fc321246ee0e0df8">driver_w25qxx.h</a>
-</li>
-<li>W25QXX_BURST_WRAP_16_BYTE
-: <a class="el" href="group__w25qxx__advance__driver.html#gga94bbae2bf8906903e8dc2a28c490723dafec1eb230b49fbda6ffcc1eeda64179a">driver_w25qxx.h</a>
-</li>
-<li>W25QXX_BURST_WRAP_32_BYTE
-: <a class="el" href="group__w25qxx__advance__driver.html#gga94bbae2bf8906903e8dc2a28c490723dae2ac810153f9515a145773c34409b995">driver_w25qxx.h</a>
-</li>
-<li>W25QXX_BURST_WRAP_64_BYTE
-: <a class="el" href="group__w25qxx__advance__driver.html#gga94bbae2bf8906903e8dc2a28c490723da2a3afd7924b00cf74abe83f5216c8915">driver_w25qxx.h</a>
-</li>
-<li>W25QXX_BURST_WRAP_8_BYTE
-: <a class="el" href="group__w25qxx__advance__driver.html#gga94bbae2bf8906903e8dc2a28c490723da35edf6c31d0fe1771ab79669d13b7af8">driver_w25qxx.h</a>
-</li>
-<li>W25QXX_BURST_WRAP_NONE
-: <a class="el" href="group__w25qxx__advance__driver.html#gga94bbae2bf8906903e8dc2a28c490723dae39a7ea65512a56d40aad2990d55815d">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_burst_wrap_t
-: <a class="el" href="group__w25qxx__advance__driver.html#ga94bbae2bf8906903e8dc2a28c490723d">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_chip_erase()
-: <a class="el" href="group__w25qxx__basic__driver.html#ga0862833b36831f92684980b2e21f2e39">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__basic__driver.html#ga0862833b36831f92684980b2e21f2e39">driver_w25qxx.h</a>
-</li>
-<li>W25QXX_COMMAND_BLOCK_ERASE_32K
-: <a class="el" href="driver__w25qxx_8c.html#a8bfb4e869985f5fa21ea7d1d262f90ad">driver_w25qxx.c</a>
-</li>
-<li>W25QXX_COMMAND_BLOCK_ERASE_64K
-: <a class="el" href="driver__w25qxx_8c.html#a4c5a1ed46f4d662a61bc06573ab548a0">driver_w25qxx.c</a>
-</li>
-<li>W25QXX_COMMAND_CHIP_ERASE
-: <a class="el" href="driver__w25qxx_8c.html#a63ec9ecd709fcb69107756f253616a6e">driver_w25qxx.c</a>
-</li>
-<li>W25QXX_COMMAND_DEVICE_ID_DUAL_IO
-: <a class="el" href="driver__w25qxx_8c.html#a374c09f79cc61a3e7ac374bca5122e25">driver_w25qxx.c</a>
-</li>
-<li>W25QXX_COMMAND_DEVICE_ID_QUAD_IO
-: <a class="el" href="driver__w25qxx_8c.html#a7573bc250d850078be3221c29521bc5c">driver_w25qxx.c</a>
-</li>
-<li>W25QXX_COMMAND_ENABLE_RESET
-: <a class="el" href="driver__w25qxx_8c.html#a6dae3a832abc19d1861fafb32f231d94">driver_w25qxx.c</a>
-</li>
-<li>W25QXX_COMMAND_ENTER_QSPI_MODE
-: <a class="el" href="driver__w25qxx_8c.html#a052d5373086b473bf0d450ea1bd73828">driver_w25qxx.c</a>
-</li>
-<li>W25QXX_COMMAND_ERASE_PROGRAM_RESUME
-: <a class="el" href="driver__w25qxx_8c.html#a0daeb46fb8b219a3d6b37d426c5c0e95">driver_w25qxx.c</a>
-</li>
-<li>W25QXX_COMMAND_ERASE_PROGRAM_SUSPEND
-: <a class="el" href="driver__w25qxx_8c.html#a43f9a1e3c03d4a7d2a991e81f0e89f51">driver_w25qxx.c</a>
-</li>
-<li>W25QXX_COMMAND_ERASE_SECURITY_REGISTER
-: <a class="el" href="driver__w25qxx_8c.html#a842f8d646fc8f8ed72422fc1d789498c">driver_w25qxx.c</a>
-</li>
-<li>W25QXX_COMMAND_FAST_READ
-: <a class="el" href="driver__w25qxx_8c.html#ac957b31a68db8c14f88a196a98b0aa18">driver_w25qxx.c</a>
-</li>
-<li>W25QXX_COMMAND_FAST_READ_DUAL_IO
-: <a class="el" href="driver__w25qxx_8c.html#a2232ada3558228c2902d654989ca65f1">driver_w25qxx.c</a>
-</li>
-<li>W25QXX_COMMAND_FAST_READ_DUAL_OUTPUT
-: <a class="el" href="driver__w25qxx_8c.html#a8d49efa8b978ae8fd3eb18d0e5ae73e8">driver_w25qxx.c</a>
-</li>
-<li>W25QXX_COMMAND_FAST_READ_QUAD_IO
-: <a class="el" href="driver__w25qxx_8c.html#a80d19998d9d1218d0fa69e7d4d6b0ecb">driver_w25qxx.c</a>
-</li>
-<li>W25QXX_COMMAND_FAST_READ_QUAD_OUTPUT
-: <a class="el" href="driver__w25qxx_8c.html#a54ddb3d948c4bb95cc62199676c817b2">driver_w25qxx.c</a>
-</li>
-<li>W25QXX_COMMAND_GLOBAL_BLOCK_SECTOR_LOCK
-: <a class="el" href="driver__w25qxx_8c.html#af81bc9ddfc8da8eb911435e835536ffb">driver_w25qxx.c</a>
-</li>
-<li>W25QXX_COMMAND_GLOBAL_BLOCK_SECTOR_UNLOCK
-: <a class="el" href="driver__w25qxx_8c.html#ab96d2ad8602a5a50c988b8c09d4bbbc5">driver_w25qxx.c</a>
-</li>
-<li>W25QXX_COMMAND_INDIVIDUAL_BLOCK_LOCK
-: <a class="el" href="driver__w25qxx_8c.html#a328f6a9635b1ec6868410375de90b0df">driver_w25qxx.c</a>
-</li>
-<li>W25QXX_COMMAND_INDIVIDUAL_BLOCK_UNLOCK
-: <a class="el" href="driver__w25qxx_8c.html#a3cc8b61583b5eb9d7c1ecd6831689718">driver_w25qxx.c</a>
-</li>
-<li>W25QXX_COMMAND_JEDEC_ID
-: <a class="el" href="driver__w25qxx_8c.html#a54f3ece548cd5eadc94642235442315a">driver_w25qxx.c</a>
-</li>
-<li>W25QXX_COMMAND_OCTAL_WORD_READ_QUAD_IO
-: <a class="el" href="driver__w25qxx_8c.html#acb7f8599b26c29356651690ec9b25e66">driver_w25qxx.c</a>
-</li>
-<li>W25QXX_COMMAND_PAGE_PROGRAM
-: <a class="el" href="driver__w25qxx_8c.html#aebca01f1f7fd279523d29e579998574a">driver_w25qxx.c</a>
-</li>
-<li>W25QXX_COMMAND_POWER_DOWN
-: <a class="el" href="driver__w25qxx_8c.html#a6fe4d603e33b7c8b8310a884e02a130b">driver_w25qxx.c</a>
-</li>
-<li>W25QXX_COMMAND_PROGRAM_SECURITY_REGISTER
-: <a class="el" href="driver__w25qxx_8c.html#a915ab53f5f2d1cad6b954205e76cb4d5">driver_w25qxx.c</a>
-</li>
-<li>W25QXX_COMMAND_QUAD_PAGE_PROGRAM
-: <a class="el" href="driver__w25qxx_8c.html#a8212fac3d1e43024621b6b560a8dddfe">driver_w25qxx.c</a>
-</li>
-<li>W25QXX_COMMAND_READ_BLOCK_LOCK
-: <a class="el" href="driver__w25qxx_8c.html#a19e055bec30de0ad30e7f8ab5feea6a8">driver_w25qxx.c</a>
-</li>
-<li>W25QXX_COMMAND_READ_DATA
-: <a class="el" href="driver__w25qxx_8c.html#a23fcd6d9b067580d534d626c43b7cff3">driver_w25qxx.c</a>
-</li>
-<li>W25QXX_COMMAND_READ_MANUFACTURER
-: <a class="el" href="driver__w25qxx_8c.html#af6d9a5bc0b57b041e22af80b85e53f56">driver_w25qxx.c</a>
-</li>
-<li>W25QXX_COMMAND_READ_SECURITY_REGISTER
-: <a class="el" href="driver__w25qxx_8c.html#a4dc5fb2c3c15ef86df56b534b874a919">driver_w25qxx.c</a>
-</li>
-<li>W25QXX_COMMAND_READ_SFDP_REGISTER
-: <a class="el" href="driver__w25qxx_8c.html#a63774c5ebbdf5445466d840fad567bf6">driver_w25qxx.c</a>
-</li>
-<li>W25QXX_COMMAND_READ_STATUS_REG1
-: <a class="el" href="driver__w25qxx_8c.html#adf682969c34f4b31a87dd92dd18ccea3">driver_w25qxx.c</a>
-</li>
-<li>W25QXX_COMMAND_READ_STATUS_REG2
-: <a class="el" href="driver__w25qxx_8c.html#a4a8cdc5b6ce75029df877263bdf35f2a">driver_w25qxx.c</a>
-</li>
-<li>W25QXX_COMMAND_READ_STATUS_REG3
-: <a class="el" href="driver__w25qxx_8c.html#a09798bdb3fabdf7bb4cfd8bce18100ce">driver_w25qxx.c</a>
-</li>
-<li>W25QXX_COMMAND_READ_UNIQUE_ID
-: <a class="el" href="driver__w25qxx_8c.html#a6aeed0a651b31064f25ab2f57fdacf2f">driver_w25qxx.c</a>
-</li>
-<li>W25QXX_COMMAND_RELEASE_POWER_DOWN
-: <a class="el" href="driver__w25qxx_8c.html#ad344065461b2c71521017984f040b425">driver_w25qxx.c</a>
-</li>
-<li>W25QXX_COMMAND_RESET_DEVICE
-: <a class="el" href="driver__w25qxx_8c.html#ab25182298c921c8f7f42216e0d5aa56b">driver_w25qxx.c</a>
-</li>
-<li>W25QXX_COMMAND_SECTOR_ERASE_4K
-: <a class="el" href="driver__w25qxx_8c.html#a6e7cd159f91e23930450725fd6910f9c">driver_w25qxx.c</a>
-</li>
-<li>W25QXX_COMMAND_SET_BURST_WITH_WRAP
-: <a class="el" href="driver__w25qxx_8c.html#acfb19490258b26729fa83fdd60c4d822">driver_w25qxx.c</a>
-</li>
-<li>W25QXX_COMMAND_VOLATILE_SR_WRITE_ENABLE
-: <a class="el" href="driver__w25qxx_8c.html#a7c9e980e30f499dd97b02935c91f2c02">driver_w25qxx.c</a>
-</li>
-<li>W25QXX_COMMAND_WORD_READ_QUAD_IO
-: <a class="el" href="driver__w25qxx_8c.html#a947382a74ac06eb8a2ff8f5bcb1b744d">driver_w25qxx.c</a>
-</li>
-<li>W25QXX_COMMAND_WRITE_DISABLE
-: <a class="el" href="driver__w25qxx_8c.html#a36dfb1951fe152d63e3715a161646713">driver_w25qxx.c</a>
-</li>
-<li>W25QXX_COMMAND_WRITE_ENABLE
-: <a class="el" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">driver_w25qxx.c</a>
-</li>
-<li>W25QXX_COMMAND_WRITE_STATUS_REG1
-: <a class="el" href="driver__w25qxx_8c.html#a932f54ff92de8bbab4602ab85ac6c155">driver_w25qxx.c</a>
-</li>
-<li>W25QXX_COMMAND_WRITE_STATUS_REG2
-: <a class="el" href="driver__w25qxx_8c.html#a4be10ed873d56bb183d9b1bde9105135">driver_w25qxx.c</a>
-</li>
-<li>W25QXX_COMMAND_WRITE_STATUS_REG3
-: <a class="el" href="driver__w25qxx_8c.html#a6d099dc6afb59cc950d3abe96b840158">driver_w25qxx.c</a>
-</li>
-<li>w25qxx_deinit()
-: <a class="el" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_disable_write()
-: <a class="el" href="group__w25qxx__advance__driver.html#gac16a31269277051baad6c28fe4254b4a">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__advance__driver.html#gac16a31269277051baad6c28fe4254b4a">driver_w25qxx.h</a>
-</li>
-<li>W25QXX_ENABLE_ERASE_READ_TEST
-: <a class="el" href="group__w25qxx__test__driver.html#ga8be86baae6f8448171125c70da1fbfa0">driver_w25qxx_read_test.h</a>
-</li>
-<li>w25qxx_enable_reset()
-: <a class="el" href="group__w25qxx__advance__driver.html#gab55b4e071e20feb58584025287949438">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__advance__driver.html#gab55b4e071e20feb58584025287949438">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_enable_volatile_sr_write()
-: <a class="el" href="group__w25qxx__advance__driver.html#ga0f8889d6a25c32e150a2ab30753d461d">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__advance__driver.html#ga0f8889d6a25c32e150a2ab30753d461d">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_enable_write()
-: <a class="el" href="group__w25qxx__advance__driver.html#gaeb269123feec054eaaf70f2ffb5797a3">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__advance__driver.html#gaeb269123feec054eaaf70f2ffb5797a3">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_enter_qspi_mode()
-: <a class="el" href="group__w25qxx__advance__driver.html#gaa5ab3548707a95ded115255432224c5a">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__advance__driver.html#gaa5ab3548707a95ded115255432224c5a">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_erase_program_resume()
-: <a class="el" href="group__w25qxx__advance__driver.html#ga05c69ac66309544eba4ff38a69f24c00">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__advance__driver.html#ga05c69ac66309544eba4ff38a69f24c00">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_erase_program_suspend()
-: <a class="el" href="group__w25qxx__advance__driver.html#gac7fbabc574c250eec100be861f5918ff">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__advance__driver.html#gac7fbabc574c250eec100be861f5918ff">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_erase_security_register()
-: <a class="el" href="group__w25qxx__advance__driver.html#gaf297e2c6877c64f8fd10a555f783ddaf">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__advance__driver.html#gaf297e2c6877c64f8fd10a555f783ddaf">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_exit_qspi_mode()
-: <a class="el" href="group__w25qxx__advance__driver.html#ga6b9f75f7426a54ffdb1f5a057f8188f4">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__advance__driver.html#ga6b9f75f7426a54ffdb1f5a057f8188f4">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_fast_read()
-: <a class="el" href="group__w25qxx__basic__driver.html#gac345ba10af5ad355578fa97697487123">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__basic__driver.html#gac345ba10af5ad355578fa97697487123">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_fast_read_dual_io()
-: <a class="el" href="group__w25qxx__advance__driver.html#gac894f4650905cba10dd3a31284de6d5e">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__advance__driver.html#gac894f4650905cba10dd3a31284de6d5e">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_fast_read_dual_output()
-: <a class="el" href="group__w25qxx__advance__driver.html#ga7a19230ca3916816ea8fb7421483d293">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__advance__driver.html#ga7a19230ca3916816ea8fb7421483d293">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_fast_read_quad_io()
-: <a class="el" href="group__w25qxx__advance__driver.html#gab97a64bd3776874518f60381d921ae41">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__advance__driver.html#gab97a64bd3776874518f60381d921ae41">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_fast_read_quad_output()
-: <a class="el" href="group__w25qxx__advance__driver.html#gaf4bfafd1f80aa0316a4b1a15183dcd50">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__advance__driver.html#gaf4bfafd1f80aa0316a4b1a15183dcd50">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_get_address_mode()
-: <a class="el" href="group__w25qxx__basic__driver.html#ga3a52036a97b12fcbe2280b0901a80b90">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__basic__driver.html#ga3a52036a97b12fcbe2280b0901a80b90">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_get_dual_quad_spi()
-: <a class="el" href="group__w25qxx__basic__driver.html#gad4c9b8b0a2d0916c13567f9d7e494cf8">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__basic__driver.html#gad4c9b8b0a2d0916c13567f9d7e494cf8">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_get_interface()
-: <a class="el" href="group__w25qxx__basic__driver.html#ga86ef839d475f3926a0be46bbc18d4b45">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__basic__driver.html#ga86ef839d475f3926a0be46bbc18d4b45">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_get_jedec_id()
-: <a class="el" href="group__w25qxx__advance__driver.html#ga8a93ba14a032e10a27f1495fdcf56058">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__advance__driver.html#ga8a93ba14a032e10a27f1495fdcf56058">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_get_manufacturer_device_id()
-: <a class="el" href="group__w25qxx__basic__driver.html#ga921836a777b082ff4d0f322ccfda6b22">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__basic__driver.html#ga921836a777b082ff4d0f322ccfda6b22">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_get_manufacturer_device_id_dual_io()
-: <a class="el" href="group__w25qxx__advance__driver.html#ga1cd3aec1bdeabbaed5f049fbf83ceeb4">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__advance__driver.html#ga1cd3aec1bdeabbaed5f049fbf83ceeb4">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_get_manufacturer_device_id_quad_io()
-: <a class="el" href="group__w25qxx__advance__driver.html#ga61bd3ce40b76b6862c6a53e0e37a3455">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__advance__driver.html#ga61bd3ce40b76b6862c6a53e0e37a3455">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_get_sfdp()
-: <a class="el" href="group__w25qxx__advance__driver.html#ga244a91b9c0c32e899ca89e1943045624">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__advance__driver.html#ga244a91b9c0c32e899ca89e1943045624">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_get_status1()
-: <a class="el" href="group__w25qxx__advance__driver.html#gaa77d2b00b4fb9cf586f77ace827ea7c6">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__advance__driver.html#gaa77d2b00b4fb9cf586f77ace827ea7c6">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_get_status2()
-: <a class="el" href="group__w25qxx__advance__driver.html#gaa21237ecbd5951b8017799066e7db5d9">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__advance__driver.html#gaa21237ecbd5951b8017799066e7db5d9">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_get_status3()
-: <a class="el" href="group__w25qxx__advance__driver.html#ga99cf6a325a00921d4531004f0c1d75b1">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__advance__driver.html#ga99cf6a325a00921d4531004f0c1d75b1">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_get_type()
-: <a class="el" href="group__w25qxx__basic__driver.html#ga685379998dad173b6d9c0b0da270685c">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__basic__driver.html#ga685379998dad173b6d9c0b0da270685c">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_get_unique_id()
-: <a class="el" href="group__w25qxx__advance__driver.html#ga11af244389478de68a6777076ee82d69">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__advance__driver.html#ga11af244389478de68a6777076ee82d69">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_global_block_lock()
-: <a class="el" href="group__w25qxx__advance__driver.html#gab5579bc42bc07a7657848140888a817c">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__advance__driver.html#gab5579bc42bc07a7657848140888a817c">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_global_block_unlock()
-: <a class="el" href="group__w25qxx__advance__driver.html#ga6d62f7d14945cfde7cde7a0e9a4e3afb">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__advance__driver.html#ga6d62f7d14945cfde7cde7a0e9a4e3afb">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_handle_t
-: <a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_individual_block_lock()
-: <a class="el" href="group__w25qxx__advance__driver.html#ga4f00c2c169cb7c3084841c6cd795e76b">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__advance__driver.html#ga4f00c2c169cb7c3084841c6cd795e76b">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_individual_block_unlock()
-: <a class="el" href="group__w25qxx__advance__driver.html#ga7f88cedf7619071b3235ba094915b2a7">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__advance__driver.html#ga7f88cedf7619071b3235ba094915b2a7">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_info()
-: <a class="el" href="group__w25qxx__basic__driver.html#ga996e2d3009432e7f8c1a5175c4438a57">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__basic__driver.html#ga996e2d3009432e7f8c1a5175c4438a57">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_info_t
-: <a class="el" href="group__w25qxx__basic__driver.html#ga601d841ddd0ff8ad3ab52e07c679ef19">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_init()
-: <a class="el" href="group__w25qxx__basic__driver.html#ga8e7a163b3d255b8c7fc035d0d60f2491">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__basic__driver.html#ga8e7a163b3d255b8c7fc035d0d60f2491">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_interface_debug_print()
-: <a class="el" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">driver_w25qxx_interface.h</a>
-, <a class="el" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">driver_w25qxx_interface_template.c</a>
-</li>
-<li>w25qxx_interface_delay_ms()
-: <a class="el" href="group__w25qxx__interface__driver.html#ga964fa232abf98737cb98458eebfff82c">driver_w25qxx_interface.h</a>
-, <a class="el" href="group__w25qxx__interface__driver.html#ga964fa232abf98737cb98458eebfff82c">driver_w25qxx_interface_template.c</a>
-</li>
-<li>w25qxx_interface_delay_us()
-: <a class="el" href="group__w25qxx__interface__driver.html#ga38e79039b913154c9dd1036ff52bb420">driver_w25qxx_interface.h</a>
-, <a class="el" href="group__w25qxx__interface__driver.html#ga38e79039b913154c9dd1036ff52bb420">driver_w25qxx_interface_template.c</a>
-</li>
-<li>W25QXX_INTERFACE_QSPI
-: <a class="el" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2fea895dcb5c91da89fad1c12161ffd2d5d4">driver_w25qxx.h</a>
-</li>
-<li>W25QXX_INTERFACE_SPI
-: <a class="el" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_interface_spi_qspi_deinit()
-: <a class="el" href="group__w25qxx__interface__driver.html#ga091f3607fcdd47f9e5f94cf1397bd46a">driver_w25qxx_interface.h</a>
-, <a class="el" href="group__w25qxx__interface__driver.html#ga091f3607fcdd47f9e5f94cf1397bd46a">driver_w25qxx_interface_template.c</a>
-</li>
-<li>w25qxx_interface_spi_qspi_init()
-: <a class="el" href="group__w25qxx__interface__driver.html#ga2bdc17a556f1c801a38656331f3bb7b6">driver_w25qxx_interface.h</a>
-, <a class="el" href="group__w25qxx__interface__driver.html#ga2bdc17a556f1c801a38656331f3bb7b6">driver_w25qxx_interface_template.c</a>
-</li>
-<li>w25qxx_interface_spi_qspi_write_read()
-: <a class="el" href="group__w25qxx__interface__driver.html#ga3d76ea1f431978f6b55edfd0628c94cd">driver_w25qxx_interface.h</a>
-, <a class="el" href="group__w25qxx__interface__driver.html#ga3d76ea1f431978f6b55edfd0628c94cd">driver_w25qxx_interface_template.c</a>
-</li>
-<li>w25qxx_interface_t
-: <a class="el" href="group__w25qxx__basic__driver.html#gacbf327a42336baf10713a1796ff4f2fe">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_octal_word_read_quad_io()
-: <a class="el" href="group__w25qxx__advance__driver.html#ga88a62ec42e86db821ff3f0d3ab541dbb">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__advance__driver.html#ga88a62ec42e86db821ff3f0d3ab541dbb">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_only_spi_read()
-: <a class="el" href="group__w25qxx__basic__driver.html#ga1e9ebf198137d23558dbf6470213c472">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__basic__driver.html#ga1e9ebf198137d23558dbf6470213c472">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_page_program()
-: <a class="el" href="group__w25qxx__basic__driver.html#ga6280e7e4ab26306436e2c210617a28b3">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__basic__driver.html#ga6280e7e4ab26306436e2c210617a28b3">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_page_program_quad_input()
-: <a class="el" href="group__w25qxx__advance__driver.html#ga1f80bbbaaa852eecfffb87737889363d">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__advance__driver.html#ga1f80bbbaaa852eecfffb87737889363d">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_power_down()
-: <a class="el" href="group__w25qxx__basic__driver.html#gae4effce67e36120325e3c7b245b90142">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__basic__driver.html#gae4effce67e36120325e3c7b245b90142">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_program_security_register()
-: <a class="el" href="group__w25qxx__advance__driver.html#ga4e9c059ff78866e478e835cb27a92899">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__advance__driver.html#ga4e9c059ff78866e478e835cb27a92899">driver_w25qxx.h</a>
-</li>
-<li>W25QXX_QSPI_READ_DUMMY_2_33MHZ
-: <a class="el" href="group__w25qxx__advance__driver.html#gga6ff284154302248f00db269146545443ad73634a0f4534c3ae35d4242b2bc8f13">driver_w25qxx.h</a>
-</li>
-<li>W25QXX_QSPI_READ_DUMMY_4_55MHZ
-: <a class="el" href="group__w25qxx__advance__driver.html#gga6ff284154302248f00db269146545443a6423b5606e72af6479fe31a6a9883aeb">driver_w25qxx.h</a>
-</li>
-<li>W25QXX_QSPI_READ_DUMMY_6_80MHZ
-: <a class="el" href="group__w25qxx__advance__driver.html#gga6ff284154302248f00db269146545443a78393debe12bbb3efb710e38e3c1d550">driver_w25qxx.h</a>
-</li>
-<li>W25QXX_QSPI_READ_DUMMY_8_80MHZ
-: <a class="el" href="group__w25qxx__advance__driver.html#gga6ff284154302248f00db269146545443ade1d3511f15c7d92de8c5d8967c471c3">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_qspi_read_dummy_t
-: <a class="el" href="group__w25qxx__advance__driver.html#ga6ff284154302248f00db269146545443">driver_w25qxx.h</a>
-</li>
-<li>W25QXX_QSPI_READ_WRAP_LENGTH_16_BYTE
-: <a class="el" href="group__w25qxx__advance__driver.html#gga2fd3023819e1aebe089a4a72eb136da3ae6bc2fcd2d4fc3af63f22da56a3b393b">driver_w25qxx.h</a>
-</li>
-<li>W25QXX_QSPI_READ_WRAP_LENGTH_32_BYTE
-: <a class="el" href="group__w25qxx__advance__driver.html#gga2fd3023819e1aebe089a4a72eb136da3aa5f2e6b5718a85ab9241125e84181216">driver_w25qxx.h</a>
-</li>
-<li>W25QXX_QSPI_READ_WRAP_LENGTH_64_BYTE
-: <a class="el" href="group__w25qxx__advance__driver.html#gga2fd3023819e1aebe089a4a72eb136da3a736f25eeae36f6a0b62d4cb1666a689f">driver_w25qxx.h</a>
-</li>
-<li>W25QXX_QSPI_READ_WRAP_LENGTH_8_BYTE
-: <a class="el" href="group__w25qxx__advance__driver.html#gga2fd3023819e1aebe089a4a72eb136da3a5b8fa1026c564fe83f3f0f0edb89d1dd">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_qspi_read_wrap_length_t
-: <a class="el" href="group__w25qxx__advance__driver.html#ga2fd3023819e1aebe089a4a72eb136da3">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_read()
-: <a class="el" href="group__w25qxx__basic__driver.html#gae7479fc9ce911a52e3c5b6f1a615b879">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__basic__driver.html#gae7479fc9ce911a52e3c5b6f1a615b879">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_read_block_lock()
-: <a class="el" href="group__w25qxx__advance__driver.html#ga59e655ca78a175037ca810bbc8539a96">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__advance__driver.html#ga59e655ca78a175037ca810bbc8539a96">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_read_security_register()
-: <a class="el" href="group__w25qxx__advance__driver.html#ga4c65debc4947bd9a61e0073105164b9c">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__advance__driver.html#ga4c65debc4947bd9a61e0073105164b9c">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_read_test()
-: <a class="el" href="group__w25qxx__test__driver.html#ga4ce42ca34d33cd64cb823040780999af">driver_w25qxx_read_test.c</a>
-, <a class="el" href="group__w25qxx__test__driver.html#ga4ce42ca34d33cd64cb823040780999af">driver_w25qxx_read_test.h</a>
-</li>
-<li>w25qxx_register_test()
-: <a class="el" href="group__w25qxx__test__driver.html#ga05d07036254d102ebea0d0b1e83862c8">driver_w25qxx_register_test.c</a>
-, <a class="el" href="group__w25qxx__test__driver.html#ga05d07036254d102ebea0d0b1e83862c8">driver_w25qxx_register_test.h</a>
-</li>
-<li>w25qxx_release_power_down()
-: <a class="el" href="group__w25qxx__basic__driver.html#ga09c9b52877516a2ee4c080dc249e7331">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__basic__driver.html#ga09c9b52877516a2ee4c080dc249e7331">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_reset_device()
-: <a class="el" href="group__w25qxx__advance__driver.html#ga2abebfe2a8d9377eb88448ffca73f222">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__advance__driver.html#ga2abebfe2a8d9377eb88448ffca73f222">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_sector_erase_4k()
-: <a class="el" href="group__w25qxx__basic__driver.html#ga9a03c51b4c84655350c15fbfce0a6b40">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__basic__driver.html#ga9a03c51b4c84655350c15fbfce0a6b40">driver_w25qxx.h</a>
-</li>
-<li>W25QXX_SECURITY_REGISTER_1
-: <a class="el" href="group__w25qxx__advance__driver.html#gga81ddc7d4b9f4f124163beea19cc33c7eaaf27484a497c13915c8acb0161cf137d">driver_w25qxx.h</a>
-</li>
-<li>W25QXX_SECURITY_REGISTER_2
-: <a class="el" href="group__w25qxx__advance__driver.html#gga81ddc7d4b9f4f124163beea19cc33c7ea3353a88090850174ca163d56e4d7089c">driver_w25qxx.h</a>
-</li>
-<li>W25QXX_SECURITY_REGISTER_3
-: <a class="el" href="group__w25qxx__advance__driver.html#gga81ddc7d4b9f4f124163beea19cc33c7ea65b73162d921075bed8cb8d848948900">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_security_register_t
-: <a class="el" href="group__w25qxx__advance__driver.html#ga81ddc7d4b9f4f124163beea19cc33c7e">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_set_address_mode()
-: <a class="el" href="group__w25qxx__basic__driver.html#gad0e125eff304ce66fb3956d2c8c80656">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__basic__driver.html#gad0e125eff304ce66fb3956d2c8c80656">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_set_burst_with_wrap()
-: <a class="el" href="group__w25qxx__advance__driver.html#gac19c1d0f3fd48968ea2a93c1dbe3d75d">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__advance__driver.html#gac19c1d0f3fd48968ea2a93c1dbe3d75d">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_set_dual_quad_spi()
-: <a class="el" href="group__w25qxx__basic__driver.html#ga665139209b0abc386474a78d89cce6f2">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__basic__driver.html#ga665139209b0abc386474a78d89cce6f2">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_set_interface()
-: <a class="el" href="group__w25qxx__basic__driver.html#ga50a62003d566402d46ada2f272c41eb5">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__basic__driver.html#ga50a62003d566402d46ada2f272c41eb5">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_set_read_parameters()
-: <a class="el" href="group__w25qxx__advance__driver.html#ga9ad10781d888b32b43b9eba45d049624">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__advance__driver.html#ga9ad10781d888b32b43b9eba45d049624">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_set_status1()
-: <a class="el" href="group__w25qxx__advance__driver.html#ga246e0bb07c8bbb39731f17906779c012">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__advance__driver.html#ga246e0bb07c8bbb39731f17906779c012">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_set_status2()
-: <a class="el" href="group__w25qxx__advance__driver.html#gaab5f28e8930d50dbc2178e39bc9fa456">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__advance__driver.html#gaab5f28e8930d50dbc2178e39bc9fa456">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_set_status3()
-: <a class="el" href="group__w25qxx__advance__driver.html#gada897a6c6d6acb99f4dd4ff9b65ad8ee">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__advance__driver.html#gada897a6c6d6acb99f4dd4ff9b65ad8ee">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_set_type()
-: <a class="el" href="group__w25qxx__basic__driver.html#gaa57189cd4170b73f8b1300ca15e27de6">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__basic__driver.html#gaa57189cd4170b73f8b1300ca15e27de6">driver_w25qxx.h</a>
-</li>
-<li>W25QXX_STATUS1_BLOCK_PROTECT_0
-: <a class="el" href="group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a7b7e8922009c0d6a88bbfad76a812262">driver_w25qxx.h</a>
-</li>
-<li>W25QXX_STATUS1_BLOCK_PROTECT_1
-: <a class="el" href="group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a3465f02625d38730630b60cd01e92085">driver_w25qxx.h</a>
-</li>
-<li>W25QXX_STATUS1_BLOCK_PROTECT_2
-: <a class="el" href="group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a9a02180228dbb94e9d302b667fda884f">driver_w25qxx.h</a>
-</li>
-<li>W25QXX_STATUS1_ERASE_WRITE_PROGRESS
-: <a class="el" href="group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595ae1ce566fc564776e98a5c7edefe8c5ea">driver_w25qxx.h</a>
-</li>
-<li>W25QXX_STATUS1_SECTOR_PROTECT_OR_TOP_BOTTOM_PROTECT
-: <a class="el" href="group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a9522040a098337442eff127e1598776d">driver_w25qxx.h</a>
-</li>
-<li>W25QXX_STATUS1_STATUS_REGISTER_PROTECT_0
-: <a class="el" href="group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a00d1d224963ec1f38ac97802480b2129">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_status1_t
-: <a class="el" href="group__w25qxx__advance__driver.html#ga9e41a72d1e25d39d88ce7108a9b25595">driver_w25qxx.h</a>
-</li>
-<li>W25QXX_STATUS1_TOP_BOTTOM_PROTECT_OR_BLOCK_PROTECT_3
-: <a class="el" href="group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a63bc45b7e0e19de7e58e3494eb4046c5">driver_w25qxx.h</a>
-</li>
-<li>W25QXX_STATUS1_WRITE_ENABLE_LATCH
-: <a class="el" href="group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a1438a76d1be1aa02e4f7450a045c02e3">driver_w25qxx.h</a>
-</li>
-<li>W25QXX_STATUS2_COMPLEMENT_PROTECT
-: <a class="el" href="group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277a517e9e50ada30462f902d01e8d5579dc">driver_w25qxx.h</a>
-</li>
-<li>W25QXX_STATUS2_QUAD_ENABLE
-: <a class="el" href="group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277aa920a9c9a590fb8740419d8d2e4230f3">driver_w25qxx.h</a>
-</li>
-<li>W25QXX_STATUS2_SECURITY_REGISTER_1_LOCK_BITS
-: <a class="el" href="group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277a7a631c1c153cc099a52883b40007079e">driver_w25qxx.h</a>
-</li>
-<li>W25QXX_STATUS2_SECURITY_REGISTER_2_LOCK_BITS
-: <a class="el" href="group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277a24a99f1a97023ae103c1bec3027bbf26">driver_w25qxx.h</a>
-</li>
-<li>W25QXX_STATUS2_SECURITY_REGISTER_3_LOCK_BITS
-: <a class="el" href="group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277a0f3e2b3059d56f974724a8284142e69a">driver_w25qxx.h</a>
-</li>
-<li>W25QXX_STATUS2_STATUS_REGISTER_PROTECT_1
-: <a class="el" href="group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277a5a89a885ba2a59eccd0445443e3bbac6">driver_w25qxx.h</a>
-</li>
-<li>W25QXX_STATUS2_SUSPEND_STATUS
-: <a class="el" href="group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277a3fdb54846709f77391e426c626a19152">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_status2_t
-: <a class="el" href="group__w25qxx__advance__driver.html#ga0d28076f6fc7d3ae9dd7f8410069a277">driver_w25qxx.h</a>
-</li>
-<li>W25QXX_STATUS3_CURRENT_ADDRESS_MODE
-: <a class="el" href="group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44aca3c822d6eacd9747ca2173607a09591ac">driver_w25qxx.h</a>
-</li>
-<li>W25QXX_STATUS3_HOLD_RESET_FUNCTION
-: <a class="el" href="group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44aca9ab13d5388af0156c4e4de08765ec401">driver_w25qxx.h</a>
-</li>
-<li>W25QXX_STATUS3_OUTPUT_DRIVER_STRENGTH_100_PERCENTAGE
-: <a class="el" href="group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44acab5b1ce328b88d08f3d55ed776e01fedb">driver_w25qxx.h</a>
-</li>
-<li>W25QXX_STATUS3_OUTPUT_DRIVER_STRENGTH_25_PERCENTAGE
-: <a class="el" href="group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44acae645c265a6beb76a088352e2f4bfb4e1">driver_w25qxx.h</a>
-</li>
-<li>W25QXX_STATUS3_OUTPUT_DRIVER_STRENGTH_50_PERCENTAGE
-: <a class="el" href="group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44aca8abcd821f1f0d02b3d9179c7ab58d0e0">driver_w25qxx.h</a>
-</li>
-<li>W25QXX_STATUS3_OUTPUT_DRIVER_STRENGTH_75_PERCENTAGE
-: <a class="el" href="group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44aca7ab6ace72a02afc20f92f48e975b60b7">driver_w25qxx.h</a>
-</li>
-<li>W25QXX_STATUS3_POWER_UP_ADDRESS_MODE
-: <a class="el" href="group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44acadc8d5949eaea0c6ce4e17c6e746f4f65">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_status3_t
-: <a class="el" href="group__w25qxx__advance__driver.html#gace18ebb2eac49cbde44a2935916f44ac">driver_w25qxx.h</a>
-</li>
-<li>W25QXX_STATUS3_WRITE_PROTECT_SELECTION
-: <a class="el" href="group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44aca7dc507c444fb395a4956bf50d78f1ee3">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_type_t
-: <a class="el" href="group__w25qxx__basic__driver.html#ga6cb4e5164464df549201dd96cb7a58b1">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_word_read_quad_io()
-: <a class="el" href="group__w25qxx__advance__driver.html#gad97d7e410dd77c49334097a0fd332660">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__advance__driver.html#gad97d7e410dd77c49334097a0fd332660">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_write()
-: <a class="el" href="group__w25qxx__basic__driver.html#gaaee8264d840e51460821cb6e609338ee">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__basic__driver.html#gaaee8264d840e51460821cb6e609338ee">driver_w25qxx.h</a>
-</li>
-<li>w25qxx_write_read_reg()
-: <a class="el" href="group__w25qxx__extern__driver.html#ga9623a3bec148b148498480518a66cb2b">driver_w25qxx.c</a>
-, <a class="el" href="group__w25qxx__extern__driver.html#ga9623a3bec148b148498480518a66cb2b">driver_w25qxx.h</a>
-</li>
+<h3><a id="index_w" name="index_w"></a>- w -</h3><ul>
+<li>W25Q128&#160;:&#160;<a class="el" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a75afcbe71906d3884f4fcc119c1cabd5">driver_w25qxx.h</a></li>
+<li>W25Q16&#160;:&#160;<a class="el" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a66acb81a2d520a7d92ce1d37210c6435">driver_w25qxx.h</a></li>
+<li>W25Q256&#160;:&#160;<a class="el" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca">driver_w25qxx.h</a></li>
+<li>W25Q32&#160;:&#160;<a class="el" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a4fdad551be6485441db5951f196db7cb">driver_w25qxx.h</a></li>
+<li>W25Q64&#160;:&#160;<a class="el" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a3ea98b2b3e06afa29441c51548bbb16e">driver_w25qxx.h</a></li>
+<li>W25Q80&#160;:&#160;<a class="el" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a1ad4f72437de5f26cb7b212d4d91e7c2">driver_w25qxx.h</a></li>
+<li>W25QXX_ADDRESS_MODE_3_BYTE&#160;:&#160;<a class="el" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">driver_w25qxx.h</a></li>
+<li>W25QXX_ADDRESS_MODE_4_BYTE&#160;:&#160;<a class="el" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">driver_w25qxx.h</a></li>
+<li>w25qxx_address_mode_t&#160;:&#160;<a class="el" href="group__w25qxx__basic__driver.html#gaa4c45f146d1ade8a2da8e751818fa4a2">driver_w25qxx.h</a></li>
+<li>w25qxx_advance_block_erase_32k()&#160;:&#160;<a class="el" href="group__w25qxx__example__driver.html#gaee04edb9e97785e423dffe14a1cad780">driver_w25qxx_advance.c</a>, <a class="el" href="group__w25qxx__example__driver.html#gaee04edb9e97785e423dffe14a1cad780">driver_w25qxx_advance.h</a></li>
+<li>w25qxx_advance_block_erase_64k()&#160;:&#160;<a class="el" href="group__w25qxx__example__driver.html#gae7cba4e0b22a1043fe304e46148fa13c">driver_w25qxx_advance.c</a>, <a class="el" href="group__w25qxx__example__driver.html#gae7cba4e0b22a1043fe304e46148fa13c">driver_w25qxx_advance.h</a></li>
+<li>w25qxx_advance_chip_erase()&#160;:&#160;<a class="el" href="group__w25qxx__example__driver.html#ga15cb243f227ef8d897ef3208b622bded">driver_w25qxx_advance.c</a>, <a class="el" href="group__w25qxx__example__driver.html#ga15cb243f227ef8d897ef3208b622bded">driver_w25qxx_advance.h</a></li>
+<li>w25qxx_advance_deinit()&#160;:&#160;<a class="el" href="group__w25qxx__example__driver.html#gaf390bbb2c4140f49d25822d963ead722">driver_w25qxx_advance.c</a>, <a class="el" href="group__w25qxx__example__driver.html#gaf390bbb2c4140f49d25822d963ead722">driver_w25qxx_advance.h</a></li>
+<li>w25qxx_advance_fast_read()&#160;:&#160;<a class="el" href="group__w25qxx__example__driver.html#ga7ade25a387b9d03ddecefd86fb328389">driver_w25qxx_advance.c</a>, <a class="el" href="group__w25qxx__example__driver.html#ga7ade25a387b9d03ddecefd86fb328389">driver_w25qxx_advance.h</a></li>
+<li>w25qxx_advance_get_get_jedec_id()&#160;:&#160;<a class="el" href="group__w25qxx__example__driver.html#gacc7435a39b61c44f0ce16690d5da896b">driver_w25qxx_advance.c</a>, <a class="el" href="group__w25qxx__example__driver.html#gacc7435a39b61c44f0ce16690d5da896b">driver_w25qxx_advance.h</a></li>
+<li>w25qxx_advance_get_id()&#160;:&#160;<a class="el" href="group__w25qxx__example__driver.html#ga0f49d960f8b6c6498ab293b369ffc389">driver_w25qxx_advance.c</a>, <a class="el" href="group__w25qxx__example__driver.html#ga0f49d960f8b6c6498ab293b369ffc389">driver_w25qxx_advance.h</a></li>
+<li>w25qxx_advance_get_status1()&#160;:&#160;<a class="el" href="group__w25qxx__example__driver.html#ga4c1be6979b4dc878d07ec86b8624c9d2">driver_w25qxx_advance.c</a>, <a class="el" href="group__w25qxx__example__driver.html#ga4c1be6979b4dc878d07ec86b8624c9d2">driver_w25qxx_advance.h</a></li>
+<li>w25qxx_advance_get_status2()&#160;:&#160;<a class="el" href="group__w25qxx__example__driver.html#gaf4736fff906c2f0c1dbed26b20847052">driver_w25qxx_advance.c</a>, <a class="el" href="group__w25qxx__example__driver.html#gaf4736fff906c2f0c1dbed26b20847052">driver_w25qxx_advance.h</a></li>
+<li>w25qxx_advance_get_status3()&#160;:&#160;<a class="el" href="group__w25qxx__example__driver.html#ga31bcd3d2cc68d2fc589685b5087bd8b3">driver_w25qxx_advance.c</a>, <a class="el" href="group__w25qxx__example__driver.html#ga31bcd3d2cc68d2fc589685b5087bd8b3">driver_w25qxx_advance.h</a></li>
+<li>w25qxx_advance_global_block_lock()&#160;:&#160;<a class="el" href="group__w25qxx__example__driver.html#ga2cbcc018dc11a870d2e0fc3a8946b1d8">driver_w25qxx_advance.c</a>, <a class="el" href="group__w25qxx__example__driver.html#ga2cbcc018dc11a870d2e0fc3a8946b1d8">driver_w25qxx_advance.h</a></li>
+<li>w25qxx_advance_global_block_unlock()&#160;:&#160;<a class="el" href="group__w25qxx__example__driver.html#ga67c70da103511d1cff9274e61a08ce56">driver_w25qxx_advance.c</a>, <a class="el" href="group__w25qxx__example__driver.html#ga67c70da103511d1cff9274e61a08ce56">driver_w25qxx_advance.h</a></li>
+<li>w25qxx_advance_individual_block_lock()&#160;:&#160;<a class="el" href="group__w25qxx__example__driver.html#gaa7af99e92b3e81f5b202575b55dc3a7c">driver_w25qxx_advance.c</a>, <a class="el" href="group__w25qxx__example__driver.html#gaa7af99e92b3e81f5b202575b55dc3a7c">driver_w25qxx_advance.h</a></li>
+<li>w25qxx_advance_individual_block_unlock()&#160;:&#160;<a class="el" href="group__w25qxx__example__driver.html#ga66726fc451c7804e8fec6eb46a6a77d6">driver_w25qxx_advance.c</a>, <a class="el" href="group__w25qxx__example__driver.html#ga66726fc451c7804e8fec6eb46a6a77d6">driver_w25qxx_advance.h</a></li>
+<li>w25qxx_advance_init()&#160;:&#160;<a class="el" href="group__w25qxx__example__driver.html#ga413b420bc199d09ce5cafee4a4debb28">driver_w25qxx_advance.c</a>, <a class="el" href="group__w25qxx__example__driver.html#ga413b420bc199d09ce5cafee4a4debb28">driver_w25qxx_advance.h</a></li>
+<li>w25qxx_advance_only_qspi_set_read_parameters()&#160;:&#160;<a class="el" href="group__w25qxx__example__driver.html#gace2a5b7acd9798cfcaa2b5eb2f18e1d1">driver_w25qxx_advance.c</a>, <a class="el" href="group__w25qxx__example__driver.html#gace2a5b7acd9798cfcaa2b5eb2f18e1d1">driver_w25qxx_advance.h</a></li>
+<li>w25qxx_advance_only_spi_fast_read_dual_io()&#160;:&#160;<a class="el" href="group__w25qxx__example__driver.html#ga4bbaf1a989fae25d16d07edb1e38ca4f">driver_w25qxx_advance.c</a>, <a class="el" href="group__w25qxx__example__driver.html#ga4bbaf1a989fae25d16d07edb1e38ca4f">driver_w25qxx_advance.h</a></li>
+<li>w25qxx_advance_only_spi_fast_read_dual_output()&#160;:&#160;<a class="el" href="group__w25qxx__example__driver.html#ga364d891407cf323d3686d36ad6357604">driver_w25qxx_advance.c</a>, <a class="el" href="group__w25qxx__example__driver.html#ga364d891407cf323d3686d36ad6357604">driver_w25qxx_advance.h</a></li>
+<li>w25qxx_advance_only_spi_fast_read_quad_io()&#160;:&#160;<a class="el" href="group__w25qxx__example__driver.html#ga395add1fa33f4f70d0ba52b38842dbdb">driver_w25qxx_advance.c</a>, <a class="el" href="group__w25qxx__example__driver.html#ga395add1fa33f4f70d0ba52b38842dbdb">driver_w25qxx_advance.h</a></li>
+<li>w25qxx_advance_only_spi_fast_read_quad_output()&#160;:&#160;<a class="el" href="group__w25qxx__example__driver.html#gaf5f978c432de7d6adaf41cd256724a01">driver_w25qxx_advance.c</a>, <a class="el" href="group__w25qxx__example__driver.html#gaf5f978c432de7d6adaf41cd256724a01">driver_w25qxx_advance.h</a></li>
+<li>w25qxx_advance_only_spi_get_manufacturer_device_id_dual_io()&#160;:&#160;<a class="el" href="group__w25qxx__example__driver.html#gac0d9e08a37ee37563c8dbb501608a668">driver_w25qxx_advance.c</a>, <a class="el" href="group__w25qxx__example__driver.html#gac0d9e08a37ee37563c8dbb501608a668">driver_w25qxx_advance.h</a></li>
+<li>w25qxx_advance_only_spi_get_manufacturer_device_id_quad_io()&#160;:&#160;<a class="el" href="group__w25qxx__example__driver.html#ga6142b5a1e8602e2990dec34015812615">driver_w25qxx_advance.c</a>, <a class="el" href="group__w25qxx__example__driver.html#ga6142b5a1e8602e2990dec34015812615">driver_w25qxx_advance.h</a></li>
+<li>w25qxx_advance_only_spi_get_sfdp()&#160;:&#160;<a class="el" href="group__w25qxx__example__driver.html#ga9b1854e0ae52f57523bc2fa7cc0656df">driver_w25qxx_advance.c</a>, <a class="el" href="group__w25qxx__example__driver.html#ga9b1854e0ae52f57523bc2fa7cc0656df">driver_w25qxx_advance.h</a></li>
+<li>w25qxx_advance_only_spi_get_unique_id()&#160;:&#160;<a class="el" href="group__w25qxx__example__driver.html#ga374d35b73fa61d5f7464c3effdae1d57">driver_w25qxx_advance.c</a>, <a class="el" href="group__w25qxx__example__driver.html#ga374d35b73fa61d5f7464c3effdae1d57">driver_w25qxx_advance.h</a></li>
+<li>w25qxx_advance_only_spi_octal_word_read_quad_io()&#160;:&#160;<a class="el" href="group__w25qxx__example__driver.html#ga825a567c535236d7d18ffccf07df59e9">driver_w25qxx_advance.c</a>, <a class="el" href="group__w25qxx__example__driver.html#ga825a567c535236d7d18ffccf07df59e9">driver_w25qxx_advance.h</a></li>
+<li>w25qxx_advance_only_spi_page_program_quad_input()&#160;:&#160;<a class="el" href="group__w25qxx__example__driver.html#gad243655eb738e44c50e6079c983fd782">driver_w25qxx_advance.c</a>, <a class="el" href="group__w25qxx__example__driver.html#gad243655eb738e44c50e6079c983fd782">driver_w25qxx_advance.h</a></li>
+<li>w25qxx_advance_only_spi_read()&#160;:&#160;<a class="el" href="group__w25qxx__example__driver.html#gac1c7f320706dd6d6d937da75b8a4da93">driver_w25qxx_advance.c</a>, <a class="el" href="group__w25qxx__example__driver.html#gac1c7f320706dd6d6d937da75b8a4da93">driver_w25qxx_advance.h</a></li>
+<li>w25qxx_advance_only_spi_read_security_register()&#160;:&#160;<a class="el" href="group__w25qxx__example__driver.html#ga02652a58ee418b432cf77505809d7d42">driver_w25qxx_advance.c</a>, <a class="el" href="group__w25qxx__example__driver.html#ga02652a58ee418b432cf77505809d7d42">driver_w25qxx_advance.h</a></li>
+<li>w25qxx_advance_only_spi_set_burst_with_wrap()&#160;:&#160;<a class="el" href="group__w25qxx__example__driver.html#ga16411577fcb794f7485912f5db1bdde9">driver_w25qxx_advance.c</a>, <a class="el" href="group__w25qxx__example__driver.html#ga16411577fcb794f7485912f5db1bdde9">driver_w25qxx_advance.h</a></li>
+<li>w25qxx_advance_only_spi_word_read_quad_io()&#160;:&#160;<a class="el" href="group__w25qxx__example__driver.html#gaca6b4c6ea32dd96a4ae8714e2862d67a">driver_w25qxx_advance.c</a>, <a class="el" href="group__w25qxx__example__driver.html#gaca6b4c6ea32dd96a4ae8714e2862d67a">driver_w25qxx_advance.h</a></li>
+<li>w25qxx_advance_only_spi_write_security_register()&#160;:&#160;<a class="el" href="group__w25qxx__example__driver.html#gaa6c5f97106e769ba071973cc2e782ad4">driver_w25qxx_advance.c</a>, <a class="el" href="group__w25qxx__example__driver.html#gaa6c5f97106e769ba071973cc2e782ad4">driver_w25qxx_advance.h</a></li>
+<li>w25qxx_advance_page_program()&#160;:&#160;<a class="el" href="group__w25qxx__example__driver.html#ga39ff13988a3d451231cec3260c13a4cd">driver_w25qxx_advance.c</a>, <a class="el" href="group__w25qxx__example__driver.html#ga39ff13988a3d451231cec3260c13a4cd">driver_w25qxx_advance.h</a></li>
+<li>w25qxx_advance_power_down()&#160;:&#160;<a class="el" href="group__w25qxx__example__driver.html#ga5599de31797633ae75a63bcd5a8f4736">driver_w25qxx_advance.c</a>, <a class="el" href="group__w25qxx__example__driver.html#ga5599de31797633ae75a63bcd5a8f4736">driver_w25qxx_advance.h</a></li>
+<li>w25qxx_advance_read()&#160;:&#160;<a class="el" href="group__w25qxx__example__driver.html#ga013a389763200b54daaa345adf9329dc">driver_w25qxx_advance.c</a>, <a class="el" href="group__w25qxx__example__driver.html#ga013a389763200b54daaa345adf9329dc">driver_w25qxx_advance.h</a></li>
+<li>w25qxx_advance_read_block_lock()&#160;:&#160;<a class="el" href="group__w25qxx__example__driver.html#gac1773fe914a01825ca28346205601036">driver_w25qxx_advance.c</a>, <a class="el" href="group__w25qxx__example__driver.html#gac1773fe914a01825ca28346205601036">driver_w25qxx_advance.h</a></li>
+<li>w25qxx_advance_reset()&#160;:&#160;<a class="el" href="group__w25qxx__example__driver.html#ga0f65053ad28443f19ed73dbc3412b5b2">driver_w25qxx_advance.c</a>, <a class="el" href="group__w25qxx__example__driver.html#ga0f65053ad28443f19ed73dbc3412b5b2">driver_w25qxx_advance.h</a></li>
+<li>w25qxx_advance_sector_erase_4k()&#160;:&#160;<a class="el" href="group__w25qxx__example__driver.html#ga9325acc424c95624f15e11631082201d">driver_w25qxx_advance.c</a>, <a class="el" href="group__w25qxx__example__driver.html#ga9325acc424c95624f15e11631082201d">driver_w25qxx_advance.h</a></li>
+<li>w25qxx_advance_set_status1()&#160;:&#160;<a class="el" href="group__w25qxx__example__driver.html#ga5e4938b4575c417ae22fa82079459b1a">driver_w25qxx_advance.c</a>, <a class="el" href="group__w25qxx__example__driver.html#ga5e4938b4575c417ae22fa82079459b1a">driver_w25qxx_advance.h</a></li>
+<li>w25qxx_advance_set_status2()&#160;:&#160;<a class="el" href="group__w25qxx__example__driver.html#ga9bc0e696b700d66f15b3605e10d33718">driver_w25qxx_advance.c</a>, <a class="el" href="group__w25qxx__example__driver.html#ga9bc0e696b700d66f15b3605e10d33718">driver_w25qxx_advance.h</a></li>
+<li>w25qxx_advance_set_status3()&#160;:&#160;<a class="el" href="group__w25qxx__example__driver.html#gab5c990ebd4874137b7d23f2b896d4601">driver_w25qxx_advance.c</a>, <a class="el" href="group__w25qxx__example__driver.html#gab5c990ebd4874137b7d23f2b896d4601">driver_w25qxx_advance.h</a></li>
+<li>w25qxx_advance_wake_up()&#160;:&#160;<a class="el" href="group__w25qxx__example__driver.html#ga8a57e2d056d452abc14b0a08d4223251">driver_w25qxx_advance.c</a>, <a class="el" href="group__w25qxx__example__driver.html#ga8a57e2d056d452abc14b0a08d4223251">driver_w25qxx_advance.h</a></li>
+<li>w25qxx_advance_write()&#160;:&#160;<a class="el" href="group__w25qxx__example__driver.html#ga63f4e1dce2ef7c7de56461524fd22d04">driver_w25qxx_advance.c</a>, <a class="el" href="group__w25qxx__example__driver.html#ga63f4e1dce2ef7c7de56461524fd22d04">driver_w25qxx_advance.h</a></li>
+<li>w25qxx_basic_chip_erase()&#160;:&#160;<a class="el" href="group__w25qxx__example__driver.html#gaf78e9f136e29b826c1a2b337b8451d6d">driver_w25qxx_basic.c</a>, <a class="el" href="group__w25qxx__example__driver.html#gaf78e9f136e29b826c1a2b337b8451d6d">driver_w25qxx_basic.h</a></li>
+<li>w25qxx_basic_deinit()&#160;:&#160;<a class="el" href="group__w25qxx__example__driver.html#gaeb167c2924a3490e9a8d11e0c57d2dc0">driver_w25qxx_basic.c</a>, <a class="el" href="group__w25qxx__example__driver.html#gaeb167c2924a3490e9a8d11e0c57d2dc0">driver_w25qxx_basic.h</a></li>
+<li>w25qxx_basic_get_id()&#160;:&#160;<a class="el" href="group__w25qxx__example__driver.html#gacdda3af55c024b55fc9939aa23650356">driver_w25qxx_basic.c</a>, <a class="el" href="group__w25qxx__example__driver.html#gacdda3af55c024b55fc9939aa23650356">driver_w25qxx_basic.h</a></li>
+<li>w25qxx_basic_init()&#160;:&#160;<a class="el" href="group__w25qxx__example__driver.html#ga1e20768311dfdf33c77b442fa874b61a">driver_w25qxx_basic.c</a>, <a class="el" href="group__w25qxx__example__driver.html#ga1e20768311dfdf33c77b442fa874b61a">driver_w25qxx_basic.h</a></li>
+<li>w25qxx_basic_power_down()&#160;:&#160;<a class="el" href="group__w25qxx__example__driver.html#ga572c9f7a0bf2e7ab43dc078121162ec3">driver_w25qxx_basic.c</a>, <a class="el" href="group__w25qxx__example__driver.html#ga572c9f7a0bf2e7ab43dc078121162ec3">driver_w25qxx_basic.h</a></li>
+<li>w25qxx_basic_read()&#160;:&#160;<a class="el" href="group__w25qxx__example__driver.html#ga143fa1f19a792142339f3d4e9ce078d0">driver_w25qxx_basic.c</a>, <a class="el" href="group__w25qxx__example__driver.html#ga143fa1f19a792142339f3d4e9ce078d0">driver_w25qxx_basic.h</a></li>
+<li>w25qxx_basic_wake_up()&#160;:&#160;<a class="el" href="group__w25qxx__example__driver.html#ga02914409a9db38f35bc89d9fc4d96a17">driver_w25qxx_basic.c</a>, <a class="el" href="group__w25qxx__example__driver.html#ga02914409a9db38f35bc89d9fc4d96a17">driver_w25qxx_basic.h</a></li>
+<li>w25qxx_basic_write()&#160;:&#160;<a class="el" href="group__w25qxx__example__driver.html#ga5cf24fc78e1b45e845d02ec9133f46ab">driver_w25qxx_basic.c</a>, <a class="el" href="group__w25qxx__example__driver.html#ga5cf24fc78e1b45e845d02ec9133f46ab">driver_w25qxx_basic.h</a></li>
+<li>w25qxx_block_erase_32k()&#160;:&#160;<a class="el" href="group__w25qxx__basic__driver.html#ga39c8fb382e8c3e4d57232dfa79af781c">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__basic__driver.html#ga39c8fb382e8c3e4d57232dfa79af781c">driver_w25qxx.h</a></li>
+<li>w25qxx_block_erase_64k()&#160;:&#160;<a class="el" href="group__w25qxx__basic__driver.html#gaf53bc5f6073482b9b74efd417ec7ac83">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__basic__driver.html#gaf53bc5f6073482b9b74efd417ec7ac83">driver_w25qxx.h</a></li>
+<li>W25QXX_BOOL_FALSE&#160;:&#160;<a class="el" href="group__w25qxx__basic__driver.html#ggafb2690946f5baf4be6f3a63dde5491fba02afbdc2c6c3d761cd31ac39c857ee9a">driver_w25qxx.h</a></li>
+<li>w25qxx_bool_t&#160;:&#160;<a class="el" href="group__w25qxx__basic__driver.html#gafb2690946f5baf4be6f3a63dde5491fb">driver_w25qxx.h</a></li>
+<li>W25QXX_BOOL_TRUE&#160;:&#160;<a class="el" href="group__w25qxx__basic__driver.html#ggafb2690946f5baf4be6f3a63dde5491fbae2a935d12b0b1bc9fc321246ee0e0df8">driver_w25qxx.h</a></li>
+<li>W25QXX_BURST_WRAP_16_BYTE&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#gga94bbae2bf8906903e8dc2a28c490723dafec1eb230b49fbda6ffcc1eeda64179a">driver_w25qxx.h</a></li>
+<li>W25QXX_BURST_WRAP_32_BYTE&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#gga94bbae2bf8906903e8dc2a28c490723dae2ac810153f9515a145773c34409b995">driver_w25qxx.h</a></li>
+<li>W25QXX_BURST_WRAP_64_BYTE&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#gga94bbae2bf8906903e8dc2a28c490723da2a3afd7924b00cf74abe83f5216c8915">driver_w25qxx.h</a></li>
+<li>W25QXX_BURST_WRAP_8_BYTE&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#gga94bbae2bf8906903e8dc2a28c490723da35edf6c31d0fe1771ab79669d13b7af8">driver_w25qxx.h</a></li>
+<li>W25QXX_BURST_WRAP_NONE&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#gga94bbae2bf8906903e8dc2a28c490723dae39a7ea65512a56d40aad2990d55815d">driver_w25qxx.h</a></li>
+<li>w25qxx_burst_wrap_t&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#ga94bbae2bf8906903e8dc2a28c490723d">driver_w25qxx.h</a></li>
+<li>w25qxx_chip_erase()&#160;:&#160;<a class="el" href="group__w25qxx__basic__driver.html#ga0862833b36831f92684980b2e21f2e39">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__basic__driver.html#ga0862833b36831f92684980b2e21f2e39">driver_w25qxx.h</a></li>
+<li>W25QXX_COMMAND_BLOCK_ERASE_32K&#160;:&#160;<a class="el" href="driver__w25qxx_8c.html#a8bfb4e869985f5fa21ea7d1d262f90ad">driver_w25qxx.c</a></li>
+<li>W25QXX_COMMAND_BLOCK_ERASE_64K&#160;:&#160;<a class="el" href="driver__w25qxx_8c.html#a4c5a1ed46f4d662a61bc06573ab548a0">driver_w25qxx.c</a></li>
+<li>W25QXX_COMMAND_CHIP_ERASE&#160;:&#160;<a class="el" href="driver__w25qxx_8c.html#a63ec9ecd709fcb69107756f253616a6e">driver_w25qxx.c</a></li>
+<li>W25QXX_COMMAND_DEVICE_ID_DUAL_IO&#160;:&#160;<a class="el" href="driver__w25qxx_8c.html#a374c09f79cc61a3e7ac374bca5122e25">driver_w25qxx.c</a></li>
+<li>W25QXX_COMMAND_DEVICE_ID_QUAD_IO&#160;:&#160;<a class="el" href="driver__w25qxx_8c.html#a7573bc250d850078be3221c29521bc5c">driver_w25qxx.c</a></li>
+<li>W25QXX_COMMAND_ENABLE_RESET&#160;:&#160;<a class="el" href="driver__w25qxx_8c.html#a6dae3a832abc19d1861fafb32f231d94">driver_w25qxx.c</a></li>
+<li>W25QXX_COMMAND_ENTER_QSPI_MODE&#160;:&#160;<a class="el" href="driver__w25qxx_8c.html#a052d5373086b473bf0d450ea1bd73828">driver_w25qxx.c</a></li>
+<li>W25QXX_COMMAND_ERASE_PROGRAM_RESUME&#160;:&#160;<a class="el" href="driver__w25qxx_8c.html#a0daeb46fb8b219a3d6b37d426c5c0e95">driver_w25qxx.c</a></li>
+<li>W25QXX_COMMAND_ERASE_PROGRAM_SUSPEND&#160;:&#160;<a class="el" href="driver__w25qxx_8c.html#a43f9a1e3c03d4a7d2a991e81f0e89f51">driver_w25qxx.c</a></li>
+<li>W25QXX_COMMAND_ERASE_SECURITY_REGISTER&#160;:&#160;<a class="el" href="driver__w25qxx_8c.html#a842f8d646fc8f8ed72422fc1d789498c">driver_w25qxx.c</a></li>
+<li>W25QXX_COMMAND_FAST_READ&#160;:&#160;<a class="el" href="driver__w25qxx_8c.html#ac957b31a68db8c14f88a196a98b0aa18">driver_w25qxx.c</a></li>
+<li>W25QXX_COMMAND_FAST_READ_DUAL_IO&#160;:&#160;<a class="el" href="driver__w25qxx_8c.html#a2232ada3558228c2902d654989ca65f1">driver_w25qxx.c</a></li>
+<li>W25QXX_COMMAND_FAST_READ_DUAL_OUTPUT&#160;:&#160;<a class="el" href="driver__w25qxx_8c.html#a8d49efa8b978ae8fd3eb18d0e5ae73e8">driver_w25qxx.c</a></li>
+<li>W25QXX_COMMAND_FAST_READ_QUAD_IO&#160;:&#160;<a class="el" href="driver__w25qxx_8c.html#a80d19998d9d1218d0fa69e7d4d6b0ecb">driver_w25qxx.c</a></li>
+<li>W25QXX_COMMAND_FAST_READ_QUAD_OUTPUT&#160;:&#160;<a class="el" href="driver__w25qxx_8c.html#a54ddb3d948c4bb95cc62199676c817b2">driver_w25qxx.c</a></li>
+<li>W25QXX_COMMAND_GLOBAL_BLOCK_SECTOR_LOCK&#160;:&#160;<a class="el" href="driver__w25qxx_8c.html#af81bc9ddfc8da8eb911435e835536ffb">driver_w25qxx.c</a></li>
+<li>W25QXX_COMMAND_GLOBAL_BLOCK_SECTOR_UNLOCK&#160;:&#160;<a class="el" href="driver__w25qxx_8c.html#ab96d2ad8602a5a50c988b8c09d4bbbc5">driver_w25qxx.c</a></li>
+<li>W25QXX_COMMAND_INDIVIDUAL_BLOCK_LOCK&#160;:&#160;<a class="el" href="driver__w25qxx_8c.html#a328f6a9635b1ec6868410375de90b0df">driver_w25qxx.c</a></li>
+<li>W25QXX_COMMAND_INDIVIDUAL_BLOCK_UNLOCK&#160;:&#160;<a class="el" href="driver__w25qxx_8c.html#a3cc8b61583b5eb9d7c1ecd6831689718">driver_w25qxx.c</a></li>
+<li>W25QXX_COMMAND_JEDEC_ID&#160;:&#160;<a class="el" href="driver__w25qxx_8c.html#a54f3ece548cd5eadc94642235442315a">driver_w25qxx.c</a></li>
+<li>W25QXX_COMMAND_OCTAL_WORD_READ_QUAD_IO&#160;:&#160;<a class="el" href="driver__w25qxx_8c.html#acb7f8599b26c29356651690ec9b25e66">driver_w25qxx.c</a></li>
+<li>W25QXX_COMMAND_PAGE_PROGRAM&#160;:&#160;<a class="el" href="driver__w25qxx_8c.html#aebca01f1f7fd279523d29e579998574a">driver_w25qxx.c</a></li>
+<li>W25QXX_COMMAND_POWER_DOWN&#160;:&#160;<a class="el" href="driver__w25qxx_8c.html#a6fe4d603e33b7c8b8310a884e02a130b">driver_w25qxx.c</a></li>
+<li>W25QXX_COMMAND_PROGRAM_SECURITY_REGISTER&#160;:&#160;<a class="el" href="driver__w25qxx_8c.html#a915ab53f5f2d1cad6b954205e76cb4d5">driver_w25qxx.c</a></li>
+<li>W25QXX_COMMAND_QUAD_PAGE_PROGRAM&#160;:&#160;<a class="el" href="driver__w25qxx_8c.html#a8212fac3d1e43024621b6b560a8dddfe">driver_w25qxx.c</a></li>
+<li>W25QXX_COMMAND_READ_BLOCK_LOCK&#160;:&#160;<a class="el" href="driver__w25qxx_8c.html#a19e055bec30de0ad30e7f8ab5feea6a8">driver_w25qxx.c</a></li>
+<li>W25QXX_COMMAND_READ_DATA&#160;:&#160;<a class="el" href="driver__w25qxx_8c.html#a23fcd6d9b067580d534d626c43b7cff3">driver_w25qxx.c</a></li>
+<li>W25QXX_COMMAND_READ_MANUFACTURER&#160;:&#160;<a class="el" href="driver__w25qxx_8c.html#af6d9a5bc0b57b041e22af80b85e53f56">driver_w25qxx.c</a></li>
+<li>W25QXX_COMMAND_READ_SECURITY_REGISTER&#160;:&#160;<a class="el" href="driver__w25qxx_8c.html#a4dc5fb2c3c15ef86df56b534b874a919">driver_w25qxx.c</a></li>
+<li>W25QXX_COMMAND_READ_SFDP_REGISTER&#160;:&#160;<a class="el" href="driver__w25qxx_8c.html#a63774c5ebbdf5445466d840fad567bf6">driver_w25qxx.c</a></li>
+<li>W25QXX_COMMAND_READ_STATUS_REG1&#160;:&#160;<a class="el" href="driver__w25qxx_8c.html#adf682969c34f4b31a87dd92dd18ccea3">driver_w25qxx.c</a></li>
+<li>W25QXX_COMMAND_READ_STATUS_REG2&#160;:&#160;<a class="el" href="driver__w25qxx_8c.html#a4a8cdc5b6ce75029df877263bdf35f2a">driver_w25qxx.c</a></li>
+<li>W25QXX_COMMAND_READ_STATUS_REG3&#160;:&#160;<a class="el" href="driver__w25qxx_8c.html#a09798bdb3fabdf7bb4cfd8bce18100ce">driver_w25qxx.c</a></li>
+<li>W25QXX_COMMAND_READ_UNIQUE_ID&#160;:&#160;<a class="el" href="driver__w25qxx_8c.html#a6aeed0a651b31064f25ab2f57fdacf2f">driver_w25qxx.c</a></li>
+<li>W25QXX_COMMAND_RELEASE_POWER_DOWN&#160;:&#160;<a class="el" href="driver__w25qxx_8c.html#ad344065461b2c71521017984f040b425">driver_w25qxx.c</a></li>
+<li>W25QXX_COMMAND_RESET_DEVICE&#160;:&#160;<a class="el" href="driver__w25qxx_8c.html#ab25182298c921c8f7f42216e0d5aa56b">driver_w25qxx.c</a></li>
+<li>W25QXX_COMMAND_SECTOR_ERASE_4K&#160;:&#160;<a class="el" href="driver__w25qxx_8c.html#a6e7cd159f91e23930450725fd6910f9c">driver_w25qxx.c</a></li>
+<li>W25QXX_COMMAND_SET_BURST_WITH_WRAP&#160;:&#160;<a class="el" href="driver__w25qxx_8c.html#acfb19490258b26729fa83fdd60c4d822">driver_w25qxx.c</a></li>
+<li>W25QXX_COMMAND_VOLATILE_SR_WRITE_ENABLE&#160;:&#160;<a class="el" href="driver__w25qxx_8c.html#a7c9e980e30f499dd97b02935c91f2c02">driver_w25qxx.c</a></li>
+<li>W25QXX_COMMAND_WORD_READ_QUAD_IO&#160;:&#160;<a class="el" href="driver__w25qxx_8c.html#a947382a74ac06eb8a2ff8f5bcb1b744d">driver_w25qxx.c</a></li>
+<li>W25QXX_COMMAND_WRITE_DISABLE&#160;:&#160;<a class="el" href="driver__w25qxx_8c.html#a36dfb1951fe152d63e3715a161646713">driver_w25qxx.c</a></li>
+<li>W25QXX_COMMAND_WRITE_ENABLE&#160;:&#160;<a class="el" href="driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5">driver_w25qxx.c</a></li>
+<li>W25QXX_COMMAND_WRITE_STATUS_REG1&#160;:&#160;<a class="el" href="driver__w25qxx_8c.html#a932f54ff92de8bbab4602ab85ac6c155">driver_w25qxx.c</a></li>
+<li>W25QXX_COMMAND_WRITE_STATUS_REG2&#160;:&#160;<a class="el" href="driver__w25qxx_8c.html#a4be10ed873d56bb183d9b1bde9105135">driver_w25qxx.c</a></li>
+<li>W25QXX_COMMAND_WRITE_STATUS_REG3&#160;:&#160;<a class="el" href="driver__w25qxx_8c.html#a6d099dc6afb59cc950d3abe96b840158">driver_w25qxx.c</a></li>
+<li>w25qxx_deinit()&#160;:&#160;<a class="el" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">driver_w25qxx.h</a></li>
+<li>w25qxx_disable_write()&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#gac16a31269277051baad6c28fe4254b4a">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__advance__driver.html#gac16a31269277051baad6c28fe4254b4a">driver_w25qxx.h</a></li>
+<li>W25QXX_ENABLE_ERASE_READ_TEST&#160;:&#160;<a class="el" href="group__w25qxx__test__driver.html#ga8be86baae6f8448171125c70da1fbfa0">driver_w25qxx_read_test.h</a></li>
+<li>w25qxx_enable_reset()&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#gab55b4e071e20feb58584025287949438">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__advance__driver.html#gab55b4e071e20feb58584025287949438">driver_w25qxx.h</a></li>
+<li>w25qxx_enable_volatile_sr_write()&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#ga0f8889d6a25c32e150a2ab30753d461d">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__advance__driver.html#ga0f8889d6a25c32e150a2ab30753d461d">driver_w25qxx.h</a></li>
+<li>w25qxx_enable_write()&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#gaeb269123feec054eaaf70f2ffb5797a3">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__advance__driver.html#gaeb269123feec054eaaf70f2ffb5797a3">driver_w25qxx.h</a></li>
+<li>w25qxx_enter_qspi_mode()&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#gaa5ab3548707a95ded115255432224c5a">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__advance__driver.html#gaa5ab3548707a95ded115255432224c5a">driver_w25qxx.h</a></li>
+<li>w25qxx_erase_program_resume()&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#ga05c69ac66309544eba4ff38a69f24c00">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__advance__driver.html#ga05c69ac66309544eba4ff38a69f24c00">driver_w25qxx.h</a></li>
+<li>w25qxx_erase_program_suspend()&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#gac7fbabc574c250eec100be861f5918ff">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__advance__driver.html#gac7fbabc574c250eec100be861f5918ff">driver_w25qxx.h</a></li>
+<li>w25qxx_erase_security_register()&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#gaf297e2c6877c64f8fd10a555f783ddaf">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__advance__driver.html#gaf297e2c6877c64f8fd10a555f783ddaf">driver_w25qxx.h</a></li>
+<li>w25qxx_exit_qspi_mode()&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#ga6b9f75f7426a54ffdb1f5a057f8188f4">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__advance__driver.html#ga6b9f75f7426a54ffdb1f5a057f8188f4">driver_w25qxx.h</a></li>
+<li>w25qxx_fast_read()&#160;:&#160;<a class="el" href="group__w25qxx__basic__driver.html#gac345ba10af5ad355578fa97697487123">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__basic__driver.html#gac345ba10af5ad355578fa97697487123">driver_w25qxx.h</a></li>
+<li>w25qxx_fast_read_dual_io()&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#gac894f4650905cba10dd3a31284de6d5e">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__advance__driver.html#gac894f4650905cba10dd3a31284de6d5e">driver_w25qxx.h</a></li>
+<li>w25qxx_fast_read_dual_output()&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#ga7a19230ca3916816ea8fb7421483d293">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__advance__driver.html#ga7a19230ca3916816ea8fb7421483d293">driver_w25qxx.h</a></li>
+<li>w25qxx_fast_read_quad_io()&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#gab97a64bd3776874518f60381d921ae41">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__advance__driver.html#gab97a64bd3776874518f60381d921ae41">driver_w25qxx.h</a></li>
+<li>w25qxx_fast_read_quad_output()&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#gaf4bfafd1f80aa0316a4b1a15183dcd50">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__advance__driver.html#gaf4bfafd1f80aa0316a4b1a15183dcd50">driver_w25qxx.h</a></li>
+<li>w25qxx_get_address_mode()&#160;:&#160;<a class="el" href="group__w25qxx__basic__driver.html#ga3a52036a97b12fcbe2280b0901a80b90">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__basic__driver.html#ga3a52036a97b12fcbe2280b0901a80b90">driver_w25qxx.h</a></li>
+<li>w25qxx_get_dual_quad_spi()&#160;:&#160;<a class="el" href="group__w25qxx__basic__driver.html#gad4c9b8b0a2d0916c13567f9d7e494cf8">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__basic__driver.html#gad4c9b8b0a2d0916c13567f9d7e494cf8">driver_w25qxx.h</a></li>
+<li>w25qxx_get_interface()&#160;:&#160;<a class="el" href="group__w25qxx__basic__driver.html#ga86ef839d475f3926a0be46bbc18d4b45">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__basic__driver.html#ga86ef839d475f3926a0be46bbc18d4b45">driver_w25qxx.h</a></li>
+<li>w25qxx_get_jedec_id()&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#ga8a93ba14a032e10a27f1495fdcf56058">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__advance__driver.html#ga8a93ba14a032e10a27f1495fdcf56058">driver_w25qxx.h</a></li>
+<li>w25qxx_get_manufacturer_device_id()&#160;:&#160;<a class="el" href="group__w25qxx__basic__driver.html#ga921836a777b082ff4d0f322ccfda6b22">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__basic__driver.html#ga921836a777b082ff4d0f322ccfda6b22">driver_w25qxx.h</a></li>
+<li>w25qxx_get_manufacturer_device_id_dual_io()&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#ga1cd3aec1bdeabbaed5f049fbf83ceeb4">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__advance__driver.html#ga1cd3aec1bdeabbaed5f049fbf83ceeb4">driver_w25qxx.h</a></li>
+<li>w25qxx_get_manufacturer_device_id_quad_io()&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#ga61bd3ce40b76b6862c6a53e0e37a3455">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__advance__driver.html#ga61bd3ce40b76b6862c6a53e0e37a3455">driver_w25qxx.h</a></li>
+<li>w25qxx_get_sfdp()&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#ga244a91b9c0c32e899ca89e1943045624">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__advance__driver.html#ga244a91b9c0c32e899ca89e1943045624">driver_w25qxx.h</a></li>
+<li>w25qxx_get_status1()&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#gaa77d2b00b4fb9cf586f77ace827ea7c6">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__advance__driver.html#gaa77d2b00b4fb9cf586f77ace827ea7c6">driver_w25qxx.h</a></li>
+<li>w25qxx_get_status2()&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#gaa21237ecbd5951b8017799066e7db5d9">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__advance__driver.html#gaa21237ecbd5951b8017799066e7db5d9">driver_w25qxx.h</a></li>
+<li>w25qxx_get_status3()&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#ga99cf6a325a00921d4531004f0c1d75b1">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__advance__driver.html#ga99cf6a325a00921d4531004f0c1d75b1">driver_w25qxx.h</a></li>
+<li>w25qxx_get_type()&#160;:&#160;<a class="el" href="group__w25qxx__basic__driver.html#ga685379998dad173b6d9c0b0da270685c">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__basic__driver.html#ga685379998dad173b6d9c0b0da270685c">driver_w25qxx.h</a></li>
+<li>w25qxx_get_unique_id()&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#ga11af244389478de68a6777076ee82d69">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__advance__driver.html#ga11af244389478de68a6777076ee82d69">driver_w25qxx.h</a></li>
+<li>w25qxx_global_block_lock()&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#gab5579bc42bc07a7657848140888a817c">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__advance__driver.html#gab5579bc42bc07a7657848140888a817c">driver_w25qxx.h</a></li>
+<li>w25qxx_global_block_unlock()&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#ga6d62f7d14945cfde7cde7a0e9a4e3afb">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__advance__driver.html#ga6d62f7d14945cfde7cde7a0e9a4e3afb">driver_w25qxx.h</a></li>
+<li>w25qxx_handle_t&#160;:&#160;<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">driver_w25qxx.h</a></li>
+<li>w25qxx_individual_block_lock()&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#ga4f00c2c169cb7c3084841c6cd795e76b">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__advance__driver.html#ga4f00c2c169cb7c3084841c6cd795e76b">driver_w25qxx.h</a></li>
+<li>w25qxx_individual_block_unlock()&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#ga7f88cedf7619071b3235ba094915b2a7">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__advance__driver.html#ga7f88cedf7619071b3235ba094915b2a7">driver_w25qxx.h</a></li>
+<li>w25qxx_info()&#160;:&#160;<a class="el" href="group__w25qxx__basic__driver.html#ga996e2d3009432e7f8c1a5175c4438a57">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__basic__driver.html#ga996e2d3009432e7f8c1a5175c4438a57">driver_w25qxx.h</a></li>
+<li>w25qxx_info_t&#160;:&#160;<a class="el" href="group__w25qxx__basic__driver.html#ga601d841ddd0ff8ad3ab52e07c679ef19">driver_w25qxx.h</a></li>
+<li>w25qxx_init()&#160;:&#160;<a class="el" href="group__w25qxx__basic__driver.html#ga8e7a163b3d255b8c7fc035d0d60f2491">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__basic__driver.html#ga8e7a163b3d255b8c7fc035d0d60f2491">driver_w25qxx.h</a></li>
+<li>w25qxx_interface_debug_print()&#160;:&#160;<a class="el" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">driver_w25qxx_interface.h</a>, <a class="el" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">driver_w25qxx_interface_template.c</a></li>
+<li>w25qxx_interface_delay_ms()&#160;:&#160;<a class="el" href="group__w25qxx__interface__driver.html#ga964fa232abf98737cb98458eebfff82c">driver_w25qxx_interface.h</a>, <a class="el" href="group__w25qxx__interface__driver.html#ga964fa232abf98737cb98458eebfff82c">driver_w25qxx_interface_template.c</a></li>
+<li>w25qxx_interface_delay_us()&#160;:&#160;<a class="el" href="group__w25qxx__interface__driver.html#ga38e79039b913154c9dd1036ff52bb420">driver_w25qxx_interface.h</a>, <a class="el" href="group__w25qxx__interface__driver.html#ga38e79039b913154c9dd1036ff52bb420">driver_w25qxx_interface_template.c</a></li>
+<li>W25QXX_INTERFACE_QSPI&#160;:&#160;<a class="el" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2fea895dcb5c91da89fad1c12161ffd2d5d4">driver_w25qxx.h</a></li>
+<li>W25QXX_INTERFACE_SPI&#160;:&#160;<a class="el" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">driver_w25qxx.h</a></li>
+<li>w25qxx_interface_spi_qspi_deinit()&#160;:&#160;<a class="el" href="group__w25qxx__interface__driver.html#ga091f3607fcdd47f9e5f94cf1397bd46a">driver_w25qxx_interface.h</a>, <a class="el" href="group__w25qxx__interface__driver.html#ga091f3607fcdd47f9e5f94cf1397bd46a">driver_w25qxx_interface_template.c</a></li>
+<li>w25qxx_interface_spi_qspi_init()&#160;:&#160;<a class="el" href="group__w25qxx__interface__driver.html#ga2bdc17a556f1c801a38656331f3bb7b6">driver_w25qxx_interface.h</a>, <a class="el" href="group__w25qxx__interface__driver.html#ga2bdc17a556f1c801a38656331f3bb7b6">driver_w25qxx_interface_template.c</a></li>
+<li>w25qxx_interface_spi_qspi_write_read()&#160;:&#160;<a class="el" href="group__w25qxx__interface__driver.html#ga3d76ea1f431978f6b55edfd0628c94cd">driver_w25qxx_interface.h</a>, <a class="el" href="group__w25qxx__interface__driver.html#ga3d76ea1f431978f6b55edfd0628c94cd">driver_w25qxx_interface_template.c</a></li>
+<li>w25qxx_interface_t&#160;:&#160;<a class="el" href="group__w25qxx__basic__driver.html#gacbf327a42336baf10713a1796ff4f2fe">driver_w25qxx.h</a></li>
+<li>w25qxx_octal_word_read_quad_io()&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#ga88a62ec42e86db821ff3f0d3ab541dbb">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__advance__driver.html#ga88a62ec42e86db821ff3f0d3ab541dbb">driver_w25qxx.h</a></li>
+<li>w25qxx_only_spi_read()&#160;:&#160;<a class="el" href="group__w25qxx__basic__driver.html#ga1e9ebf198137d23558dbf6470213c472">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__basic__driver.html#ga1e9ebf198137d23558dbf6470213c472">driver_w25qxx.h</a></li>
+<li>w25qxx_page_program()&#160;:&#160;<a class="el" href="group__w25qxx__basic__driver.html#ga6280e7e4ab26306436e2c210617a28b3">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__basic__driver.html#ga6280e7e4ab26306436e2c210617a28b3">driver_w25qxx.h</a></li>
+<li>w25qxx_page_program_quad_input()&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#ga1f80bbbaaa852eecfffb87737889363d">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__advance__driver.html#ga1f80bbbaaa852eecfffb87737889363d">driver_w25qxx.h</a></li>
+<li>w25qxx_power_down()&#160;:&#160;<a class="el" href="group__w25qxx__basic__driver.html#gae4effce67e36120325e3c7b245b90142">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__basic__driver.html#gae4effce67e36120325e3c7b245b90142">driver_w25qxx.h</a></li>
+<li>w25qxx_program_security_register()&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#ga4e9c059ff78866e478e835cb27a92899">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__advance__driver.html#ga4e9c059ff78866e478e835cb27a92899">driver_w25qxx.h</a></li>
+<li>W25QXX_QSPI_READ_DUMMY_2_33MHZ&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#gga6ff284154302248f00db269146545443ad73634a0f4534c3ae35d4242b2bc8f13">driver_w25qxx.h</a></li>
+<li>W25QXX_QSPI_READ_DUMMY_4_55MHZ&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#gga6ff284154302248f00db269146545443a6423b5606e72af6479fe31a6a9883aeb">driver_w25qxx.h</a></li>
+<li>W25QXX_QSPI_READ_DUMMY_6_80MHZ&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#gga6ff284154302248f00db269146545443a78393debe12bbb3efb710e38e3c1d550">driver_w25qxx.h</a></li>
+<li>W25QXX_QSPI_READ_DUMMY_8_80MHZ&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#gga6ff284154302248f00db269146545443ade1d3511f15c7d92de8c5d8967c471c3">driver_w25qxx.h</a></li>
+<li>w25qxx_qspi_read_dummy_t&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#ga6ff284154302248f00db269146545443">driver_w25qxx.h</a></li>
+<li>W25QXX_QSPI_READ_WRAP_LENGTH_16_BYTE&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#gga2fd3023819e1aebe089a4a72eb136da3ae6bc2fcd2d4fc3af63f22da56a3b393b">driver_w25qxx.h</a></li>
+<li>W25QXX_QSPI_READ_WRAP_LENGTH_32_BYTE&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#gga2fd3023819e1aebe089a4a72eb136da3aa5f2e6b5718a85ab9241125e84181216">driver_w25qxx.h</a></li>
+<li>W25QXX_QSPI_READ_WRAP_LENGTH_64_BYTE&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#gga2fd3023819e1aebe089a4a72eb136da3a736f25eeae36f6a0b62d4cb1666a689f">driver_w25qxx.h</a></li>
+<li>W25QXX_QSPI_READ_WRAP_LENGTH_8_BYTE&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#gga2fd3023819e1aebe089a4a72eb136da3a5b8fa1026c564fe83f3f0f0edb89d1dd">driver_w25qxx.h</a></li>
+<li>w25qxx_qspi_read_wrap_length_t&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#ga2fd3023819e1aebe089a4a72eb136da3">driver_w25qxx.h</a></li>
+<li>w25qxx_read()&#160;:&#160;<a class="el" href="group__w25qxx__basic__driver.html#gae7479fc9ce911a52e3c5b6f1a615b879">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__basic__driver.html#gae7479fc9ce911a52e3c5b6f1a615b879">driver_w25qxx.h</a></li>
+<li>w25qxx_read_block_lock()&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#ga59e655ca78a175037ca810bbc8539a96">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__advance__driver.html#ga59e655ca78a175037ca810bbc8539a96">driver_w25qxx.h</a></li>
+<li>w25qxx_read_security_register()&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#ga4c65debc4947bd9a61e0073105164b9c">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__advance__driver.html#ga4c65debc4947bd9a61e0073105164b9c">driver_w25qxx.h</a></li>
+<li>w25qxx_read_test()&#160;:&#160;<a class="el" href="group__w25qxx__test__driver.html#ga4ce42ca34d33cd64cb823040780999af">driver_w25qxx_read_test.c</a>, <a class="el" href="group__w25qxx__test__driver.html#ga4ce42ca34d33cd64cb823040780999af">driver_w25qxx_read_test.h</a></li>
+<li>w25qxx_register_test()&#160;:&#160;<a class="el" href="group__w25qxx__test__driver.html#ga05d07036254d102ebea0d0b1e83862c8">driver_w25qxx_register_test.c</a>, <a class="el" href="group__w25qxx__test__driver.html#ga05d07036254d102ebea0d0b1e83862c8">driver_w25qxx_register_test.h</a></li>
+<li>w25qxx_release_power_down()&#160;:&#160;<a class="el" href="group__w25qxx__basic__driver.html#ga09c9b52877516a2ee4c080dc249e7331">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__basic__driver.html#ga09c9b52877516a2ee4c080dc249e7331">driver_w25qxx.h</a></li>
+<li>w25qxx_reset_device()&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#ga2abebfe2a8d9377eb88448ffca73f222">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__advance__driver.html#ga2abebfe2a8d9377eb88448ffca73f222">driver_w25qxx.h</a></li>
+<li>w25qxx_sector_erase_4k()&#160;:&#160;<a class="el" href="group__w25qxx__basic__driver.html#ga9a03c51b4c84655350c15fbfce0a6b40">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__basic__driver.html#ga9a03c51b4c84655350c15fbfce0a6b40">driver_w25qxx.h</a></li>
+<li>W25QXX_SECURITY_REGISTER_1&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#gga81ddc7d4b9f4f124163beea19cc33c7eaaf27484a497c13915c8acb0161cf137d">driver_w25qxx.h</a></li>
+<li>W25QXX_SECURITY_REGISTER_2&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#gga81ddc7d4b9f4f124163beea19cc33c7ea3353a88090850174ca163d56e4d7089c">driver_w25qxx.h</a></li>
+<li>W25QXX_SECURITY_REGISTER_3&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#gga81ddc7d4b9f4f124163beea19cc33c7ea65b73162d921075bed8cb8d848948900">driver_w25qxx.h</a></li>
+<li>w25qxx_security_register_t&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#ga81ddc7d4b9f4f124163beea19cc33c7e">driver_w25qxx.h</a></li>
+<li>w25qxx_set_address_mode()&#160;:&#160;<a class="el" href="group__w25qxx__basic__driver.html#gad0e125eff304ce66fb3956d2c8c80656">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__basic__driver.html#gad0e125eff304ce66fb3956d2c8c80656">driver_w25qxx.h</a></li>
+<li>w25qxx_set_burst_with_wrap()&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#gac19c1d0f3fd48968ea2a93c1dbe3d75d">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__advance__driver.html#gac19c1d0f3fd48968ea2a93c1dbe3d75d">driver_w25qxx.h</a></li>
+<li>w25qxx_set_dual_quad_spi()&#160;:&#160;<a class="el" href="group__w25qxx__basic__driver.html#ga665139209b0abc386474a78d89cce6f2">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__basic__driver.html#ga665139209b0abc386474a78d89cce6f2">driver_w25qxx.h</a></li>
+<li>w25qxx_set_interface()&#160;:&#160;<a class="el" href="group__w25qxx__basic__driver.html#ga50a62003d566402d46ada2f272c41eb5">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__basic__driver.html#ga50a62003d566402d46ada2f272c41eb5">driver_w25qxx.h</a></li>
+<li>w25qxx_set_read_parameters()&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#ga9ad10781d888b32b43b9eba45d049624">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__advance__driver.html#ga9ad10781d888b32b43b9eba45d049624">driver_w25qxx.h</a></li>
+<li>w25qxx_set_status1()&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#ga246e0bb07c8bbb39731f17906779c012">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__advance__driver.html#ga246e0bb07c8bbb39731f17906779c012">driver_w25qxx.h</a></li>
+<li>w25qxx_set_status2()&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#gaab5f28e8930d50dbc2178e39bc9fa456">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__advance__driver.html#gaab5f28e8930d50dbc2178e39bc9fa456">driver_w25qxx.h</a></li>
+<li>w25qxx_set_status3()&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#gada897a6c6d6acb99f4dd4ff9b65ad8ee">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__advance__driver.html#gada897a6c6d6acb99f4dd4ff9b65ad8ee">driver_w25qxx.h</a></li>
+<li>w25qxx_set_type()&#160;:&#160;<a class="el" href="group__w25qxx__basic__driver.html#gaa57189cd4170b73f8b1300ca15e27de6">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__basic__driver.html#gaa57189cd4170b73f8b1300ca15e27de6">driver_w25qxx.h</a></li>
+<li>W25QXX_STATUS1_BLOCK_PROTECT_0&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a7b7e8922009c0d6a88bbfad76a812262">driver_w25qxx.h</a></li>
+<li>W25QXX_STATUS1_BLOCK_PROTECT_1&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a3465f02625d38730630b60cd01e92085">driver_w25qxx.h</a></li>
+<li>W25QXX_STATUS1_BLOCK_PROTECT_2&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a9a02180228dbb94e9d302b667fda884f">driver_w25qxx.h</a></li>
+<li>W25QXX_STATUS1_ERASE_WRITE_PROGRESS&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595ae1ce566fc564776e98a5c7edefe8c5ea">driver_w25qxx.h</a></li>
+<li>W25QXX_STATUS1_SECTOR_PROTECT_OR_TOP_BOTTOM_PROTECT&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a9522040a098337442eff127e1598776d">driver_w25qxx.h</a></li>
+<li>W25QXX_STATUS1_STATUS_REGISTER_PROTECT_0&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a00d1d224963ec1f38ac97802480b2129">driver_w25qxx.h</a></li>
+<li>w25qxx_status1_t&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#ga9e41a72d1e25d39d88ce7108a9b25595">driver_w25qxx.h</a></li>
+<li>W25QXX_STATUS1_TOP_BOTTOM_PROTECT_OR_BLOCK_PROTECT_3&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a63bc45b7e0e19de7e58e3494eb4046c5">driver_w25qxx.h</a></li>
+<li>W25QXX_STATUS1_WRITE_ENABLE_LATCH&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a1438a76d1be1aa02e4f7450a045c02e3">driver_w25qxx.h</a></li>
+<li>W25QXX_STATUS2_COMPLEMENT_PROTECT&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277a517e9e50ada30462f902d01e8d5579dc">driver_w25qxx.h</a></li>
+<li>W25QXX_STATUS2_QUAD_ENABLE&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277aa920a9c9a590fb8740419d8d2e4230f3">driver_w25qxx.h</a></li>
+<li>W25QXX_STATUS2_SECURITY_REGISTER_1_LOCK_BITS&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277a7a631c1c153cc099a52883b40007079e">driver_w25qxx.h</a></li>
+<li>W25QXX_STATUS2_SECURITY_REGISTER_2_LOCK_BITS&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277a24a99f1a97023ae103c1bec3027bbf26">driver_w25qxx.h</a></li>
+<li>W25QXX_STATUS2_SECURITY_REGISTER_3_LOCK_BITS&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277a0f3e2b3059d56f974724a8284142e69a">driver_w25qxx.h</a></li>
+<li>W25QXX_STATUS2_STATUS_REGISTER_PROTECT_1&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277a5a89a885ba2a59eccd0445443e3bbac6">driver_w25qxx.h</a></li>
+<li>W25QXX_STATUS2_SUSPEND_STATUS&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277a3fdb54846709f77391e426c626a19152">driver_w25qxx.h</a></li>
+<li>w25qxx_status2_t&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#ga0d28076f6fc7d3ae9dd7f8410069a277">driver_w25qxx.h</a></li>
+<li>W25QXX_STATUS3_CURRENT_ADDRESS_MODE&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44aca3c822d6eacd9747ca2173607a09591ac">driver_w25qxx.h</a></li>
+<li>W25QXX_STATUS3_HOLD_RESET_FUNCTION&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44aca9ab13d5388af0156c4e4de08765ec401">driver_w25qxx.h</a></li>
+<li>W25QXX_STATUS3_OUTPUT_DRIVER_STRENGTH_100_PERCENTAGE&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44acab5b1ce328b88d08f3d55ed776e01fedb">driver_w25qxx.h</a></li>
+<li>W25QXX_STATUS3_OUTPUT_DRIVER_STRENGTH_25_PERCENTAGE&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44acae645c265a6beb76a088352e2f4bfb4e1">driver_w25qxx.h</a></li>
+<li>W25QXX_STATUS3_OUTPUT_DRIVER_STRENGTH_50_PERCENTAGE&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44aca8abcd821f1f0d02b3d9179c7ab58d0e0">driver_w25qxx.h</a></li>
+<li>W25QXX_STATUS3_OUTPUT_DRIVER_STRENGTH_75_PERCENTAGE&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44aca7ab6ace72a02afc20f92f48e975b60b7">driver_w25qxx.h</a></li>
+<li>W25QXX_STATUS3_POWER_UP_ADDRESS_MODE&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44acadc8d5949eaea0c6ce4e17c6e746f4f65">driver_w25qxx.h</a></li>
+<li>w25qxx_status3_t&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#gace18ebb2eac49cbde44a2935916f44ac">driver_w25qxx.h</a></li>
+<li>W25QXX_STATUS3_WRITE_PROTECT_SELECTION&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44aca7dc507c444fb395a4956bf50d78f1ee3">driver_w25qxx.h</a></li>
+<li>w25qxx_type_t&#160;:&#160;<a class="el" href="group__w25qxx__basic__driver.html#ga6cb4e5164464df549201dd96cb7a58b1">driver_w25qxx.h</a></li>
+<li>w25qxx_word_read_quad_io()&#160;:&#160;<a class="el" href="group__w25qxx__advance__driver.html#gad97d7e410dd77c49334097a0fd332660">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__advance__driver.html#gad97d7e410dd77c49334097a0fd332660">driver_w25qxx.h</a></li>
+<li>w25qxx_write()&#160;:&#160;<a class="el" href="group__w25qxx__basic__driver.html#gaaee8264d840e51460821cb6e609338ee">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__basic__driver.html#gaaee8264d840e51460821cb6e609338ee">driver_w25qxx.h</a></li>
+<li>w25qxx_write_read_reg()&#160;:&#160;<a class="el" href="group__w25qxx__extern__driver.html#ga9623a3bec148b148498480518a66cb2b">driver_w25qxx.c</a>, <a class="el" href="group__w25qxx__extern__driver.html#ga9623a3bec148b148498480518a66cb2b">driver_w25qxx.h</a></li>
 </ul>
 </div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
-    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
+    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/group__w25qxx__advance__driver.html b/doc/html/group__w25qxx__advance__driver.html
index f42641a..6338509 100644
--- a/doc/html/group__w25qxx__advance__driver.html
+++ b/doc/html/group__w25qxx__advance__driver.html
@@ -1,9 +1,9 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.8"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>LibDriver W25QXX: w25qxx advance driver function</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -23,11 +23,10 @@
 <div id="titlearea">
 <table cellspacing="0" cellpadding="0">
  <tbody>
- <tr style="height: 56px;">
+ <tr id="projectrow">
   <td id="projectlogo"><img alt="Logo" src="doxygen.png"/></td>
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">LibDriver W25QXX
-   &#160;<span id="projectnumber">1.0.0</span>
+  <td id="projectalign">
+   <div id="projectname">LibDriver W25QXX<span id="projectnumber">&#160;1.0.0</span>
    </div>
    <div id="projectbrief">W25QXX full function driver</div>
   </td>
@@ -36,21 +35,22 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.8 -->
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search/",'.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
 <script type="text/javascript" src="menu.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(function() {
   initMenu('',true,false,'search.php','Search');
   $(document).ready(function() { init_search(); });
 });
-/* @license-end */</script>
+/* @license-end */
+</script>
 <div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
@@ -64,7 +64,7 @@
   </div>
 </div>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(document).ready(function(){initNavTree('group__w25qxx__advance__driver.html',''); initResizable(); });
 /* @license-end */
 </script>
@@ -78,46 +78,52 @@
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
 </div>
 
 <div class="header">
   <div class="summary">
 <a href="#enum-members">Enumerations</a> &#124;
 <a href="#func-members">Functions</a>  </div>
-  <div class="headertitle">
-<div class="title">w25qxx advance driver function<div class="ingroups"><a class="el" href="group__w25qxx__driver.html">w25qxx driver function</a></div></div>  </div>
+  <div class="headertitle"><div class="title">w25qxx advance driver function<div class="ingroups"><a class="el" href="group__w25qxx__driver.html">w25qxx driver function</a></div></div></div>
 </div><!--header-->
 <div class="contents">
 
 <p>w25qxx advance driver modules  
 <a href="#details">More...</a></p>
 <table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="enum-members" name="enum-members"></a>
 Enumerations</h2></td></tr>
-<tr class="memitem:ga6ff284154302248f00db269146545443"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga6ff284154302248f00db269146545443">w25qxx_qspi_read_dummy_t</a> { <a class="el" href="group__w25qxx__advance__driver.html#gga6ff284154302248f00db269146545443ad73634a0f4534c3ae35d4242b2bc8f13">W25QXX_QSPI_READ_DUMMY_2_33MHZ</a> = 0x00
+<tr class="memitem:ga6ff284154302248f00db269146545443" id="r_ga6ff284154302248f00db269146545443"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga6ff284154302248f00db269146545443">w25qxx_qspi_read_dummy_t</a> { <a class="el" href="group__w25qxx__advance__driver.html#gga6ff284154302248f00db269146545443ad73634a0f4534c3ae35d4242b2bc8f13">W25QXX_QSPI_READ_DUMMY_2_33MHZ</a> = 0x00
 , <a class="el" href="group__w25qxx__advance__driver.html#gga6ff284154302248f00db269146545443a6423b5606e72af6479fe31a6a9883aeb">W25QXX_QSPI_READ_DUMMY_4_55MHZ</a> = 0x01
 , <a class="el" href="group__w25qxx__advance__driver.html#gga6ff284154302248f00db269146545443a78393debe12bbb3efb710e38e3c1d550">W25QXX_QSPI_READ_DUMMY_6_80MHZ</a> = 0x02
 , <a class="el" href="group__w25qxx__advance__driver.html#gga6ff284154302248f00db269146545443ade1d3511f15c7d92de8c5d8967c471c3">W25QXX_QSPI_READ_DUMMY_8_80MHZ</a> = 0x03
  }</td></tr>
 <tr class="memdesc:ga6ff284154302248f00db269146545443"><td class="mdescLeft">&#160;</td><td class="mdescRight">w25qxx qspi read dummy enumeration definition  <a href="group__w25qxx__advance__driver.html#ga6ff284154302248f00db269146545443">More...</a><br /></td></tr>
 <tr class="separator:ga6ff284154302248f00db269146545443"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga2fd3023819e1aebe089a4a72eb136da3"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga2fd3023819e1aebe089a4a72eb136da3">w25qxx_qspi_read_wrap_length_t</a> { <a class="el" href="group__w25qxx__advance__driver.html#gga2fd3023819e1aebe089a4a72eb136da3a5b8fa1026c564fe83f3f0f0edb89d1dd">W25QXX_QSPI_READ_WRAP_LENGTH_8_BYTE</a> = 0x00
+<tr class="memitem:ga2fd3023819e1aebe089a4a72eb136da3" id="r_ga2fd3023819e1aebe089a4a72eb136da3"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga2fd3023819e1aebe089a4a72eb136da3">w25qxx_qspi_read_wrap_length_t</a> { <a class="el" href="group__w25qxx__advance__driver.html#gga2fd3023819e1aebe089a4a72eb136da3a5b8fa1026c564fe83f3f0f0edb89d1dd">W25QXX_QSPI_READ_WRAP_LENGTH_8_BYTE</a> = 0x00
 , <a class="el" href="group__w25qxx__advance__driver.html#gga2fd3023819e1aebe089a4a72eb136da3ae6bc2fcd2d4fc3af63f22da56a3b393b">W25QXX_QSPI_READ_WRAP_LENGTH_16_BYTE</a> = 0x01
 , <a class="el" href="group__w25qxx__advance__driver.html#gga2fd3023819e1aebe089a4a72eb136da3aa5f2e6b5718a85ab9241125e84181216">W25QXX_QSPI_READ_WRAP_LENGTH_32_BYTE</a> = 0x02
 , <a class="el" href="group__w25qxx__advance__driver.html#gga2fd3023819e1aebe089a4a72eb136da3a736f25eeae36f6a0b62d4cb1666a689f">W25QXX_QSPI_READ_WRAP_LENGTH_64_BYTE</a> = 0x03
  }</td></tr>
 <tr class="memdesc:ga2fd3023819e1aebe089a4a72eb136da3"><td class="mdescLeft">&#160;</td><td class="mdescRight">w25qxx qspi read wrap length enumeration definition  <a href="group__w25qxx__advance__driver.html#ga2fd3023819e1aebe089a4a72eb136da3">More...</a><br /></td></tr>
 <tr class="separator:ga2fd3023819e1aebe089a4a72eb136da3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga81ddc7d4b9f4f124163beea19cc33c7e"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga81ddc7d4b9f4f124163beea19cc33c7e">w25qxx_security_register_t</a> { <a class="el" href="group__w25qxx__advance__driver.html#gga81ddc7d4b9f4f124163beea19cc33c7eaaf27484a497c13915c8acb0161cf137d">W25QXX_SECURITY_REGISTER_1</a> = 0x1000
+<tr class="memitem:ga81ddc7d4b9f4f124163beea19cc33c7e" id="r_ga81ddc7d4b9f4f124163beea19cc33c7e"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga81ddc7d4b9f4f124163beea19cc33c7e">w25qxx_security_register_t</a> { <a class="el" href="group__w25qxx__advance__driver.html#gga81ddc7d4b9f4f124163beea19cc33c7eaaf27484a497c13915c8acb0161cf137d">W25QXX_SECURITY_REGISTER_1</a> = 0x1000
 , <a class="el" href="group__w25qxx__advance__driver.html#gga81ddc7d4b9f4f124163beea19cc33c7ea3353a88090850174ca163d56e4d7089c">W25QXX_SECURITY_REGISTER_2</a> = 0x2000
 , <a class="el" href="group__w25qxx__advance__driver.html#gga81ddc7d4b9f4f124163beea19cc33c7ea65b73162d921075bed8cb8d848948900">W25QXX_SECURITY_REGISTER_3</a> = 0x3000
  }</td></tr>
 <tr class="memdesc:ga81ddc7d4b9f4f124163beea19cc33c7e"><td class="mdescLeft">&#160;</td><td class="mdescRight">w25qxx security register enumeration definition  <a href="group__w25qxx__advance__driver.html#ga81ddc7d4b9f4f124163beea19cc33c7e">More...</a><br /></td></tr>
 <tr class="separator:ga81ddc7d4b9f4f124163beea19cc33c7e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga94bbae2bf8906903e8dc2a28c490723d"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga94bbae2bf8906903e8dc2a28c490723d">w25qxx_burst_wrap_t</a> { <br />
+<tr class="memitem:ga94bbae2bf8906903e8dc2a28c490723d" id="r_ga94bbae2bf8906903e8dc2a28c490723d"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga94bbae2bf8906903e8dc2a28c490723d">w25qxx_burst_wrap_t</a> { <br />
 &#160;&#160;<a class="el" href="group__w25qxx__advance__driver.html#gga94bbae2bf8906903e8dc2a28c490723dae39a7ea65512a56d40aad2990d55815d">W25QXX_BURST_WRAP_NONE</a> = 0x10
 , <a class="el" href="group__w25qxx__advance__driver.html#gga94bbae2bf8906903e8dc2a28c490723da35edf6c31d0fe1771ab79669d13b7af8">W25QXX_BURST_WRAP_8_BYTE</a> = 0x00
 , <a class="el" href="group__w25qxx__advance__driver.html#gga94bbae2bf8906903e8dc2a28c490723dafec1eb230b49fbda6ffcc1eeda64179a">W25QXX_BURST_WRAP_16_BYTE</a> = 0x20
@@ -128,7 +134,7 @@
  }</td></tr>
 <tr class="memdesc:ga94bbae2bf8906903e8dc2a28c490723d"><td class="mdescLeft">&#160;</td><td class="mdescRight">w25qxx burst wrap enumeration definition  <a href="group__w25qxx__advance__driver.html#ga94bbae2bf8906903e8dc2a28c490723d">More...</a><br /></td></tr>
 <tr class="separator:ga94bbae2bf8906903e8dc2a28c490723d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga9e41a72d1e25d39d88ce7108a9b25595"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga9e41a72d1e25d39d88ce7108a9b25595">w25qxx_status1_t</a> { <br />
+<tr class="memitem:ga9e41a72d1e25d39d88ce7108a9b25595" id="r_ga9e41a72d1e25d39d88ce7108a9b25595"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga9e41a72d1e25d39d88ce7108a9b25595">w25qxx_status1_t</a> { <br />
 &#160;&#160;<a class="el" href="group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a00d1d224963ec1f38ac97802480b2129">W25QXX_STATUS1_STATUS_REGISTER_PROTECT_0</a> = (1 &lt;&lt; 7)
 , <a class="el" href="group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a9522040a098337442eff127e1598776d">W25QXX_STATUS1_SECTOR_PROTECT_OR_TOP_BOTTOM_PROTECT</a> = (1 &lt;&lt; 6)
 , <a class="el" href="group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a63bc45b7e0e19de7e58e3494eb4046c5">W25QXX_STATUS1_TOP_BOTTOM_PROTECT_OR_BLOCK_PROTECT_3</a> = (1 &lt;&lt; 5)
@@ -142,7 +148,7 @@
  }</td></tr>
 <tr class="memdesc:ga9e41a72d1e25d39d88ce7108a9b25595"><td class="mdescLeft">&#160;</td><td class="mdescRight">w25qxx status 1 enumeration definition  <a href="group__w25qxx__advance__driver.html#ga9e41a72d1e25d39d88ce7108a9b25595">More...</a><br /></td></tr>
 <tr class="separator:ga9e41a72d1e25d39d88ce7108a9b25595"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga0d28076f6fc7d3ae9dd7f8410069a277"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga0d28076f6fc7d3ae9dd7f8410069a277">w25qxx_status2_t</a> { <br />
+<tr class="memitem:ga0d28076f6fc7d3ae9dd7f8410069a277" id="r_ga0d28076f6fc7d3ae9dd7f8410069a277"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga0d28076f6fc7d3ae9dd7f8410069a277">w25qxx_status2_t</a> { <br />
 &#160;&#160;<a class="el" href="group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277a3fdb54846709f77391e426c626a19152">W25QXX_STATUS2_SUSPEND_STATUS</a> = (1 &lt;&lt; 7)
 , <a class="el" href="group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277a517e9e50ada30462f902d01e8d5579dc">W25QXX_STATUS2_COMPLEMENT_PROTECT</a> = (1 &lt;&lt; 6)
 , <a class="el" href="group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277a0f3e2b3059d56f974724a8284142e69a">W25QXX_STATUS2_SECURITY_REGISTER_3_LOCK_BITS</a> = (1 &lt;&lt; 5)
@@ -155,7 +161,7 @@
  }</td></tr>
 <tr class="memdesc:ga0d28076f6fc7d3ae9dd7f8410069a277"><td class="mdescLeft">&#160;</td><td class="mdescRight">w25qxx status 2 enumeration definition  <a href="group__w25qxx__advance__driver.html#ga0d28076f6fc7d3ae9dd7f8410069a277">More...</a><br /></td></tr>
 <tr class="separator:ga0d28076f6fc7d3ae9dd7f8410069a277"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gace18ebb2eac49cbde44a2935916f44ac"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#gace18ebb2eac49cbde44a2935916f44ac">w25qxx_status3_t</a> { <br />
+<tr class="memitem:gace18ebb2eac49cbde44a2935916f44ac" id="r_gace18ebb2eac49cbde44a2935916f44ac"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#gace18ebb2eac49cbde44a2935916f44ac">w25qxx_status3_t</a> { <br />
 &#160;&#160;<a class="el" href="group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44aca9ab13d5388af0156c4e4de08765ec401">W25QXX_STATUS3_HOLD_RESET_FUNCTION</a> = (1 &lt;&lt; 7)
 , <a class="el" href="group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44acab5b1ce328b88d08f3d55ed776e01fedb">W25QXX_STATUS3_OUTPUT_DRIVER_STRENGTH_100_PERCENTAGE</a> = (0 &lt;&lt; 5)
 , <a class="el" href="group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44aca7ab6ace72a02afc20f92f48e975b60b7">W25QXX_STATUS3_OUTPUT_DRIVER_STRENGTH_75_PERCENTAGE</a> = (1 &lt;&lt; 5)
@@ -170,125 +176,125 @@
 <tr class="memdesc:gace18ebb2eac49cbde44a2935916f44ac"><td class="mdescLeft">&#160;</td><td class="mdescRight">w25qxx status 3 enumeration definition  <a href="group__w25qxx__advance__driver.html#gace18ebb2eac49cbde44a2935916f44ac">More...</a><br /></td></tr>
 <tr class="separator:gace18ebb2eac49cbde44a2935916f44ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
 Functions</h2></td></tr>
-<tr class="memitem:ga7a19230ca3916816ea8fb7421483d293"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga7a19230ca3916816ea8fb7421483d293">w25qxx_fast_read_dual_output</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
-<tr class="memdesc:ga7a19230ca3916816ea8fb7421483d293"><td class="mdescLeft">&#160;</td><td class="mdescRight">read with dual output in the fast mode  <a href="group__w25qxx__advance__driver.html#ga7a19230ca3916816ea8fb7421483d293">More...</a><br /></td></tr>
+<tr class="memitem:ga7a19230ca3916816ea8fb7421483d293" id="r_ga7a19230ca3916816ea8fb7421483d293"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga7a19230ca3916816ea8fb7421483d293">w25qxx_fast_read_dual_output</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
+<tr class="memdesc:ga7a19230ca3916816ea8fb7421483d293"><td class="mdescLeft">&#160;</td><td class="mdescRight">read with dual output in the fast mode  <br /></td></tr>
 <tr class="separator:ga7a19230ca3916816ea8fb7421483d293"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf4bfafd1f80aa0316a4b1a15183dcd50"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#gaf4bfafd1f80aa0316a4b1a15183dcd50">w25qxx_fast_read_quad_output</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
-<tr class="memdesc:gaf4bfafd1f80aa0316a4b1a15183dcd50"><td class="mdescLeft">&#160;</td><td class="mdescRight">read with quad output in the fast mode  <a href="group__w25qxx__advance__driver.html#gaf4bfafd1f80aa0316a4b1a15183dcd50">More...</a><br /></td></tr>
+<tr class="memitem:gaf4bfafd1f80aa0316a4b1a15183dcd50" id="r_gaf4bfafd1f80aa0316a4b1a15183dcd50"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#gaf4bfafd1f80aa0316a4b1a15183dcd50">w25qxx_fast_read_quad_output</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
+<tr class="memdesc:gaf4bfafd1f80aa0316a4b1a15183dcd50"><td class="mdescLeft">&#160;</td><td class="mdescRight">read with quad output in the fast mode  <br /></td></tr>
 <tr class="separator:gaf4bfafd1f80aa0316a4b1a15183dcd50"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac894f4650905cba10dd3a31284de6d5e"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#gac894f4650905cba10dd3a31284de6d5e">w25qxx_fast_read_dual_io</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
-<tr class="memdesc:gac894f4650905cba10dd3a31284de6d5e"><td class="mdescLeft">&#160;</td><td class="mdescRight">read with dual io in the fast mode  <a href="group__w25qxx__advance__driver.html#gac894f4650905cba10dd3a31284de6d5e">More...</a><br /></td></tr>
+<tr class="memitem:gac894f4650905cba10dd3a31284de6d5e" id="r_gac894f4650905cba10dd3a31284de6d5e"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#gac894f4650905cba10dd3a31284de6d5e">w25qxx_fast_read_dual_io</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
+<tr class="memdesc:gac894f4650905cba10dd3a31284de6d5e"><td class="mdescLeft">&#160;</td><td class="mdescRight">read with dual io in the fast mode  <br /></td></tr>
 <tr class="separator:gac894f4650905cba10dd3a31284de6d5e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab97a64bd3776874518f60381d921ae41"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#gab97a64bd3776874518f60381d921ae41">w25qxx_fast_read_quad_io</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
-<tr class="memdesc:gab97a64bd3776874518f60381d921ae41"><td class="mdescLeft">&#160;</td><td class="mdescRight">read with quad io in the fast mode  <a href="group__w25qxx__advance__driver.html#gab97a64bd3776874518f60381d921ae41">More...</a><br /></td></tr>
+<tr class="memitem:gab97a64bd3776874518f60381d921ae41" id="r_gab97a64bd3776874518f60381d921ae41"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#gab97a64bd3776874518f60381d921ae41">w25qxx_fast_read_quad_io</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
+<tr class="memdesc:gab97a64bd3776874518f60381d921ae41"><td class="mdescLeft">&#160;</td><td class="mdescRight">read with quad io in the fast mode  <br /></td></tr>
 <tr class="separator:gab97a64bd3776874518f60381d921ae41"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad97d7e410dd77c49334097a0fd332660"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#gad97d7e410dd77c49334097a0fd332660">w25qxx_word_read_quad_io</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
-<tr class="memdesc:gad97d7e410dd77c49334097a0fd332660"><td class="mdescLeft">&#160;</td><td class="mdescRight">word read with quad io  <a href="group__w25qxx__advance__driver.html#gad97d7e410dd77c49334097a0fd332660">More...</a><br /></td></tr>
+<tr class="memitem:gad97d7e410dd77c49334097a0fd332660" id="r_gad97d7e410dd77c49334097a0fd332660"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#gad97d7e410dd77c49334097a0fd332660">w25qxx_word_read_quad_io</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
+<tr class="memdesc:gad97d7e410dd77c49334097a0fd332660"><td class="mdescLeft">&#160;</td><td class="mdescRight">word read with quad io  <br /></td></tr>
 <tr class="separator:gad97d7e410dd77c49334097a0fd332660"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga88a62ec42e86db821ff3f0d3ab541dbb"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga88a62ec42e86db821ff3f0d3ab541dbb">w25qxx_octal_word_read_quad_io</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
-<tr class="memdesc:ga88a62ec42e86db821ff3f0d3ab541dbb"><td class="mdescLeft">&#160;</td><td class="mdescRight">octal word read with quad io  <a href="group__w25qxx__advance__driver.html#ga88a62ec42e86db821ff3f0d3ab541dbb">More...</a><br /></td></tr>
+<tr class="memitem:ga88a62ec42e86db821ff3f0d3ab541dbb" id="r_ga88a62ec42e86db821ff3f0d3ab541dbb"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga88a62ec42e86db821ff3f0d3ab541dbb">w25qxx_octal_word_read_quad_io</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
+<tr class="memdesc:ga88a62ec42e86db821ff3f0d3ab541dbb"><td class="mdescLeft">&#160;</td><td class="mdescRight">octal word read with quad io  <br /></td></tr>
 <tr class="separator:ga88a62ec42e86db821ff3f0d3ab541dbb"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga1f80bbbaaa852eecfffb87737889363d"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga1f80bbbaaa852eecfffb87737889363d">w25qxx_page_program_quad_input</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint16_t len)</td></tr>
-<tr class="memdesc:ga1f80bbbaaa852eecfffb87737889363d"><td class="mdescLeft">&#160;</td><td class="mdescRight">quad page program with quad input  <a href="group__w25qxx__advance__driver.html#ga1f80bbbaaa852eecfffb87737889363d">More...</a><br /></td></tr>
+<tr class="memitem:ga1f80bbbaaa852eecfffb87737889363d" id="r_ga1f80bbbaaa852eecfffb87737889363d"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga1f80bbbaaa852eecfffb87737889363d">w25qxx_page_program_quad_input</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint16_t len)</td></tr>
+<tr class="memdesc:ga1f80bbbaaa852eecfffb87737889363d"><td class="mdescLeft">&#160;</td><td class="mdescRight">quad page program with quad input  <br /></td></tr>
 <tr class="separator:ga1f80bbbaaa852eecfffb87737889363d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaeb269123feec054eaaf70f2ffb5797a3"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#gaeb269123feec054eaaf70f2ffb5797a3">w25qxx_enable_write</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle)</td></tr>
-<tr class="memdesc:gaeb269123feec054eaaf70f2ffb5797a3"><td class="mdescLeft">&#160;</td><td class="mdescRight">enable writing  <a href="group__w25qxx__advance__driver.html#gaeb269123feec054eaaf70f2ffb5797a3">More...</a><br /></td></tr>
+<tr class="memitem:gaeb269123feec054eaaf70f2ffb5797a3" id="r_gaeb269123feec054eaaf70f2ffb5797a3"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#gaeb269123feec054eaaf70f2ffb5797a3">w25qxx_enable_write</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle)</td></tr>
+<tr class="memdesc:gaeb269123feec054eaaf70f2ffb5797a3"><td class="mdescLeft">&#160;</td><td class="mdescRight">enable writing  <br /></td></tr>
 <tr class="separator:gaeb269123feec054eaaf70f2ffb5797a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga0f8889d6a25c32e150a2ab30753d461d"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga0f8889d6a25c32e150a2ab30753d461d">w25qxx_enable_volatile_sr_write</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle)</td></tr>
-<tr class="memdesc:ga0f8889d6a25c32e150a2ab30753d461d"><td class="mdescLeft">&#160;</td><td class="mdescRight">enable volatile sr writing  <a href="group__w25qxx__advance__driver.html#ga0f8889d6a25c32e150a2ab30753d461d">More...</a><br /></td></tr>
+<tr class="memitem:ga0f8889d6a25c32e150a2ab30753d461d" id="r_ga0f8889d6a25c32e150a2ab30753d461d"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga0f8889d6a25c32e150a2ab30753d461d">w25qxx_enable_volatile_sr_write</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle)</td></tr>
+<tr class="memdesc:ga0f8889d6a25c32e150a2ab30753d461d"><td class="mdescLeft">&#160;</td><td class="mdescRight">enable volatile sr writing  <br /></td></tr>
 <tr class="separator:ga0f8889d6a25c32e150a2ab30753d461d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac16a31269277051baad6c28fe4254b4a"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#gac16a31269277051baad6c28fe4254b4a">w25qxx_disable_write</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle)</td></tr>
-<tr class="memdesc:gac16a31269277051baad6c28fe4254b4a"><td class="mdescLeft">&#160;</td><td class="mdescRight">disable writing  <a href="group__w25qxx__advance__driver.html#gac16a31269277051baad6c28fe4254b4a">More...</a><br /></td></tr>
+<tr class="memitem:gac16a31269277051baad6c28fe4254b4a" id="r_gac16a31269277051baad6c28fe4254b4a"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#gac16a31269277051baad6c28fe4254b4a">w25qxx_disable_write</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle)</td></tr>
+<tr class="memdesc:gac16a31269277051baad6c28fe4254b4a"><td class="mdescLeft">&#160;</td><td class="mdescRight">disable writing  <br /></td></tr>
 <tr class="separator:gac16a31269277051baad6c28fe4254b4a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa77d2b00b4fb9cf586f77ace827ea7c6"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#gaa77d2b00b4fb9cf586f77ace827ea7c6">w25qxx_get_status1</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint8_t *status)</td></tr>
-<tr class="memdesc:gaa77d2b00b4fb9cf586f77ace827ea7c6"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the status 1  <a href="group__w25qxx__advance__driver.html#gaa77d2b00b4fb9cf586f77ace827ea7c6">More...</a><br /></td></tr>
+<tr class="memitem:gaa77d2b00b4fb9cf586f77ace827ea7c6" id="r_gaa77d2b00b4fb9cf586f77ace827ea7c6"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#gaa77d2b00b4fb9cf586f77ace827ea7c6">w25qxx_get_status1</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint8_t *status)</td></tr>
+<tr class="memdesc:gaa77d2b00b4fb9cf586f77ace827ea7c6"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the status 1  <br /></td></tr>
 <tr class="separator:gaa77d2b00b4fb9cf586f77ace827ea7c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa21237ecbd5951b8017799066e7db5d9"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#gaa21237ecbd5951b8017799066e7db5d9">w25qxx_get_status2</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint8_t *status)</td></tr>
-<tr class="memdesc:gaa21237ecbd5951b8017799066e7db5d9"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the status 2  <a href="group__w25qxx__advance__driver.html#gaa21237ecbd5951b8017799066e7db5d9">More...</a><br /></td></tr>
+<tr class="memitem:gaa21237ecbd5951b8017799066e7db5d9" id="r_gaa21237ecbd5951b8017799066e7db5d9"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#gaa21237ecbd5951b8017799066e7db5d9">w25qxx_get_status2</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint8_t *status)</td></tr>
+<tr class="memdesc:gaa21237ecbd5951b8017799066e7db5d9"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the status 2  <br /></td></tr>
 <tr class="separator:gaa21237ecbd5951b8017799066e7db5d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga99cf6a325a00921d4531004f0c1d75b1"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga99cf6a325a00921d4531004f0c1d75b1">w25qxx_get_status3</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint8_t *status)</td></tr>
-<tr class="memdesc:ga99cf6a325a00921d4531004f0c1d75b1"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the status 3  <a href="group__w25qxx__advance__driver.html#ga99cf6a325a00921d4531004f0c1d75b1">More...</a><br /></td></tr>
+<tr class="memitem:ga99cf6a325a00921d4531004f0c1d75b1" id="r_ga99cf6a325a00921d4531004f0c1d75b1"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga99cf6a325a00921d4531004f0c1d75b1">w25qxx_get_status3</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint8_t *status)</td></tr>
+<tr class="memdesc:ga99cf6a325a00921d4531004f0c1d75b1"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the status 3  <br /></td></tr>
 <tr class="separator:ga99cf6a325a00921d4531004f0c1d75b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga246e0bb07c8bbb39731f17906779c012"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga246e0bb07c8bbb39731f17906779c012">w25qxx_set_status1</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint8_t status)</td></tr>
-<tr class="memdesc:ga246e0bb07c8bbb39731f17906779c012"><td class="mdescLeft">&#160;</td><td class="mdescRight">set the status 1  <a href="group__w25qxx__advance__driver.html#ga246e0bb07c8bbb39731f17906779c012">More...</a><br /></td></tr>
+<tr class="memitem:ga246e0bb07c8bbb39731f17906779c012" id="r_ga246e0bb07c8bbb39731f17906779c012"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga246e0bb07c8bbb39731f17906779c012">w25qxx_set_status1</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint8_t status)</td></tr>
+<tr class="memdesc:ga246e0bb07c8bbb39731f17906779c012"><td class="mdescLeft">&#160;</td><td class="mdescRight">set the status 1  <br /></td></tr>
 <tr class="separator:ga246e0bb07c8bbb39731f17906779c012"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaab5f28e8930d50dbc2178e39bc9fa456"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#gaab5f28e8930d50dbc2178e39bc9fa456">w25qxx_set_status2</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint8_t status)</td></tr>
-<tr class="memdesc:gaab5f28e8930d50dbc2178e39bc9fa456"><td class="mdescLeft">&#160;</td><td class="mdescRight">set the status 2  <a href="group__w25qxx__advance__driver.html#gaab5f28e8930d50dbc2178e39bc9fa456">More...</a><br /></td></tr>
+<tr class="memitem:gaab5f28e8930d50dbc2178e39bc9fa456" id="r_gaab5f28e8930d50dbc2178e39bc9fa456"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#gaab5f28e8930d50dbc2178e39bc9fa456">w25qxx_set_status2</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint8_t status)</td></tr>
+<tr class="memdesc:gaab5f28e8930d50dbc2178e39bc9fa456"><td class="mdescLeft">&#160;</td><td class="mdescRight">set the status 2  <br /></td></tr>
 <tr class="separator:gaab5f28e8930d50dbc2178e39bc9fa456"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gada897a6c6d6acb99f4dd4ff9b65ad8ee"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#gada897a6c6d6acb99f4dd4ff9b65ad8ee">w25qxx_set_status3</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint8_t status)</td></tr>
-<tr class="memdesc:gada897a6c6d6acb99f4dd4ff9b65ad8ee"><td class="mdescLeft">&#160;</td><td class="mdescRight">set the status 3  <a href="group__w25qxx__advance__driver.html#gada897a6c6d6acb99f4dd4ff9b65ad8ee">More...</a><br /></td></tr>
+<tr class="memitem:gada897a6c6d6acb99f4dd4ff9b65ad8ee" id="r_gada897a6c6d6acb99f4dd4ff9b65ad8ee"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#gada897a6c6d6acb99f4dd4ff9b65ad8ee">w25qxx_set_status3</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint8_t status)</td></tr>
+<tr class="memdesc:gada897a6c6d6acb99f4dd4ff9b65ad8ee"><td class="mdescLeft">&#160;</td><td class="mdescRight">set the status 3  <br /></td></tr>
 <tr class="separator:gada897a6c6d6acb99f4dd4ff9b65ad8ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac7fbabc574c250eec100be861f5918ff"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#gac7fbabc574c250eec100be861f5918ff">w25qxx_erase_program_suspend</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle)</td></tr>
-<tr class="memdesc:gac7fbabc574c250eec100be861f5918ff"><td class="mdescLeft">&#160;</td><td class="mdescRight">suspend erase or program  <a href="group__w25qxx__advance__driver.html#gac7fbabc574c250eec100be861f5918ff">More...</a><br /></td></tr>
+<tr class="memitem:gac7fbabc574c250eec100be861f5918ff" id="r_gac7fbabc574c250eec100be861f5918ff"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#gac7fbabc574c250eec100be861f5918ff">w25qxx_erase_program_suspend</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle)</td></tr>
+<tr class="memdesc:gac7fbabc574c250eec100be861f5918ff"><td class="mdescLeft">&#160;</td><td class="mdescRight">suspend erase or program  <br /></td></tr>
 <tr class="separator:gac7fbabc574c250eec100be861f5918ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga05c69ac66309544eba4ff38a69f24c00"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga05c69ac66309544eba4ff38a69f24c00">w25qxx_erase_program_resume</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle)</td></tr>
-<tr class="memdesc:ga05c69ac66309544eba4ff38a69f24c00"><td class="mdescLeft">&#160;</td><td class="mdescRight">resume erase or program  <a href="group__w25qxx__advance__driver.html#ga05c69ac66309544eba4ff38a69f24c00">More...</a><br /></td></tr>
+<tr class="memitem:ga05c69ac66309544eba4ff38a69f24c00" id="r_ga05c69ac66309544eba4ff38a69f24c00"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga05c69ac66309544eba4ff38a69f24c00">w25qxx_erase_program_resume</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle)</td></tr>
+<tr class="memdesc:ga05c69ac66309544eba4ff38a69f24c00"><td class="mdescLeft">&#160;</td><td class="mdescRight">resume erase or program  <br /></td></tr>
 <tr class="separator:ga05c69ac66309544eba4ff38a69f24c00"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga1cd3aec1bdeabbaed5f049fbf83ceeb4"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga1cd3aec1bdeabbaed5f049fbf83ceeb4">w25qxx_get_manufacturer_device_id_dual_io</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint8_t *manufacturer, uint8_t *device_id)</td></tr>
-<tr class="memdesc:ga1cd3aec1bdeabbaed5f049fbf83ceeb4"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the manufacturer &amp;&amp; device id information with dual io  <a href="group__w25qxx__advance__driver.html#ga1cd3aec1bdeabbaed5f049fbf83ceeb4">More...</a><br /></td></tr>
+<tr class="memitem:ga1cd3aec1bdeabbaed5f049fbf83ceeb4" id="r_ga1cd3aec1bdeabbaed5f049fbf83ceeb4"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga1cd3aec1bdeabbaed5f049fbf83ceeb4">w25qxx_get_manufacturer_device_id_dual_io</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint8_t *manufacturer, uint8_t *device_id)</td></tr>
+<tr class="memdesc:ga1cd3aec1bdeabbaed5f049fbf83ceeb4"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the manufacturer &amp;&amp; device id information with dual io  <br /></td></tr>
 <tr class="separator:ga1cd3aec1bdeabbaed5f049fbf83ceeb4"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga61bd3ce40b76b6862c6a53e0e37a3455"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga61bd3ce40b76b6862c6a53e0e37a3455">w25qxx_get_manufacturer_device_id_quad_io</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint8_t *manufacturer, uint8_t *device_id)</td></tr>
-<tr class="memdesc:ga61bd3ce40b76b6862c6a53e0e37a3455"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the manufacturer &amp;&amp; device id information with quad io  <a href="group__w25qxx__advance__driver.html#ga61bd3ce40b76b6862c6a53e0e37a3455">More...</a><br /></td></tr>
+<tr class="memitem:ga61bd3ce40b76b6862c6a53e0e37a3455" id="r_ga61bd3ce40b76b6862c6a53e0e37a3455"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga61bd3ce40b76b6862c6a53e0e37a3455">w25qxx_get_manufacturer_device_id_quad_io</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint8_t *manufacturer, uint8_t *device_id)</td></tr>
+<tr class="memdesc:ga61bd3ce40b76b6862c6a53e0e37a3455"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the manufacturer &amp;&amp; device id information with quad io  <br /></td></tr>
 <tr class="separator:ga61bd3ce40b76b6862c6a53e0e37a3455"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga8a93ba14a032e10a27f1495fdcf56058"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga8a93ba14a032e10a27f1495fdcf56058">w25qxx_get_jedec_id</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint8_t *manufacturer, uint8_t device_id[2])</td></tr>
-<tr class="memdesc:ga8a93ba14a032e10a27f1495fdcf56058"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the jedec id information  <a href="group__w25qxx__advance__driver.html#ga8a93ba14a032e10a27f1495fdcf56058">More...</a><br /></td></tr>
+<tr class="memitem:ga8a93ba14a032e10a27f1495fdcf56058" id="r_ga8a93ba14a032e10a27f1495fdcf56058"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga8a93ba14a032e10a27f1495fdcf56058">w25qxx_get_jedec_id</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint8_t *manufacturer, uint8_t device_id[2])</td></tr>
+<tr class="memdesc:ga8a93ba14a032e10a27f1495fdcf56058"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the jedec id information  <br /></td></tr>
 <tr class="separator:ga8a93ba14a032e10a27f1495fdcf56058"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab5579bc42bc07a7657848140888a817c"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#gab5579bc42bc07a7657848140888a817c">w25qxx_global_block_lock</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle)</td></tr>
-<tr class="memdesc:gab5579bc42bc07a7657848140888a817c"><td class="mdescLeft">&#160;</td><td class="mdescRight">lock the whole block  <a href="group__w25qxx__advance__driver.html#gab5579bc42bc07a7657848140888a817c">More...</a><br /></td></tr>
+<tr class="memitem:gab5579bc42bc07a7657848140888a817c" id="r_gab5579bc42bc07a7657848140888a817c"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#gab5579bc42bc07a7657848140888a817c">w25qxx_global_block_lock</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle)</td></tr>
+<tr class="memdesc:gab5579bc42bc07a7657848140888a817c"><td class="mdescLeft">&#160;</td><td class="mdescRight">lock the whole block  <br /></td></tr>
 <tr class="separator:gab5579bc42bc07a7657848140888a817c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6d62f7d14945cfde7cde7a0e9a4e3afb"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga6d62f7d14945cfde7cde7a0e9a4e3afb">w25qxx_global_block_unlock</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle)</td></tr>
-<tr class="memdesc:ga6d62f7d14945cfde7cde7a0e9a4e3afb"><td class="mdescLeft">&#160;</td><td class="mdescRight">unlock the whole block  <a href="group__w25qxx__advance__driver.html#ga6d62f7d14945cfde7cde7a0e9a4e3afb">More...</a><br /></td></tr>
+<tr class="memitem:ga6d62f7d14945cfde7cde7a0e9a4e3afb" id="r_ga6d62f7d14945cfde7cde7a0e9a4e3afb"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga6d62f7d14945cfde7cde7a0e9a4e3afb">w25qxx_global_block_unlock</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle)</td></tr>
+<tr class="memdesc:ga6d62f7d14945cfde7cde7a0e9a4e3afb"><td class="mdescLeft">&#160;</td><td class="mdescRight">unlock the whole block  <br /></td></tr>
 <tr class="separator:ga6d62f7d14945cfde7cde7a0e9a4e3afb"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga9ad10781d888b32b43b9eba45d049624"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga9ad10781d888b32b43b9eba45d049624">w25qxx_set_read_parameters</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, <a class="el" href="group__w25qxx__advance__driver.html#ga6ff284154302248f00db269146545443">w25qxx_qspi_read_dummy_t</a> dummy, <a class="el" href="group__w25qxx__advance__driver.html#ga2fd3023819e1aebe089a4a72eb136da3">w25qxx_qspi_read_wrap_length_t</a> length)</td></tr>
-<tr class="memdesc:ga9ad10781d888b32b43b9eba45d049624"><td class="mdescLeft">&#160;</td><td class="mdescRight">set the read parameters  <a href="group__w25qxx__advance__driver.html#ga9ad10781d888b32b43b9eba45d049624">More...</a><br /></td></tr>
+<tr class="memitem:ga9ad10781d888b32b43b9eba45d049624" id="r_ga9ad10781d888b32b43b9eba45d049624"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga9ad10781d888b32b43b9eba45d049624">w25qxx_set_read_parameters</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, <a class="el" href="group__w25qxx__advance__driver.html#ga6ff284154302248f00db269146545443">w25qxx_qspi_read_dummy_t</a> dummy, <a class="el" href="group__w25qxx__advance__driver.html#ga2fd3023819e1aebe089a4a72eb136da3">w25qxx_qspi_read_wrap_length_t</a> length)</td></tr>
+<tr class="memdesc:ga9ad10781d888b32b43b9eba45d049624"><td class="mdescLeft">&#160;</td><td class="mdescRight">set the read parameters  <br /></td></tr>
 <tr class="separator:ga9ad10781d888b32b43b9eba45d049624"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa5ab3548707a95ded115255432224c5a"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#gaa5ab3548707a95ded115255432224c5a">w25qxx_enter_qspi_mode</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle)</td></tr>
-<tr class="memdesc:gaa5ab3548707a95ded115255432224c5a"><td class="mdescLeft">&#160;</td><td class="mdescRight">enter the qspi mode  <a href="group__w25qxx__advance__driver.html#gaa5ab3548707a95ded115255432224c5a">More...</a><br /></td></tr>
+<tr class="memitem:gaa5ab3548707a95ded115255432224c5a" id="r_gaa5ab3548707a95ded115255432224c5a"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#gaa5ab3548707a95ded115255432224c5a">w25qxx_enter_qspi_mode</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle)</td></tr>
+<tr class="memdesc:gaa5ab3548707a95ded115255432224c5a"><td class="mdescLeft">&#160;</td><td class="mdescRight">enter the qspi mode  <br /></td></tr>
 <tr class="separator:gaa5ab3548707a95ded115255432224c5a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6b9f75f7426a54ffdb1f5a057f8188f4"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga6b9f75f7426a54ffdb1f5a057f8188f4">w25qxx_exit_qspi_mode</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle)</td></tr>
-<tr class="memdesc:ga6b9f75f7426a54ffdb1f5a057f8188f4"><td class="mdescLeft">&#160;</td><td class="mdescRight">exit the qspi mode  <a href="group__w25qxx__advance__driver.html#ga6b9f75f7426a54ffdb1f5a057f8188f4">More...</a><br /></td></tr>
+<tr class="memitem:ga6b9f75f7426a54ffdb1f5a057f8188f4" id="r_ga6b9f75f7426a54ffdb1f5a057f8188f4"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga6b9f75f7426a54ffdb1f5a057f8188f4">w25qxx_exit_qspi_mode</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle)</td></tr>
+<tr class="memdesc:ga6b9f75f7426a54ffdb1f5a057f8188f4"><td class="mdescLeft">&#160;</td><td class="mdescRight">exit the qspi mode  <br /></td></tr>
 <tr class="separator:ga6b9f75f7426a54ffdb1f5a057f8188f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab55b4e071e20feb58584025287949438"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#gab55b4e071e20feb58584025287949438">w25qxx_enable_reset</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle)</td></tr>
-<tr class="memdesc:gab55b4e071e20feb58584025287949438"><td class="mdescLeft">&#160;</td><td class="mdescRight">enable the reset  <a href="group__w25qxx__advance__driver.html#gab55b4e071e20feb58584025287949438">More...</a><br /></td></tr>
+<tr class="memitem:gab55b4e071e20feb58584025287949438" id="r_gab55b4e071e20feb58584025287949438"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#gab55b4e071e20feb58584025287949438">w25qxx_enable_reset</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle)</td></tr>
+<tr class="memdesc:gab55b4e071e20feb58584025287949438"><td class="mdescLeft">&#160;</td><td class="mdescRight">enable the reset  <br /></td></tr>
 <tr class="separator:gab55b4e071e20feb58584025287949438"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga2abebfe2a8d9377eb88448ffca73f222"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga2abebfe2a8d9377eb88448ffca73f222">w25qxx_reset_device</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle)</td></tr>
-<tr class="memdesc:ga2abebfe2a8d9377eb88448ffca73f222"><td class="mdescLeft">&#160;</td><td class="mdescRight">reset the device  <a href="group__w25qxx__advance__driver.html#ga2abebfe2a8d9377eb88448ffca73f222">More...</a><br /></td></tr>
+<tr class="memitem:ga2abebfe2a8d9377eb88448ffca73f222" id="r_ga2abebfe2a8d9377eb88448ffca73f222"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga2abebfe2a8d9377eb88448ffca73f222">w25qxx_reset_device</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle)</td></tr>
+<tr class="memdesc:ga2abebfe2a8d9377eb88448ffca73f222"><td class="mdescLeft">&#160;</td><td class="mdescRight">reset the device  <br /></td></tr>
 <tr class="separator:ga2abebfe2a8d9377eb88448ffca73f222"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga11af244389478de68a6777076ee82d69"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga11af244389478de68a6777076ee82d69">w25qxx_get_unique_id</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint8_t id[8])</td></tr>
-<tr class="memdesc:ga11af244389478de68a6777076ee82d69"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the unique id  <a href="group__w25qxx__advance__driver.html#ga11af244389478de68a6777076ee82d69">More...</a><br /></td></tr>
+<tr class="memitem:ga11af244389478de68a6777076ee82d69" id="r_ga11af244389478de68a6777076ee82d69"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga11af244389478de68a6777076ee82d69">w25qxx_get_unique_id</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint8_t id[8])</td></tr>
+<tr class="memdesc:ga11af244389478de68a6777076ee82d69"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the unique id  <br /></td></tr>
 <tr class="separator:ga11af244389478de68a6777076ee82d69"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga244a91b9c0c32e899ca89e1943045624"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga244a91b9c0c32e899ca89e1943045624">w25qxx_get_sfdp</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint8_t sfdp[256])</td></tr>
-<tr class="memdesc:ga244a91b9c0c32e899ca89e1943045624"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the sfdp  <a href="group__w25qxx__advance__driver.html#ga244a91b9c0c32e899ca89e1943045624">More...</a><br /></td></tr>
+<tr class="memitem:ga244a91b9c0c32e899ca89e1943045624" id="r_ga244a91b9c0c32e899ca89e1943045624"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga244a91b9c0c32e899ca89e1943045624">w25qxx_get_sfdp</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint8_t sfdp[256])</td></tr>
+<tr class="memdesc:ga244a91b9c0c32e899ca89e1943045624"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the sfdp  <br /></td></tr>
 <tr class="separator:ga244a91b9c0c32e899ca89e1943045624"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf297e2c6877c64f8fd10a555f783ddaf"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#gaf297e2c6877c64f8fd10a555f783ddaf">w25qxx_erase_security_register</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, <a class="el" href="group__w25qxx__advance__driver.html#ga81ddc7d4b9f4f124163beea19cc33c7e">w25qxx_security_register_t</a> num)</td></tr>
-<tr class="memdesc:gaf297e2c6877c64f8fd10a555f783ddaf"><td class="mdescLeft">&#160;</td><td class="mdescRight">erase the security register  <a href="group__w25qxx__advance__driver.html#gaf297e2c6877c64f8fd10a555f783ddaf">More...</a><br /></td></tr>
+<tr class="memitem:gaf297e2c6877c64f8fd10a555f783ddaf" id="r_gaf297e2c6877c64f8fd10a555f783ddaf"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#gaf297e2c6877c64f8fd10a555f783ddaf">w25qxx_erase_security_register</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, <a class="el" href="group__w25qxx__advance__driver.html#ga81ddc7d4b9f4f124163beea19cc33c7e">w25qxx_security_register_t</a> num)</td></tr>
+<tr class="memdesc:gaf297e2c6877c64f8fd10a555f783ddaf"><td class="mdescLeft">&#160;</td><td class="mdescRight">erase the security register  <br /></td></tr>
 <tr class="separator:gaf297e2c6877c64f8fd10a555f783ddaf"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga4e9c059ff78866e478e835cb27a92899"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga4e9c059ff78866e478e835cb27a92899">w25qxx_program_security_register</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, <a class="el" href="group__w25qxx__advance__driver.html#ga81ddc7d4b9f4f124163beea19cc33c7e">w25qxx_security_register_t</a> num, uint8_t data[256])</td></tr>
-<tr class="memdesc:ga4e9c059ff78866e478e835cb27a92899"><td class="mdescLeft">&#160;</td><td class="mdescRight">program the security register  <a href="group__w25qxx__advance__driver.html#ga4e9c059ff78866e478e835cb27a92899">More...</a><br /></td></tr>
+<tr class="memitem:ga4e9c059ff78866e478e835cb27a92899" id="r_ga4e9c059ff78866e478e835cb27a92899"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga4e9c059ff78866e478e835cb27a92899">w25qxx_program_security_register</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, <a class="el" href="group__w25qxx__advance__driver.html#ga81ddc7d4b9f4f124163beea19cc33c7e">w25qxx_security_register_t</a> num, uint8_t data[256])</td></tr>
+<tr class="memdesc:ga4e9c059ff78866e478e835cb27a92899"><td class="mdescLeft">&#160;</td><td class="mdescRight">program the security register  <br /></td></tr>
 <tr class="separator:ga4e9c059ff78866e478e835cb27a92899"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga4c65debc4947bd9a61e0073105164b9c"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga4c65debc4947bd9a61e0073105164b9c">w25qxx_read_security_register</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, <a class="el" href="group__w25qxx__advance__driver.html#ga81ddc7d4b9f4f124163beea19cc33c7e">w25qxx_security_register_t</a> num, uint8_t data[256])</td></tr>
-<tr class="memdesc:ga4c65debc4947bd9a61e0073105164b9c"><td class="mdescLeft">&#160;</td><td class="mdescRight">read the security register  <a href="group__w25qxx__advance__driver.html#ga4c65debc4947bd9a61e0073105164b9c">More...</a><br /></td></tr>
+<tr class="memitem:ga4c65debc4947bd9a61e0073105164b9c" id="r_ga4c65debc4947bd9a61e0073105164b9c"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga4c65debc4947bd9a61e0073105164b9c">w25qxx_read_security_register</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, <a class="el" href="group__w25qxx__advance__driver.html#ga81ddc7d4b9f4f124163beea19cc33c7e">w25qxx_security_register_t</a> num, uint8_t data[256])</td></tr>
+<tr class="memdesc:ga4c65debc4947bd9a61e0073105164b9c"><td class="mdescLeft">&#160;</td><td class="mdescRight">read the security register  <br /></td></tr>
 <tr class="separator:ga4c65debc4947bd9a61e0073105164b9c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga4f00c2c169cb7c3084841c6cd795e76b"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga4f00c2c169cb7c3084841c6cd795e76b">w25qxx_individual_block_lock</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint32_t addr)</td></tr>
-<tr class="memdesc:ga4f00c2c169cb7c3084841c6cd795e76b"><td class="mdescLeft">&#160;</td><td class="mdescRight">lock the individual block  <a href="group__w25qxx__advance__driver.html#ga4f00c2c169cb7c3084841c6cd795e76b">More...</a><br /></td></tr>
+<tr class="memitem:ga4f00c2c169cb7c3084841c6cd795e76b" id="r_ga4f00c2c169cb7c3084841c6cd795e76b"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga4f00c2c169cb7c3084841c6cd795e76b">w25qxx_individual_block_lock</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint32_t addr)</td></tr>
+<tr class="memdesc:ga4f00c2c169cb7c3084841c6cd795e76b"><td class="mdescLeft">&#160;</td><td class="mdescRight">lock the individual block  <br /></td></tr>
 <tr class="separator:ga4f00c2c169cb7c3084841c6cd795e76b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga7f88cedf7619071b3235ba094915b2a7"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga7f88cedf7619071b3235ba094915b2a7">w25qxx_individual_block_unlock</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint32_t addr)</td></tr>
-<tr class="memdesc:ga7f88cedf7619071b3235ba094915b2a7"><td class="mdescLeft">&#160;</td><td class="mdescRight">unlock the individual block  <a href="group__w25qxx__advance__driver.html#ga7f88cedf7619071b3235ba094915b2a7">More...</a><br /></td></tr>
+<tr class="memitem:ga7f88cedf7619071b3235ba094915b2a7" id="r_ga7f88cedf7619071b3235ba094915b2a7"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga7f88cedf7619071b3235ba094915b2a7">w25qxx_individual_block_unlock</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint32_t addr)</td></tr>
+<tr class="memdesc:ga7f88cedf7619071b3235ba094915b2a7"><td class="mdescLeft">&#160;</td><td class="mdescRight">unlock the individual block  <br /></td></tr>
 <tr class="separator:ga7f88cedf7619071b3235ba094915b2a7"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga59e655ca78a175037ca810bbc8539a96"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga59e655ca78a175037ca810bbc8539a96">w25qxx_read_block_lock</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *value)</td></tr>
-<tr class="memdesc:ga59e655ca78a175037ca810bbc8539a96"><td class="mdescLeft">&#160;</td><td class="mdescRight">read the block lock  <a href="group__w25qxx__advance__driver.html#ga59e655ca78a175037ca810bbc8539a96">More...</a><br /></td></tr>
+<tr class="memitem:ga59e655ca78a175037ca810bbc8539a96" id="r_ga59e655ca78a175037ca810bbc8539a96"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#ga59e655ca78a175037ca810bbc8539a96">w25qxx_read_block_lock</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *value)</td></tr>
+<tr class="memdesc:ga59e655ca78a175037ca810bbc8539a96"><td class="mdescLeft">&#160;</td><td class="mdescRight">read the block lock  <br /></td></tr>
 <tr class="separator:ga59e655ca78a175037ca810bbc8539a96"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac19c1d0f3fd48968ea2a93c1dbe3d75d"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#gac19c1d0f3fd48968ea2a93c1dbe3d75d">w25qxx_set_burst_with_wrap</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, <a class="el" href="group__w25qxx__advance__driver.html#ga94bbae2bf8906903e8dc2a28c490723d">w25qxx_burst_wrap_t</a> wrap)</td></tr>
-<tr class="memdesc:gac19c1d0f3fd48968ea2a93c1dbe3d75d"><td class="mdescLeft">&#160;</td><td class="mdescRight">set the burst with wrap  <a href="group__w25qxx__advance__driver.html#gac19c1d0f3fd48968ea2a93c1dbe3d75d">More...</a><br /></td></tr>
+<tr class="memitem:gac19c1d0f3fd48968ea2a93c1dbe3d75d" id="r_gac19c1d0f3fd48968ea2a93c1dbe3d75d"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html#gac19c1d0f3fd48968ea2a93c1dbe3d75d">w25qxx_set_burst_with_wrap</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, <a class="el" href="group__w25qxx__advance__driver.html#ga94bbae2bf8906903e8dc2a28c490723d">w25qxx_burst_wrap_t</a> wrap)</td></tr>
+<tr class="memdesc:gac19c1d0f3fd48968ea2a93c1dbe3d75d"><td class="mdescLeft">&#160;</td><td class="mdescRight">set the burst with wrap  <br /></td></tr>
 <tr class="separator:gac19c1d0f3fd48968ea2a93c1dbe3d75d"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
 <p>w25qxx advance driver modules </p>
 <h2 class="groupheader">Enumeration Type Documentation</h2>
-<a id="ga94bbae2bf8906903e8dc2a28c490723d"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ga94bbae2bf8906903e8dc2a28c490723d">&#9670;&nbsp;</a></span>w25qxx_burst_wrap_t</h2>
+<a id="ga94bbae2bf8906903e8dc2a28c490723d" name="ga94bbae2bf8906903e8dc2a28c490723d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga94bbae2bf8906903e8dc2a28c490723d">&#9670;&#160;</a></span>w25qxx_burst_wrap_t</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -301,15 +307,15 @@ <h2 class="memtitle"><span class="permalink"><a href="#ga94bbae2bf8906903e8dc2a2
 
 <p>w25qxx burst wrap enumeration definition </p>
 <table class="fieldtable">
-<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="gga94bbae2bf8906903e8dc2a28c490723dae39a7ea65512a56d40aad2990d55815d"></a>W25QXX_BURST_WRAP_NONE&#160;</td><td class="fielddoc"><p>no burst wrap </p>
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="gga94bbae2bf8906903e8dc2a28c490723dae39a7ea65512a56d40aad2990d55815d" name="gga94bbae2bf8906903e8dc2a28c490723dae39a7ea65512a56d40aad2990d55815d"></a>W25QXX_BURST_WRAP_NONE&#160;</td><td class="fielddoc"><p>no burst wrap </p>
 </td></tr>
-<tr><td class="fieldname"><a id="gga94bbae2bf8906903e8dc2a28c490723da35edf6c31d0fe1771ab79669d13b7af8"></a>W25QXX_BURST_WRAP_8_BYTE&#160;</td><td class="fielddoc"><p>8 byte burst wrap </p>
+<tr><td class="fieldname"><a id="gga94bbae2bf8906903e8dc2a28c490723da35edf6c31d0fe1771ab79669d13b7af8" name="gga94bbae2bf8906903e8dc2a28c490723da35edf6c31d0fe1771ab79669d13b7af8"></a>W25QXX_BURST_WRAP_8_BYTE&#160;</td><td class="fielddoc"><p>8 byte burst wrap </p>
 </td></tr>
-<tr><td class="fieldname"><a id="gga94bbae2bf8906903e8dc2a28c490723dafec1eb230b49fbda6ffcc1eeda64179a"></a>W25QXX_BURST_WRAP_16_BYTE&#160;</td><td class="fielddoc"><p>16 byte burst wrap </p>
+<tr><td class="fieldname"><a id="gga94bbae2bf8906903e8dc2a28c490723dafec1eb230b49fbda6ffcc1eeda64179a" name="gga94bbae2bf8906903e8dc2a28c490723dafec1eb230b49fbda6ffcc1eeda64179a"></a>W25QXX_BURST_WRAP_16_BYTE&#160;</td><td class="fielddoc"><p>16 byte burst wrap </p>
 </td></tr>
-<tr><td class="fieldname"><a id="gga94bbae2bf8906903e8dc2a28c490723dae2ac810153f9515a145773c34409b995"></a>W25QXX_BURST_WRAP_32_BYTE&#160;</td><td class="fielddoc"><p>32 byte burst wrap </p>
+<tr><td class="fieldname"><a id="gga94bbae2bf8906903e8dc2a28c490723dae2ac810153f9515a145773c34409b995" name="gga94bbae2bf8906903e8dc2a28c490723dae2ac810153f9515a145773c34409b995"></a>W25QXX_BURST_WRAP_32_BYTE&#160;</td><td class="fielddoc"><p>32 byte burst wrap </p>
 </td></tr>
-<tr><td class="fieldname"><a id="gga94bbae2bf8906903e8dc2a28c490723da2a3afd7924b00cf74abe83f5216c8915"></a>W25QXX_BURST_WRAP_64_BYTE&#160;</td><td class="fielddoc"><p>64 byte burst wrap </p>
+<tr><td class="fieldname"><a id="gga94bbae2bf8906903e8dc2a28c490723da2a3afd7924b00cf74abe83f5216c8915" name="gga94bbae2bf8906903e8dc2a28c490723da2a3afd7924b00cf74abe83f5216c8915"></a>W25QXX_BURST_WRAP_64_BYTE&#160;</td><td class="fielddoc"><p>64 byte burst wrap </p>
 </td></tr>
 </table>
 
@@ -317,8 +323,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#ga94bbae2bf8906903e8dc2a2
 
 </div>
 </div>
-<a id="ga6ff284154302248f00db269146545443"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ga6ff284154302248f00db269146545443">&#9670;&nbsp;</a></span>w25qxx_qspi_read_dummy_t</h2>
+<a id="ga6ff284154302248f00db269146545443" name="ga6ff284154302248f00db269146545443"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga6ff284154302248f00db269146545443">&#9670;&#160;</a></span>w25qxx_qspi_read_dummy_t</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -331,13 +337,13 @@ <h2 class="memtitle"><span class="permalink"><a href="#ga6ff284154302248f00db269
 
 <p>w25qxx qspi read dummy enumeration definition </p>
 <table class="fieldtable">
-<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="gga6ff284154302248f00db269146545443ad73634a0f4534c3ae35d4242b2bc8f13"></a>W25QXX_QSPI_READ_DUMMY_2_33MHZ&#160;</td><td class="fielddoc"><p>qspi read dummy 2 max 33 MHz </p>
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="gga6ff284154302248f00db269146545443ad73634a0f4534c3ae35d4242b2bc8f13" name="gga6ff284154302248f00db269146545443ad73634a0f4534c3ae35d4242b2bc8f13"></a>W25QXX_QSPI_READ_DUMMY_2_33MHZ&#160;</td><td class="fielddoc"><p>qspi read dummy 2 max 33 MHz </p>
 </td></tr>
-<tr><td class="fieldname"><a id="gga6ff284154302248f00db269146545443a6423b5606e72af6479fe31a6a9883aeb"></a>W25QXX_QSPI_READ_DUMMY_4_55MHZ&#160;</td><td class="fielddoc"><p>qspi read dummy 4 max 55 MHz </p>
+<tr><td class="fieldname"><a id="gga6ff284154302248f00db269146545443a6423b5606e72af6479fe31a6a9883aeb" name="gga6ff284154302248f00db269146545443a6423b5606e72af6479fe31a6a9883aeb"></a>W25QXX_QSPI_READ_DUMMY_4_55MHZ&#160;</td><td class="fielddoc"><p>qspi read dummy 4 max 55 MHz </p>
 </td></tr>
-<tr><td class="fieldname"><a id="gga6ff284154302248f00db269146545443a78393debe12bbb3efb710e38e3c1d550"></a>W25QXX_QSPI_READ_DUMMY_6_80MHZ&#160;</td><td class="fielddoc"><p>qspi read dummy 6 max 80 MHz </p>
+<tr><td class="fieldname"><a id="gga6ff284154302248f00db269146545443a78393debe12bbb3efb710e38e3c1d550" name="gga6ff284154302248f00db269146545443a78393debe12bbb3efb710e38e3c1d550"></a>W25QXX_QSPI_READ_DUMMY_6_80MHZ&#160;</td><td class="fielddoc"><p>qspi read dummy 6 max 80 MHz </p>
 </td></tr>
-<tr><td class="fieldname"><a id="gga6ff284154302248f00db269146545443ade1d3511f15c7d92de8c5d8967c471c3"></a>W25QXX_QSPI_READ_DUMMY_8_80MHZ&#160;</td><td class="fielddoc"><p>qspi read dummy 8 max 80 MHz </p>
+<tr><td class="fieldname"><a id="gga6ff284154302248f00db269146545443ade1d3511f15c7d92de8c5d8967c471c3" name="gga6ff284154302248f00db269146545443ade1d3511f15c7d92de8c5d8967c471c3"></a>W25QXX_QSPI_READ_DUMMY_8_80MHZ&#160;</td><td class="fielddoc"><p>qspi read dummy 8 max 80 MHz </p>
 </td></tr>
 </table>
 
@@ -345,8 +351,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#ga6ff284154302248f00db269
 
 </div>
 </div>
-<a id="ga2fd3023819e1aebe089a4a72eb136da3"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ga2fd3023819e1aebe089a4a72eb136da3">&#9670;&nbsp;</a></span>w25qxx_qspi_read_wrap_length_t</h2>
+<a id="ga2fd3023819e1aebe089a4a72eb136da3" name="ga2fd3023819e1aebe089a4a72eb136da3"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga2fd3023819e1aebe089a4a72eb136da3">&#9670;&#160;</a></span>w25qxx_qspi_read_wrap_length_t</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -359,13 +365,13 @@ <h2 class="memtitle"><span class="permalink"><a href="#ga2fd3023819e1aebe089a4a7
 
 <p>w25qxx qspi read wrap length enumeration definition </p>
 <table class="fieldtable">
-<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="gga2fd3023819e1aebe089a4a72eb136da3a5b8fa1026c564fe83f3f0f0edb89d1dd"></a>W25QXX_QSPI_READ_WRAP_LENGTH_8_BYTE&#160;</td><td class="fielddoc"><p>read wrap length 8 byte </p>
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="gga2fd3023819e1aebe089a4a72eb136da3a5b8fa1026c564fe83f3f0f0edb89d1dd" name="gga2fd3023819e1aebe089a4a72eb136da3a5b8fa1026c564fe83f3f0f0edb89d1dd"></a>W25QXX_QSPI_READ_WRAP_LENGTH_8_BYTE&#160;</td><td class="fielddoc"><p>read wrap length 8 byte </p>
 </td></tr>
-<tr><td class="fieldname"><a id="gga2fd3023819e1aebe089a4a72eb136da3ae6bc2fcd2d4fc3af63f22da56a3b393b"></a>W25QXX_QSPI_READ_WRAP_LENGTH_16_BYTE&#160;</td><td class="fielddoc"><p>read wrap length 16 byte </p>
+<tr><td class="fieldname"><a id="gga2fd3023819e1aebe089a4a72eb136da3ae6bc2fcd2d4fc3af63f22da56a3b393b" name="gga2fd3023819e1aebe089a4a72eb136da3ae6bc2fcd2d4fc3af63f22da56a3b393b"></a>W25QXX_QSPI_READ_WRAP_LENGTH_16_BYTE&#160;</td><td class="fielddoc"><p>read wrap length 16 byte </p>
 </td></tr>
-<tr><td class="fieldname"><a id="gga2fd3023819e1aebe089a4a72eb136da3aa5f2e6b5718a85ab9241125e84181216"></a>W25QXX_QSPI_READ_WRAP_LENGTH_32_BYTE&#160;</td><td class="fielddoc"><p>read wrap length 32 byte </p>
+<tr><td class="fieldname"><a id="gga2fd3023819e1aebe089a4a72eb136da3aa5f2e6b5718a85ab9241125e84181216" name="gga2fd3023819e1aebe089a4a72eb136da3aa5f2e6b5718a85ab9241125e84181216"></a>W25QXX_QSPI_READ_WRAP_LENGTH_32_BYTE&#160;</td><td class="fielddoc"><p>read wrap length 32 byte </p>
 </td></tr>
-<tr><td class="fieldname"><a id="gga2fd3023819e1aebe089a4a72eb136da3a736f25eeae36f6a0b62d4cb1666a689f"></a>W25QXX_QSPI_READ_WRAP_LENGTH_64_BYTE&#160;</td><td class="fielddoc"><p>read wrap length 64 byte </p>
+<tr><td class="fieldname"><a id="gga2fd3023819e1aebe089a4a72eb136da3a736f25eeae36f6a0b62d4cb1666a689f" name="gga2fd3023819e1aebe089a4a72eb136da3a736f25eeae36f6a0b62d4cb1666a689f"></a>W25QXX_QSPI_READ_WRAP_LENGTH_64_BYTE&#160;</td><td class="fielddoc"><p>read wrap length 64 byte </p>
 </td></tr>
 </table>
 
@@ -373,8 +379,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#ga2fd3023819e1aebe089a4a7
 
 </div>
 </div>
-<a id="ga81ddc7d4b9f4f124163beea19cc33c7e"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ga81ddc7d4b9f4f124163beea19cc33c7e">&#9670;&nbsp;</a></span>w25qxx_security_register_t</h2>
+<a id="ga81ddc7d4b9f4f124163beea19cc33c7e" name="ga81ddc7d4b9f4f124163beea19cc33c7e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga81ddc7d4b9f4f124163beea19cc33c7e">&#9670;&#160;</a></span>w25qxx_security_register_t</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -387,11 +393,11 @@ <h2 class="memtitle"><span class="permalink"><a href="#ga81ddc7d4b9f4f124163beea
 
 <p>w25qxx security register enumeration definition </p>
 <table class="fieldtable">
-<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="gga81ddc7d4b9f4f124163beea19cc33c7eaaf27484a497c13915c8acb0161cf137d"></a>W25QXX_SECURITY_REGISTER_1&#160;</td><td class="fielddoc"><p>security register 1 </p>
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="gga81ddc7d4b9f4f124163beea19cc33c7eaaf27484a497c13915c8acb0161cf137d" name="gga81ddc7d4b9f4f124163beea19cc33c7eaaf27484a497c13915c8acb0161cf137d"></a>W25QXX_SECURITY_REGISTER_1&#160;</td><td class="fielddoc"><p>security register 1 </p>
 </td></tr>
-<tr><td class="fieldname"><a id="gga81ddc7d4b9f4f124163beea19cc33c7ea3353a88090850174ca163d56e4d7089c"></a>W25QXX_SECURITY_REGISTER_2&#160;</td><td class="fielddoc"><p>security register 2 </p>
+<tr><td class="fieldname"><a id="gga81ddc7d4b9f4f124163beea19cc33c7ea3353a88090850174ca163d56e4d7089c" name="gga81ddc7d4b9f4f124163beea19cc33c7ea3353a88090850174ca163d56e4d7089c"></a>W25QXX_SECURITY_REGISTER_2&#160;</td><td class="fielddoc"><p>security register 2 </p>
 </td></tr>
-<tr><td class="fieldname"><a id="gga81ddc7d4b9f4f124163beea19cc33c7ea65b73162d921075bed8cb8d848948900"></a>W25QXX_SECURITY_REGISTER_3&#160;</td><td class="fielddoc"><p>security register 3 </p>
+<tr><td class="fieldname"><a id="gga81ddc7d4b9f4f124163beea19cc33c7ea65b73162d921075bed8cb8d848948900" name="gga81ddc7d4b9f4f124163beea19cc33c7ea65b73162d921075bed8cb8d848948900"></a>W25QXX_SECURITY_REGISTER_3&#160;</td><td class="fielddoc"><p>security register 3 </p>
 </td></tr>
 </table>
 
@@ -399,8 +405,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#ga81ddc7d4b9f4f124163beea
 
 </div>
 </div>
-<a id="ga9e41a72d1e25d39d88ce7108a9b25595"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ga9e41a72d1e25d39d88ce7108a9b25595">&#9670;&nbsp;</a></span>w25qxx_status1_t</h2>
+<a id="ga9e41a72d1e25d39d88ce7108a9b25595" name="ga9e41a72d1e25d39d88ce7108a9b25595"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga9e41a72d1e25d39d88ce7108a9b25595">&#9670;&#160;</a></span>w25qxx_status1_t</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -413,21 +419,21 @@ <h2 class="memtitle"><span class="permalink"><a href="#ga9e41a72d1e25d39d88ce710
 
 <p>w25qxx status 1 enumeration definition </p>
 <table class="fieldtable">
-<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="gga9e41a72d1e25d39d88ce7108a9b25595a00d1d224963ec1f38ac97802480b2129"></a>W25QXX_STATUS1_STATUS_REGISTER_PROTECT_0&#160;</td><td class="fielddoc"><p>status register protect 0 </p>
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="gga9e41a72d1e25d39d88ce7108a9b25595a00d1d224963ec1f38ac97802480b2129" name="gga9e41a72d1e25d39d88ce7108a9b25595a00d1d224963ec1f38ac97802480b2129"></a>W25QXX_STATUS1_STATUS_REGISTER_PROTECT_0&#160;</td><td class="fielddoc"><p>status register protect 0 </p>
 </td></tr>
-<tr><td class="fieldname"><a id="gga9e41a72d1e25d39d88ce7108a9b25595a9522040a098337442eff127e1598776d"></a>W25QXX_STATUS1_SECTOR_PROTECT_OR_TOP_BOTTOM_PROTECT&#160;</td><td class="fielddoc"><p>sector protect bit or top / bottom protect bit </p>
+<tr><td class="fieldname"><a id="gga9e41a72d1e25d39d88ce7108a9b25595a9522040a098337442eff127e1598776d" name="gga9e41a72d1e25d39d88ce7108a9b25595a9522040a098337442eff127e1598776d"></a>W25QXX_STATUS1_SECTOR_PROTECT_OR_TOP_BOTTOM_PROTECT&#160;</td><td class="fielddoc"><p>sector protect bit or top / bottom protect bit </p>
 </td></tr>
-<tr><td class="fieldname"><a id="gga9e41a72d1e25d39d88ce7108a9b25595a63bc45b7e0e19de7e58e3494eb4046c5"></a>W25QXX_STATUS1_TOP_BOTTOM_PROTECT_OR_BLOCK_PROTECT_3&#160;</td><td class="fielddoc"><p>top / bottom protect bit or block 3 protect bit </p>
+<tr><td class="fieldname"><a id="gga9e41a72d1e25d39d88ce7108a9b25595a63bc45b7e0e19de7e58e3494eb4046c5" name="gga9e41a72d1e25d39d88ce7108a9b25595a63bc45b7e0e19de7e58e3494eb4046c5"></a>W25QXX_STATUS1_TOP_BOTTOM_PROTECT_OR_BLOCK_PROTECT_3&#160;</td><td class="fielddoc"><p>top / bottom protect bit or block 3 protect bit </p>
 </td></tr>
-<tr><td class="fieldname"><a id="gga9e41a72d1e25d39d88ce7108a9b25595a9a02180228dbb94e9d302b667fda884f"></a>W25QXX_STATUS1_BLOCK_PROTECT_2&#160;</td><td class="fielddoc"><p>block 2 protect bit </p>
+<tr><td class="fieldname"><a id="gga9e41a72d1e25d39d88ce7108a9b25595a9a02180228dbb94e9d302b667fda884f" name="gga9e41a72d1e25d39d88ce7108a9b25595a9a02180228dbb94e9d302b667fda884f"></a>W25QXX_STATUS1_BLOCK_PROTECT_2&#160;</td><td class="fielddoc"><p>block 2 protect bit </p>
 </td></tr>
-<tr><td class="fieldname"><a id="gga9e41a72d1e25d39d88ce7108a9b25595a3465f02625d38730630b60cd01e92085"></a>W25QXX_STATUS1_BLOCK_PROTECT_1&#160;</td><td class="fielddoc"><p>block 1 protect bit </p>
+<tr><td class="fieldname"><a id="gga9e41a72d1e25d39d88ce7108a9b25595a3465f02625d38730630b60cd01e92085" name="gga9e41a72d1e25d39d88ce7108a9b25595a3465f02625d38730630b60cd01e92085"></a>W25QXX_STATUS1_BLOCK_PROTECT_1&#160;</td><td class="fielddoc"><p>block 1 protect bit </p>
 </td></tr>
-<tr><td class="fieldname"><a id="gga9e41a72d1e25d39d88ce7108a9b25595a7b7e8922009c0d6a88bbfad76a812262"></a>W25QXX_STATUS1_BLOCK_PROTECT_0&#160;</td><td class="fielddoc"><p>block 0 protect bit </p>
+<tr><td class="fieldname"><a id="gga9e41a72d1e25d39d88ce7108a9b25595a7b7e8922009c0d6a88bbfad76a812262" name="gga9e41a72d1e25d39d88ce7108a9b25595a7b7e8922009c0d6a88bbfad76a812262"></a>W25QXX_STATUS1_BLOCK_PROTECT_0&#160;</td><td class="fielddoc"><p>block 0 protect bit </p>
 </td></tr>
-<tr><td class="fieldname"><a id="gga9e41a72d1e25d39d88ce7108a9b25595a1438a76d1be1aa02e4f7450a045c02e3"></a>W25QXX_STATUS1_WRITE_ENABLE_LATCH&#160;</td><td class="fielddoc"><p>write enable latch </p>
+<tr><td class="fieldname"><a id="gga9e41a72d1e25d39d88ce7108a9b25595a1438a76d1be1aa02e4f7450a045c02e3" name="gga9e41a72d1e25d39d88ce7108a9b25595a1438a76d1be1aa02e4f7450a045c02e3"></a>W25QXX_STATUS1_WRITE_ENABLE_LATCH&#160;</td><td class="fielddoc"><p>write enable latch </p>
 </td></tr>
-<tr><td class="fieldname"><a id="gga9e41a72d1e25d39d88ce7108a9b25595ae1ce566fc564776e98a5c7edefe8c5ea"></a>W25QXX_STATUS1_ERASE_WRITE_PROGRESS&#160;</td><td class="fielddoc"><p>erase / write in progress </p>
+<tr><td class="fieldname"><a id="gga9e41a72d1e25d39d88ce7108a9b25595ae1ce566fc564776e98a5c7edefe8c5ea" name="gga9e41a72d1e25d39d88ce7108a9b25595ae1ce566fc564776e98a5c7edefe8c5ea"></a>W25QXX_STATUS1_ERASE_WRITE_PROGRESS&#160;</td><td class="fielddoc"><p>erase / write in progress </p>
 </td></tr>
 </table>
 
@@ -435,8 +441,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#ga9e41a72d1e25d39d88ce710
 
 </div>
 </div>
-<a id="ga0d28076f6fc7d3ae9dd7f8410069a277"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ga0d28076f6fc7d3ae9dd7f8410069a277">&#9670;&nbsp;</a></span>w25qxx_status2_t</h2>
+<a id="ga0d28076f6fc7d3ae9dd7f8410069a277" name="ga0d28076f6fc7d3ae9dd7f8410069a277"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga0d28076f6fc7d3ae9dd7f8410069a277">&#9670;&#160;</a></span>w25qxx_status2_t</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -449,19 +455,19 @@ <h2 class="memtitle"><span class="permalink"><a href="#ga0d28076f6fc7d3ae9dd7f84
 
 <p>w25qxx status 2 enumeration definition </p>
 <table class="fieldtable">
-<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="gga0d28076f6fc7d3ae9dd7f8410069a277a3fdb54846709f77391e426c626a19152"></a>W25QXX_STATUS2_SUSPEND_STATUS&#160;</td><td class="fielddoc"><p>suspend status </p>
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="gga0d28076f6fc7d3ae9dd7f8410069a277a3fdb54846709f77391e426c626a19152" name="gga0d28076f6fc7d3ae9dd7f8410069a277a3fdb54846709f77391e426c626a19152"></a>W25QXX_STATUS2_SUSPEND_STATUS&#160;</td><td class="fielddoc"><p>suspend status </p>
 </td></tr>
-<tr><td class="fieldname"><a id="gga0d28076f6fc7d3ae9dd7f8410069a277a517e9e50ada30462f902d01e8d5579dc"></a>W25QXX_STATUS2_COMPLEMENT_PROTECT&#160;</td><td class="fielddoc"><p>complement protect </p>
+<tr><td class="fieldname"><a id="gga0d28076f6fc7d3ae9dd7f8410069a277a517e9e50ada30462f902d01e8d5579dc" name="gga0d28076f6fc7d3ae9dd7f8410069a277a517e9e50ada30462f902d01e8d5579dc"></a>W25QXX_STATUS2_COMPLEMENT_PROTECT&#160;</td><td class="fielddoc"><p>complement protect </p>
 </td></tr>
-<tr><td class="fieldname"><a id="gga0d28076f6fc7d3ae9dd7f8410069a277a0f3e2b3059d56f974724a8284142e69a"></a>W25QXX_STATUS2_SECURITY_REGISTER_3_LOCK_BITS&#160;</td><td class="fielddoc"><p>security register 3 lock bits </p>
+<tr><td class="fieldname"><a id="gga0d28076f6fc7d3ae9dd7f8410069a277a0f3e2b3059d56f974724a8284142e69a" name="gga0d28076f6fc7d3ae9dd7f8410069a277a0f3e2b3059d56f974724a8284142e69a"></a>W25QXX_STATUS2_SECURITY_REGISTER_3_LOCK_BITS&#160;</td><td class="fielddoc"><p>security register 3 lock bits </p>
 </td></tr>
-<tr><td class="fieldname"><a id="gga0d28076f6fc7d3ae9dd7f8410069a277a24a99f1a97023ae103c1bec3027bbf26"></a>W25QXX_STATUS2_SECURITY_REGISTER_2_LOCK_BITS&#160;</td><td class="fielddoc"><p>security register 2 lock bits </p>
+<tr><td class="fieldname"><a id="gga0d28076f6fc7d3ae9dd7f8410069a277a24a99f1a97023ae103c1bec3027bbf26" name="gga0d28076f6fc7d3ae9dd7f8410069a277a24a99f1a97023ae103c1bec3027bbf26"></a>W25QXX_STATUS2_SECURITY_REGISTER_2_LOCK_BITS&#160;</td><td class="fielddoc"><p>security register 2 lock bits </p>
 </td></tr>
-<tr><td class="fieldname"><a id="gga0d28076f6fc7d3ae9dd7f8410069a277a7a631c1c153cc099a52883b40007079e"></a>W25QXX_STATUS2_SECURITY_REGISTER_1_LOCK_BITS&#160;</td><td class="fielddoc"><p>security register 1 lock bits </p>
+<tr><td class="fieldname"><a id="gga0d28076f6fc7d3ae9dd7f8410069a277a7a631c1c153cc099a52883b40007079e" name="gga0d28076f6fc7d3ae9dd7f8410069a277a7a631c1c153cc099a52883b40007079e"></a>W25QXX_STATUS2_SECURITY_REGISTER_1_LOCK_BITS&#160;</td><td class="fielddoc"><p>security register 1 lock bits </p>
 </td></tr>
-<tr><td class="fieldname"><a id="gga0d28076f6fc7d3ae9dd7f8410069a277aa920a9c9a590fb8740419d8d2e4230f3"></a>W25QXX_STATUS2_QUAD_ENABLE&#160;</td><td class="fielddoc"><p>quad enable </p>
+<tr><td class="fieldname"><a id="gga0d28076f6fc7d3ae9dd7f8410069a277aa920a9c9a590fb8740419d8d2e4230f3" name="gga0d28076f6fc7d3ae9dd7f8410069a277aa920a9c9a590fb8740419d8d2e4230f3"></a>W25QXX_STATUS2_QUAD_ENABLE&#160;</td><td class="fielddoc"><p>quad enable </p>
 </td></tr>
-<tr><td class="fieldname"><a id="gga0d28076f6fc7d3ae9dd7f8410069a277a5a89a885ba2a59eccd0445443e3bbac6"></a>W25QXX_STATUS2_STATUS_REGISTER_PROTECT_1&#160;</td><td class="fielddoc"><p>status register protect 1 </p>
+<tr><td class="fieldname"><a id="gga0d28076f6fc7d3ae9dd7f8410069a277a5a89a885ba2a59eccd0445443e3bbac6" name="gga0d28076f6fc7d3ae9dd7f8410069a277a5a89a885ba2a59eccd0445443e3bbac6"></a>W25QXX_STATUS2_STATUS_REGISTER_PROTECT_1&#160;</td><td class="fielddoc"><p>status register protect 1 </p>
 </td></tr>
 </table>
 
@@ -469,8 +475,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#ga0d28076f6fc7d3ae9dd7f84
 
 </div>
 </div>
-<a id="gace18ebb2eac49cbde44a2935916f44ac"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#gace18ebb2eac49cbde44a2935916f44ac">&#9670;&nbsp;</a></span>w25qxx_status3_t</h2>
+<a id="gace18ebb2eac49cbde44a2935916f44ac" name="gace18ebb2eac49cbde44a2935916f44ac"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gace18ebb2eac49cbde44a2935916f44ac">&#9670;&#160;</a></span>w25qxx_status3_t</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -483,21 +489,21 @@ <h2 class="memtitle"><span class="permalink"><a href="#gace18ebb2eac49cbde44a293
 
 <p>w25qxx status 3 enumeration definition </p>
 <table class="fieldtable">
-<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="ggace18ebb2eac49cbde44a2935916f44aca9ab13d5388af0156c4e4de08765ec401"></a>W25QXX_STATUS3_HOLD_RESET_FUNCTION&#160;</td><td class="fielddoc"><p>HOLD or RESET function </p>
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="ggace18ebb2eac49cbde44a2935916f44aca9ab13d5388af0156c4e4de08765ec401" name="ggace18ebb2eac49cbde44a2935916f44aca9ab13d5388af0156c4e4de08765ec401"></a>W25QXX_STATUS3_HOLD_RESET_FUNCTION&#160;</td><td class="fielddoc"><p>HOLD or RESET function </p>
 </td></tr>
-<tr><td class="fieldname"><a id="ggace18ebb2eac49cbde44a2935916f44acab5b1ce328b88d08f3d55ed776e01fedb"></a>W25QXX_STATUS3_OUTPUT_DRIVER_STRENGTH_100_PERCENTAGE&#160;</td><td class="fielddoc"><p>output driver strength 100% </p>
+<tr><td class="fieldname"><a id="ggace18ebb2eac49cbde44a2935916f44acab5b1ce328b88d08f3d55ed776e01fedb" name="ggace18ebb2eac49cbde44a2935916f44acab5b1ce328b88d08f3d55ed776e01fedb"></a>W25QXX_STATUS3_OUTPUT_DRIVER_STRENGTH_100_PERCENTAGE&#160;</td><td class="fielddoc"><p>output driver strength 100% </p>
 </td></tr>
-<tr><td class="fieldname"><a id="ggace18ebb2eac49cbde44a2935916f44aca7ab6ace72a02afc20f92f48e975b60b7"></a>W25QXX_STATUS3_OUTPUT_DRIVER_STRENGTH_75_PERCENTAGE&#160;</td><td class="fielddoc"><p>output driver strength 75% </p>
+<tr><td class="fieldname"><a id="ggace18ebb2eac49cbde44a2935916f44aca7ab6ace72a02afc20f92f48e975b60b7" name="ggace18ebb2eac49cbde44a2935916f44aca7ab6ace72a02afc20f92f48e975b60b7"></a>W25QXX_STATUS3_OUTPUT_DRIVER_STRENGTH_75_PERCENTAGE&#160;</td><td class="fielddoc"><p>output driver strength 75% </p>
 </td></tr>
-<tr><td class="fieldname"><a id="ggace18ebb2eac49cbde44a2935916f44aca8abcd821f1f0d02b3d9179c7ab58d0e0"></a>W25QXX_STATUS3_OUTPUT_DRIVER_STRENGTH_50_PERCENTAGE&#160;</td><td class="fielddoc"><p>output driver strength 50% </p>
+<tr><td class="fieldname"><a id="ggace18ebb2eac49cbde44a2935916f44aca8abcd821f1f0d02b3d9179c7ab58d0e0" name="ggace18ebb2eac49cbde44a2935916f44aca8abcd821f1f0d02b3d9179c7ab58d0e0"></a>W25QXX_STATUS3_OUTPUT_DRIVER_STRENGTH_50_PERCENTAGE&#160;</td><td class="fielddoc"><p>output driver strength 50% </p>
 </td></tr>
-<tr><td class="fieldname"><a id="ggace18ebb2eac49cbde44a2935916f44acae645c265a6beb76a088352e2f4bfb4e1"></a>W25QXX_STATUS3_OUTPUT_DRIVER_STRENGTH_25_PERCENTAGE&#160;</td><td class="fielddoc"><p>output driver strength 25% </p>
+<tr><td class="fieldname"><a id="ggace18ebb2eac49cbde44a2935916f44acae645c265a6beb76a088352e2f4bfb4e1" name="ggace18ebb2eac49cbde44a2935916f44acae645c265a6beb76a088352e2f4bfb4e1"></a>W25QXX_STATUS3_OUTPUT_DRIVER_STRENGTH_25_PERCENTAGE&#160;</td><td class="fielddoc"><p>output driver strength 25% </p>
 </td></tr>
-<tr><td class="fieldname"><a id="ggace18ebb2eac49cbde44a2935916f44aca7dc507c444fb395a4956bf50d78f1ee3"></a>W25QXX_STATUS3_WRITE_PROTECT_SELECTION&#160;</td><td class="fielddoc"><p>write protect selection </p>
+<tr><td class="fieldname"><a id="ggace18ebb2eac49cbde44a2935916f44aca7dc507c444fb395a4956bf50d78f1ee3" name="ggace18ebb2eac49cbde44a2935916f44aca7dc507c444fb395a4956bf50d78f1ee3"></a>W25QXX_STATUS3_WRITE_PROTECT_SELECTION&#160;</td><td class="fielddoc"><p>write protect selection </p>
 </td></tr>
-<tr><td class="fieldname"><a id="ggace18ebb2eac49cbde44a2935916f44acadc8d5949eaea0c6ce4e17c6e746f4f65"></a>W25QXX_STATUS3_POWER_UP_ADDRESS_MODE&#160;</td><td class="fielddoc"><p>power up address mode </p>
+<tr><td class="fieldname"><a id="ggace18ebb2eac49cbde44a2935916f44acadc8d5949eaea0c6ce4e17c6e746f4f65" name="ggace18ebb2eac49cbde44a2935916f44acadc8d5949eaea0c6ce4e17c6e746f4f65"></a>W25QXX_STATUS3_POWER_UP_ADDRESS_MODE&#160;</td><td class="fielddoc"><p>power up address mode </p>
 </td></tr>
-<tr><td class="fieldname"><a id="ggace18ebb2eac49cbde44a2935916f44aca3c822d6eacd9747ca2173607a09591ac"></a>W25QXX_STATUS3_CURRENT_ADDRESS_MODE&#160;</td><td class="fielddoc"><p>current address mode </p>
+<tr><td class="fieldname"><a id="ggace18ebb2eac49cbde44a2935916f44aca3c822d6eacd9747ca2173607a09591ac" name="ggace18ebb2eac49cbde44a2935916f44aca3c822d6eacd9747ca2173607a09591ac"></a>W25QXX_STATUS3_CURRENT_ADDRESS_MODE&#160;</td><td class="fielddoc"><p>current address mode </p>
 </td></tr>
 </table>
 
@@ -506,8 +512,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#gace18ebb2eac49cbde44a293
 </div>
 </div>
 <h2 class="groupheader">Function Documentation</h2>
-<a id="gac16a31269277051baad6c28fe4254b4a"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#gac16a31269277051baad6c28fe4254b4a">&#9670;&nbsp;</a></span>w25qxx_disable_write()</h2>
+<a id="gac16a31269277051baad6c28fe4254b4a" name="gac16a31269277051baad6c28fe4254b4a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gac16a31269277051baad6c28fe4254b4a">&#9670;&#160;</a></span>w25qxx_disable_write()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -542,8 +548,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#gac16a31269277051baad6c28
 
 </div>
 </div>
-<a id="gab55b4e071e20feb58584025287949438"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#gab55b4e071e20feb58584025287949438">&#9670;&nbsp;</a></span>w25qxx_enable_reset()</h2>
+<a id="gab55b4e071e20feb58584025287949438" name="gab55b4e071e20feb58584025287949438"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gab55b4e071e20feb58584025287949438">&#9670;&#160;</a></span>w25qxx_enable_reset()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -578,8 +584,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#gab55b4e071e20feb58584025
 
 </div>
 </div>
-<a id="ga0f8889d6a25c32e150a2ab30753d461d"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ga0f8889d6a25c32e150a2ab30753d461d">&#9670;&nbsp;</a></span>w25qxx_enable_volatile_sr_write()</h2>
+<a id="ga0f8889d6a25c32e150a2ab30753d461d" name="ga0f8889d6a25c32e150a2ab30753d461d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga0f8889d6a25c32e150a2ab30753d461d">&#9670;&#160;</a></span>w25qxx_enable_volatile_sr_write()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -614,8 +620,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#ga0f8889d6a25c32e150a2ab3
 
 </div>
 </div>
-<a id="gaeb269123feec054eaaf70f2ffb5797a3"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#gaeb269123feec054eaaf70f2ffb5797a3">&#9670;&nbsp;</a></span>w25qxx_enable_write()</h2>
+<a id="gaeb269123feec054eaaf70f2ffb5797a3" name="gaeb269123feec054eaaf70f2ffb5797a3"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaeb269123feec054eaaf70f2ffb5797a3">&#9670;&#160;</a></span>w25qxx_enable_write()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -650,8 +656,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#gaeb269123feec054eaaf70f2
 
 </div>
 </div>
-<a id="gaa5ab3548707a95ded115255432224c5a"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#gaa5ab3548707a95ded115255432224c5a">&#9670;&nbsp;</a></span>w25qxx_enter_qspi_mode()</h2>
+<a id="gaa5ab3548707a95ded115255432224c5a" name="gaa5ab3548707a95ded115255432224c5a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaa5ab3548707a95ded115255432224c5a">&#9670;&#160;</a></span>w25qxx_enter_qspi_mode()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -687,8 +693,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#gaa5ab3548707a95ded115255
 
 </div>
 </div>
-<a id="ga05c69ac66309544eba4ff38a69f24c00"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ga05c69ac66309544eba4ff38a69f24c00">&#9670;&nbsp;</a></span>w25qxx_erase_program_resume()</h2>
+<a id="ga05c69ac66309544eba4ff38a69f24c00" name="ga05c69ac66309544eba4ff38a69f24c00"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga05c69ac66309544eba4ff38a69f24c00">&#9670;&#160;</a></span>w25qxx_erase_program_resume()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -723,8 +729,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#ga05c69ac66309544eba4ff38
 
 </div>
 </div>
-<a id="gac7fbabc574c250eec100be861f5918ff"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#gac7fbabc574c250eec100be861f5918ff">&#9670;&nbsp;</a></span>w25qxx_erase_program_suspend()</h2>
+<a id="gac7fbabc574c250eec100be861f5918ff" name="gac7fbabc574c250eec100be861f5918ff"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gac7fbabc574c250eec100be861f5918ff">&#9670;&#160;</a></span>w25qxx_erase_program_suspend()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -759,8 +765,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#gac7fbabc574c250eec100be8
 
 </div>
 </div>
-<a id="gaf297e2c6877c64f8fd10a555f783ddaf"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#gaf297e2c6877c64f8fd10a555f783ddaf">&#9670;&nbsp;</a></span>w25qxx_erase_security_register()</h2>
+<a id="gaf297e2c6877c64f8fd10a555f783ddaf" name="gaf297e2c6877c64f8fd10a555f783ddaf"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaf297e2c6877c64f8fd10a555f783ddaf">&#9670;&#160;</a></span>w25qxx_erase_security_register()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -809,8 +815,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#gaf297e2c6877c64f8fd10a55
 
 </div>
 </div>
-<a id="ga6b9f75f7426a54ffdb1f5a057f8188f4"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ga6b9f75f7426a54ffdb1f5a057f8188f4">&#9670;&nbsp;</a></span>w25qxx_exit_qspi_mode()</h2>
+<a id="ga6b9f75f7426a54ffdb1f5a057f8188f4" name="ga6b9f75f7426a54ffdb1f5a057f8188f4"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga6b9f75f7426a54ffdb1f5a057f8188f4">&#9670;&#160;</a></span>w25qxx_exit_qspi_mode()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -846,8 +852,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#ga6b9f75f7426a54ffdb1f5a0
 
 </div>
 </div>
-<a id="gac894f4650905cba10dd3a31284de6d5e"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#gac894f4650905cba10dd3a31284de6d5e">&#9670;&nbsp;</a></span>w25qxx_fast_read_dual_io()</h2>
+<a id="gac894f4650905cba10dd3a31284de6d5e" name="gac894f4650905cba10dd3a31284de6d5e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gac894f4650905cba10dd3a31284de6d5e">&#9670;&#160;</a></span>w25qxx_fast_read_dual_io()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -910,8 +916,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#gac894f4650905cba10dd3a31
 
 </div>
 </div>
-<a id="ga7a19230ca3916816ea8fb7421483d293"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ga7a19230ca3916816ea8fb7421483d293">&#9670;&nbsp;</a></span>w25qxx_fast_read_dual_output()</h2>
+<a id="ga7a19230ca3916816ea8fb7421483d293" name="ga7a19230ca3916816ea8fb7421483d293"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga7a19230ca3916816ea8fb7421483d293">&#9670;&#160;</a></span>w25qxx_fast_read_dual_output()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -974,8 +980,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#ga7a19230ca3916816ea8fb74
 
 </div>
 </div>
-<a id="gab97a64bd3776874518f60381d921ae41"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#gab97a64bd3776874518f60381d921ae41">&#9670;&nbsp;</a></span>w25qxx_fast_read_quad_io()</h2>
+<a id="gab97a64bd3776874518f60381d921ae41" name="gab97a64bd3776874518f60381d921ae41"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gab97a64bd3776874518f60381d921ae41">&#9670;&#160;</a></span>w25qxx_fast_read_quad_io()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -1037,8 +1043,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#gab97a64bd3776874518f6038
 
 </div>
 </div>
-<a id="gaf4bfafd1f80aa0316a4b1a15183dcd50"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#gaf4bfafd1f80aa0316a4b1a15183dcd50">&#9670;&nbsp;</a></span>w25qxx_fast_read_quad_output()</h2>
+<a id="gaf4bfafd1f80aa0316a4b1a15183dcd50" name="gaf4bfafd1f80aa0316a4b1a15183dcd50"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaf4bfafd1f80aa0316a4b1a15183dcd50">&#9670;&#160;</a></span>w25qxx_fast_read_quad_output()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -1101,8 +1107,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#gaf4bfafd1f80aa0316a4b1a1
 
 </div>
 </div>
-<a id="ga8a93ba14a032e10a27f1495fdcf56058"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ga8a93ba14a032e10a27f1495fdcf56058">&#9670;&nbsp;</a></span>w25qxx_get_jedec_id()</h2>
+<a id="ga8a93ba14a032e10a27f1495fdcf56058" name="ga8a93ba14a032e10a27f1495fdcf56058"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga8a93ba14a032e10a27f1495fdcf56058">&#9670;&#160;</a></span>w25qxx_get_jedec_id()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -1155,8 +1161,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#ga8a93ba14a032e10a27f1495
 
 </div>
 </div>
-<a id="ga1cd3aec1bdeabbaed5f049fbf83ceeb4"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ga1cd3aec1bdeabbaed5f049fbf83ceeb4">&#9670;&nbsp;</a></span>w25qxx_get_manufacturer_device_id_dual_io()</h2>
+<a id="ga1cd3aec1bdeabbaed5f049fbf83ceeb4" name="ga1cd3aec1bdeabbaed5f049fbf83ceeb4"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga1cd3aec1bdeabbaed5f049fbf83ceeb4">&#9670;&#160;</a></span>w25qxx_get_manufacturer_device_id_dual_io()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -1212,8 +1218,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#ga1cd3aec1bdeabbaed5f049f
 
 </div>
 </div>
-<a id="ga61bd3ce40b76b6862c6a53e0e37a3455"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ga61bd3ce40b76b6862c6a53e0e37a3455">&#9670;&nbsp;</a></span>w25qxx_get_manufacturer_device_id_quad_io()</h2>
+<a id="ga61bd3ce40b76b6862c6a53e0e37a3455" name="ga61bd3ce40b76b6862c6a53e0e37a3455"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga61bd3ce40b76b6862c6a53e0e37a3455">&#9670;&#160;</a></span>w25qxx_get_manufacturer_device_id_quad_io()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -1269,8 +1275,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#ga61bd3ce40b76b6862c6a53e
 
 </div>
 </div>
-<a id="ga244a91b9c0c32e899ca89e1943045624"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ga244a91b9c0c32e899ca89e1943045624">&#9670;&nbsp;</a></span>w25qxx_get_sfdp()</h2>
+<a id="ga244a91b9c0c32e899ca89e1943045624" name="ga244a91b9c0c32e899ca89e1943045624"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga244a91b9c0c32e899ca89e1943045624">&#9670;&#160;</a></span>w25qxx_get_sfdp()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -1317,8 +1323,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#ga244a91b9c0c32e899ca89e1
 
 </div>
 </div>
-<a id="gaa77d2b00b4fb9cf586f77ace827ea7c6"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#gaa77d2b00b4fb9cf586f77ace827ea7c6">&#9670;&nbsp;</a></span>w25qxx_get_status1()</h2>
+<a id="gaa77d2b00b4fb9cf586f77ace827ea7c6" name="gaa77d2b00b4fb9cf586f77ace827ea7c6"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaa77d2b00b4fb9cf586f77ace827ea7c6">&#9670;&#160;</a></span>w25qxx_get_status1()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -1364,8 +1370,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#gaa77d2b00b4fb9cf586f77ac
 
 </div>
 </div>
-<a id="gaa21237ecbd5951b8017799066e7db5d9"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#gaa21237ecbd5951b8017799066e7db5d9">&#9670;&nbsp;</a></span>w25qxx_get_status2()</h2>
+<a id="gaa21237ecbd5951b8017799066e7db5d9" name="gaa21237ecbd5951b8017799066e7db5d9"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaa21237ecbd5951b8017799066e7db5d9">&#9670;&#160;</a></span>w25qxx_get_status2()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -1411,8 +1417,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#gaa21237ecbd5951b80177990
 
 </div>
 </div>
-<a id="ga99cf6a325a00921d4531004f0c1d75b1"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ga99cf6a325a00921d4531004f0c1d75b1">&#9670;&nbsp;</a></span>w25qxx_get_status3()</h2>
+<a id="ga99cf6a325a00921d4531004f0c1d75b1" name="ga99cf6a325a00921d4531004f0c1d75b1"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga99cf6a325a00921d4531004f0c1d75b1">&#9670;&#160;</a></span>w25qxx_get_status3()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -1458,8 +1464,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#ga99cf6a325a00921d4531004
 
 </div>
 </div>
-<a id="ga11af244389478de68a6777076ee82d69"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ga11af244389478de68a6777076ee82d69">&#9670;&nbsp;</a></span>w25qxx_get_unique_id()</h2>
+<a id="ga11af244389478de68a6777076ee82d69" name="ga11af244389478de68a6777076ee82d69"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga11af244389478de68a6777076ee82d69">&#9670;&#160;</a></span>w25qxx_get_unique_id()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -1507,8 +1513,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#ga11af244389478de68a67770
 
 </div>
 </div>
-<a id="gab5579bc42bc07a7657848140888a817c"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#gab5579bc42bc07a7657848140888a817c">&#9670;&nbsp;</a></span>w25qxx_global_block_lock()</h2>
+<a id="gab5579bc42bc07a7657848140888a817c" name="gab5579bc42bc07a7657848140888a817c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gab5579bc42bc07a7657848140888a817c">&#9670;&#160;</a></span>w25qxx_global_block_lock()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -1543,8 +1549,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#gab5579bc42bc07a765784814
 
 </div>
 </div>
-<a id="ga6d62f7d14945cfde7cde7a0e9a4e3afb"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ga6d62f7d14945cfde7cde7a0e9a4e3afb">&#9670;&nbsp;</a></span>w25qxx_global_block_unlock()</h2>
+<a id="ga6d62f7d14945cfde7cde7a0e9a4e3afb" name="ga6d62f7d14945cfde7cde7a0e9a4e3afb"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga6d62f7d14945cfde7cde7a0e9a4e3afb">&#9670;&#160;</a></span>w25qxx_global_block_unlock()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -1579,8 +1585,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#ga6d62f7d14945cfde7cde7a0
 
 </div>
 </div>
-<a id="ga4f00c2c169cb7c3084841c6cd795e76b"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ga4f00c2c169cb7c3084841c6cd795e76b">&#9670;&nbsp;</a></span>w25qxx_individual_block_lock()</h2>
+<a id="ga4f00c2c169cb7c3084841c6cd795e76b" name="ga4f00c2c169cb7c3084841c6cd795e76b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga4f00c2c169cb7c3084841c6cd795e76b">&#9670;&#160;</a></span>w25qxx_individual_block_lock()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -1627,8 +1633,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#ga4f00c2c169cb7c3084841c6
 
 </div>
 </div>
-<a id="ga7f88cedf7619071b3235ba094915b2a7"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ga7f88cedf7619071b3235ba094915b2a7">&#9670;&nbsp;</a></span>w25qxx_individual_block_unlock()</h2>
+<a id="ga7f88cedf7619071b3235ba094915b2a7" name="ga7f88cedf7619071b3235ba094915b2a7"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga7f88cedf7619071b3235ba094915b2a7">&#9670;&#160;</a></span>w25qxx_individual_block_unlock()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -1675,8 +1681,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#ga7f88cedf7619071b3235ba0
 
 </div>
 </div>
-<a id="ga88a62ec42e86db821ff3f0d3ab541dbb"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ga88a62ec42e86db821ff3f0d3ab541dbb">&#9670;&nbsp;</a></span>w25qxx_octal_word_read_quad_io()</h2>
+<a id="ga88a62ec42e86db821ff3f0d3ab541dbb" name="ga88a62ec42e86db821ff3f0d3ab541dbb"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga88a62ec42e86db821ff3f0d3ab541dbb">&#9670;&#160;</a></span>w25qxx_octal_word_read_quad_io()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -1739,8 +1745,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#ga88a62ec42e86db821ff3f0d
 
 </div>
 </div>
-<a id="ga1f80bbbaaa852eecfffb87737889363d"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ga1f80bbbaaa852eecfffb87737889363d">&#9670;&nbsp;</a></span>w25qxx_page_program_quad_input()</h2>
+<a id="ga1f80bbbaaa852eecfffb87737889363d" name="ga1f80bbbaaa852eecfffb87737889363d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga1f80bbbaaa852eecfffb87737889363d">&#9670;&#160;</a></span>w25qxx_page_program_quad_input()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -1805,8 +1811,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#ga1f80bbbaaa852eecfffb877
 
 </div>
 </div>
-<a id="ga4e9c059ff78866e478e835cb27a92899"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ga4e9c059ff78866e478e835cb27a92899">&#9670;&nbsp;</a></span>w25qxx_program_security_register()</h2>
+<a id="ga4e9c059ff78866e478e835cb27a92899" name="ga4e9c059ff78866e478e835cb27a92899"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga4e9c059ff78866e478e835cb27a92899">&#9670;&#160;</a></span>w25qxx_program_security_register()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -1862,8 +1868,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#ga4e9c059ff78866e478e835c
 
 </div>
 </div>
-<a id="ga59e655ca78a175037ca810bbc8539a96"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ga59e655ca78a175037ca810bbc8539a96">&#9670;&nbsp;</a></span>w25qxx_read_block_lock()</h2>
+<a id="ga59e655ca78a175037ca810bbc8539a96" name="ga59e655ca78a175037ca810bbc8539a96"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga59e655ca78a175037ca810bbc8539a96">&#9670;&#160;</a></span>w25qxx_read_block_lock()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -1917,8 +1923,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#ga59e655ca78a175037ca810b
 
 </div>
 </div>
-<a id="ga4c65debc4947bd9a61e0073105164b9c"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ga4c65debc4947bd9a61e0073105164b9c">&#9670;&nbsp;</a></span>w25qxx_read_security_register()</h2>
+<a id="ga4c65debc4947bd9a61e0073105164b9c" name="ga4c65debc4947bd9a61e0073105164b9c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga4c65debc4947bd9a61e0073105164b9c">&#9670;&#160;</a></span>w25qxx_read_security_register()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -1974,8 +1980,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#ga4c65debc4947bd9a61e0073
 
 </div>
 </div>
-<a id="ga2abebfe2a8d9377eb88448ffca73f222"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ga2abebfe2a8d9377eb88448ffca73f222">&#9670;&nbsp;</a></span>w25qxx_reset_device()</h2>
+<a id="ga2abebfe2a8d9377eb88448ffca73f222" name="ga2abebfe2a8d9377eb88448ffca73f222"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga2abebfe2a8d9377eb88448ffca73f222">&#9670;&#160;</a></span>w25qxx_reset_device()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -2010,8 +2016,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#ga2abebfe2a8d9377eb88448f
 
 </div>
 </div>
-<a id="gac19c1d0f3fd48968ea2a93c1dbe3d75d"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#gac19c1d0f3fd48968ea2a93c1dbe3d75d">&#9670;&nbsp;</a></span>w25qxx_set_burst_with_wrap()</h2>
+<a id="gac19c1d0f3fd48968ea2a93c1dbe3d75d" name="gac19c1d0f3fd48968ea2a93c1dbe3d75d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gac19c1d0f3fd48968ea2a93c1dbe3d75d">&#9670;&#160;</a></span>w25qxx_set_burst_with_wrap()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -2058,8 +2064,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#gac19c1d0f3fd48968ea2a93c
 
 </div>
 </div>
-<a id="ga9ad10781d888b32b43b9eba45d049624"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ga9ad10781d888b32b43b9eba45d049624">&#9670;&nbsp;</a></span>w25qxx_set_read_parameters()</h2>
+<a id="ga9ad10781d888b32b43b9eba45d049624" name="ga9ad10781d888b32b43b9eba45d049624"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga9ad10781d888b32b43b9eba45d049624">&#9670;&#160;</a></span>w25qxx_set_read_parameters()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -2113,8 +2119,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#ga9ad10781d888b32b43b9eba
 
 </div>
 </div>
-<a id="ga246e0bb07c8bbb39731f17906779c012"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ga246e0bb07c8bbb39731f17906779c012">&#9670;&nbsp;</a></span>w25qxx_set_status1()</h2>
+<a id="ga246e0bb07c8bbb39731f17906779c012" name="ga246e0bb07c8bbb39731f17906779c012"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga246e0bb07c8bbb39731f17906779c012">&#9670;&#160;</a></span>w25qxx_set_status1()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -2161,8 +2167,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#ga246e0bb07c8bbb39731f179
 
 </div>
 </div>
-<a id="gaab5f28e8930d50dbc2178e39bc9fa456"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#gaab5f28e8930d50dbc2178e39bc9fa456">&#9670;&nbsp;</a></span>w25qxx_set_status2()</h2>
+<a id="gaab5f28e8930d50dbc2178e39bc9fa456" name="gaab5f28e8930d50dbc2178e39bc9fa456"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaab5f28e8930d50dbc2178e39bc9fa456">&#9670;&#160;</a></span>w25qxx_set_status2()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -2209,8 +2215,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#gaab5f28e8930d50dbc2178e3
 
 </div>
 </div>
-<a id="gada897a6c6d6acb99f4dd4ff9b65ad8ee"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#gada897a6c6d6acb99f4dd4ff9b65ad8ee">&#9670;&nbsp;</a></span>w25qxx_set_status3()</h2>
+<a id="gada897a6c6d6acb99f4dd4ff9b65ad8ee" name="gada897a6c6d6acb99f4dd4ff9b65ad8ee"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gada897a6c6d6acb99f4dd4ff9b65ad8ee">&#9670;&#160;</a></span>w25qxx_set_status3()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -2257,8 +2263,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#gada897a6c6d6acb99f4dd4ff
 
 </div>
 </div>
-<a id="gad97d7e410dd77c49334097a0fd332660"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#gad97d7e410dd77c49334097a0fd332660">&#9670;&nbsp;</a></span>w25qxx_word_read_quad_io()</h2>
+<a id="gad97d7e410dd77c49334097a0fd332660" name="gad97d7e410dd77c49334097a0fd332660"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gad97d7e410dd77c49334097a0fd332660">&#9670;&#160;</a></span>w25qxx_word_read_quad_io()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -2326,7 +2332,7 @@ <h2 class="memtitle"><span class="permalink"><a href="#gad97d7e410dd77c49334097a
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
-    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
+    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/group__w25qxx__basic__driver.html b/doc/html/group__w25qxx__basic__driver.html
index 954317f..9e911b3 100644
--- a/doc/html/group__w25qxx__basic__driver.html
+++ b/doc/html/group__w25qxx__basic__driver.html
@@ -1,9 +1,9 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.8"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>LibDriver W25QXX: w25qxx basic driver function</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -23,11 +23,10 @@
 <div id="titlearea">
 <table cellspacing="0" cellpadding="0">
  <tbody>
- <tr style="height: 56px;">
+ <tr id="projectrow">
   <td id="projectlogo"><img alt="Logo" src="doxygen.png"/></td>
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">LibDriver W25QXX
-   &#160;<span id="projectnumber">1.0.0</span>
+  <td id="projectalign">
+   <div id="projectname">LibDriver W25QXX<span id="projectnumber">&#160;1.0.0</span>
    </div>
    <div id="projectbrief">W25QXX full function driver</div>
   </td>
@@ -36,21 +35,22 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.8 -->
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search/",'.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
 <script type="text/javascript" src="menu.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(function() {
   initMenu('',true,false,'search.php','Search');
   $(document).ready(function() { init_search(); });
 });
-/* @license-end */</script>
+/* @license-end */
+</script>
 <div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
@@ -64,7 +64,7 @@
   </div>
 </div>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(document).ready(function(){initNavTree('group__w25qxx__basic__driver.html',''); initResizable(); });
 /* @license-end */
 </script>
@@ -78,9 +78,16 @@
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
 </div>
 
 <div class="header">
@@ -89,15 +96,14 @@
 <a href="#typedef-members">Typedefs</a> &#124;
 <a href="#enum-members">Enumerations</a> &#124;
 <a href="#func-members">Functions</a>  </div>
-  <div class="headertitle">
-<div class="title">w25qxx basic driver function<div class="ingroups"><a class="el" href="group__w25qxx__driver.html">w25qxx driver function</a></div></div>  </div>
+  <div class="headertitle"><div class="title">w25qxx basic driver function<div class="ingroups"><a class="el" href="group__w25qxx__driver.html">w25qxx driver function</a></div></div></div>
 </div><!--header-->
 <div class="contents">
 
 <p>w25qxx basic driver modules  
 <a href="#details">More...</a></p>
 <table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
 Data Structures</h2></td></tr>
 <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structw25qxx__handle__s.html">w25qxx_handle_s</a></td></tr>
 <tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">w25qxx handle structure definition  <a href="structw25qxx__handle__s.html#details">More...</a><br /></td></tr>
@@ -106,18 +112,18 @@
 <tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">w25qxx information structure definition  <a href="structw25qxx__info__s.html#details">More...</a><br /></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="typedef-members" name="typedef-members"></a>
 Typedefs</h2></td></tr>
-<tr class="memitem:ga56d8a7b5f8b7eaed8df0b6dc90c266be"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structw25qxx__handle__s.html">w25qxx_handle_s</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a></td></tr>
-<tr class="memdesc:ga56d8a7b5f8b7eaed8df0b6dc90c266be"><td class="mdescLeft">&#160;</td><td class="mdescRight">w25qxx handle structure definition  <a href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">More...</a><br /></td></tr>
+<tr class="memitem:ga56d8a7b5f8b7eaed8df0b6dc90c266be" id="r_ga56d8a7b5f8b7eaed8df0b6dc90c266be"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structw25qxx__handle__s.html">w25qxx_handle_s</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a></td></tr>
+<tr class="memdesc:ga56d8a7b5f8b7eaed8df0b6dc90c266be"><td class="mdescLeft">&#160;</td><td class="mdescRight">w25qxx handle structure definition  <br /></td></tr>
 <tr class="separator:ga56d8a7b5f8b7eaed8df0b6dc90c266be"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga601d841ddd0ff8ad3ab52e07c679ef19"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structw25qxx__info__s.html">w25qxx_info_s</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#ga601d841ddd0ff8ad3ab52e07c679ef19">w25qxx_info_t</a></td></tr>
-<tr class="memdesc:ga601d841ddd0ff8ad3ab52e07c679ef19"><td class="mdescLeft">&#160;</td><td class="mdescRight">w25qxx information structure definition  <a href="group__w25qxx__basic__driver.html#ga601d841ddd0ff8ad3ab52e07c679ef19">More...</a><br /></td></tr>
+<tr class="memitem:ga601d841ddd0ff8ad3ab52e07c679ef19" id="r_ga601d841ddd0ff8ad3ab52e07c679ef19"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structw25qxx__info__s.html">w25qxx_info_s</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#ga601d841ddd0ff8ad3ab52e07c679ef19">w25qxx_info_t</a></td></tr>
+<tr class="memdesc:ga601d841ddd0ff8ad3ab52e07c679ef19"><td class="mdescLeft">&#160;</td><td class="mdescRight">w25qxx information structure definition  <br /></td></tr>
 <tr class="separator:ga601d841ddd0ff8ad3ab52e07c679ef19"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="enum-members" name="enum-members"></a>
 Enumerations</h2></td></tr>
-<tr class="memitem:ga6cb4e5164464df549201dd96cb7a58b1"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#ga6cb4e5164464df549201dd96cb7a58b1">w25qxx_type_t</a> { <br />
+<tr class="memitem:ga6cb4e5164464df549201dd96cb7a58b1" id="r_ga6cb4e5164464df549201dd96cb7a58b1"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#ga6cb4e5164464df549201dd96cb7a58b1">w25qxx_type_t</a> { <br />
 &#160;&#160;<a class="el" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a1ad4f72437de5f26cb7b212d4d91e7c2">W25Q80</a> = 0XEF13U
 , <a class="el" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a66acb81a2d520a7d92ce1d37210c6435">W25Q16</a> = 0XEF14U
 , <a class="el" href="group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a4fdad551be6485441db5951f196db7cb">W25Q32</a> = 0XEF15U
@@ -129,99 +135,99 @@
  }</td></tr>
 <tr class="memdesc:ga6cb4e5164464df549201dd96cb7a58b1"><td class="mdescLeft">&#160;</td><td class="mdescRight">w25qxx type enumeration definition  <a href="group__w25qxx__basic__driver.html#ga6cb4e5164464df549201dd96cb7a58b1">More...</a><br /></td></tr>
 <tr class="separator:ga6cb4e5164464df549201dd96cb7a58b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gacbf327a42336baf10713a1796ff4f2fe"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#gacbf327a42336baf10713a1796ff4f2fe">w25qxx_interface_t</a> { <a class="el" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a> = 0x00
+<tr class="memitem:gacbf327a42336baf10713a1796ff4f2fe" id="r_gacbf327a42336baf10713a1796ff4f2fe"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#gacbf327a42336baf10713a1796ff4f2fe">w25qxx_interface_t</a> { <a class="el" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8">W25QXX_INTERFACE_SPI</a> = 0x00
 , <a class="el" href="group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2fea895dcb5c91da89fad1c12161ffd2d5d4">W25QXX_INTERFACE_QSPI</a> = 0x01
  }</td></tr>
 <tr class="memdesc:gacbf327a42336baf10713a1796ff4f2fe"><td class="mdescLeft">&#160;</td><td class="mdescRight">w25qxx interface enumeration definition  <a href="group__w25qxx__basic__driver.html#gacbf327a42336baf10713a1796ff4f2fe">More...</a><br /></td></tr>
 <tr class="separator:gacbf327a42336baf10713a1796ff4f2fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gafb2690946f5baf4be6f3a63dde5491fb"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#gafb2690946f5baf4be6f3a63dde5491fb">w25qxx_bool_t</a> { <a class="el" href="group__w25qxx__basic__driver.html#ggafb2690946f5baf4be6f3a63dde5491fba02afbdc2c6c3d761cd31ac39c857ee9a">W25QXX_BOOL_FALSE</a> = 0x00
+<tr class="memitem:gafb2690946f5baf4be6f3a63dde5491fb" id="r_gafb2690946f5baf4be6f3a63dde5491fb"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#gafb2690946f5baf4be6f3a63dde5491fb">w25qxx_bool_t</a> { <a class="el" href="group__w25qxx__basic__driver.html#ggafb2690946f5baf4be6f3a63dde5491fba02afbdc2c6c3d761cd31ac39c857ee9a">W25QXX_BOOL_FALSE</a> = 0x00
 , <a class="el" href="group__w25qxx__basic__driver.html#ggafb2690946f5baf4be6f3a63dde5491fbae2a935d12b0b1bc9fc321246ee0e0df8">W25QXX_BOOL_TRUE</a> = 0x01
  }</td></tr>
 <tr class="memdesc:gafb2690946f5baf4be6f3a63dde5491fb"><td class="mdescLeft">&#160;</td><td class="mdescRight">w25qxx bool enumeration definition  <a href="group__w25qxx__basic__driver.html#gafb2690946f5baf4be6f3a63dde5491fb">More...</a><br /></td></tr>
 <tr class="separator:gafb2690946f5baf4be6f3a63dde5491fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa4c45f146d1ade8a2da8e751818fa4a2"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#gaa4c45f146d1ade8a2da8e751818fa4a2">w25qxx_address_mode_t</a> { <a class="el" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a> = 0x00
+<tr class="memitem:gaa4c45f146d1ade8a2da8e751818fa4a2" id="r_gaa4c45f146d1ade8a2da8e751818fa4a2"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#gaa4c45f146d1ade8a2da8e751818fa4a2">w25qxx_address_mode_t</a> { <a class="el" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503">W25QXX_ADDRESS_MODE_3_BYTE</a> = 0x00
 , <a class="el" href="group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe">W25QXX_ADDRESS_MODE_4_BYTE</a> = 0x01
  }</td></tr>
 <tr class="memdesc:gaa4c45f146d1ade8a2da8e751818fa4a2"><td class="mdescLeft">&#160;</td><td class="mdescRight">w25qxx address mode enumeration definition  <a href="group__w25qxx__basic__driver.html#gaa4c45f146d1ade8a2da8e751818fa4a2">More...</a><br /></td></tr>
 <tr class="separator:gaa4c45f146d1ade8a2da8e751818fa4a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
 Functions</h2></td></tr>
-<tr class="memitem:ga996e2d3009432e7f8c1a5175c4438a57"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#ga996e2d3009432e7f8c1a5175c4438a57">w25qxx_info</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga601d841ddd0ff8ad3ab52e07c679ef19">w25qxx_info_t</a> *info)</td></tr>
-<tr class="memdesc:ga996e2d3009432e7f8c1a5175c4438a57"><td class="mdescLeft">&#160;</td><td class="mdescRight">get chip's information  <a href="group__w25qxx__basic__driver.html#ga996e2d3009432e7f8c1a5175c4438a57">More...</a><br /></td></tr>
+<tr class="memitem:ga996e2d3009432e7f8c1a5175c4438a57" id="r_ga996e2d3009432e7f8c1a5175c4438a57"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#ga996e2d3009432e7f8c1a5175c4438a57">w25qxx_info</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga601d841ddd0ff8ad3ab52e07c679ef19">w25qxx_info_t</a> *info)</td></tr>
+<tr class="memdesc:ga996e2d3009432e7f8c1a5175c4438a57"><td class="mdescLeft">&#160;</td><td class="mdescRight">get chip's information  <br /></td></tr>
 <tr class="separator:ga996e2d3009432e7f8c1a5175c4438a57"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga665139209b0abc386474a78d89cce6f2"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#ga665139209b0abc386474a78d89cce6f2">w25qxx_set_dual_quad_spi</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, <a class="el" href="group__w25qxx__basic__driver.html#gafb2690946f5baf4be6f3a63dde5491fb">w25qxx_bool_t</a> enable)</td></tr>
-<tr class="memdesc:ga665139209b0abc386474a78d89cce6f2"><td class="mdescLeft">&#160;</td><td class="mdescRight">enable or disable the dual quad spi  <a href="group__w25qxx__basic__driver.html#ga665139209b0abc386474a78d89cce6f2">More...</a><br /></td></tr>
+<tr class="memitem:ga665139209b0abc386474a78d89cce6f2" id="r_ga665139209b0abc386474a78d89cce6f2"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#ga665139209b0abc386474a78d89cce6f2">w25qxx_set_dual_quad_spi</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, <a class="el" href="group__w25qxx__basic__driver.html#gafb2690946f5baf4be6f3a63dde5491fb">w25qxx_bool_t</a> enable)</td></tr>
+<tr class="memdesc:ga665139209b0abc386474a78d89cce6f2"><td class="mdescLeft">&#160;</td><td class="mdescRight">enable or disable the dual quad spi  <br /></td></tr>
 <tr class="separator:ga665139209b0abc386474a78d89cce6f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad4c9b8b0a2d0916c13567f9d7e494cf8"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#gad4c9b8b0a2d0916c13567f9d7e494cf8">w25qxx_get_dual_quad_spi</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, <a class="el" href="group__w25qxx__basic__driver.html#gafb2690946f5baf4be6f3a63dde5491fb">w25qxx_bool_t</a> *enable)</td></tr>
-<tr class="memdesc:gad4c9b8b0a2d0916c13567f9d7e494cf8"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the dual quad spi status  <a href="group__w25qxx__basic__driver.html#gad4c9b8b0a2d0916c13567f9d7e494cf8">More...</a><br /></td></tr>
+<tr class="memitem:gad4c9b8b0a2d0916c13567f9d7e494cf8" id="r_gad4c9b8b0a2d0916c13567f9d7e494cf8"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#gad4c9b8b0a2d0916c13567f9d7e494cf8">w25qxx_get_dual_quad_spi</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, <a class="el" href="group__w25qxx__basic__driver.html#gafb2690946f5baf4be6f3a63dde5491fb">w25qxx_bool_t</a> *enable)</td></tr>
+<tr class="memdesc:gad4c9b8b0a2d0916c13567f9d7e494cf8"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the dual quad spi status  <br /></td></tr>
 <tr class="separator:gad4c9b8b0a2d0916c13567f9d7e494cf8"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa57189cd4170b73f8b1300ca15e27de6"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#gaa57189cd4170b73f8b1300ca15e27de6">w25qxx_set_type</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, <a class="el" href="group__w25qxx__basic__driver.html#ga6cb4e5164464df549201dd96cb7a58b1">w25qxx_type_t</a> type)</td></tr>
-<tr class="memdesc:gaa57189cd4170b73f8b1300ca15e27de6"><td class="mdescLeft">&#160;</td><td class="mdescRight">set the chip type  <a href="group__w25qxx__basic__driver.html#gaa57189cd4170b73f8b1300ca15e27de6">More...</a><br /></td></tr>
+<tr class="memitem:gaa57189cd4170b73f8b1300ca15e27de6" id="r_gaa57189cd4170b73f8b1300ca15e27de6"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#gaa57189cd4170b73f8b1300ca15e27de6">w25qxx_set_type</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, <a class="el" href="group__w25qxx__basic__driver.html#ga6cb4e5164464df549201dd96cb7a58b1">w25qxx_type_t</a> type)</td></tr>
+<tr class="memdesc:gaa57189cd4170b73f8b1300ca15e27de6"><td class="mdescLeft">&#160;</td><td class="mdescRight">set the chip type  <br /></td></tr>
 <tr class="separator:gaa57189cd4170b73f8b1300ca15e27de6"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga685379998dad173b6d9c0b0da270685c"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#ga685379998dad173b6d9c0b0da270685c">w25qxx_get_type</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, <a class="el" href="group__w25qxx__basic__driver.html#ga6cb4e5164464df549201dd96cb7a58b1">w25qxx_type_t</a> *type)</td></tr>
-<tr class="memdesc:ga685379998dad173b6d9c0b0da270685c"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the chip type  <a href="group__w25qxx__basic__driver.html#ga685379998dad173b6d9c0b0da270685c">More...</a><br /></td></tr>
+<tr class="memitem:ga685379998dad173b6d9c0b0da270685c" id="r_ga685379998dad173b6d9c0b0da270685c"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#ga685379998dad173b6d9c0b0da270685c">w25qxx_get_type</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, <a class="el" href="group__w25qxx__basic__driver.html#ga6cb4e5164464df549201dd96cb7a58b1">w25qxx_type_t</a> *type)</td></tr>
+<tr class="memdesc:ga685379998dad173b6d9c0b0da270685c"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the chip type  <br /></td></tr>
 <tr class="separator:ga685379998dad173b6d9c0b0da270685c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga50a62003d566402d46ada2f272c41eb5"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#ga50a62003d566402d46ada2f272c41eb5">w25qxx_set_interface</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, <a class="el" href="group__w25qxx__basic__driver.html#gacbf327a42336baf10713a1796ff4f2fe">w25qxx_interface_t</a> interface)</td></tr>
-<tr class="memdesc:ga50a62003d566402d46ada2f272c41eb5"><td class="mdescLeft">&#160;</td><td class="mdescRight">set the chip interface  <a href="group__w25qxx__basic__driver.html#ga50a62003d566402d46ada2f272c41eb5">More...</a><br /></td></tr>
+<tr class="memitem:ga50a62003d566402d46ada2f272c41eb5" id="r_ga50a62003d566402d46ada2f272c41eb5"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#ga50a62003d566402d46ada2f272c41eb5">w25qxx_set_interface</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, <a class="el" href="group__w25qxx__basic__driver.html#gacbf327a42336baf10713a1796ff4f2fe">w25qxx_interface_t</a> interface)</td></tr>
+<tr class="memdesc:ga50a62003d566402d46ada2f272c41eb5"><td class="mdescLeft">&#160;</td><td class="mdescRight">set the chip interface  <br /></td></tr>
 <tr class="separator:ga50a62003d566402d46ada2f272c41eb5"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga86ef839d475f3926a0be46bbc18d4b45"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#ga86ef839d475f3926a0be46bbc18d4b45">w25qxx_get_interface</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, <a class="el" href="group__w25qxx__basic__driver.html#gacbf327a42336baf10713a1796ff4f2fe">w25qxx_interface_t</a> *interface)</td></tr>
-<tr class="memdesc:ga86ef839d475f3926a0be46bbc18d4b45"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the chip interface  <a href="group__w25qxx__basic__driver.html#ga86ef839d475f3926a0be46bbc18d4b45">More...</a><br /></td></tr>
+<tr class="memitem:ga86ef839d475f3926a0be46bbc18d4b45" id="r_ga86ef839d475f3926a0be46bbc18d4b45"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#ga86ef839d475f3926a0be46bbc18d4b45">w25qxx_get_interface</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, <a class="el" href="group__w25qxx__basic__driver.html#gacbf327a42336baf10713a1796ff4f2fe">w25qxx_interface_t</a> *interface)</td></tr>
+<tr class="memdesc:ga86ef839d475f3926a0be46bbc18d4b45"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the chip interface  <br /></td></tr>
 <tr class="separator:ga86ef839d475f3926a0be46bbc18d4b45"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad0e125eff304ce66fb3956d2c8c80656"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#gad0e125eff304ce66fb3956d2c8c80656">w25qxx_set_address_mode</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, <a class="el" href="group__w25qxx__basic__driver.html#gaa4c45f146d1ade8a2da8e751818fa4a2">w25qxx_address_mode_t</a> mode)</td></tr>
-<tr class="memdesc:gad0e125eff304ce66fb3956d2c8c80656"><td class="mdescLeft">&#160;</td><td class="mdescRight">set the chip address mode  <a href="group__w25qxx__basic__driver.html#gad0e125eff304ce66fb3956d2c8c80656">More...</a><br /></td></tr>
+<tr class="memitem:gad0e125eff304ce66fb3956d2c8c80656" id="r_gad0e125eff304ce66fb3956d2c8c80656"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#gad0e125eff304ce66fb3956d2c8c80656">w25qxx_set_address_mode</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, <a class="el" href="group__w25qxx__basic__driver.html#gaa4c45f146d1ade8a2da8e751818fa4a2">w25qxx_address_mode_t</a> mode)</td></tr>
+<tr class="memdesc:gad0e125eff304ce66fb3956d2c8c80656"><td class="mdescLeft">&#160;</td><td class="mdescRight">set the chip address mode  <br /></td></tr>
 <tr class="separator:gad0e125eff304ce66fb3956d2c8c80656"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga3a52036a97b12fcbe2280b0901a80b90"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#ga3a52036a97b12fcbe2280b0901a80b90">w25qxx_get_address_mode</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, <a class="el" href="group__w25qxx__basic__driver.html#gaa4c45f146d1ade8a2da8e751818fa4a2">w25qxx_address_mode_t</a> *mode)</td></tr>
-<tr class="memdesc:ga3a52036a97b12fcbe2280b0901a80b90"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the chip address mode  <a href="group__w25qxx__basic__driver.html#ga3a52036a97b12fcbe2280b0901a80b90">More...</a><br /></td></tr>
+<tr class="memitem:ga3a52036a97b12fcbe2280b0901a80b90" id="r_ga3a52036a97b12fcbe2280b0901a80b90"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#ga3a52036a97b12fcbe2280b0901a80b90">w25qxx_get_address_mode</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, <a class="el" href="group__w25qxx__basic__driver.html#gaa4c45f146d1ade8a2da8e751818fa4a2">w25qxx_address_mode_t</a> *mode)</td></tr>
+<tr class="memdesc:ga3a52036a97b12fcbe2280b0901a80b90"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the chip address mode  <br /></td></tr>
 <tr class="separator:ga3a52036a97b12fcbe2280b0901a80b90"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga8e7a163b3d255b8c7fc035d0d60f2491"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#ga8e7a163b3d255b8c7fc035d0d60f2491">w25qxx_init</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle)</td></tr>
-<tr class="memdesc:ga8e7a163b3d255b8c7fc035d0d60f2491"><td class="mdescLeft">&#160;</td><td class="mdescRight">initialize the chip  <a href="group__w25qxx__basic__driver.html#ga8e7a163b3d255b8c7fc035d0d60f2491">More...</a><br /></td></tr>
+<tr class="memitem:ga8e7a163b3d255b8c7fc035d0d60f2491" id="r_ga8e7a163b3d255b8c7fc035d0d60f2491"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#ga8e7a163b3d255b8c7fc035d0d60f2491">w25qxx_init</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle)</td></tr>
+<tr class="memdesc:ga8e7a163b3d255b8c7fc035d0d60f2491"><td class="mdescLeft">&#160;</td><td class="mdescRight">initialize the chip  <br /></td></tr>
 <tr class="separator:ga8e7a163b3d255b8c7fc035d0d60f2491"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa293c3a46c4010a3af597a83e646de0d"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle)</td></tr>
-<tr class="memdesc:gaa293c3a46c4010a3af597a83e646de0d"><td class="mdescLeft">&#160;</td><td class="mdescRight">close the chip  <a href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">More...</a><br /></td></tr>
+<tr class="memitem:gaa293c3a46c4010a3af597a83e646de0d" id="r_gaa293c3a46c4010a3af597a83e646de0d"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d">w25qxx_deinit</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle)</td></tr>
+<tr class="memdesc:gaa293c3a46c4010a3af597a83e646de0d"><td class="mdescLeft">&#160;</td><td class="mdescRight">close the chip  <br /></td></tr>
 <tr class="separator:gaa293c3a46c4010a3af597a83e646de0d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae7479fc9ce911a52e3c5b6f1a615b879"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#gae7479fc9ce911a52e3c5b6f1a615b879">w25qxx_read</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
-<tr class="memdesc:gae7479fc9ce911a52e3c5b6f1a615b879"><td class="mdescLeft">&#160;</td><td class="mdescRight">read data  <a href="group__w25qxx__basic__driver.html#gae7479fc9ce911a52e3c5b6f1a615b879">More...</a><br /></td></tr>
+<tr class="memitem:gae7479fc9ce911a52e3c5b6f1a615b879" id="r_gae7479fc9ce911a52e3c5b6f1a615b879"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#gae7479fc9ce911a52e3c5b6f1a615b879">w25qxx_read</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
+<tr class="memdesc:gae7479fc9ce911a52e3c5b6f1a615b879"><td class="mdescLeft">&#160;</td><td class="mdescRight">read data  <br /></td></tr>
 <tr class="separator:gae7479fc9ce911a52e3c5b6f1a615b879"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaaee8264d840e51460821cb6e609338ee"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#gaaee8264d840e51460821cb6e609338ee">w25qxx_write</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
-<tr class="memdesc:gaaee8264d840e51460821cb6e609338ee"><td class="mdescLeft">&#160;</td><td class="mdescRight">write data  <a href="group__w25qxx__basic__driver.html#gaaee8264d840e51460821cb6e609338ee">More...</a><br /></td></tr>
+<tr class="memitem:gaaee8264d840e51460821cb6e609338ee" id="r_gaaee8264d840e51460821cb6e609338ee"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#gaaee8264d840e51460821cb6e609338ee">w25qxx_write</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
+<tr class="memdesc:gaaee8264d840e51460821cb6e609338ee"><td class="mdescLeft">&#160;</td><td class="mdescRight">write data  <br /></td></tr>
 <tr class="separator:gaaee8264d840e51460821cb6e609338ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga1e9ebf198137d23558dbf6470213c472"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#ga1e9ebf198137d23558dbf6470213c472">w25qxx_only_spi_read</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
-<tr class="memdesc:ga1e9ebf198137d23558dbf6470213c472"><td class="mdescLeft">&#160;</td><td class="mdescRight">read only in the spi interface  <a href="group__w25qxx__basic__driver.html#ga1e9ebf198137d23558dbf6470213c472">More...</a><br /></td></tr>
+<tr class="memitem:ga1e9ebf198137d23558dbf6470213c472" id="r_ga1e9ebf198137d23558dbf6470213c472"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#ga1e9ebf198137d23558dbf6470213c472">w25qxx_only_spi_read</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
+<tr class="memdesc:ga1e9ebf198137d23558dbf6470213c472"><td class="mdescLeft">&#160;</td><td class="mdescRight">read only in the spi interface  <br /></td></tr>
 <tr class="separator:ga1e9ebf198137d23558dbf6470213c472"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac345ba10af5ad355578fa97697487123"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#gac345ba10af5ad355578fa97697487123">w25qxx_fast_read</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
-<tr class="memdesc:gac345ba10af5ad355578fa97697487123"><td class="mdescLeft">&#160;</td><td class="mdescRight">read in the fast mode  <a href="group__w25qxx__basic__driver.html#gac345ba10af5ad355578fa97697487123">More...</a><br /></td></tr>
+<tr class="memitem:gac345ba10af5ad355578fa97697487123" id="r_gac345ba10af5ad355578fa97697487123"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#gac345ba10af5ad355578fa97697487123">w25qxx_fast_read</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
+<tr class="memdesc:gac345ba10af5ad355578fa97697487123"><td class="mdescLeft">&#160;</td><td class="mdescRight">read in the fast mode  <br /></td></tr>
 <tr class="separator:gac345ba10af5ad355578fa97697487123"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6280e7e4ab26306436e2c210617a28b3"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#ga6280e7e4ab26306436e2c210617a28b3">w25qxx_page_program</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint16_t len)</td></tr>
-<tr class="memdesc:ga6280e7e4ab26306436e2c210617a28b3"><td class="mdescLeft">&#160;</td><td class="mdescRight">page program  <a href="group__w25qxx__basic__driver.html#ga6280e7e4ab26306436e2c210617a28b3">More...</a><br /></td></tr>
+<tr class="memitem:ga6280e7e4ab26306436e2c210617a28b3" id="r_ga6280e7e4ab26306436e2c210617a28b3"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#ga6280e7e4ab26306436e2c210617a28b3">w25qxx_page_program</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint32_t addr, uint8_t *data, uint16_t len)</td></tr>
+<tr class="memdesc:ga6280e7e4ab26306436e2c210617a28b3"><td class="mdescLeft">&#160;</td><td class="mdescRight">page program  <br /></td></tr>
 <tr class="separator:ga6280e7e4ab26306436e2c210617a28b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga9a03c51b4c84655350c15fbfce0a6b40"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#ga9a03c51b4c84655350c15fbfce0a6b40">w25qxx_sector_erase_4k</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint32_t addr)</td></tr>
-<tr class="memdesc:ga9a03c51b4c84655350c15fbfce0a6b40"><td class="mdescLeft">&#160;</td><td class="mdescRight">erase the 4k sector  <a href="group__w25qxx__basic__driver.html#ga9a03c51b4c84655350c15fbfce0a6b40">More...</a><br /></td></tr>
+<tr class="memitem:ga9a03c51b4c84655350c15fbfce0a6b40" id="r_ga9a03c51b4c84655350c15fbfce0a6b40"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#ga9a03c51b4c84655350c15fbfce0a6b40">w25qxx_sector_erase_4k</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint32_t addr)</td></tr>
+<tr class="memdesc:ga9a03c51b4c84655350c15fbfce0a6b40"><td class="mdescLeft">&#160;</td><td class="mdescRight">erase the 4k sector  <br /></td></tr>
 <tr class="separator:ga9a03c51b4c84655350c15fbfce0a6b40"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga39c8fb382e8c3e4d57232dfa79af781c"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#ga39c8fb382e8c3e4d57232dfa79af781c">w25qxx_block_erase_32k</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint32_t addr)</td></tr>
-<tr class="memdesc:ga39c8fb382e8c3e4d57232dfa79af781c"><td class="mdescLeft">&#160;</td><td class="mdescRight">erase the 32k block  <a href="group__w25qxx__basic__driver.html#ga39c8fb382e8c3e4d57232dfa79af781c">More...</a><br /></td></tr>
+<tr class="memitem:ga39c8fb382e8c3e4d57232dfa79af781c" id="r_ga39c8fb382e8c3e4d57232dfa79af781c"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#ga39c8fb382e8c3e4d57232dfa79af781c">w25qxx_block_erase_32k</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint32_t addr)</td></tr>
+<tr class="memdesc:ga39c8fb382e8c3e4d57232dfa79af781c"><td class="mdescLeft">&#160;</td><td class="mdescRight">erase the 32k block  <br /></td></tr>
 <tr class="separator:ga39c8fb382e8c3e4d57232dfa79af781c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf53bc5f6073482b9b74efd417ec7ac83"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#gaf53bc5f6073482b9b74efd417ec7ac83">w25qxx_block_erase_64k</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint32_t addr)</td></tr>
-<tr class="memdesc:gaf53bc5f6073482b9b74efd417ec7ac83"><td class="mdescLeft">&#160;</td><td class="mdescRight">erase the 64k block  <a href="group__w25qxx__basic__driver.html#gaf53bc5f6073482b9b74efd417ec7ac83">More...</a><br /></td></tr>
+<tr class="memitem:gaf53bc5f6073482b9b74efd417ec7ac83" id="r_gaf53bc5f6073482b9b74efd417ec7ac83"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#gaf53bc5f6073482b9b74efd417ec7ac83">w25qxx_block_erase_64k</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint32_t addr)</td></tr>
+<tr class="memdesc:gaf53bc5f6073482b9b74efd417ec7ac83"><td class="mdescLeft">&#160;</td><td class="mdescRight">erase the 64k block  <br /></td></tr>
 <tr class="separator:gaf53bc5f6073482b9b74efd417ec7ac83"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga0862833b36831f92684980b2e21f2e39"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#ga0862833b36831f92684980b2e21f2e39">w25qxx_chip_erase</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle)</td></tr>
-<tr class="memdesc:ga0862833b36831f92684980b2e21f2e39"><td class="mdescLeft">&#160;</td><td class="mdescRight">erase the chip  <a href="group__w25qxx__basic__driver.html#ga0862833b36831f92684980b2e21f2e39">More...</a><br /></td></tr>
+<tr class="memitem:ga0862833b36831f92684980b2e21f2e39" id="r_ga0862833b36831f92684980b2e21f2e39"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#ga0862833b36831f92684980b2e21f2e39">w25qxx_chip_erase</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle)</td></tr>
+<tr class="memdesc:ga0862833b36831f92684980b2e21f2e39"><td class="mdescLeft">&#160;</td><td class="mdescRight">erase the chip  <br /></td></tr>
 <tr class="separator:ga0862833b36831f92684980b2e21f2e39"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae4effce67e36120325e3c7b245b90142"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#gae4effce67e36120325e3c7b245b90142">w25qxx_power_down</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle)</td></tr>
-<tr class="memdesc:gae4effce67e36120325e3c7b245b90142"><td class="mdescLeft">&#160;</td><td class="mdescRight">power down  <a href="group__w25qxx__basic__driver.html#gae4effce67e36120325e3c7b245b90142">More...</a><br /></td></tr>
+<tr class="memitem:gae4effce67e36120325e3c7b245b90142" id="r_gae4effce67e36120325e3c7b245b90142"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#gae4effce67e36120325e3c7b245b90142">w25qxx_power_down</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle)</td></tr>
+<tr class="memdesc:gae4effce67e36120325e3c7b245b90142"><td class="mdescLeft">&#160;</td><td class="mdescRight">power down  <br /></td></tr>
 <tr class="separator:gae4effce67e36120325e3c7b245b90142"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga09c9b52877516a2ee4c080dc249e7331"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#ga09c9b52877516a2ee4c080dc249e7331">w25qxx_release_power_down</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle)</td></tr>
-<tr class="memdesc:ga09c9b52877516a2ee4c080dc249e7331"><td class="mdescLeft">&#160;</td><td class="mdescRight">release power down  <a href="group__w25qxx__basic__driver.html#ga09c9b52877516a2ee4c080dc249e7331">More...</a><br /></td></tr>
+<tr class="memitem:ga09c9b52877516a2ee4c080dc249e7331" id="r_ga09c9b52877516a2ee4c080dc249e7331"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#ga09c9b52877516a2ee4c080dc249e7331">w25qxx_release_power_down</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle)</td></tr>
+<tr class="memdesc:ga09c9b52877516a2ee4c080dc249e7331"><td class="mdescLeft">&#160;</td><td class="mdescRight">release power down  <br /></td></tr>
 <tr class="separator:ga09c9b52877516a2ee4c080dc249e7331"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga921836a777b082ff4d0f322ccfda6b22"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#ga921836a777b082ff4d0f322ccfda6b22">w25qxx_get_manufacturer_device_id</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint8_t *manufacturer, uint8_t *device_id)</td></tr>
-<tr class="memdesc:ga921836a777b082ff4d0f322ccfda6b22"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the manufacturer &amp;&amp; device id information  <a href="group__w25qxx__basic__driver.html#ga921836a777b082ff4d0f322ccfda6b22">More...</a><br /></td></tr>
+<tr class="memitem:ga921836a777b082ff4d0f322ccfda6b22" id="r_ga921836a777b082ff4d0f322ccfda6b22"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html#ga921836a777b082ff4d0f322ccfda6b22">w25qxx_get_manufacturer_device_id</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint8_t *manufacturer, uint8_t *device_id)</td></tr>
+<tr class="memdesc:ga921836a777b082ff4d0f322ccfda6b22"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the manufacturer &amp;&amp; device id information  <br /></td></tr>
 <tr class="separator:ga921836a777b082ff4d0f322ccfda6b22"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
 <p>w25qxx basic driver modules </p>
 <h2 class="groupheader">Typedef Documentation</h2>
-<a id="ga56d8a7b5f8b7eaed8df0b6dc90c266be"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ga56d8a7b5f8b7eaed8df0b6dc90c266be">&#9670;&nbsp;</a></span>w25qxx_handle_t</h2>
+<a id="ga56d8a7b5f8b7eaed8df0b6dc90c266be" name="ga56d8a7b5f8b7eaed8df0b6dc90c266be"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga56d8a7b5f8b7eaed8df0b6dc90c266be">&#9670;&#160;</a></span>w25qxx_handle_t</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -236,8 +242,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#ga56d8a7b5f8b7eaed8df0b6d
 
 </div>
 </div>
-<a id="ga601d841ddd0ff8ad3ab52e07c679ef19"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ga601d841ddd0ff8ad3ab52e07c679ef19">&#9670;&nbsp;</a></span>w25qxx_info_t</h2>
+<a id="ga601d841ddd0ff8ad3ab52e07c679ef19" name="ga601d841ddd0ff8ad3ab52e07c679ef19"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga601d841ddd0ff8ad3ab52e07c679ef19">&#9670;&#160;</a></span>w25qxx_info_t</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -253,8 +259,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#ga601d841ddd0ff8ad3ab52e0
 </div>
 </div>
 <h2 class="groupheader">Enumeration Type Documentation</h2>
-<a id="gaa4c45f146d1ade8a2da8e751818fa4a2"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#gaa4c45f146d1ade8a2da8e751818fa4a2">&#9670;&nbsp;</a></span>w25qxx_address_mode_t</h2>
+<a id="gaa4c45f146d1ade8a2da8e751818fa4a2" name="gaa4c45f146d1ade8a2da8e751818fa4a2"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaa4c45f146d1ade8a2da8e751818fa4a2">&#9670;&#160;</a></span>w25qxx_address_mode_t</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -267,9 +273,9 @@ <h2 class="memtitle"><span class="permalink"><a href="#gaa4c45f146d1ade8a2da8e75
 
 <p>w25qxx address mode enumeration definition </p>
 <table class="fieldtable">
-<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503"></a>W25QXX_ADDRESS_MODE_3_BYTE&#160;</td><td class="fielddoc"><p>3 byte mode </p>
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503" name="ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503"></a>W25QXX_ADDRESS_MODE_3_BYTE&#160;</td><td class="fielddoc"><p>3 byte mode </p>
 </td></tr>
-<tr><td class="fieldname"><a id="ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe"></a>W25QXX_ADDRESS_MODE_4_BYTE&#160;</td><td class="fielddoc"><p>4 byte mode </p>
+<tr><td class="fieldname"><a id="ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe" name="ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe"></a>W25QXX_ADDRESS_MODE_4_BYTE&#160;</td><td class="fielddoc"><p>4 byte mode </p>
 </td></tr>
 </table>
 
@@ -277,8 +283,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#gaa4c45f146d1ade8a2da8e75
 
 </div>
 </div>
-<a id="gafb2690946f5baf4be6f3a63dde5491fb"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#gafb2690946f5baf4be6f3a63dde5491fb">&#9670;&nbsp;</a></span>w25qxx_bool_t</h2>
+<a id="gafb2690946f5baf4be6f3a63dde5491fb" name="gafb2690946f5baf4be6f3a63dde5491fb"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gafb2690946f5baf4be6f3a63dde5491fb">&#9670;&#160;</a></span>w25qxx_bool_t</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -291,9 +297,9 @@ <h2 class="memtitle"><span class="permalink"><a href="#gafb2690946f5baf4be6f3a63
 
 <p>w25qxx bool enumeration definition </p>
 <table class="fieldtable">
-<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="ggafb2690946f5baf4be6f3a63dde5491fba02afbdc2c6c3d761cd31ac39c857ee9a"></a>W25QXX_BOOL_FALSE&#160;</td><td class="fielddoc"><p>false </p>
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="ggafb2690946f5baf4be6f3a63dde5491fba02afbdc2c6c3d761cd31ac39c857ee9a" name="ggafb2690946f5baf4be6f3a63dde5491fba02afbdc2c6c3d761cd31ac39c857ee9a"></a>W25QXX_BOOL_FALSE&#160;</td><td class="fielddoc"><p>false </p>
 </td></tr>
-<tr><td class="fieldname"><a id="ggafb2690946f5baf4be6f3a63dde5491fbae2a935d12b0b1bc9fc321246ee0e0df8"></a>W25QXX_BOOL_TRUE&#160;</td><td class="fielddoc"><p>true </p>
+<tr><td class="fieldname"><a id="ggafb2690946f5baf4be6f3a63dde5491fbae2a935d12b0b1bc9fc321246ee0e0df8" name="ggafb2690946f5baf4be6f3a63dde5491fbae2a935d12b0b1bc9fc321246ee0e0df8"></a>W25QXX_BOOL_TRUE&#160;</td><td class="fielddoc"><p>true </p>
 </td></tr>
 </table>
 
@@ -301,8 +307,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#gafb2690946f5baf4be6f3a63
 
 </div>
 </div>
-<a id="gacbf327a42336baf10713a1796ff4f2fe"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#gacbf327a42336baf10713a1796ff4f2fe">&#9670;&nbsp;</a></span>w25qxx_interface_t</h2>
+<a id="gacbf327a42336baf10713a1796ff4f2fe" name="gacbf327a42336baf10713a1796ff4f2fe"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gacbf327a42336baf10713a1796ff4f2fe">&#9670;&#160;</a></span>w25qxx_interface_t</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -315,9 +321,9 @@ <h2 class="memtitle"><span class="permalink"><a href="#gacbf327a42336baf10713a17
 
 <p>w25qxx interface enumeration definition </p>
 <table class="fieldtable">
-<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8"></a>W25QXX_INTERFACE_SPI&#160;</td><td class="fielddoc"><p>spi interface </p>
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8" name="ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8"></a>W25QXX_INTERFACE_SPI&#160;</td><td class="fielddoc"><p>spi interface </p>
 </td></tr>
-<tr><td class="fieldname"><a id="ggacbf327a42336baf10713a1796ff4f2fea895dcb5c91da89fad1c12161ffd2d5d4"></a>W25QXX_INTERFACE_QSPI&#160;</td><td class="fielddoc"><p>dspi qspi interface </p>
+<tr><td class="fieldname"><a id="ggacbf327a42336baf10713a1796ff4f2fea895dcb5c91da89fad1c12161ffd2d5d4" name="ggacbf327a42336baf10713a1796ff4f2fea895dcb5c91da89fad1c12161ffd2d5d4"></a>W25QXX_INTERFACE_QSPI&#160;</td><td class="fielddoc"><p>dspi qspi interface </p>
 </td></tr>
 </table>
 
@@ -325,8 +331,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#gacbf327a42336baf10713a17
 
 </div>
 </div>
-<a id="ga6cb4e5164464df549201dd96cb7a58b1"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ga6cb4e5164464df549201dd96cb7a58b1">&#9670;&nbsp;</a></span>w25qxx_type_t</h2>
+<a id="ga6cb4e5164464df549201dd96cb7a58b1" name="ga6cb4e5164464df549201dd96cb7a58b1"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga6cb4e5164464df549201dd96cb7a58b1">&#9670;&#160;</a></span>w25qxx_type_t</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -339,17 +345,17 @@ <h2 class="memtitle"><span class="permalink"><a href="#ga6cb4e5164464df549201dd9
 
 <p>w25qxx type enumeration definition </p>
 <table class="fieldtable">
-<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="gga6cb4e5164464df549201dd96cb7a58b1a1ad4f72437de5f26cb7b212d4d91e7c2"></a>W25Q80&#160;</td><td class="fielddoc"><p>w25q80 </p>
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="gga6cb4e5164464df549201dd96cb7a58b1a1ad4f72437de5f26cb7b212d4d91e7c2" name="gga6cb4e5164464df549201dd96cb7a58b1a1ad4f72437de5f26cb7b212d4d91e7c2"></a>W25Q80&#160;</td><td class="fielddoc"><p>w25q80 </p>
 </td></tr>
-<tr><td class="fieldname"><a id="gga6cb4e5164464df549201dd96cb7a58b1a66acb81a2d520a7d92ce1d37210c6435"></a>W25Q16&#160;</td><td class="fielddoc"><p>w25q16 </p>
+<tr><td class="fieldname"><a id="gga6cb4e5164464df549201dd96cb7a58b1a66acb81a2d520a7d92ce1d37210c6435" name="gga6cb4e5164464df549201dd96cb7a58b1a66acb81a2d520a7d92ce1d37210c6435"></a>W25Q16&#160;</td><td class="fielddoc"><p>w25q16 </p>
 </td></tr>
-<tr><td class="fieldname"><a id="gga6cb4e5164464df549201dd96cb7a58b1a4fdad551be6485441db5951f196db7cb"></a>W25Q32&#160;</td><td class="fielddoc"><p>w25q32 </p>
+<tr><td class="fieldname"><a id="gga6cb4e5164464df549201dd96cb7a58b1a4fdad551be6485441db5951f196db7cb" name="gga6cb4e5164464df549201dd96cb7a58b1a4fdad551be6485441db5951f196db7cb"></a>W25Q32&#160;</td><td class="fielddoc"><p>w25q32 </p>
 </td></tr>
-<tr><td class="fieldname"><a id="gga6cb4e5164464df549201dd96cb7a58b1a3ea98b2b3e06afa29441c51548bbb16e"></a>W25Q64&#160;</td><td class="fielddoc"><p>w25q64 </p>
+<tr><td class="fieldname"><a id="gga6cb4e5164464df549201dd96cb7a58b1a3ea98b2b3e06afa29441c51548bbb16e" name="gga6cb4e5164464df549201dd96cb7a58b1a3ea98b2b3e06afa29441c51548bbb16e"></a>W25Q64&#160;</td><td class="fielddoc"><p>w25q64 </p>
 </td></tr>
-<tr><td class="fieldname"><a id="gga6cb4e5164464df549201dd96cb7a58b1a75afcbe71906d3884f4fcc119c1cabd5"></a>W25Q128&#160;</td><td class="fielddoc"><p>w25q128 </p>
+<tr><td class="fieldname"><a id="gga6cb4e5164464df549201dd96cb7a58b1a75afcbe71906d3884f4fcc119c1cabd5" name="gga6cb4e5164464df549201dd96cb7a58b1a75afcbe71906d3884f4fcc119c1cabd5"></a>W25Q128&#160;</td><td class="fielddoc"><p>w25q128 </p>
 </td></tr>
-<tr><td class="fieldname"><a id="gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca"></a>W25Q256&#160;</td><td class="fielddoc"><p>w25q256 </p>
+<tr><td class="fieldname"><a id="gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca" name="gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca"></a>W25Q256&#160;</td><td class="fielddoc"><p>w25q256 </p>
 </td></tr>
 </table>
 
@@ -358,8 +364,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#ga6cb4e5164464df549201dd9
 </div>
 </div>
 <h2 class="groupheader">Function Documentation</h2>
-<a id="ga39c8fb382e8c3e4d57232dfa79af781c"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ga39c8fb382e8c3e4d57232dfa79af781c">&#9670;&nbsp;</a></span>w25qxx_block_erase_32k()</h2>
+<a id="ga39c8fb382e8c3e4d57232dfa79af781c" name="ga39c8fb382e8c3e4d57232dfa79af781c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga39c8fb382e8c3e4d57232dfa79af781c">&#9670;&#160;</a></span>w25qxx_block_erase_32k()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -408,8 +414,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#ga39c8fb382e8c3e4d57232df
 
 </div>
 </div>
-<a id="gaf53bc5f6073482b9b74efd417ec7ac83"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#gaf53bc5f6073482b9b74efd417ec7ac83">&#9670;&nbsp;</a></span>w25qxx_block_erase_64k()</h2>
+<a id="gaf53bc5f6073482b9b74efd417ec7ac83" name="gaf53bc5f6073482b9b74efd417ec7ac83"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaf53bc5f6073482b9b74efd417ec7ac83">&#9670;&#160;</a></span>w25qxx_block_erase_64k()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -458,8 +464,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#gaf53bc5f6073482b9b74efd4
 
 </div>
 </div>
-<a id="ga0862833b36831f92684980b2e21f2e39"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ga0862833b36831f92684980b2e21f2e39">&#9670;&nbsp;</a></span>w25qxx_chip_erase()</h2>
+<a id="ga0862833b36831f92684980b2e21f2e39" name="ga0862833b36831f92684980b2e21f2e39"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga0862833b36831f92684980b2e21f2e39">&#9670;&#160;</a></span>w25qxx_chip_erase()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -495,8 +501,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#ga0862833b36831f92684980b
 
 </div>
 </div>
-<a id="gaa293c3a46c4010a3af597a83e646de0d"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#gaa293c3a46c4010a3af597a83e646de0d">&#9670;&nbsp;</a></span>w25qxx_deinit()</h2>
+<a id="gaa293c3a46c4010a3af597a83e646de0d" name="gaa293c3a46c4010a3af597a83e646de0d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaa293c3a46c4010a3af597a83e646de0d">&#9670;&#160;</a></span>w25qxx_deinit()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -532,8 +538,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#gaa293c3a46c4010a3af597a8
 
 </div>
 </div>
-<a id="gac345ba10af5ad355578fa97697487123"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#gac345ba10af5ad355578fa97697487123">&#9670;&nbsp;</a></span>w25qxx_fast_read()</h2>
+<a id="gac345ba10af5ad355578fa97697487123" name="gac345ba10af5ad355578fa97697487123"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gac345ba10af5ad355578fa97697487123">&#9670;&#160;</a></span>w25qxx_fast_read()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -594,8 +600,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#gac345ba10af5ad355578fa97
 
 </div>
 </div>
-<a id="ga3a52036a97b12fcbe2280b0901a80b90"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ga3a52036a97b12fcbe2280b0901a80b90">&#9670;&nbsp;</a></span>w25qxx_get_address_mode()</h2>
+<a id="ga3a52036a97b12fcbe2280b0901a80b90" name="ga3a52036a97b12fcbe2280b0901a80b90"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga3a52036a97b12fcbe2280b0901a80b90">&#9670;&#160;</a></span>w25qxx_get_address_mode()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -640,8 +646,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#ga3a52036a97b12fcbe2280b0
 
 </div>
 </div>
-<a id="gad4c9b8b0a2d0916c13567f9d7e494cf8"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#gad4c9b8b0a2d0916c13567f9d7e494cf8">&#9670;&nbsp;</a></span>w25qxx_get_dual_quad_spi()</h2>
+<a id="gad4c9b8b0a2d0916c13567f9d7e494cf8" name="gad4c9b8b0a2d0916c13567f9d7e494cf8"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gad4c9b8b0a2d0916c13567f9d7e494cf8">&#9670;&#160;</a></span>w25qxx_get_dual_quad_spi()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -685,8 +691,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#gad4c9b8b0a2d0916c13567f9
 
 </div>
 </div>
-<a id="ga86ef839d475f3926a0be46bbc18d4b45"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ga86ef839d475f3926a0be46bbc18d4b45">&#9670;&nbsp;</a></span>w25qxx_get_interface()</h2>
+<a id="ga86ef839d475f3926a0be46bbc18d4b45" name="ga86ef839d475f3926a0be46bbc18d4b45"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga86ef839d475f3926a0be46bbc18d4b45">&#9670;&#160;</a></span>w25qxx_get_interface()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -730,8 +736,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#ga86ef839d475f3926a0be46b
 
 </div>
 </div>
-<a id="ga921836a777b082ff4d0f322ccfda6b22"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ga921836a777b082ff4d0f322ccfda6b22">&#9670;&nbsp;</a></span>w25qxx_get_manufacturer_device_id()</h2>
+<a id="ga921836a777b082ff4d0f322ccfda6b22" name="ga921836a777b082ff4d0f322ccfda6b22"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga921836a777b082ff4d0f322ccfda6b22">&#9670;&#160;</a></span>w25qxx_get_manufacturer_device_id()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -784,8 +790,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#ga921836a777b082ff4d0f322
 
 </div>
 </div>
-<a id="ga685379998dad173b6d9c0b0da270685c"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ga685379998dad173b6d9c0b0da270685c">&#9670;&nbsp;</a></span>w25qxx_get_type()</h2>
+<a id="ga685379998dad173b6d9c0b0da270685c" name="ga685379998dad173b6d9c0b0da270685c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga685379998dad173b6d9c0b0da270685c">&#9670;&#160;</a></span>w25qxx_get_type()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -829,8 +835,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#ga685379998dad173b6d9c0b0
 
 </div>
 </div>
-<a id="ga996e2d3009432e7f8c1a5175c4438a57"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ga996e2d3009432e7f8c1a5175c4438a57">&#9670;&nbsp;</a></span>w25qxx_info()</h2>
+<a id="ga996e2d3009432e7f8c1a5175c4438a57" name="ga996e2d3009432e7f8c1a5175c4438a57"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga996e2d3009432e7f8c1a5175c4438a57">&#9670;&#160;</a></span>w25qxx_info()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -863,8 +869,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#ga996e2d3009432e7f8c1a517
 
 </div>
 </div>
-<a id="ga8e7a163b3d255b8c7fc035d0d60f2491"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ga8e7a163b3d255b8c7fc035d0d60f2491">&#9670;&nbsp;</a></span>w25qxx_init()</h2>
+<a id="ga8e7a163b3d255b8c7fc035d0d60f2491" name="ga8e7a163b3d255b8c7fc035d0d60f2491"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga8e7a163b3d255b8c7fc035d0d60f2491">&#9670;&#160;</a></span>w25qxx_init()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -927,8 +933,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#ga8e7a163b3d255b8c7fc035d
 
 </div>
 </div>
-<a id="ga1e9ebf198137d23558dbf6470213c472"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ga1e9ebf198137d23558dbf6470213c472">&#9670;&nbsp;</a></span>w25qxx_only_spi_read()</h2>
+<a id="ga1e9ebf198137d23558dbf6470213c472" name="ga1e9ebf198137d23558dbf6470213c472"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga1e9ebf198137d23558dbf6470213c472">&#9670;&#160;</a></span>w25qxx_only_spi_read()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -990,8 +996,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#ga1e9ebf198137d23558dbf64
 
 </div>
 </div>
-<a id="ga6280e7e4ab26306436e2c210617a28b3"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ga6280e7e4ab26306436e2c210617a28b3">&#9670;&nbsp;</a></span>w25qxx_page_program()</h2>
+<a id="ga6280e7e4ab26306436e2c210617a28b3" name="ga6280e7e4ab26306436e2c210617a28b3"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga6280e7e4ab26306436e2c210617a28b3">&#9670;&#160;</a></span>w25qxx_page_program()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -1055,8 +1061,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#ga6280e7e4ab26306436e2c21
 
 </div>
 </div>
-<a id="gae4effce67e36120325e3c7b245b90142"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#gae4effce67e36120325e3c7b245b90142">&#9670;&nbsp;</a></span>w25qxx_power_down()</h2>
+<a id="gae4effce67e36120325e3c7b245b90142" name="gae4effce67e36120325e3c7b245b90142"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gae4effce67e36120325e3c7b245b90142">&#9670;&#160;</a></span>w25qxx_power_down()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -1091,8 +1097,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#gae4effce67e36120325e3c7b
 
 </div>
 </div>
-<a id="gae7479fc9ce911a52e3c5b6f1a615b879"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#gae7479fc9ce911a52e3c5b6f1a615b879">&#9670;&nbsp;</a></span>w25qxx_read()</h2>
+<a id="gae7479fc9ce911a52e3c5b6f1a615b879" name="gae7479fc9ce911a52e3c5b6f1a615b879"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gae7479fc9ce911a52e3c5b6f1a615b879">&#9670;&#160;</a></span>w25qxx_read()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -1153,8 +1159,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#gae7479fc9ce911a52e3c5b6f
 
 </div>
 </div>
-<a id="ga09c9b52877516a2ee4c080dc249e7331"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ga09c9b52877516a2ee4c080dc249e7331">&#9670;&nbsp;</a></span>w25qxx_release_power_down()</h2>
+<a id="ga09c9b52877516a2ee4c080dc249e7331" name="ga09c9b52877516a2ee4c080dc249e7331"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga09c9b52877516a2ee4c080dc249e7331">&#9670;&#160;</a></span>w25qxx_release_power_down()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -1189,8 +1195,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#ga09c9b52877516a2ee4c080d
 
 </div>
 </div>
-<a id="ga9a03c51b4c84655350c15fbfce0a6b40"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ga9a03c51b4c84655350c15fbfce0a6b40">&#9670;&nbsp;</a></span>w25qxx_sector_erase_4k()</h2>
+<a id="ga9a03c51b4c84655350c15fbfce0a6b40" name="ga9a03c51b4c84655350c15fbfce0a6b40"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga9a03c51b4c84655350c15fbfce0a6b40">&#9670;&#160;</a></span>w25qxx_sector_erase_4k()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -1239,8 +1245,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#ga9a03c51b4c84655350c15fb
 
 </div>
 </div>
-<a id="gad0e125eff304ce66fb3956d2c8c80656"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#gad0e125eff304ce66fb3956d2c8c80656">&#9670;&nbsp;</a></span>w25qxx_set_address_mode()</h2>
+<a id="gad0e125eff304ce66fb3956d2c8c80656" name="gad0e125eff304ce66fb3956d2c8c80656"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gad0e125eff304ce66fb3956d2c8c80656">&#9670;&#160;</a></span>w25qxx_set_address_mode()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -1287,8 +1293,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#gad0e125eff304ce66fb3956d
 
 </div>
 </div>
-<a id="ga665139209b0abc386474a78d89cce6f2"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ga665139209b0abc386474a78d89cce6f2">&#9670;&nbsp;</a></span>w25qxx_set_dual_quad_spi()</h2>
+<a id="ga665139209b0abc386474a78d89cce6f2" name="ga665139209b0abc386474a78d89cce6f2"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga665139209b0abc386474a78d89cce6f2">&#9670;&#160;</a></span>w25qxx_set_dual_quad_spi()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -1332,8 +1338,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#ga665139209b0abc386474a78
 
 </div>
 </div>
-<a id="ga50a62003d566402d46ada2f272c41eb5"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ga50a62003d566402d46ada2f272c41eb5">&#9670;&nbsp;</a></span>w25qxx_set_interface()</h2>
+<a id="ga50a62003d566402d46ada2f272c41eb5" name="ga50a62003d566402d46ada2f272c41eb5"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga50a62003d566402d46ada2f272c41eb5">&#9670;&#160;</a></span>w25qxx_set_interface()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -1377,8 +1383,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#ga50a62003d566402d46ada2f
 
 </div>
 </div>
-<a id="gaa57189cd4170b73f8b1300ca15e27de6"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#gaa57189cd4170b73f8b1300ca15e27de6">&#9670;&nbsp;</a></span>w25qxx_set_type()</h2>
+<a id="gaa57189cd4170b73f8b1300ca15e27de6" name="gaa57189cd4170b73f8b1300ca15e27de6"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaa57189cd4170b73f8b1300ca15e27de6">&#9670;&#160;</a></span>w25qxx_set_type()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -1422,8 +1428,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#gaa57189cd4170b73f8b1300c
 
 </div>
 </div>
-<a id="gaaee8264d840e51460821cb6e609338ee"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#gaaee8264d840e51460821cb6e609338ee">&#9670;&nbsp;</a></span>w25qxx_write()</h2>
+<a id="gaaee8264d840e51460821cb6e609338ee" name="gaaee8264d840e51460821cb6e609338ee"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaaee8264d840e51460821cb6e609338ee">&#9670;&#160;</a></span>w25qxx_write()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -1490,7 +1496,7 @@ <h2 class="memtitle"><span class="permalink"><a href="#gaaee8264d840e51460821cb6
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
-    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
+    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/group__w25qxx__driver.html b/doc/html/group__w25qxx__driver.html
index f8dee8f..3c8e2ec 100644
--- a/doc/html/group__w25qxx__driver.html
+++ b/doc/html/group__w25qxx__driver.html
@@ -1,9 +1,9 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.8"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>LibDriver W25QXX: w25qxx driver function</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -23,11 +23,10 @@
 <div id="titlearea">
 <table cellspacing="0" cellpadding="0">
  <tbody>
- <tr style="height: 56px;">
+ <tr id="projectrow">
   <td id="projectlogo"><img alt="Logo" src="doxygen.png"/></td>
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">LibDriver W25QXX
-   &#160;<span id="projectnumber">1.0.0</span>
+  <td id="projectalign">
+   <div id="projectname">LibDriver W25QXX<span id="projectnumber">&#160;1.0.0</span>
    </div>
    <div id="projectbrief">W25QXX full function driver</div>
   </td>
@@ -36,21 +35,22 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.8 -->
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search/",'.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
 <script type="text/javascript" src="menu.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(function() {
   initMenu('',true,false,'search.php','Search');
   $(document).ready(function() { init_search(); });
 });
-/* @license-end */</script>
+/* @license-end */
+</script>
 <div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
@@ -64,7 +64,7 @@
   </div>
 </div>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(document).ready(function(){initNavTree('group__w25qxx__driver.html',''); initResizable(); });
 /* @license-end */
 </script>
@@ -78,43 +78,49 @@
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
 </div>
 
 <div class="header">
   <div class="summary">
 <a href="#groups">Modules</a>  </div>
-  <div class="headertitle">
-<div class="title">w25qxx driver function</div>  </div>
+  <div class="headertitle"><div class="title">w25qxx driver function</div></div>
 </div><!--header-->
 <div class="contents">
 
 <p>w25qxx driver modules  
 <a href="#details">More...</a></p>
 <table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="groups"></a>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="groups" name="groups"></a>
 Modules</h2></td></tr>
-<tr class="memitem:group__w25qxx__link__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__link__driver.html">w25qxx link driver function</a></td></tr>
+<tr class="memitem:group__w25qxx__link__driver" id="r_group__w25qxx__link__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__link__driver.html">w25qxx link driver function</a></td></tr>
 <tr class="memdesc:group__w25qxx__link__driver"><td class="mdescLeft">&#160;</td><td class="mdescRight">w25qxx link driver modules <br /></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:group__w25qxx__basic__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html">w25qxx basic driver function</a></td></tr>
+<tr class="memitem:group__w25qxx__basic__driver" id="r_group__w25qxx__basic__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__basic__driver.html">w25qxx basic driver function</a></td></tr>
 <tr class="memdesc:group__w25qxx__basic__driver"><td class="mdescLeft">&#160;</td><td class="mdescRight">w25qxx basic driver modules <br /></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:group__w25qxx__advance__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html">w25qxx advance driver function</a></td></tr>
+<tr class="memitem:group__w25qxx__advance__driver" id="r_group__w25qxx__advance__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__advance__driver.html">w25qxx advance driver function</a></td></tr>
 <tr class="memdesc:group__w25qxx__advance__driver"><td class="mdescLeft">&#160;</td><td class="mdescRight">w25qxx advance driver modules <br /></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:group__w25qxx__extern__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__extern__driver.html">w25qxx extern driver function</a></td></tr>
+<tr class="memitem:group__w25qxx__extern__driver" id="r_group__w25qxx__extern__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__extern__driver.html">w25qxx extern driver function</a></td></tr>
 <tr class="memdesc:group__w25qxx__extern__driver"><td class="mdescLeft">&#160;</td><td class="mdescRight">w25qxx extern driver modules <br /></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:group__w25qxx__interface__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__interface__driver.html">w25qxx interface driver function</a></td></tr>
+<tr class="memitem:group__w25qxx__interface__driver" id="r_group__w25qxx__interface__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__interface__driver.html">w25qxx interface driver function</a></td></tr>
 <tr class="memdesc:group__w25qxx__interface__driver"><td class="mdescLeft">&#160;</td><td class="mdescRight">w25qxx interface driver modules <br /></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:group__w25qxx__example__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html">w25qxx example driver function</a></td></tr>
+<tr class="memitem:group__w25qxx__example__driver" id="r_group__w25qxx__example__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html">w25qxx example driver function</a></td></tr>
 <tr class="memdesc:group__w25qxx__example__driver"><td class="mdescLeft">&#160;</td><td class="mdescRight">w25qxx example driver modules <br /></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:group__w25qxx__test__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__test__driver.html">w25qxx test driver function</a></td></tr>
+<tr class="memitem:group__w25qxx__test__driver" id="r_group__w25qxx__test__driver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__test__driver.html">w25qxx test driver function</a></td></tr>
 <tr class="memdesc:group__w25qxx__test__driver"><td class="mdescLeft">&#160;</td><td class="mdescRight">w25qxx test driver modules <br /></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
@@ -125,7 +131,7 @@
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
-    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
+    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/group__w25qxx__example__driver.html b/doc/html/group__w25qxx__example__driver.html
index fc4aec1..7c2bf0c 100644
--- a/doc/html/group__w25qxx__example__driver.html
+++ b/doc/html/group__w25qxx__example__driver.html
@@ -1,9 +1,9 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.8"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>LibDriver W25QXX: w25qxx example driver function</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -23,11 +23,10 @@
 <div id="titlearea">
 <table cellspacing="0" cellpadding="0">
  <tbody>
- <tr style="height: 56px;">
+ <tr id="projectrow">
   <td id="projectlogo"><img alt="Logo" src="doxygen.png"/></td>
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">LibDriver W25QXX
-   &#160;<span id="projectnumber">1.0.0</span>
+  <td id="projectalign">
+   <div id="projectname">LibDriver W25QXX<span id="projectnumber">&#160;1.0.0</span>
    </div>
    <div id="projectbrief">W25QXX full function driver</div>
   </td>
@@ -36,21 +35,22 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.8 -->
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search/",'.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
 <script type="text/javascript" src="menu.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(function() {
   initMenu('',true,false,'search.php','Search');
   $(document).ready(function() { init_search(); });
 });
-/* @license-end */</script>
+/* @license-end */
+</script>
 <div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
@@ -64,7 +64,7 @@
   </div>
 </div>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(document).ready(function(){initNavTree('group__w25qxx__example__driver.html',''); initResizable(); });
 /* @license-end */
 </script>
@@ -78,180 +78,186 @@
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
 </div>
 
 <div class="header">
   <div class="summary">
 <a href="#func-members">Functions</a>  </div>
-  <div class="headertitle">
-<div class="title">w25qxx example driver function<div class="ingroups"><a class="el" href="group__w25qxx__driver.html">w25qxx driver function</a></div></div>  </div>
+  <div class="headertitle"><div class="title">w25qxx example driver function<div class="ingroups"><a class="el" href="group__w25qxx__driver.html">w25qxx driver function</a></div></div></div>
 </div><!--header-->
 <div class="contents">
 
 <p>w25qxx example driver modules  
 <a href="#details">More...</a></p>
 <table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
 Functions</h2></td></tr>
-<tr class="memitem:ga413b420bc199d09ce5cafee4a4debb28"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga413b420bc199d09ce5cafee4a4debb28">w25qxx_advance_init</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga6cb4e5164464df549201dd96cb7a58b1">w25qxx_type_t</a> type, <a class="el" href="group__w25qxx__basic__driver.html#gacbf327a42336baf10713a1796ff4f2fe">w25qxx_interface_t</a> interface, <a class="el" href="group__w25qxx__basic__driver.html#gafb2690946f5baf4be6f3a63dde5491fb">w25qxx_bool_t</a> dual_quad_spi_enable)</td></tr>
-<tr class="memdesc:ga413b420bc199d09ce5cafee4a4debb28"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example init  <a href="group__w25qxx__example__driver.html#ga413b420bc199d09ce5cafee4a4debb28">More...</a><br /></td></tr>
+<tr class="memitem:ga413b420bc199d09ce5cafee4a4debb28" id="r_ga413b420bc199d09ce5cafee4a4debb28"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga413b420bc199d09ce5cafee4a4debb28">w25qxx_advance_init</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga6cb4e5164464df549201dd96cb7a58b1">w25qxx_type_t</a> type, <a class="el" href="group__w25qxx__basic__driver.html#gacbf327a42336baf10713a1796ff4f2fe">w25qxx_interface_t</a> interface, <a class="el" href="group__w25qxx__basic__driver.html#gafb2690946f5baf4be6f3a63dde5491fb">w25qxx_bool_t</a> dual_quad_spi_enable)</td></tr>
+<tr class="memdesc:ga413b420bc199d09ce5cafee4a4debb28"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example init  <br /></td></tr>
 <tr class="separator:ga413b420bc199d09ce5cafee4a4debb28"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf390bbb2c4140f49d25822d963ead722"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#gaf390bbb2c4140f49d25822d963ead722">w25qxx_advance_deinit</a> (void)</td></tr>
-<tr class="memdesc:gaf390bbb2c4140f49d25822d963ead722"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example deinit  <a href="group__w25qxx__example__driver.html#gaf390bbb2c4140f49d25822d963ead722">More...</a><br /></td></tr>
+<tr class="memitem:gaf390bbb2c4140f49d25822d963ead722" id="r_gaf390bbb2c4140f49d25822d963ead722"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#gaf390bbb2c4140f49d25822d963ead722">w25qxx_advance_deinit</a> (void)</td></tr>
+<tr class="memdesc:gaf390bbb2c4140f49d25822d963ead722"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example deinit  <br /></td></tr>
 <tr class="separator:gaf390bbb2c4140f49d25822d963ead722"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga5599de31797633ae75a63bcd5a8f4736"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga5599de31797633ae75a63bcd5a8f4736">w25qxx_advance_power_down</a> (void)</td></tr>
-<tr class="memdesc:ga5599de31797633ae75a63bcd5a8f4736"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example power down  <a href="group__w25qxx__example__driver.html#ga5599de31797633ae75a63bcd5a8f4736">More...</a><br /></td></tr>
+<tr class="memitem:ga5599de31797633ae75a63bcd5a8f4736" id="r_ga5599de31797633ae75a63bcd5a8f4736"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga5599de31797633ae75a63bcd5a8f4736">w25qxx_advance_power_down</a> (void)</td></tr>
+<tr class="memdesc:ga5599de31797633ae75a63bcd5a8f4736"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example power down  <br /></td></tr>
 <tr class="separator:ga5599de31797633ae75a63bcd5a8f4736"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga8a57e2d056d452abc14b0a08d4223251"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga8a57e2d056d452abc14b0a08d4223251">w25qxx_advance_wake_up</a> (void)</td></tr>
-<tr class="memdesc:ga8a57e2d056d452abc14b0a08d4223251"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example wake up  <a href="group__w25qxx__example__driver.html#ga8a57e2d056d452abc14b0a08d4223251">More...</a><br /></td></tr>
+<tr class="memitem:ga8a57e2d056d452abc14b0a08d4223251" id="r_ga8a57e2d056d452abc14b0a08d4223251"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga8a57e2d056d452abc14b0a08d4223251">w25qxx_advance_wake_up</a> (void)</td></tr>
+<tr class="memdesc:ga8a57e2d056d452abc14b0a08d4223251"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example wake up  <br /></td></tr>
 <tr class="separator:ga8a57e2d056d452abc14b0a08d4223251"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga15cb243f227ef8d897ef3208b622bded"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga15cb243f227ef8d897ef3208b622bded">w25qxx_advance_chip_erase</a> (void)</td></tr>
-<tr class="memdesc:ga15cb243f227ef8d897ef3208b622bded"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example chip erase  <a href="group__w25qxx__example__driver.html#ga15cb243f227ef8d897ef3208b622bded">More...</a><br /></td></tr>
+<tr class="memitem:ga15cb243f227ef8d897ef3208b622bded" id="r_ga15cb243f227ef8d897ef3208b622bded"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga15cb243f227ef8d897ef3208b622bded">w25qxx_advance_chip_erase</a> (void)</td></tr>
+<tr class="memdesc:ga15cb243f227ef8d897ef3208b622bded"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example chip erase  <br /></td></tr>
 <tr class="separator:ga15cb243f227ef8d897ef3208b622bded"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga0f49d960f8b6c6498ab293b369ffc389"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga0f49d960f8b6c6498ab293b369ffc389">w25qxx_advance_get_id</a> (uint8_t *manufacturer, uint8_t *device_id)</td></tr>
-<tr class="memdesc:ga0f49d960f8b6c6498ab293b369ffc389"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example get the manufacturer &amp;&amp; device id information  <a href="group__w25qxx__example__driver.html#ga0f49d960f8b6c6498ab293b369ffc389">More...</a><br /></td></tr>
+<tr class="memitem:ga0f49d960f8b6c6498ab293b369ffc389" id="r_ga0f49d960f8b6c6498ab293b369ffc389"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga0f49d960f8b6c6498ab293b369ffc389">w25qxx_advance_get_id</a> (uint8_t *manufacturer, uint8_t *device_id)</td></tr>
+<tr class="memdesc:ga0f49d960f8b6c6498ab293b369ffc389"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example get the manufacturer &amp;&amp; device id information  <br /></td></tr>
 <tr class="separator:ga0f49d960f8b6c6498ab293b369ffc389"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga63f4e1dce2ef7c7de56461524fd22d04"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga63f4e1dce2ef7c7de56461524fd22d04">w25qxx_advance_write</a> (uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
-<tr class="memdesc:ga63f4e1dce2ef7c7de56461524fd22d04"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example write  <a href="group__w25qxx__example__driver.html#ga63f4e1dce2ef7c7de56461524fd22d04">More...</a><br /></td></tr>
+<tr class="memitem:ga63f4e1dce2ef7c7de56461524fd22d04" id="r_ga63f4e1dce2ef7c7de56461524fd22d04"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga63f4e1dce2ef7c7de56461524fd22d04">w25qxx_advance_write</a> (uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
+<tr class="memdesc:ga63f4e1dce2ef7c7de56461524fd22d04"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example write  <br /></td></tr>
 <tr class="separator:ga63f4e1dce2ef7c7de56461524fd22d04"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga013a389763200b54daaa345adf9329dc"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga013a389763200b54daaa345adf9329dc">w25qxx_advance_read</a> (uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
-<tr class="memdesc:ga013a389763200b54daaa345adf9329dc"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example read  <a href="group__w25qxx__example__driver.html#ga013a389763200b54daaa345adf9329dc">More...</a><br /></td></tr>
+<tr class="memitem:ga013a389763200b54daaa345adf9329dc" id="r_ga013a389763200b54daaa345adf9329dc"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga013a389763200b54daaa345adf9329dc">w25qxx_advance_read</a> (uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
+<tr class="memdesc:ga013a389763200b54daaa345adf9329dc"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example read  <br /></td></tr>
 <tr class="separator:ga013a389763200b54daaa345adf9329dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga39ff13988a3d451231cec3260c13a4cd"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga39ff13988a3d451231cec3260c13a4cd">w25qxx_advance_page_program</a> (uint32_t addr, uint8_t *data, uint16_t len)</td></tr>
-<tr class="memdesc:ga39ff13988a3d451231cec3260c13a4cd"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example page program  <a href="group__w25qxx__example__driver.html#ga39ff13988a3d451231cec3260c13a4cd">More...</a><br /></td></tr>
+<tr class="memitem:ga39ff13988a3d451231cec3260c13a4cd" id="r_ga39ff13988a3d451231cec3260c13a4cd"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga39ff13988a3d451231cec3260c13a4cd">w25qxx_advance_page_program</a> (uint32_t addr, uint8_t *data, uint16_t len)</td></tr>
+<tr class="memdesc:ga39ff13988a3d451231cec3260c13a4cd"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example page program  <br /></td></tr>
 <tr class="separator:ga39ff13988a3d451231cec3260c13a4cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga9325acc424c95624f15e11631082201d"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga9325acc424c95624f15e11631082201d">w25qxx_advance_sector_erase_4k</a> (uint32_t addr)</td></tr>
-<tr class="memdesc:ga9325acc424c95624f15e11631082201d"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example erase the 4k sector  <a href="group__w25qxx__example__driver.html#ga9325acc424c95624f15e11631082201d">More...</a><br /></td></tr>
+<tr class="memitem:ga9325acc424c95624f15e11631082201d" id="r_ga9325acc424c95624f15e11631082201d"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga9325acc424c95624f15e11631082201d">w25qxx_advance_sector_erase_4k</a> (uint32_t addr)</td></tr>
+<tr class="memdesc:ga9325acc424c95624f15e11631082201d"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example erase the 4k sector  <br /></td></tr>
 <tr class="separator:ga9325acc424c95624f15e11631082201d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaee04edb9e97785e423dffe14a1cad780"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#gaee04edb9e97785e423dffe14a1cad780">w25qxx_advance_block_erase_32k</a> (uint32_t addr)</td></tr>
-<tr class="memdesc:gaee04edb9e97785e423dffe14a1cad780"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example erase the 32k block  <a href="group__w25qxx__example__driver.html#gaee04edb9e97785e423dffe14a1cad780">More...</a><br /></td></tr>
+<tr class="memitem:gaee04edb9e97785e423dffe14a1cad780" id="r_gaee04edb9e97785e423dffe14a1cad780"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#gaee04edb9e97785e423dffe14a1cad780">w25qxx_advance_block_erase_32k</a> (uint32_t addr)</td></tr>
+<tr class="memdesc:gaee04edb9e97785e423dffe14a1cad780"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example erase the 32k block  <br /></td></tr>
 <tr class="separator:gaee04edb9e97785e423dffe14a1cad780"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae7cba4e0b22a1043fe304e46148fa13c"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#gae7cba4e0b22a1043fe304e46148fa13c">w25qxx_advance_block_erase_64k</a> (uint32_t addr)</td></tr>
-<tr class="memdesc:gae7cba4e0b22a1043fe304e46148fa13c"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example erase the 64k block  <a href="group__w25qxx__example__driver.html#gae7cba4e0b22a1043fe304e46148fa13c">More...</a><br /></td></tr>
+<tr class="memitem:gae7cba4e0b22a1043fe304e46148fa13c" id="r_gae7cba4e0b22a1043fe304e46148fa13c"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#gae7cba4e0b22a1043fe304e46148fa13c">w25qxx_advance_block_erase_64k</a> (uint32_t addr)</td></tr>
+<tr class="memdesc:gae7cba4e0b22a1043fe304e46148fa13c"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example erase the 64k block  <br /></td></tr>
 <tr class="separator:gae7cba4e0b22a1043fe304e46148fa13c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga7ade25a387b9d03ddecefd86fb328389"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga7ade25a387b9d03ddecefd86fb328389">w25qxx_advance_fast_read</a> (uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
-<tr class="memdesc:ga7ade25a387b9d03ddecefd86fb328389"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example read in the fast mode  <a href="group__w25qxx__example__driver.html#ga7ade25a387b9d03ddecefd86fb328389">More...</a><br /></td></tr>
+<tr class="memitem:ga7ade25a387b9d03ddecefd86fb328389" id="r_ga7ade25a387b9d03ddecefd86fb328389"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga7ade25a387b9d03ddecefd86fb328389">w25qxx_advance_fast_read</a> (uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
+<tr class="memdesc:ga7ade25a387b9d03ddecefd86fb328389"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example read in the fast mode  <br /></td></tr>
 <tr class="separator:ga7ade25a387b9d03ddecefd86fb328389"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga4c1be6979b4dc878d07ec86b8624c9d2"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga4c1be6979b4dc878d07ec86b8624c9d2">w25qxx_advance_get_status1</a> (uint8_t *status)</td></tr>
-<tr class="memdesc:ga4c1be6979b4dc878d07ec86b8624c9d2"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example get the status 1  <a href="group__w25qxx__example__driver.html#ga4c1be6979b4dc878d07ec86b8624c9d2">More...</a><br /></td></tr>
+<tr class="memitem:ga4c1be6979b4dc878d07ec86b8624c9d2" id="r_ga4c1be6979b4dc878d07ec86b8624c9d2"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga4c1be6979b4dc878d07ec86b8624c9d2">w25qxx_advance_get_status1</a> (uint8_t *status)</td></tr>
+<tr class="memdesc:ga4c1be6979b4dc878d07ec86b8624c9d2"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example get the status 1  <br /></td></tr>
 <tr class="separator:ga4c1be6979b4dc878d07ec86b8624c9d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf4736fff906c2f0c1dbed26b20847052"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#gaf4736fff906c2f0c1dbed26b20847052">w25qxx_advance_get_status2</a> (uint8_t *status)</td></tr>
-<tr class="memdesc:gaf4736fff906c2f0c1dbed26b20847052"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example get the status 2  <a href="group__w25qxx__example__driver.html#gaf4736fff906c2f0c1dbed26b20847052">More...</a><br /></td></tr>
+<tr class="memitem:gaf4736fff906c2f0c1dbed26b20847052" id="r_gaf4736fff906c2f0c1dbed26b20847052"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#gaf4736fff906c2f0c1dbed26b20847052">w25qxx_advance_get_status2</a> (uint8_t *status)</td></tr>
+<tr class="memdesc:gaf4736fff906c2f0c1dbed26b20847052"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example get the status 2  <br /></td></tr>
 <tr class="separator:gaf4736fff906c2f0c1dbed26b20847052"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga31bcd3d2cc68d2fc589685b5087bd8b3"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga31bcd3d2cc68d2fc589685b5087bd8b3">w25qxx_advance_get_status3</a> (uint8_t *status)</td></tr>
-<tr class="memdesc:ga31bcd3d2cc68d2fc589685b5087bd8b3"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example get the status 3  <a href="group__w25qxx__example__driver.html#ga31bcd3d2cc68d2fc589685b5087bd8b3">More...</a><br /></td></tr>
+<tr class="memitem:ga31bcd3d2cc68d2fc589685b5087bd8b3" id="r_ga31bcd3d2cc68d2fc589685b5087bd8b3"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga31bcd3d2cc68d2fc589685b5087bd8b3">w25qxx_advance_get_status3</a> (uint8_t *status)</td></tr>
+<tr class="memdesc:ga31bcd3d2cc68d2fc589685b5087bd8b3"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example get the status 3  <br /></td></tr>
 <tr class="separator:ga31bcd3d2cc68d2fc589685b5087bd8b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga5e4938b4575c417ae22fa82079459b1a"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga5e4938b4575c417ae22fa82079459b1a">w25qxx_advance_set_status1</a> (uint8_t status)</td></tr>
-<tr class="memdesc:ga5e4938b4575c417ae22fa82079459b1a"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example set the status 1  <a href="group__w25qxx__example__driver.html#ga5e4938b4575c417ae22fa82079459b1a">More...</a><br /></td></tr>
+<tr class="memitem:ga5e4938b4575c417ae22fa82079459b1a" id="r_ga5e4938b4575c417ae22fa82079459b1a"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga5e4938b4575c417ae22fa82079459b1a">w25qxx_advance_set_status1</a> (uint8_t status)</td></tr>
+<tr class="memdesc:ga5e4938b4575c417ae22fa82079459b1a"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example set the status 1  <br /></td></tr>
 <tr class="separator:ga5e4938b4575c417ae22fa82079459b1a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga9bc0e696b700d66f15b3605e10d33718"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga9bc0e696b700d66f15b3605e10d33718">w25qxx_advance_set_status2</a> (uint8_t status)</td></tr>
-<tr class="memdesc:ga9bc0e696b700d66f15b3605e10d33718"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example set the status 2  <a href="group__w25qxx__example__driver.html#ga9bc0e696b700d66f15b3605e10d33718">More...</a><br /></td></tr>
+<tr class="memitem:ga9bc0e696b700d66f15b3605e10d33718" id="r_ga9bc0e696b700d66f15b3605e10d33718"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga9bc0e696b700d66f15b3605e10d33718">w25qxx_advance_set_status2</a> (uint8_t status)</td></tr>
+<tr class="memdesc:ga9bc0e696b700d66f15b3605e10d33718"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example set the status 2  <br /></td></tr>
 <tr class="separator:ga9bc0e696b700d66f15b3605e10d33718"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab5c990ebd4874137b7d23f2b896d4601"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#gab5c990ebd4874137b7d23f2b896d4601">w25qxx_advance_set_status3</a> (uint8_t status)</td></tr>
-<tr class="memdesc:gab5c990ebd4874137b7d23f2b896d4601"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example set the status 3  <a href="group__w25qxx__example__driver.html#gab5c990ebd4874137b7d23f2b896d4601">More...</a><br /></td></tr>
+<tr class="memitem:gab5c990ebd4874137b7d23f2b896d4601" id="r_gab5c990ebd4874137b7d23f2b896d4601"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#gab5c990ebd4874137b7d23f2b896d4601">w25qxx_advance_set_status3</a> (uint8_t status)</td></tr>
+<tr class="memdesc:gab5c990ebd4874137b7d23f2b896d4601"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example set the status 3  <br /></td></tr>
 <tr class="separator:gab5c990ebd4874137b7d23f2b896d4601"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gacc7435a39b61c44f0ce16690d5da896b"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#gacc7435a39b61c44f0ce16690d5da896b">w25qxx_advance_get_get_jedec_id</a> (uint8_t *manufacturer, uint8_t device_id[2])</td></tr>
-<tr class="memdesc:gacc7435a39b61c44f0ce16690d5da896b"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example get the jedec id information  <a href="group__w25qxx__example__driver.html#gacc7435a39b61c44f0ce16690d5da896b">More...</a><br /></td></tr>
+<tr class="memitem:gacc7435a39b61c44f0ce16690d5da896b" id="r_gacc7435a39b61c44f0ce16690d5da896b"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#gacc7435a39b61c44f0ce16690d5da896b">w25qxx_advance_get_get_jedec_id</a> (uint8_t *manufacturer, uint8_t device_id[2])</td></tr>
+<tr class="memdesc:gacc7435a39b61c44f0ce16690d5da896b"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example get the jedec id information  <br /></td></tr>
 <tr class="separator:gacc7435a39b61c44f0ce16690d5da896b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga2cbcc018dc11a870d2e0fc3a8946b1d8"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga2cbcc018dc11a870d2e0fc3a8946b1d8">w25qxx_advance_global_block_lock</a> (void)</td></tr>
-<tr class="memdesc:ga2cbcc018dc11a870d2e0fc3a8946b1d8"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example global block lock  <a href="group__w25qxx__example__driver.html#ga2cbcc018dc11a870d2e0fc3a8946b1d8">More...</a><br /></td></tr>
+<tr class="memitem:ga2cbcc018dc11a870d2e0fc3a8946b1d8" id="r_ga2cbcc018dc11a870d2e0fc3a8946b1d8"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga2cbcc018dc11a870d2e0fc3a8946b1d8">w25qxx_advance_global_block_lock</a> (void)</td></tr>
+<tr class="memdesc:ga2cbcc018dc11a870d2e0fc3a8946b1d8"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example global block lock  <br /></td></tr>
 <tr class="separator:ga2cbcc018dc11a870d2e0fc3a8946b1d8"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga67c70da103511d1cff9274e61a08ce56"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga67c70da103511d1cff9274e61a08ce56">w25qxx_advance_global_block_unlock</a> (void)</td></tr>
-<tr class="memdesc:ga67c70da103511d1cff9274e61a08ce56"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example global block unlock  <a href="group__w25qxx__example__driver.html#ga67c70da103511d1cff9274e61a08ce56">More...</a><br /></td></tr>
+<tr class="memitem:ga67c70da103511d1cff9274e61a08ce56" id="r_ga67c70da103511d1cff9274e61a08ce56"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga67c70da103511d1cff9274e61a08ce56">w25qxx_advance_global_block_unlock</a> (void)</td></tr>
+<tr class="memdesc:ga67c70da103511d1cff9274e61a08ce56"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example global block unlock  <br /></td></tr>
 <tr class="separator:ga67c70da103511d1cff9274e61a08ce56"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa7af99e92b3e81f5b202575b55dc3a7c"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#gaa7af99e92b3e81f5b202575b55dc3a7c">w25qxx_advance_individual_block_lock</a> (uint32_t addr)</td></tr>
-<tr class="memdesc:gaa7af99e92b3e81f5b202575b55dc3a7c"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example lock the individual block  <a href="group__w25qxx__example__driver.html#gaa7af99e92b3e81f5b202575b55dc3a7c">More...</a><br /></td></tr>
+<tr class="memitem:gaa7af99e92b3e81f5b202575b55dc3a7c" id="r_gaa7af99e92b3e81f5b202575b55dc3a7c"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#gaa7af99e92b3e81f5b202575b55dc3a7c">w25qxx_advance_individual_block_lock</a> (uint32_t addr)</td></tr>
+<tr class="memdesc:gaa7af99e92b3e81f5b202575b55dc3a7c"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example lock the individual block  <br /></td></tr>
 <tr class="separator:gaa7af99e92b3e81f5b202575b55dc3a7c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga66726fc451c7804e8fec6eb46a6a77d6"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga66726fc451c7804e8fec6eb46a6a77d6">w25qxx_advance_individual_block_unlock</a> (uint32_t addr)</td></tr>
-<tr class="memdesc:ga66726fc451c7804e8fec6eb46a6a77d6"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example unlock the individual block  <a href="group__w25qxx__example__driver.html#ga66726fc451c7804e8fec6eb46a6a77d6">More...</a><br /></td></tr>
+<tr class="memitem:ga66726fc451c7804e8fec6eb46a6a77d6" id="r_ga66726fc451c7804e8fec6eb46a6a77d6"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga66726fc451c7804e8fec6eb46a6a77d6">w25qxx_advance_individual_block_unlock</a> (uint32_t addr)</td></tr>
+<tr class="memdesc:ga66726fc451c7804e8fec6eb46a6a77d6"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example unlock the individual block  <br /></td></tr>
 <tr class="separator:ga66726fc451c7804e8fec6eb46a6a77d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac1773fe914a01825ca28346205601036"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#gac1773fe914a01825ca28346205601036">w25qxx_advance_read_block_lock</a> (uint32_t addr, uint8_t *value)</td></tr>
-<tr class="memdesc:gac1773fe914a01825ca28346205601036"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example read the block lock  <a href="group__w25qxx__example__driver.html#gac1773fe914a01825ca28346205601036">More...</a><br /></td></tr>
+<tr class="memitem:gac1773fe914a01825ca28346205601036" id="r_gac1773fe914a01825ca28346205601036"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#gac1773fe914a01825ca28346205601036">w25qxx_advance_read_block_lock</a> (uint32_t addr, uint8_t *value)</td></tr>
+<tr class="memdesc:gac1773fe914a01825ca28346205601036"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example read the block lock  <br /></td></tr>
 <tr class="separator:gac1773fe914a01825ca28346205601036"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga0f65053ad28443f19ed73dbc3412b5b2"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga0f65053ad28443f19ed73dbc3412b5b2">w25qxx_advance_reset</a> (void)</td></tr>
-<tr class="memdesc:ga0f65053ad28443f19ed73dbc3412b5b2"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example reset  <a href="group__w25qxx__example__driver.html#ga0f65053ad28443f19ed73dbc3412b5b2">More...</a><br /></td></tr>
+<tr class="memitem:ga0f65053ad28443f19ed73dbc3412b5b2" id="r_ga0f65053ad28443f19ed73dbc3412b5b2"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga0f65053ad28443f19ed73dbc3412b5b2">w25qxx_advance_reset</a> (void)</td></tr>
+<tr class="memdesc:ga0f65053ad28443f19ed73dbc3412b5b2"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example reset  <br /></td></tr>
 <tr class="separator:ga0f65053ad28443f19ed73dbc3412b5b2"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac1c7f320706dd6d6d937da75b8a4da93"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#gac1c7f320706dd6d6d937da75b8a4da93">w25qxx_advance_only_spi_read</a> (uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
-<tr class="memdesc:gac1c7f320706dd6d6d937da75b8a4da93"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example read only in the spi interface  <a href="group__w25qxx__example__driver.html#gac1c7f320706dd6d6d937da75b8a4da93">More...</a><br /></td></tr>
+<tr class="memitem:gac1c7f320706dd6d6d937da75b8a4da93" id="r_gac1c7f320706dd6d6d937da75b8a4da93"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#gac1c7f320706dd6d6d937da75b8a4da93">w25qxx_advance_only_spi_read</a> (uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
+<tr class="memdesc:gac1c7f320706dd6d6d937da75b8a4da93"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example read only in the spi interface  <br /></td></tr>
 <tr class="separator:gac1c7f320706dd6d6d937da75b8a4da93"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga364d891407cf323d3686d36ad6357604"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga364d891407cf323d3686d36ad6357604">w25qxx_advance_only_spi_fast_read_dual_output</a> (uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
-<tr class="memdesc:ga364d891407cf323d3686d36ad6357604"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example fast read only in the spi dual output interface  <a href="group__w25qxx__example__driver.html#ga364d891407cf323d3686d36ad6357604">More...</a><br /></td></tr>
+<tr class="memitem:ga364d891407cf323d3686d36ad6357604" id="r_ga364d891407cf323d3686d36ad6357604"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga364d891407cf323d3686d36ad6357604">w25qxx_advance_only_spi_fast_read_dual_output</a> (uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
+<tr class="memdesc:ga364d891407cf323d3686d36ad6357604"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example fast read only in the spi dual output interface  <br /></td></tr>
 <tr class="separator:ga364d891407cf323d3686d36ad6357604"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf5f978c432de7d6adaf41cd256724a01"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#gaf5f978c432de7d6adaf41cd256724a01">w25qxx_advance_only_spi_fast_read_quad_output</a> (uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
-<tr class="memdesc:gaf5f978c432de7d6adaf41cd256724a01"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example fast read only in the spi quad output interface  <a href="group__w25qxx__example__driver.html#gaf5f978c432de7d6adaf41cd256724a01">More...</a><br /></td></tr>
+<tr class="memitem:gaf5f978c432de7d6adaf41cd256724a01" id="r_gaf5f978c432de7d6adaf41cd256724a01"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#gaf5f978c432de7d6adaf41cd256724a01">w25qxx_advance_only_spi_fast_read_quad_output</a> (uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
+<tr class="memdesc:gaf5f978c432de7d6adaf41cd256724a01"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example fast read only in the spi quad output interface  <br /></td></tr>
 <tr class="separator:gaf5f978c432de7d6adaf41cd256724a01"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga4bbaf1a989fae25d16d07edb1e38ca4f"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga4bbaf1a989fae25d16d07edb1e38ca4f">w25qxx_advance_only_spi_fast_read_dual_io</a> (uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
-<tr class="memdesc:ga4bbaf1a989fae25d16d07edb1e38ca4f"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example fast read only in the spi dual io interface  <a href="group__w25qxx__example__driver.html#ga4bbaf1a989fae25d16d07edb1e38ca4f">More...</a><br /></td></tr>
+<tr class="memitem:ga4bbaf1a989fae25d16d07edb1e38ca4f" id="r_ga4bbaf1a989fae25d16d07edb1e38ca4f"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga4bbaf1a989fae25d16d07edb1e38ca4f">w25qxx_advance_only_spi_fast_read_dual_io</a> (uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
+<tr class="memdesc:ga4bbaf1a989fae25d16d07edb1e38ca4f"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example fast read only in the spi dual io interface  <br /></td></tr>
 <tr class="separator:ga4bbaf1a989fae25d16d07edb1e38ca4f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga395add1fa33f4f70d0ba52b38842dbdb"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga395add1fa33f4f70d0ba52b38842dbdb">w25qxx_advance_only_spi_fast_read_quad_io</a> (uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
-<tr class="memdesc:ga395add1fa33f4f70d0ba52b38842dbdb"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example fast read only in the spi quad io interface  <a href="group__w25qxx__example__driver.html#ga395add1fa33f4f70d0ba52b38842dbdb">More...</a><br /></td></tr>
+<tr class="memitem:ga395add1fa33f4f70d0ba52b38842dbdb" id="r_ga395add1fa33f4f70d0ba52b38842dbdb"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga395add1fa33f4f70d0ba52b38842dbdb">w25qxx_advance_only_spi_fast_read_quad_io</a> (uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
+<tr class="memdesc:ga395add1fa33f4f70d0ba52b38842dbdb"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example fast read only in the spi quad io interface  <br /></td></tr>
 <tr class="separator:ga395add1fa33f4f70d0ba52b38842dbdb"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaca6b4c6ea32dd96a4ae8714e2862d67a"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#gaca6b4c6ea32dd96a4ae8714e2862d67a">w25qxx_advance_only_spi_word_read_quad_io</a> (uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
-<tr class="memdesc:gaca6b4c6ea32dd96a4ae8714e2862d67a"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example word read only in the spi quad io interface  <a href="group__w25qxx__example__driver.html#gaca6b4c6ea32dd96a4ae8714e2862d67a">More...</a><br /></td></tr>
+<tr class="memitem:gaca6b4c6ea32dd96a4ae8714e2862d67a" id="r_gaca6b4c6ea32dd96a4ae8714e2862d67a"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#gaca6b4c6ea32dd96a4ae8714e2862d67a">w25qxx_advance_only_spi_word_read_quad_io</a> (uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
+<tr class="memdesc:gaca6b4c6ea32dd96a4ae8714e2862d67a"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example word read only in the spi quad io interface  <br /></td></tr>
 <tr class="separator:gaca6b4c6ea32dd96a4ae8714e2862d67a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga825a567c535236d7d18ffccf07df59e9"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga825a567c535236d7d18ffccf07df59e9">w25qxx_advance_only_spi_octal_word_read_quad_io</a> (uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
-<tr class="memdesc:ga825a567c535236d7d18ffccf07df59e9"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example octal word read only in the spi quad io interface  <a href="group__w25qxx__example__driver.html#ga825a567c535236d7d18ffccf07df59e9">More...</a><br /></td></tr>
+<tr class="memitem:ga825a567c535236d7d18ffccf07df59e9" id="r_ga825a567c535236d7d18ffccf07df59e9"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga825a567c535236d7d18ffccf07df59e9">w25qxx_advance_only_spi_octal_word_read_quad_io</a> (uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
+<tr class="memdesc:ga825a567c535236d7d18ffccf07df59e9"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example octal word read only in the spi quad io interface  <br /></td></tr>
 <tr class="separator:ga825a567c535236d7d18ffccf07df59e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad243655eb738e44c50e6079c983fd782"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#gad243655eb738e44c50e6079c983fd782">w25qxx_advance_only_spi_page_program_quad_input</a> (uint32_t addr, uint8_t *data, uint16_t len)</td></tr>
-<tr class="memdesc:gad243655eb738e44c50e6079c983fd782"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example quad page program only in the spi quad input interface  <a href="group__w25qxx__example__driver.html#gad243655eb738e44c50e6079c983fd782">More...</a><br /></td></tr>
+<tr class="memitem:gad243655eb738e44c50e6079c983fd782" id="r_gad243655eb738e44c50e6079c983fd782"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#gad243655eb738e44c50e6079c983fd782">w25qxx_advance_only_spi_page_program_quad_input</a> (uint32_t addr, uint8_t *data, uint16_t len)</td></tr>
+<tr class="memdesc:gad243655eb738e44c50e6079c983fd782"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example quad page program only in the spi quad input interface  <br /></td></tr>
 <tr class="separator:gad243655eb738e44c50e6079c983fd782"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac0d9e08a37ee37563c8dbb501608a668"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#gac0d9e08a37ee37563c8dbb501608a668">w25qxx_advance_only_spi_get_manufacturer_device_id_dual_io</a> (uint8_t *manufacturer, uint8_t *device_id)</td></tr>
-<tr class="memdesc:gac0d9e08a37ee37563c8dbb501608a668"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example get the manufacturer &amp;&amp; device id information only in the spi dual io interface  <a href="group__w25qxx__example__driver.html#gac0d9e08a37ee37563c8dbb501608a668">More...</a><br /></td></tr>
+<tr class="memitem:gac0d9e08a37ee37563c8dbb501608a668" id="r_gac0d9e08a37ee37563c8dbb501608a668"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#gac0d9e08a37ee37563c8dbb501608a668">w25qxx_advance_only_spi_get_manufacturer_device_id_dual_io</a> (uint8_t *manufacturer, uint8_t *device_id)</td></tr>
+<tr class="memdesc:gac0d9e08a37ee37563c8dbb501608a668"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example get the manufacturer &amp;&amp; device id information only in the spi dual io interface  <br /></td></tr>
 <tr class="separator:gac0d9e08a37ee37563c8dbb501608a668"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6142b5a1e8602e2990dec34015812615"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga6142b5a1e8602e2990dec34015812615">w25qxx_advance_only_spi_get_manufacturer_device_id_quad_io</a> (uint8_t *manufacturer, uint8_t *device_id)</td></tr>
-<tr class="memdesc:ga6142b5a1e8602e2990dec34015812615"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example get the manufacturer &amp;&amp; device id information only in the spi quad io interface  <a href="group__w25qxx__example__driver.html#ga6142b5a1e8602e2990dec34015812615">More...</a><br /></td></tr>
+<tr class="memitem:ga6142b5a1e8602e2990dec34015812615" id="r_ga6142b5a1e8602e2990dec34015812615"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga6142b5a1e8602e2990dec34015812615">w25qxx_advance_only_spi_get_manufacturer_device_id_quad_io</a> (uint8_t *manufacturer, uint8_t *device_id)</td></tr>
+<tr class="memdesc:ga6142b5a1e8602e2990dec34015812615"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example get the manufacturer &amp;&amp; device id information only in the spi quad io interface  <br /></td></tr>
 <tr class="separator:ga6142b5a1e8602e2990dec34015812615"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga374d35b73fa61d5f7464c3effdae1d57"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga374d35b73fa61d5f7464c3effdae1d57">w25qxx_advance_only_spi_get_unique_id</a> (uint8_t id[8])</td></tr>
-<tr class="memdesc:ga374d35b73fa61d5f7464c3effdae1d57"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example get the unique id only in the spi interface  <a href="group__w25qxx__example__driver.html#ga374d35b73fa61d5f7464c3effdae1d57">More...</a><br /></td></tr>
+<tr class="memitem:ga374d35b73fa61d5f7464c3effdae1d57" id="r_ga374d35b73fa61d5f7464c3effdae1d57"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga374d35b73fa61d5f7464c3effdae1d57">w25qxx_advance_only_spi_get_unique_id</a> (uint8_t id[8])</td></tr>
+<tr class="memdesc:ga374d35b73fa61d5f7464c3effdae1d57"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example get the unique id only in the spi interface  <br /></td></tr>
 <tr class="separator:ga374d35b73fa61d5f7464c3effdae1d57"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga9b1854e0ae52f57523bc2fa7cc0656df"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga9b1854e0ae52f57523bc2fa7cc0656df">w25qxx_advance_only_spi_get_sfdp</a> (uint8_t sfdp[256])</td></tr>
-<tr class="memdesc:ga9b1854e0ae52f57523bc2fa7cc0656df"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example get the sfdp only in the spi interface  <a href="group__w25qxx__example__driver.html#ga9b1854e0ae52f57523bc2fa7cc0656df">More...</a><br /></td></tr>
+<tr class="memitem:ga9b1854e0ae52f57523bc2fa7cc0656df" id="r_ga9b1854e0ae52f57523bc2fa7cc0656df"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga9b1854e0ae52f57523bc2fa7cc0656df">w25qxx_advance_only_spi_get_sfdp</a> (uint8_t sfdp[256])</td></tr>
+<tr class="memdesc:ga9b1854e0ae52f57523bc2fa7cc0656df"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example get the sfdp only in the spi interface  <br /></td></tr>
 <tr class="separator:ga9b1854e0ae52f57523bc2fa7cc0656df"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa6c5f97106e769ba071973cc2e782ad4"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#gaa6c5f97106e769ba071973cc2e782ad4">w25qxx_advance_only_spi_write_security_register</a> (<a class="el" href="group__w25qxx__advance__driver.html#ga81ddc7d4b9f4f124163beea19cc33c7e">w25qxx_security_register_t</a> num, uint8_t data[256])</td></tr>
-<tr class="memdesc:gaa6c5f97106e769ba071973cc2e782ad4"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example write the security register only in the spi interface  <a href="group__w25qxx__example__driver.html#gaa6c5f97106e769ba071973cc2e782ad4">More...</a><br /></td></tr>
+<tr class="memitem:gaa6c5f97106e769ba071973cc2e782ad4" id="r_gaa6c5f97106e769ba071973cc2e782ad4"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#gaa6c5f97106e769ba071973cc2e782ad4">w25qxx_advance_only_spi_write_security_register</a> (<a class="el" href="group__w25qxx__advance__driver.html#ga81ddc7d4b9f4f124163beea19cc33c7e">w25qxx_security_register_t</a> num, uint8_t data[256])</td></tr>
+<tr class="memdesc:gaa6c5f97106e769ba071973cc2e782ad4"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example write the security register only in the spi interface  <br /></td></tr>
 <tr class="separator:gaa6c5f97106e769ba071973cc2e782ad4"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga02652a58ee418b432cf77505809d7d42"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga02652a58ee418b432cf77505809d7d42">w25qxx_advance_only_spi_read_security_register</a> (<a class="el" href="group__w25qxx__advance__driver.html#ga81ddc7d4b9f4f124163beea19cc33c7e">w25qxx_security_register_t</a> num, uint8_t data[256])</td></tr>
-<tr class="memdesc:ga02652a58ee418b432cf77505809d7d42"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example read the security register only in the spi interface  <a href="group__w25qxx__example__driver.html#ga02652a58ee418b432cf77505809d7d42">More...</a><br /></td></tr>
+<tr class="memitem:ga02652a58ee418b432cf77505809d7d42" id="r_ga02652a58ee418b432cf77505809d7d42"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga02652a58ee418b432cf77505809d7d42">w25qxx_advance_only_spi_read_security_register</a> (<a class="el" href="group__w25qxx__advance__driver.html#ga81ddc7d4b9f4f124163beea19cc33c7e">w25qxx_security_register_t</a> num, uint8_t data[256])</td></tr>
+<tr class="memdesc:ga02652a58ee418b432cf77505809d7d42"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example read the security register only in the spi interface  <br /></td></tr>
 <tr class="separator:ga02652a58ee418b432cf77505809d7d42"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga16411577fcb794f7485912f5db1bdde9"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga16411577fcb794f7485912f5db1bdde9">w25qxx_advance_only_spi_set_burst_with_wrap</a> (<a class="el" href="group__w25qxx__advance__driver.html#ga94bbae2bf8906903e8dc2a28c490723d">w25qxx_burst_wrap_t</a> wrap)</td></tr>
-<tr class="memdesc:ga16411577fcb794f7485912f5db1bdde9"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example set the burst with wrap only in the spi interface  <a href="group__w25qxx__example__driver.html#ga16411577fcb794f7485912f5db1bdde9">More...</a><br /></td></tr>
+<tr class="memitem:ga16411577fcb794f7485912f5db1bdde9" id="r_ga16411577fcb794f7485912f5db1bdde9"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga16411577fcb794f7485912f5db1bdde9">w25qxx_advance_only_spi_set_burst_with_wrap</a> (<a class="el" href="group__w25qxx__advance__driver.html#ga94bbae2bf8906903e8dc2a28c490723d">w25qxx_burst_wrap_t</a> wrap)</td></tr>
+<tr class="memdesc:ga16411577fcb794f7485912f5db1bdde9"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example set the burst with wrap only in the spi interface  <br /></td></tr>
 <tr class="separator:ga16411577fcb794f7485912f5db1bdde9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gace2a5b7acd9798cfcaa2b5eb2f18e1d1"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#gace2a5b7acd9798cfcaa2b5eb2f18e1d1">w25qxx_advance_only_qspi_set_read_parameters</a> (<a class="el" href="group__w25qxx__advance__driver.html#ga6ff284154302248f00db269146545443">w25qxx_qspi_read_dummy_t</a> dummy, <a class="el" href="group__w25qxx__advance__driver.html#ga2fd3023819e1aebe089a4a72eb136da3">w25qxx_qspi_read_wrap_length_t</a> length)</td></tr>
-<tr class="memdesc:gace2a5b7acd9798cfcaa2b5eb2f18e1d1"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example set the read parameters only in the qspi interface  <a href="group__w25qxx__example__driver.html#gace2a5b7acd9798cfcaa2b5eb2f18e1d1">More...</a><br /></td></tr>
+<tr class="memitem:gace2a5b7acd9798cfcaa2b5eb2f18e1d1" id="r_gace2a5b7acd9798cfcaa2b5eb2f18e1d1"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#gace2a5b7acd9798cfcaa2b5eb2f18e1d1">w25qxx_advance_only_qspi_set_read_parameters</a> (<a class="el" href="group__w25qxx__advance__driver.html#ga6ff284154302248f00db269146545443">w25qxx_qspi_read_dummy_t</a> dummy, <a class="el" href="group__w25qxx__advance__driver.html#ga2fd3023819e1aebe089a4a72eb136da3">w25qxx_qspi_read_wrap_length_t</a> length)</td></tr>
+<tr class="memdesc:gace2a5b7acd9798cfcaa2b5eb2f18e1d1"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance example set the read parameters only in the qspi interface  <br /></td></tr>
 <tr class="separator:gace2a5b7acd9798cfcaa2b5eb2f18e1d1"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga1e20768311dfdf33c77b442fa874b61a"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga1e20768311dfdf33c77b442fa874b61a">w25qxx_basic_init</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga6cb4e5164464df549201dd96cb7a58b1">w25qxx_type_t</a> type, <a class="el" href="group__w25qxx__basic__driver.html#gacbf327a42336baf10713a1796ff4f2fe">w25qxx_interface_t</a> interface, <a class="el" href="group__w25qxx__basic__driver.html#gafb2690946f5baf4be6f3a63dde5491fb">w25qxx_bool_t</a> dual_quad_spi_enable)</td></tr>
-<tr class="memdesc:ga1e20768311dfdf33c77b442fa874b61a"><td class="mdescLeft">&#160;</td><td class="mdescRight">basic example init  <a href="group__w25qxx__example__driver.html#ga1e20768311dfdf33c77b442fa874b61a">More...</a><br /></td></tr>
+<tr class="memitem:ga1e20768311dfdf33c77b442fa874b61a" id="r_ga1e20768311dfdf33c77b442fa874b61a"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga1e20768311dfdf33c77b442fa874b61a">w25qxx_basic_init</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga6cb4e5164464df549201dd96cb7a58b1">w25qxx_type_t</a> type, <a class="el" href="group__w25qxx__basic__driver.html#gacbf327a42336baf10713a1796ff4f2fe">w25qxx_interface_t</a> interface, <a class="el" href="group__w25qxx__basic__driver.html#gafb2690946f5baf4be6f3a63dde5491fb">w25qxx_bool_t</a> dual_quad_spi_enable)</td></tr>
+<tr class="memdesc:ga1e20768311dfdf33c77b442fa874b61a"><td class="mdescLeft">&#160;</td><td class="mdescRight">basic example init  <br /></td></tr>
 <tr class="separator:ga1e20768311dfdf33c77b442fa874b61a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaeb167c2924a3490e9a8d11e0c57d2dc0"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#gaeb167c2924a3490e9a8d11e0c57d2dc0">w25qxx_basic_deinit</a> (void)</td></tr>
-<tr class="memdesc:gaeb167c2924a3490e9a8d11e0c57d2dc0"><td class="mdescLeft">&#160;</td><td class="mdescRight">basic example deinit  <a href="group__w25qxx__example__driver.html#gaeb167c2924a3490e9a8d11e0c57d2dc0">More...</a><br /></td></tr>
+<tr class="memitem:gaeb167c2924a3490e9a8d11e0c57d2dc0" id="r_gaeb167c2924a3490e9a8d11e0c57d2dc0"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#gaeb167c2924a3490e9a8d11e0c57d2dc0">w25qxx_basic_deinit</a> (void)</td></tr>
+<tr class="memdesc:gaeb167c2924a3490e9a8d11e0c57d2dc0"><td class="mdescLeft">&#160;</td><td class="mdescRight">basic example deinit  <br /></td></tr>
 <tr class="separator:gaeb167c2924a3490e9a8d11e0c57d2dc0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga572c9f7a0bf2e7ab43dc078121162ec3"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga572c9f7a0bf2e7ab43dc078121162ec3">w25qxx_basic_power_down</a> (void)</td></tr>
-<tr class="memdesc:ga572c9f7a0bf2e7ab43dc078121162ec3"><td class="mdescLeft">&#160;</td><td class="mdescRight">basic example power down  <a href="group__w25qxx__example__driver.html#ga572c9f7a0bf2e7ab43dc078121162ec3">More...</a><br /></td></tr>
+<tr class="memitem:ga572c9f7a0bf2e7ab43dc078121162ec3" id="r_ga572c9f7a0bf2e7ab43dc078121162ec3"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga572c9f7a0bf2e7ab43dc078121162ec3">w25qxx_basic_power_down</a> (void)</td></tr>
+<tr class="memdesc:ga572c9f7a0bf2e7ab43dc078121162ec3"><td class="mdescLeft">&#160;</td><td class="mdescRight">basic example power down  <br /></td></tr>
 <tr class="separator:ga572c9f7a0bf2e7ab43dc078121162ec3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga02914409a9db38f35bc89d9fc4d96a17"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga02914409a9db38f35bc89d9fc4d96a17">w25qxx_basic_wake_up</a> (void)</td></tr>
-<tr class="memdesc:ga02914409a9db38f35bc89d9fc4d96a17"><td class="mdescLeft">&#160;</td><td class="mdescRight">basic example wake up  <a href="group__w25qxx__example__driver.html#ga02914409a9db38f35bc89d9fc4d96a17">More...</a><br /></td></tr>
+<tr class="memitem:ga02914409a9db38f35bc89d9fc4d96a17" id="r_ga02914409a9db38f35bc89d9fc4d96a17"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga02914409a9db38f35bc89d9fc4d96a17">w25qxx_basic_wake_up</a> (void)</td></tr>
+<tr class="memdesc:ga02914409a9db38f35bc89d9fc4d96a17"><td class="mdescLeft">&#160;</td><td class="mdescRight">basic example wake up  <br /></td></tr>
 <tr class="separator:ga02914409a9db38f35bc89d9fc4d96a17"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf78e9f136e29b826c1a2b337b8451d6d"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#gaf78e9f136e29b826c1a2b337b8451d6d">w25qxx_basic_chip_erase</a> (void)</td></tr>
-<tr class="memdesc:gaf78e9f136e29b826c1a2b337b8451d6d"><td class="mdescLeft">&#160;</td><td class="mdescRight">basic example chip erase  <a href="group__w25qxx__example__driver.html#gaf78e9f136e29b826c1a2b337b8451d6d">More...</a><br /></td></tr>
+<tr class="memitem:gaf78e9f136e29b826c1a2b337b8451d6d" id="r_gaf78e9f136e29b826c1a2b337b8451d6d"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#gaf78e9f136e29b826c1a2b337b8451d6d">w25qxx_basic_chip_erase</a> (void)</td></tr>
+<tr class="memdesc:gaf78e9f136e29b826c1a2b337b8451d6d"><td class="mdescLeft">&#160;</td><td class="mdescRight">basic example chip erase  <br /></td></tr>
 <tr class="separator:gaf78e9f136e29b826c1a2b337b8451d6d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gacdda3af55c024b55fc9939aa23650356"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#gacdda3af55c024b55fc9939aa23650356">w25qxx_basic_get_id</a> (uint8_t *manufacturer, uint8_t *device_id)</td></tr>
-<tr class="memdesc:gacdda3af55c024b55fc9939aa23650356"><td class="mdescLeft">&#160;</td><td class="mdescRight">basic example get the manufacturer &amp;&amp; device id information  <a href="group__w25qxx__example__driver.html#gacdda3af55c024b55fc9939aa23650356">More...</a><br /></td></tr>
+<tr class="memitem:gacdda3af55c024b55fc9939aa23650356" id="r_gacdda3af55c024b55fc9939aa23650356"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#gacdda3af55c024b55fc9939aa23650356">w25qxx_basic_get_id</a> (uint8_t *manufacturer, uint8_t *device_id)</td></tr>
+<tr class="memdesc:gacdda3af55c024b55fc9939aa23650356"><td class="mdescLeft">&#160;</td><td class="mdescRight">basic example get the manufacturer &amp;&amp; device id information  <br /></td></tr>
 <tr class="separator:gacdda3af55c024b55fc9939aa23650356"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga5cf24fc78e1b45e845d02ec9133f46ab"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga5cf24fc78e1b45e845d02ec9133f46ab">w25qxx_basic_write</a> (uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
-<tr class="memdesc:ga5cf24fc78e1b45e845d02ec9133f46ab"><td class="mdescLeft">&#160;</td><td class="mdescRight">basic example write  <a href="group__w25qxx__example__driver.html#ga5cf24fc78e1b45e845d02ec9133f46ab">More...</a><br /></td></tr>
+<tr class="memitem:ga5cf24fc78e1b45e845d02ec9133f46ab" id="r_ga5cf24fc78e1b45e845d02ec9133f46ab"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga5cf24fc78e1b45e845d02ec9133f46ab">w25qxx_basic_write</a> (uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
+<tr class="memdesc:ga5cf24fc78e1b45e845d02ec9133f46ab"><td class="mdescLeft">&#160;</td><td class="mdescRight">basic example write  <br /></td></tr>
 <tr class="separator:ga5cf24fc78e1b45e845d02ec9133f46ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga143fa1f19a792142339f3d4e9ce078d0"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga143fa1f19a792142339f3d4e9ce078d0">w25qxx_basic_read</a> (uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
-<tr class="memdesc:ga143fa1f19a792142339f3d4e9ce078d0"><td class="mdescLeft">&#160;</td><td class="mdescRight">basic example read  <a href="group__w25qxx__example__driver.html#ga143fa1f19a792142339f3d4e9ce078d0">More...</a><br /></td></tr>
+<tr class="memitem:ga143fa1f19a792142339f3d4e9ce078d0" id="r_ga143fa1f19a792142339f3d4e9ce078d0"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__example__driver.html#ga143fa1f19a792142339f3d4e9ce078d0">w25qxx_basic_read</a> (uint32_t addr, uint8_t *data, uint32_t len)</td></tr>
+<tr class="memdesc:ga143fa1f19a792142339f3d4e9ce078d0"><td class="mdescLeft">&#160;</td><td class="mdescRight">basic example read  <br /></td></tr>
 <tr class="separator:ga143fa1f19a792142339f3d4e9ce078d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
 <p>w25qxx example driver modules </p>
 <h2 class="groupheader">Function Documentation</h2>
-<a id="gaee04edb9e97785e423dffe14a1cad780"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#gaee04edb9e97785e423dffe14a1cad780">&#9670;&nbsp;</a></span>w25qxx_advance_block_erase_32k()</h2>
+<a id="gaee04edb9e97785e423dffe14a1cad780" name="gaee04edb9e97785e423dffe14a1cad780"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaee04edb9e97785e423dffe14a1cad780">&#9670;&#160;</a></span>w25qxx_advance_block_erase_32k()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -284,8 +290,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#gaee04edb9e97785e423dffe1
 
 </div>
 </div>
-<a id="gae7cba4e0b22a1043fe304e46148fa13c"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#gae7cba4e0b22a1043fe304e46148fa13c">&#9670;&nbsp;</a></span>w25qxx_advance_block_erase_64k()</h2>
+<a id="gae7cba4e0b22a1043fe304e46148fa13c" name="gae7cba4e0b22a1043fe304e46148fa13c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gae7cba4e0b22a1043fe304e46148fa13c">&#9670;&#160;</a></span>w25qxx_advance_block_erase_64k()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -318,8 +324,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#gae7cba4e0b22a1043fe304e4
 
 </div>
 </div>
-<a id="ga15cb243f227ef8d897ef3208b622bded"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ga15cb243f227ef8d897ef3208b622bded">&#9670;&nbsp;</a></span>w25qxx_advance_chip_erase()</h2>
+<a id="ga15cb243f227ef8d897ef3208b622bded" name="ga15cb243f227ef8d897ef3208b622bded"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga15cb243f227ef8d897ef3208b622bded">&#9670;&#160;</a></span>w25qxx_advance_chip_erase()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -346,8 +352,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#ga15cb243f227ef8d897ef320
 
 </div>
 </div>
-<a id="gaf390bbb2c4140f49d25822d963ead722"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#gaf390bbb2c4140f49d25822d963ead722">&#9670;&nbsp;</a></span>w25qxx_advance_deinit()</h2>
+<a id="gaf390bbb2c4140f49d25822d963ead722" name="gaf390bbb2c4140f49d25822d963ead722"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaf390bbb2c4140f49d25822d963ead722">&#9670;&#160;</a></span>w25qxx_advance_deinit()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -374,8 +380,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#gaf390bbb2c4140f49d25822d
 
 </div>
 </div>
-<a id="ga7ade25a387b9d03ddecefd86fb328389"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ga7ade25a387b9d03ddecefd86fb328389">&#9670;&nbsp;</a></span>w25qxx_advance_fast_read()</h2>
+<a id="ga7ade25a387b9d03ddecefd86fb328389" name="ga7ade25a387b9d03ddecefd86fb328389"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga7ade25a387b9d03ddecefd86fb328389">&#9670;&#160;</a></span>w25qxx_advance_fast_read()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -426,8 +432,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#ga7ade25a387b9d03ddecefd8
 
 </div>
 </div>
-<a id="gacc7435a39b61c44f0ce16690d5da896b"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#gacc7435a39b61c44f0ce16690d5da896b">&#9670;&nbsp;</a></span>w25qxx_advance_get_get_jedec_id()</h2>
+<a id="gacc7435a39b61c44f0ce16690d5da896b" name="gacc7435a39b61c44f0ce16690d5da896b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gacc7435a39b61c44f0ce16690d5da896b">&#9670;&#160;</a></span>w25qxx_advance_get_get_jedec_id()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -471,8 +477,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#gacc7435a39b61c44f0ce1669
 
 </div>
 </div>
-<a id="ga0f49d960f8b6c6498ab293b369ffc389"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ga0f49d960f8b6c6498ab293b369ffc389">&#9670;&nbsp;</a></span>w25qxx_advance_get_id()</h2>
+<a id="ga0f49d960f8b6c6498ab293b369ffc389" name="ga0f49d960f8b6c6498ab293b369ffc389"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga0f49d960f8b6c6498ab293b369ffc389">&#9670;&#160;</a></span>w25qxx_advance_get_id()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -516,8 +522,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#ga0f49d960f8b6c6498ab293b
 
 </div>
 </div>
-<a id="ga4c1be6979b4dc878d07ec86b8624c9d2"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ga4c1be6979b4dc878d07ec86b8624c9d2">&#9670;&nbsp;</a></span>w25qxx_advance_get_status1()</h2>
+<a id="ga4c1be6979b4dc878d07ec86b8624c9d2" name="ga4c1be6979b4dc878d07ec86b8624c9d2"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga4c1be6979b4dc878d07ec86b8624c9d2">&#9670;&#160;</a></span>w25qxx_advance_get_status1()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -550,8 +556,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#ga4c1be6979b4dc878d07ec86
 
 </div>
 </div>
-<a id="gaf4736fff906c2f0c1dbed26b20847052"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#gaf4736fff906c2f0c1dbed26b20847052">&#9670;&nbsp;</a></span>w25qxx_advance_get_status2()</h2>
+<a id="gaf4736fff906c2f0c1dbed26b20847052" name="gaf4736fff906c2f0c1dbed26b20847052"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaf4736fff906c2f0c1dbed26b20847052">&#9670;&#160;</a></span>w25qxx_advance_get_status2()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -584,8 +590,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#gaf4736fff906c2f0c1dbed26
 
 </div>
 </div>
-<a id="ga31bcd3d2cc68d2fc589685b5087bd8b3"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ga31bcd3d2cc68d2fc589685b5087bd8b3">&#9670;&nbsp;</a></span>w25qxx_advance_get_status3()</h2>
+<a id="ga31bcd3d2cc68d2fc589685b5087bd8b3" name="ga31bcd3d2cc68d2fc589685b5087bd8b3"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga31bcd3d2cc68d2fc589685b5087bd8b3">&#9670;&#160;</a></span>w25qxx_advance_get_status3()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -618,8 +624,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#ga31bcd3d2cc68d2fc589685b
 
 </div>
 </div>
-<a id="ga2cbcc018dc11a870d2e0fc3a8946b1d8"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ga2cbcc018dc11a870d2e0fc3a8946b1d8">&#9670;&nbsp;</a></span>w25qxx_advance_global_block_lock()</h2>
+<a id="ga2cbcc018dc11a870d2e0fc3a8946b1d8" name="ga2cbcc018dc11a870d2e0fc3a8946b1d8"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga2cbcc018dc11a870d2e0fc3a8946b1d8">&#9670;&#160;</a></span>w25qxx_advance_global_block_lock()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -646,8 +652,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#ga2cbcc018dc11a870d2e0fc3
 
 </div>
 </div>
-<a id="ga67c70da103511d1cff9274e61a08ce56"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ga67c70da103511d1cff9274e61a08ce56">&#9670;&nbsp;</a></span>w25qxx_advance_global_block_unlock()</h2>
+<a id="ga67c70da103511d1cff9274e61a08ce56" name="ga67c70da103511d1cff9274e61a08ce56"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga67c70da103511d1cff9274e61a08ce56">&#9670;&#160;</a></span>w25qxx_advance_global_block_unlock()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -674,8 +680,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#ga67c70da103511d1cff9274e
 
 </div>
 </div>
-<a id="gaa7af99e92b3e81f5b202575b55dc3a7c"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#gaa7af99e92b3e81f5b202575b55dc3a7c">&#9670;&nbsp;</a></span>w25qxx_advance_individual_block_lock()</h2>
+<a id="gaa7af99e92b3e81f5b202575b55dc3a7c" name="gaa7af99e92b3e81f5b202575b55dc3a7c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaa7af99e92b3e81f5b202575b55dc3a7c">&#9670;&#160;</a></span>w25qxx_advance_individual_block_lock()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -708,8 +714,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#gaa7af99e92b3e81f5b202575
 
 </div>
 </div>
-<a id="ga66726fc451c7804e8fec6eb46a6a77d6"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ga66726fc451c7804e8fec6eb46a6a77d6">&#9670;&nbsp;</a></span>w25qxx_advance_individual_block_unlock()</h2>
+<a id="ga66726fc451c7804e8fec6eb46a6a77d6" name="ga66726fc451c7804e8fec6eb46a6a77d6"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga66726fc451c7804e8fec6eb46a6a77d6">&#9670;&#160;</a></span>w25qxx_advance_individual_block_unlock()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -742,8 +748,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#ga66726fc451c7804e8fec6eb
 
 </div>
 </div>
-<a id="ga413b420bc199d09ce5cafee4a4debb28"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ga413b420bc199d09ce5cafee4a4debb28">&#9670;&nbsp;</a></span>w25qxx_advance_init()</h2>
+<a id="ga413b420bc199d09ce5cafee4a4debb28" name="ga413b420bc199d09ce5cafee4a4debb28"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga413b420bc199d09ce5cafee4a4debb28">&#9670;&#160;</a></span>w25qxx_advance_init()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -794,8 +800,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#ga413b420bc199d09ce5cafee
 
 </div>
 </div>
-<a id="gace2a5b7acd9798cfcaa2b5eb2f18e1d1"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#gace2a5b7acd9798cfcaa2b5eb2f18e1d1">&#9670;&nbsp;</a></span>w25qxx_advance_only_qspi_set_read_parameters()</h2>
+<a id="gace2a5b7acd9798cfcaa2b5eb2f18e1d1" name="gace2a5b7acd9798cfcaa2b5eb2f18e1d1"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gace2a5b7acd9798cfcaa2b5eb2f18e1d1">&#9670;&#160;</a></span>w25qxx_advance_only_qspi_set_read_parameters()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -839,8 +845,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#gace2a5b7acd9798cfcaa2b5e
 
 </div>
 </div>
-<a id="ga4bbaf1a989fae25d16d07edb1e38ca4f"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ga4bbaf1a989fae25d16d07edb1e38ca4f">&#9670;&nbsp;</a></span>w25qxx_advance_only_spi_fast_read_dual_io()</h2>
+<a id="ga4bbaf1a989fae25d16d07edb1e38ca4f" name="ga4bbaf1a989fae25d16d07edb1e38ca4f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga4bbaf1a989fae25d16d07edb1e38ca4f">&#9670;&#160;</a></span>w25qxx_advance_only_spi_fast_read_dual_io()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -891,8 +897,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#ga4bbaf1a989fae25d16d07ed
 
 </div>
 </div>
-<a id="ga364d891407cf323d3686d36ad6357604"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ga364d891407cf323d3686d36ad6357604">&#9670;&nbsp;</a></span>w25qxx_advance_only_spi_fast_read_dual_output()</h2>
+<a id="ga364d891407cf323d3686d36ad6357604" name="ga364d891407cf323d3686d36ad6357604"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga364d891407cf323d3686d36ad6357604">&#9670;&#160;</a></span>w25qxx_advance_only_spi_fast_read_dual_output()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -943,8 +949,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#ga364d891407cf323d3686d36
 
 </div>
 </div>
-<a id="ga395add1fa33f4f70d0ba52b38842dbdb"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ga395add1fa33f4f70d0ba52b38842dbdb">&#9670;&nbsp;</a></span>w25qxx_advance_only_spi_fast_read_quad_io()</h2>
+<a id="ga395add1fa33f4f70d0ba52b38842dbdb" name="ga395add1fa33f4f70d0ba52b38842dbdb"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga395add1fa33f4f70d0ba52b38842dbdb">&#9670;&#160;</a></span>w25qxx_advance_only_spi_fast_read_quad_io()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -995,8 +1001,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#ga395add1fa33f4f70d0ba52b
 
 </div>
 </div>
-<a id="gaf5f978c432de7d6adaf41cd256724a01"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#gaf5f978c432de7d6adaf41cd256724a01">&#9670;&nbsp;</a></span>w25qxx_advance_only_spi_fast_read_quad_output()</h2>
+<a id="gaf5f978c432de7d6adaf41cd256724a01" name="gaf5f978c432de7d6adaf41cd256724a01"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaf5f978c432de7d6adaf41cd256724a01">&#9670;&#160;</a></span>w25qxx_advance_only_spi_fast_read_quad_output()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -1047,8 +1053,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#gaf5f978c432de7d6adaf41cd
 
 </div>
 </div>
-<a id="gac0d9e08a37ee37563c8dbb501608a668"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#gac0d9e08a37ee37563c8dbb501608a668">&#9670;&nbsp;</a></span>w25qxx_advance_only_spi_get_manufacturer_device_id_dual_io()</h2>
+<a id="gac0d9e08a37ee37563c8dbb501608a668" name="gac0d9e08a37ee37563c8dbb501608a668"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gac0d9e08a37ee37563c8dbb501608a668">&#9670;&#160;</a></span>w25qxx_advance_only_spi_get_manufacturer_device_id_dual_io()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -1092,8 +1098,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#gac0d9e08a37ee37563c8dbb5
 
 </div>
 </div>
-<a id="ga6142b5a1e8602e2990dec34015812615"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ga6142b5a1e8602e2990dec34015812615">&#9670;&nbsp;</a></span>w25qxx_advance_only_spi_get_manufacturer_device_id_quad_io()</h2>
+<a id="ga6142b5a1e8602e2990dec34015812615" name="ga6142b5a1e8602e2990dec34015812615"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga6142b5a1e8602e2990dec34015812615">&#9670;&#160;</a></span>w25qxx_advance_only_spi_get_manufacturer_device_id_quad_io()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -1137,8 +1143,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#ga6142b5a1e8602e2990dec34
 
 </div>
 </div>
-<a id="ga9b1854e0ae52f57523bc2fa7cc0656df"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ga9b1854e0ae52f57523bc2fa7cc0656df">&#9670;&nbsp;</a></span>w25qxx_advance_only_spi_get_sfdp()</h2>
+<a id="ga9b1854e0ae52f57523bc2fa7cc0656df" name="ga9b1854e0ae52f57523bc2fa7cc0656df"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga9b1854e0ae52f57523bc2fa7cc0656df">&#9670;&#160;</a></span>w25qxx_advance_only_spi_get_sfdp()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -1171,8 +1177,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#ga9b1854e0ae52f57523bc2fa
 
 </div>
 </div>
-<a id="ga374d35b73fa61d5f7464c3effdae1d57"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ga374d35b73fa61d5f7464c3effdae1d57">&#9670;&nbsp;</a></span>w25qxx_advance_only_spi_get_unique_id()</h2>
+<a id="ga374d35b73fa61d5f7464c3effdae1d57" name="ga374d35b73fa61d5f7464c3effdae1d57"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga374d35b73fa61d5f7464c3effdae1d57">&#9670;&#160;</a></span>w25qxx_advance_only_spi_get_unique_id()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -1205,8 +1211,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#ga374d35b73fa61d5f7464c3e
 
 </div>
 </div>
-<a id="ga825a567c535236d7d18ffccf07df59e9"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ga825a567c535236d7d18ffccf07df59e9">&#9670;&nbsp;</a></span>w25qxx_advance_only_spi_octal_word_read_quad_io()</h2>
+<a id="ga825a567c535236d7d18ffccf07df59e9" name="ga825a567c535236d7d18ffccf07df59e9"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga825a567c535236d7d18ffccf07df59e9">&#9670;&#160;</a></span>w25qxx_advance_only_spi_octal_word_read_quad_io()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -1257,8 +1263,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#ga825a567c535236d7d18ffcc
 
 </div>
 </div>
-<a id="gad243655eb738e44c50e6079c983fd782"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#gad243655eb738e44c50e6079c983fd782">&#9670;&nbsp;</a></span>w25qxx_advance_only_spi_page_program_quad_input()</h2>
+<a id="gad243655eb738e44c50e6079c983fd782" name="gad243655eb738e44c50e6079c983fd782"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gad243655eb738e44c50e6079c983fd782">&#9670;&#160;</a></span>w25qxx_advance_only_spi_page_program_quad_input()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -1309,8 +1315,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#gad243655eb738e44c50e6079
 
 </div>
 </div>
-<a id="gac1c7f320706dd6d6d937da75b8a4da93"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#gac1c7f320706dd6d6d937da75b8a4da93">&#9670;&nbsp;</a></span>w25qxx_advance_only_spi_read()</h2>
+<a id="gac1c7f320706dd6d6d937da75b8a4da93" name="gac1c7f320706dd6d6d937da75b8a4da93"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gac1c7f320706dd6d6d937da75b8a4da93">&#9670;&#160;</a></span>w25qxx_advance_only_spi_read()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -1361,8 +1367,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#gac1c7f320706dd6d6d937da7
 
 </div>
 </div>
-<a id="ga02652a58ee418b432cf77505809d7d42"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ga02652a58ee418b432cf77505809d7d42">&#9670;&nbsp;</a></span>w25qxx_advance_only_spi_read_security_register()</h2>
+<a id="ga02652a58ee418b432cf77505809d7d42" name="ga02652a58ee418b432cf77505809d7d42"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga02652a58ee418b432cf77505809d7d42">&#9670;&#160;</a></span>w25qxx_advance_only_spi_read_security_register()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -1406,8 +1412,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#ga02652a58ee418b432cf7750
 
 </div>
 </div>
-<a id="ga16411577fcb794f7485912f5db1bdde9"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ga16411577fcb794f7485912f5db1bdde9">&#9670;&nbsp;</a></span>w25qxx_advance_only_spi_set_burst_with_wrap()</h2>
+<a id="ga16411577fcb794f7485912f5db1bdde9" name="ga16411577fcb794f7485912f5db1bdde9"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga16411577fcb794f7485912f5db1bdde9">&#9670;&#160;</a></span>w25qxx_advance_only_spi_set_burst_with_wrap()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -1440,8 +1446,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#ga16411577fcb794f7485912f
 
 </div>
 </div>
-<a id="gaca6b4c6ea32dd96a4ae8714e2862d67a"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#gaca6b4c6ea32dd96a4ae8714e2862d67a">&#9670;&nbsp;</a></span>w25qxx_advance_only_spi_word_read_quad_io()</h2>
+<a id="gaca6b4c6ea32dd96a4ae8714e2862d67a" name="gaca6b4c6ea32dd96a4ae8714e2862d67a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaca6b4c6ea32dd96a4ae8714e2862d67a">&#9670;&#160;</a></span>w25qxx_advance_only_spi_word_read_quad_io()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -1492,8 +1498,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#gaca6b4c6ea32dd96a4ae8714
 
 </div>
 </div>
-<a id="gaa6c5f97106e769ba071973cc2e782ad4"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#gaa6c5f97106e769ba071973cc2e782ad4">&#9670;&nbsp;</a></span>w25qxx_advance_only_spi_write_security_register()</h2>
+<a id="gaa6c5f97106e769ba071973cc2e782ad4" name="gaa6c5f97106e769ba071973cc2e782ad4"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaa6c5f97106e769ba071973cc2e782ad4">&#9670;&#160;</a></span>w25qxx_advance_only_spi_write_security_register()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -1537,8 +1543,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#gaa6c5f97106e769ba071973c
 
 </div>
 </div>
-<a id="ga39ff13988a3d451231cec3260c13a4cd"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ga39ff13988a3d451231cec3260c13a4cd">&#9670;&nbsp;</a></span>w25qxx_advance_page_program()</h2>
+<a id="ga39ff13988a3d451231cec3260c13a4cd" name="ga39ff13988a3d451231cec3260c13a4cd"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga39ff13988a3d451231cec3260c13a4cd">&#9670;&#160;</a></span>w25qxx_advance_page_program()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -1589,8 +1595,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#ga39ff13988a3d451231cec32
 
 </div>
 </div>
-<a id="ga5599de31797633ae75a63bcd5a8f4736"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ga5599de31797633ae75a63bcd5a8f4736">&#9670;&nbsp;</a></span>w25qxx_advance_power_down()</h2>
+<a id="ga5599de31797633ae75a63bcd5a8f4736" name="ga5599de31797633ae75a63bcd5a8f4736"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga5599de31797633ae75a63bcd5a8f4736">&#9670;&#160;</a></span>w25qxx_advance_power_down()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -1617,8 +1623,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#ga5599de31797633ae75a63bc
 
 </div>
 </div>
-<a id="ga013a389763200b54daaa345adf9329dc"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ga013a389763200b54daaa345adf9329dc">&#9670;&nbsp;</a></span>w25qxx_advance_read()</h2>
+<a id="ga013a389763200b54daaa345adf9329dc" name="ga013a389763200b54daaa345adf9329dc"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga013a389763200b54daaa345adf9329dc">&#9670;&#160;</a></span>w25qxx_advance_read()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -1669,8 +1675,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#ga013a389763200b54daaa345
 
 </div>
 </div>
-<a id="gac1773fe914a01825ca28346205601036"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#gac1773fe914a01825ca28346205601036">&#9670;&nbsp;</a></span>w25qxx_advance_read_block_lock()</h2>
+<a id="gac1773fe914a01825ca28346205601036" name="gac1773fe914a01825ca28346205601036"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gac1773fe914a01825ca28346205601036">&#9670;&#160;</a></span>w25qxx_advance_read_block_lock()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -1714,8 +1720,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#gac1773fe914a01825ca28346
 
 </div>
 </div>
-<a id="ga0f65053ad28443f19ed73dbc3412b5b2"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ga0f65053ad28443f19ed73dbc3412b5b2">&#9670;&nbsp;</a></span>w25qxx_advance_reset()</h2>
+<a id="ga0f65053ad28443f19ed73dbc3412b5b2" name="ga0f65053ad28443f19ed73dbc3412b5b2"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga0f65053ad28443f19ed73dbc3412b5b2">&#9670;&#160;</a></span>w25qxx_advance_reset()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -1742,8 +1748,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#ga0f65053ad28443f19ed73db
 
 </div>
 </div>
-<a id="ga9325acc424c95624f15e11631082201d"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ga9325acc424c95624f15e11631082201d">&#9670;&nbsp;</a></span>w25qxx_advance_sector_erase_4k()</h2>
+<a id="ga9325acc424c95624f15e11631082201d" name="ga9325acc424c95624f15e11631082201d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga9325acc424c95624f15e11631082201d">&#9670;&#160;</a></span>w25qxx_advance_sector_erase_4k()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -1776,8 +1782,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#ga9325acc424c95624f15e116
 
 </div>
 </div>
-<a id="ga5e4938b4575c417ae22fa82079459b1a"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ga5e4938b4575c417ae22fa82079459b1a">&#9670;&nbsp;</a></span>w25qxx_advance_set_status1()</h2>
+<a id="ga5e4938b4575c417ae22fa82079459b1a" name="ga5e4938b4575c417ae22fa82079459b1a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga5e4938b4575c417ae22fa82079459b1a">&#9670;&#160;</a></span>w25qxx_advance_set_status1()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -1810,8 +1816,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#ga5e4938b4575c417ae22fa82
 
 </div>
 </div>
-<a id="ga9bc0e696b700d66f15b3605e10d33718"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ga9bc0e696b700d66f15b3605e10d33718">&#9670;&nbsp;</a></span>w25qxx_advance_set_status2()</h2>
+<a id="ga9bc0e696b700d66f15b3605e10d33718" name="ga9bc0e696b700d66f15b3605e10d33718"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga9bc0e696b700d66f15b3605e10d33718">&#9670;&#160;</a></span>w25qxx_advance_set_status2()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -1844,8 +1850,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#ga9bc0e696b700d66f15b3605
 
 </div>
 </div>
-<a id="gab5c990ebd4874137b7d23f2b896d4601"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#gab5c990ebd4874137b7d23f2b896d4601">&#9670;&nbsp;</a></span>w25qxx_advance_set_status3()</h2>
+<a id="gab5c990ebd4874137b7d23f2b896d4601" name="gab5c990ebd4874137b7d23f2b896d4601"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gab5c990ebd4874137b7d23f2b896d4601">&#9670;&#160;</a></span>w25qxx_advance_set_status3()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -1878,8 +1884,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#gab5c990ebd4874137b7d23f2
 
 </div>
 </div>
-<a id="ga8a57e2d056d452abc14b0a08d4223251"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ga8a57e2d056d452abc14b0a08d4223251">&#9670;&nbsp;</a></span>w25qxx_advance_wake_up()</h2>
+<a id="ga8a57e2d056d452abc14b0a08d4223251" name="ga8a57e2d056d452abc14b0a08d4223251"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga8a57e2d056d452abc14b0a08d4223251">&#9670;&#160;</a></span>w25qxx_advance_wake_up()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -1906,8 +1912,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#ga8a57e2d056d452abc14b0a0
 
 </div>
 </div>
-<a id="ga63f4e1dce2ef7c7de56461524fd22d04"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ga63f4e1dce2ef7c7de56461524fd22d04">&#9670;&nbsp;</a></span>w25qxx_advance_write()</h2>
+<a id="ga63f4e1dce2ef7c7de56461524fd22d04" name="ga63f4e1dce2ef7c7de56461524fd22d04"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga63f4e1dce2ef7c7de56461524fd22d04">&#9670;&#160;</a></span>w25qxx_advance_write()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -1958,8 +1964,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#ga63f4e1dce2ef7c7de564615
 
 </div>
 </div>
-<a id="gaf78e9f136e29b826c1a2b337b8451d6d"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#gaf78e9f136e29b826c1a2b337b8451d6d">&#9670;&nbsp;</a></span>w25qxx_basic_chip_erase()</h2>
+<a id="gaf78e9f136e29b826c1a2b337b8451d6d" name="gaf78e9f136e29b826c1a2b337b8451d6d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaf78e9f136e29b826c1a2b337b8451d6d">&#9670;&#160;</a></span>w25qxx_basic_chip_erase()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -1986,8 +1992,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#gaf78e9f136e29b826c1a2b33
 
 </div>
 </div>
-<a id="gaeb167c2924a3490e9a8d11e0c57d2dc0"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#gaeb167c2924a3490e9a8d11e0c57d2dc0">&#9670;&nbsp;</a></span>w25qxx_basic_deinit()</h2>
+<a id="gaeb167c2924a3490e9a8d11e0c57d2dc0" name="gaeb167c2924a3490e9a8d11e0c57d2dc0"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaeb167c2924a3490e9a8d11e0c57d2dc0">&#9670;&#160;</a></span>w25qxx_basic_deinit()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -2014,8 +2020,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#gaeb167c2924a3490e9a8d11e
 
 </div>
 </div>
-<a id="gacdda3af55c024b55fc9939aa23650356"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#gacdda3af55c024b55fc9939aa23650356">&#9670;&nbsp;</a></span>w25qxx_basic_get_id()</h2>
+<a id="gacdda3af55c024b55fc9939aa23650356" name="gacdda3af55c024b55fc9939aa23650356"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gacdda3af55c024b55fc9939aa23650356">&#9670;&#160;</a></span>w25qxx_basic_get_id()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -2059,8 +2065,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#gacdda3af55c024b55fc9939a
 
 </div>
 </div>
-<a id="ga1e20768311dfdf33c77b442fa874b61a"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ga1e20768311dfdf33c77b442fa874b61a">&#9670;&nbsp;</a></span>w25qxx_basic_init()</h2>
+<a id="ga1e20768311dfdf33c77b442fa874b61a" name="ga1e20768311dfdf33c77b442fa874b61a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga1e20768311dfdf33c77b442fa874b61a">&#9670;&#160;</a></span>w25qxx_basic_init()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -2111,8 +2117,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#ga1e20768311dfdf33c77b442
 
 </div>
 </div>
-<a id="ga572c9f7a0bf2e7ab43dc078121162ec3"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ga572c9f7a0bf2e7ab43dc078121162ec3">&#9670;&nbsp;</a></span>w25qxx_basic_power_down()</h2>
+<a id="ga572c9f7a0bf2e7ab43dc078121162ec3" name="ga572c9f7a0bf2e7ab43dc078121162ec3"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga572c9f7a0bf2e7ab43dc078121162ec3">&#9670;&#160;</a></span>w25qxx_basic_power_down()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -2139,8 +2145,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#ga572c9f7a0bf2e7ab43dc078
 
 </div>
 </div>
-<a id="ga143fa1f19a792142339f3d4e9ce078d0"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ga143fa1f19a792142339f3d4e9ce078d0">&#9670;&nbsp;</a></span>w25qxx_basic_read()</h2>
+<a id="ga143fa1f19a792142339f3d4e9ce078d0" name="ga143fa1f19a792142339f3d4e9ce078d0"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga143fa1f19a792142339f3d4e9ce078d0">&#9670;&#160;</a></span>w25qxx_basic_read()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -2191,8 +2197,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#ga143fa1f19a792142339f3d4
 
 </div>
 </div>
-<a id="ga02914409a9db38f35bc89d9fc4d96a17"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ga02914409a9db38f35bc89d9fc4d96a17">&#9670;&nbsp;</a></span>w25qxx_basic_wake_up()</h2>
+<a id="ga02914409a9db38f35bc89d9fc4d96a17" name="ga02914409a9db38f35bc89d9fc4d96a17"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga02914409a9db38f35bc89d9fc4d96a17">&#9670;&#160;</a></span>w25qxx_basic_wake_up()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -2219,8 +2225,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#ga02914409a9db38f35bc89d9
 
 </div>
 </div>
-<a id="ga5cf24fc78e1b45e845d02ec9133f46ab"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ga5cf24fc78e1b45e845d02ec9133f46ab">&#9670;&nbsp;</a></span>w25qxx_basic_write()</h2>
+<a id="ga5cf24fc78e1b45e845d02ec9133f46ab" name="ga5cf24fc78e1b45e845d02ec9133f46ab"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga5cf24fc78e1b45e845d02ec9133f46ab">&#9670;&#160;</a></span>w25qxx_basic_write()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -2276,7 +2282,7 @@ <h2 class="memtitle"><span class="permalink"><a href="#ga5cf24fc78e1b45e845d02ec
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
-    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
+    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/group__w25qxx__extern__driver.html b/doc/html/group__w25qxx__extern__driver.html
index f7dab08..560747e 100644
--- a/doc/html/group__w25qxx__extern__driver.html
+++ b/doc/html/group__w25qxx__extern__driver.html
@@ -1,9 +1,9 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.8"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>LibDriver W25QXX: w25qxx extern driver function</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -23,11 +23,10 @@
 <div id="titlearea">
 <table cellspacing="0" cellpadding="0">
  <tbody>
- <tr style="height: 56px;">
+ <tr id="projectrow">
   <td id="projectlogo"><img alt="Logo" src="doxygen.png"/></td>
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">LibDriver W25QXX
-   &#160;<span id="projectnumber">1.0.0</span>
+  <td id="projectalign">
+   <div id="projectname">LibDriver W25QXX<span id="projectnumber">&#160;1.0.0</span>
    </div>
    <div id="projectbrief">W25QXX full function driver</div>
   </td>
@@ -36,21 +35,22 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.8 -->
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search/",'.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
 <script type="text/javascript" src="menu.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(function() {
   initMenu('',true,false,'search.php','Search');
   $(document).ready(function() { init_search(); });
 });
-/* @license-end */</script>
+/* @license-end */
+</script>
 <div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
@@ -64,7 +64,7 @@
   </div>
 </div>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(document).ready(function(){initNavTree('group__w25qxx__extern__driver.html',''); initResizable(); });
 /* @license-end */
 </script>
@@ -78,33 +78,39 @@
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
 </div>
 
 <div class="header">
   <div class="summary">
 <a href="#func-members">Functions</a>  </div>
-  <div class="headertitle">
-<div class="title">w25qxx extern driver function<div class="ingroups"><a class="el" href="group__w25qxx__driver.html">w25qxx driver function</a></div></div>  </div>
+  <div class="headertitle"><div class="title">w25qxx extern driver function<div class="ingroups"><a class="el" href="group__w25qxx__driver.html">w25qxx driver function</a></div></div></div>
 </div><!--header-->
 <div class="contents">
 
 <p>w25qxx extern driver modules  
 <a href="#details">More...</a></p>
 <table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
 Functions</h2></td></tr>
-<tr class="memitem:ga9623a3bec148b148498480518a66cb2b"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__extern__driver.html#ga9623a3bec148b148498480518a66cb2b">w25qxx_write_read_reg</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint8_t instruction, uint8_t instruction_line, uint32_t address, uint8_t address_line, uint8_t address_len, uint32_t alternate, uint8_t alternate_line, uint8_t alternate_len, uint8_t dummy, uint8_t *in_buf, uint32_t in_len, uint8_t *out_buf, uint32_t out_len, uint8_t data_line)</td></tr>
-<tr class="memdesc:ga9623a3bec148b148498480518a66cb2b"><td class="mdescLeft">&#160;</td><td class="mdescRight">write and read register  <a href="group__w25qxx__extern__driver.html#ga9623a3bec148b148498480518a66cb2b">More...</a><br /></td></tr>
+<tr class="memitem:ga9623a3bec148b148498480518a66cb2b" id="r_ga9623a3bec148b148498480518a66cb2b"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__extern__driver.html#ga9623a3bec148b148498480518a66cb2b">w25qxx_write_read_reg</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be">w25qxx_handle_t</a> *handle, uint8_t instruction, uint8_t instruction_line, uint32_t address, uint8_t address_line, uint8_t address_len, uint32_t alternate, uint8_t alternate_line, uint8_t alternate_len, uint8_t dummy, uint8_t *in_buf, uint32_t in_len, uint8_t *out_buf, uint32_t out_len, uint8_t data_line)</td></tr>
+<tr class="memdesc:ga9623a3bec148b148498480518a66cb2b"><td class="mdescLeft">&#160;</td><td class="mdescRight">write and read register  <br /></td></tr>
 <tr class="separator:ga9623a3bec148b148498480518a66cb2b"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
 <p>w25qxx extern driver modules </p>
 <h2 class="groupheader">Function Documentation</h2>
-<a id="ga9623a3bec148b148498480518a66cb2b"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ga9623a3bec148b148498480518a66cb2b">&#9670;&nbsp;</a></span>w25qxx_write_read_reg()</h2>
+<a id="ga9623a3bec148b148498480518a66cb2b" name="ga9623a3bec148b148498480518a66cb2b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga9623a3bec148b148498480518a66cb2b">&#9670;&#160;</a></span>w25qxx_write_read_reg()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -246,7 +252,7 @@ <h2 class="memtitle"><span class="permalink"><a href="#ga9623a3bec148b1484984805
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
-    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
+    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/group__w25qxx__interface__driver.html b/doc/html/group__w25qxx__interface__driver.html
index 73b43ad..45393d4 100644
--- a/doc/html/group__w25qxx__interface__driver.html
+++ b/doc/html/group__w25qxx__interface__driver.html
@@ -1,9 +1,9 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.8"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>LibDriver W25QXX: w25qxx interface driver function</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -23,11 +23,10 @@
 <div id="titlearea">
 <table cellspacing="0" cellpadding="0">
  <tbody>
- <tr style="height: 56px;">
+ <tr id="projectrow">
   <td id="projectlogo"><img alt="Logo" src="doxygen.png"/></td>
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">LibDriver W25QXX
-   &#160;<span id="projectnumber">1.0.0</span>
+  <td id="projectalign">
+   <div id="projectname">LibDriver W25QXX<span id="projectnumber">&#160;1.0.0</span>
    </div>
    <div id="projectbrief">W25QXX full function driver</div>
   </td>
@@ -36,21 +35,22 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.8 -->
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search/",'.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
 <script type="text/javascript" src="menu.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(function() {
   initMenu('',true,false,'search.php','Search');
   $(document).ready(function() { init_search(); });
 });
-/* @license-end */</script>
+/* @license-end */
+</script>
 <div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
@@ -64,7 +64,7 @@
   </div>
 </div>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(document).ready(function(){initNavTree('group__w25qxx__interface__driver.html',''); initResizable(); });
 /* @license-end */
 </script>
@@ -78,48 +78,54 @@
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
 </div>
 
 <div class="header">
   <div class="summary">
 <a href="#func-members">Functions</a>  </div>
-  <div class="headertitle">
-<div class="title">w25qxx interface driver function<div class="ingroups"><a class="el" href="group__w25qxx__driver.html">w25qxx driver function</a></div></div>  </div>
+  <div class="headertitle"><div class="title">w25qxx interface driver function<div class="ingroups"><a class="el" href="group__w25qxx__driver.html">w25qxx driver function</a></div></div></div>
 </div><!--header-->
 <div class="contents">
 
 <p>w25qxx interface driver modules  
 <a href="#details">More...</a></p>
 <table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
 Functions</h2></td></tr>
-<tr class="memitem:ga2bdc17a556f1c801a38656331f3bb7b6"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__interface__driver.html#ga2bdc17a556f1c801a38656331f3bb7b6">w25qxx_interface_spi_qspi_init</a> (void)</td></tr>
-<tr class="memdesc:ga2bdc17a556f1c801a38656331f3bb7b6"><td class="mdescLeft">&#160;</td><td class="mdescRight">interface spi qspi bus init  <a href="group__w25qxx__interface__driver.html#ga2bdc17a556f1c801a38656331f3bb7b6">More...</a><br /></td></tr>
+<tr class="memitem:ga2bdc17a556f1c801a38656331f3bb7b6" id="r_ga2bdc17a556f1c801a38656331f3bb7b6"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__interface__driver.html#ga2bdc17a556f1c801a38656331f3bb7b6">w25qxx_interface_spi_qspi_init</a> (void)</td></tr>
+<tr class="memdesc:ga2bdc17a556f1c801a38656331f3bb7b6"><td class="mdescLeft">&#160;</td><td class="mdescRight">interface spi qspi bus init  <br /></td></tr>
 <tr class="separator:ga2bdc17a556f1c801a38656331f3bb7b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga091f3607fcdd47f9e5f94cf1397bd46a"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__interface__driver.html#ga091f3607fcdd47f9e5f94cf1397bd46a">w25qxx_interface_spi_qspi_deinit</a> (void)</td></tr>
-<tr class="memdesc:ga091f3607fcdd47f9e5f94cf1397bd46a"><td class="mdescLeft">&#160;</td><td class="mdescRight">interface spi qspi bus deinit  <a href="group__w25qxx__interface__driver.html#ga091f3607fcdd47f9e5f94cf1397bd46a">More...</a><br /></td></tr>
+<tr class="memitem:ga091f3607fcdd47f9e5f94cf1397bd46a" id="r_ga091f3607fcdd47f9e5f94cf1397bd46a"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__interface__driver.html#ga091f3607fcdd47f9e5f94cf1397bd46a">w25qxx_interface_spi_qspi_deinit</a> (void)</td></tr>
+<tr class="memdesc:ga091f3607fcdd47f9e5f94cf1397bd46a"><td class="mdescLeft">&#160;</td><td class="mdescRight">interface spi qspi bus deinit  <br /></td></tr>
 <tr class="separator:ga091f3607fcdd47f9e5f94cf1397bd46a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga3d76ea1f431978f6b55edfd0628c94cd"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__interface__driver.html#ga3d76ea1f431978f6b55edfd0628c94cd">w25qxx_interface_spi_qspi_write_read</a> (uint8_t instruction, uint8_t instruction_line, uint32_t address, uint8_t address_line, uint8_t address_len, uint32_t alternate, uint8_t alternate_line, uint8_t alternate_len, uint8_t dummy, uint8_t *in_buf, uint32_t in_len, uint8_t *out_buf, uint32_t out_len, uint8_t data_line)</td></tr>
-<tr class="memdesc:ga3d76ea1f431978f6b55edfd0628c94cd"><td class="mdescLeft">&#160;</td><td class="mdescRight">interface spi qspi bus write read  <a href="group__w25qxx__interface__driver.html#ga3d76ea1f431978f6b55edfd0628c94cd">More...</a><br /></td></tr>
+<tr class="memitem:ga3d76ea1f431978f6b55edfd0628c94cd" id="r_ga3d76ea1f431978f6b55edfd0628c94cd"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__interface__driver.html#ga3d76ea1f431978f6b55edfd0628c94cd">w25qxx_interface_spi_qspi_write_read</a> (uint8_t instruction, uint8_t instruction_line, uint32_t address, uint8_t address_line, uint8_t address_len, uint32_t alternate, uint8_t alternate_line, uint8_t alternate_len, uint8_t dummy, uint8_t *in_buf, uint32_t in_len, uint8_t *out_buf, uint32_t out_len, uint8_t data_line)</td></tr>
+<tr class="memdesc:ga3d76ea1f431978f6b55edfd0628c94cd"><td class="mdescLeft">&#160;</td><td class="mdescRight">interface spi qspi bus write read  <br /></td></tr>
 <tr class="separator:ga3d76ea1f431978f6b55edfd0628c94cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga964fa232abf98737cb98458eebfff82c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__interface__driver.html#ga964fa232abf98737cb98458eebfff82c">w25qxx_interface_delay_ms</a> (uint32_t ms)</td></tr>
-<tr class="memdesc:ga964fa232abf98737cb98458eebfff82c"><td class="mdescLeft">&#160;</td><td class="mdescRight">interface delay ms  <a href="group__w25qxx__interface__driver.html#ga964fa232abf98737cb98458eebfff82c">More...</a><br /></td></tr>
+<tr class="memitem:ga964fa232abf98737cb98458eebfff82c" id="r_ga964fa232abf98737cb98458eebfff82c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__interface__driver.html#ga964fa232abf98737cb98458eebfff82c">w25qxx_interface_delay_ms</a> (uint32_t ms)</td></tr>
+<tr class="memdesc:ga964fa232abf98737cb98458eebfff82c"><td class="mdescLeft">&#160;</td><td class="mdescRight">interface delay ms  <br /></td></tr>
 <tr class="separator:ga964fa232abf98737cb98458eebfff82c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga38e79039b913154c9dd1036ff52bb420"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__interface__driver.html#ga38e79039b913154c9dd1036ff52bb420">w25qxx_interface_delay_us</a> (uint32_t us)</td></tr>
-<tr class="memdesc:ga38e79039b913154c9dd1036ff52bb420"><td class="mdescLeft">&#160;</td><td class="mdescRight">interface delay us  <a href="group__w25qxx__interface__driver.html#ga38e79039b913154c9dd1036ff52bb420">More...</a><br /></td></tr>
+<tr class="memitem:ga38e79039b913154c9dd1036ff52bb420" id="r_ga38e79039b913154c9dd1036ff52bb420"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__interface__driver.html#ga38e79039b913154c9dd1036ff52bb420">w25qxx_interface_delay_us</a> (uint32_t us)</td></tr>
+<tr class="memdesc:ga38e79039b913154c9dd1036ff52bb420"><td class="mdescLeft">&#160;</td><td class="mdescRight">interface delay us  <br /></td></tr>
 <tr class="separator:ga38e79039b913154c9dd1036ff52bb420"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga5325474fa17f6833744e631613fd2a0e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a> (const char *const fmt,...)</td></tr>
-<tr class="memdesc:ga5325474fa17f6833744e631613fd2a0e"><td class="mdescLeft">&#160;</td><td class="mdescRight">interface print format data  <a href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">More...</a><br /></td></tr>
+<tr class="memitem:ga5325474fa17f6833744e631613fd2a0e" id="r_ga5325474fa17f6833744e631613fd2a0e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e">w25qxx_interface_debug_print</a> (const char *const fmt,...)</td></tr>
+<tr class="memdesc:ga5325474fa17f6833744e631613fd2a0e"><td class="mdescLeft">&#160;</td><td class="mdescRight">interface print format data  <br /></td></tr>
 <tr class="separator:ga5325474fa17f6833744e631613fd2a0e"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
 <p>w25qxx interface driver modules </p>
 <h2 class="groupheader">Function Documentation</h2>
-<a id="ga5325474fa17f6833744e631613fd2a0e"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ga5325474fa17f6833744e631613fd2a0e">&#9670;&nbsp;</a></span>w25qxx_interface_debug_print()</h2>
+<a id="ga5325474fa17f6833744e631613fd2a0e" name="ga5325474fa17f6833744e631613fd2a0e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga5325474fa17f6833744e631613fd2a0e">&#9670;&#160;</a></span>w25qxx_interface_debug_print()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -157,8 +163,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#ga5325474fa17f6833744e631
 
 </div>
 </div>
-<a id="ga964fa232abf98737cb98458eebfff82c"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ga964fa232abf98737cb98458eebfff82c">&#9670;&nbsp;</a></span>w25qxx_interface_delay_ms()</h2>
+<a id="ga964fa232abf98737cb98458eebfff82c" name="ga964fa232abf98737cb98458eebfff82c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga964fa232abf98737cb98458eebfff82c">&#9670;&#160;</a></span>w25qxx_interface_delay_ms()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -186,8 +192,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#ga964fa232abf98737cb98458
 
 </div>
 </div>
-<a id="ga38e79039b913154c9dd1036ff52bb420"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ga38e79039b913154c9dd1036ff52bb420">&#9670;&nbsp;</a></span>w25qxx_interface_delay_us()</h2>
+<a id="ga38e79039b913154c9dd1036ff52bb420" name="ga38e79039b913154c9dd1036ff52bb420"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga38e79039b913154c9dd1036ff52bb420">&#9670;&#160;</a></span>w25qxx_interface_delay_us()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -215,8 +221,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#ga38e79039b913154c9dd1036
 
 </div>
 </div>
-<a id="ga091f3607fcdd47f9e5f94cf1397bd46a"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ga091f3607fcdd47f9e5f94cf1397bd46a">&#9670;&nbsp;</a></span>w25qxx_interface_spi_qspi_deinit()</h2>
+<a id="ga091f3607fcdd47f9e5f94cf1397bd46a" name="ga091f3607fcdd47f9e5f94cf1397bd46a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga091f3607fcdd47f9e5f94cf1397bd46a">&#9670;&#160;</a></span>w25qxx_interface_spi_qspi_deinit()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -243,8 +249,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#ga091f3607fcdd47f9e5f94cf
 
 </div>
 </div>
-<a id="ga2bdc17a556f1c801a38656331f3bb7b6"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ga2bdc17a556f1c801a38656331f3bb7b6">&#9670;&nbsp;</a></span>w25qxx_interface_spi_qspi_init()</h2>
+<a id="ga2bdc17a556f1c801a38656331f3bb7b6" name="ga2bdc17a556f1c801a38656331f3bb7b6"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga2bdc17a556f1c801a38656331f3bb7b6">&#9670;&#160;</a></span>w25qxx_interface_spi_qspi_init()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -271,8 +277,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#ga2bdc17a556f1c801a386563
 
 </div>
 </div>
-<a id="ga3d76ea1f431978f6b55edfd0628c94cd"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ga3d76ea1f431978f6b55edfd0628c94cd">&#9670;&nbsp;</a></span>w25qxx_interface_spi_qspi_write_read()</h2>
+<a id="ga3d76ea1f431978f6b55edfd0628c94cd" name="ga3d76ea1f431978f6b55edfd0628c94cd"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga3d76ea1f431978f6b55edfd0628c94cd">&#9670;&#160;</a></span>w25qxx_interface_spi_qspi_write_read()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -405,7 +411,7 @@ <h2 class="memtitle"><span class="permalink"><a href="#ga3d76ea1f431978f6b55edfd
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
-    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
+    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/group__w25qxx__link__driver.html b/doc/html/group__w25qxx__link__driver.html
index 0d4a7e9..ec23540 100644
--- a/doc/html/group__w25qxx__link__driver.html
+++ b/doc/html/group__w25qxx__link__driver.html
@@ -1,9 +1,9 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.8"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>LibDriver W25QXX: w25qxx link driver function</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -23,11 +23,10 @@
 <div id="titlearea">
 <table cellspacing="0" cellpadding="0">
  <tbody>
- <tr style="height: 56px;">
+ <tr id="projectrow">
   <td id="projectlogo"><img alt="Logo" src="doxygen.png"/></td>
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">LibDriver W25QXX
-   &#160;<span id="projectnumber">1.0.0</span>
+  <td id="projectalign">
+   <div id="projectname">LibDriver W25QXX<span id="projectnumber">&#160;1.0.0</span>
    </div>
    <div id="projectbrief">W25QXX full function driver</div>
   </td>
@@ -36,21 +35,22 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.8 -->
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search/",'.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
 <script type="text/javascript" src="menu.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(function() {
   initMenu('',true,false,'search.php','Search');
   $(document).ready(function() { init_search(); });
 });
-/* @license-end */</script>
+/* @license-end */
+</script>
 <div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
@@ -64,7 +64,7 @@
   </div>
 </div>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(document).ready(function(){initNavTree('group__w25qxx__link__driver.html',''); initResizable(); });
 /* @license-end */
 </script>
@@ -78,51 +78,57 @@
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
 </div>
 
 <div class="header">
   <div class="summary">
 <a href="#define-members">Macros</a>  </div>
-  <div class="headertitle">
-<div class="title">w25qxx link driver function<div class="ingroups"><a class="el" href="group__w25qxx__driver.html">w25qxx driver function</a></div></div>  </div>
+  <div class="headertitle"><div class="title">w25qxx link driver function<div class="ingroups"><a class="el" href="group__w25qxx__driver.html">w25qxx driver function</a></div></div></div>
 </div><!--header-->
 <div class="contents">
 
 <p>w25qxx link driver modules  
 <a href="#details">More...</a></p>
 <table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="define-members" name="define-members"></a>
 Macros</h2></td></tr>
-<tr class="memitem:ga995378489f95bc6bbddbe710557e3384"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__link__driver.html#ga995378489f95bc6bbddbe710557e3384">DRIVER_W25QXX_LINK_INIT</a>(HANDLE,  STRUCTURE)&#160;&#160;&#160;memset(HANDLE, 0, sizeof(STRUCTURE))</td></tr>
-<tr class="memdesc:ga995378489f95bc6bbddbe710557e3384"><td class="mdescLeft">&#160;</td><td class="mdescRight">initialize w25qxx_handle_t structure  <a href="group__w25qxx__link__driver.html#ga995378489f95bc6bbddbe710557e3384">More...</a><br /></td></tr>
+<tr class="memitem:ga995378489f95bc6bbddbe710557e3384" id="r_ga995378489f95bc6bbddbe710557e3384"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__link__driver.html#ga995378489f95bc6bbddbe710557e3384">DRIVER_W25QXX_LINK_INIT</a>(HANDLE,  STRUCTURE)&#160;&#160;&#160;memset(HANDLE, 0, sizeof(STRUCTURE))</td></tr>
+<tr class="memdesc:ga995378489f95bc6bbddbe710557e3384"><td class="mdescLeft">&#160;</td><td class="mdescRight">initialize w25qxx_handle_t structure  <br /></td></tr>
 <tr class="separator:ga995378489f95bc6bbddbe710557e3384"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab2587de93f1dba5664eede8cd787a88a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__link__driver.html#gab2587de93f1dba5664eede8cd787a88a">DRIVER_W25QXX_LINK_SPI_QSPI_INIT</a>(HANDLE,  FUC)&#160;&#160;&#160;(HANDLE)-&gt;spi_qspi_init = FUC</td></tr>
-<tr class="memdesc:gab2587de93f1dba5664eede8cd787a88a"><td class="mdescLeft">&#160;</td><td class="mdescRight">link spi_qspi_init function  <a href="group__w25qxx__link__driver.html#gab2587de93f1dba5664eede8cd787a88a">More...</a><br /></td></tr>
+<tr class="memitem:gab2587de93f1dba5664eede8cd787a88a" id="r_gab2587de93f1dba5664eede8cd787a88a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__link__driver.html#gab2587de93f1dba5664eede8cd787a88a">DRIVER_W25QXX_LINK_SPI_QSPI_INIT</a>(HANDLE,  FUC)&#160;&#160;&#160;(HANDLE)-&gt;spi_qspi_init = FUC</td></tr>
+<tr class="memdesc:gab2587de93f1dba5664eede8cd787a88a"><td class="mdescLeft">&#160;</td><td class="mdescRight">link spi_qspi_init function  <br /></td></tr>
 <tr class="separator:gab2587de93f1dba5664eede8cd787a88a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaec8b55e83b46907be1dd9e7c50be550d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__link__driver.html#gaec8b55e83b46907be1dd9e7c50be550d">DRIVER_W25QXX_LINK_SPI_QSPI_DEINIT</a>(HANDLE,  FUC)&#160;&#160;&#160;(HANDLE)-&gt;spi_qspi_deinit = FUC</td></tr>
-<tr class="memdesc:gaec8b55e83b46907be1dd9e7c50be550d"><td class="mdescLeft">&#160;</td><td class="mdescRight">link spi_qspi_deinit function  <a href="group__w25qxx__link__driver.html#gaec8b55e83b46907be1dd9e7c50be550d">More...</a><br /></td></tr>
+<tr class="memitem:gaec8b55e83b46907be1dd9e7c50be550d" id="r_gaec8b55e83b46907be1dd9e7c50be550d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__link__driver.html#gaec8b55e83b46907be1dd9e7c50be550d">DRIVER_W25QXX_LINK_SPI_QSPI_DEINIT</a>(HANDLE,  FUC)&#160;&#160;&#160;(HANDLE)-&gt;spi_qspi_deinit = FUC</td></tr>
+<tr class="memdesc:gaec8b55e83b46907be1dd9e7c50be550d"><td class="mdescLeft">&#160;</td><td class="mdescRight">link spi_qspi_deinit function  <br /></td></tr>
 <tr class="separator:gaec8b55e83b46907be1dd9e7c50be550d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac8f0ca0a725790bace3241d1d616e3d1"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__link__driver.html#gac8f0ca0a725790bace3241d1d616e3d1">DRIVER_W25QXX_LINK_SPI_QSPI_WRITE_READ</a>(HANDLE,  FUC)&#160;&#160;&#160;(HANDLE)-&gt;spi_qspi_write_read = FUC</td></tr>
-<tr class="memdesc:gac8f0ca0a725790bace3241d1d616e3d1"><td class="mdescLeft">&#160;</td><td class="mdescRight">link spi_qspi_write_read function  <a href="group__w25qxx__link__driver.html#gac8f0ca0a725790bace3241d1d616e3d1">More...</a><br /></td></tr>
+<tr class="memitem:gac8f0ca0a725790bace3241d1d616e3d1" id="r_gac8f0ca0a725790bace3241d1d616e3d1"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__link__driver.html#gac8f0ca0a725790bace3241d1d616e3d1">DRIVER_W25QXX_LINK_SPI_QSPI_WRITE_READ</a>(HANDLE,  FUC)&#160;&#160;&#160;(HANDLE)-&gt;spi_qspi_write_read = FUC</td></tr>
+<tr class="memdesc:gac8f0ca0a725790bace3241d1d616e3d1"><td class="mdescLeft">&#160;</td><td class="mdescRight">link spi_qspi_write_read function  <br /></td></tr>
 <tr class="separator:gac8f0ca0a725790bace3241d1d616e3d1"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga7555618f13d2de0003ae6d9483085180"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__link__driver.html#ga7555618f13d2de0003ae6d9483085180">DRIVER_W25QXX_LINK_DELAY_MS</a>(HANDLE,  FUC)&#160;&#160;&#160;(HANDLE)-&gt;delay_ms = FUC</td></tr>
-<tr class="memdesc:ga7555618f13d2de0003ae6d9483085180"><td class="mdescLeft">&#160;</td><td class="mdescRight">link delay_ms function  <a href="group__w25qxx__link__driver.html#ga7555618f13d2de0003ae6d9483085180">More...</a><br /></td></tr>
+<tr class="memitem:ga7555618f13d2de0003ae6d9483085180" id="r_ga7555618f13d2de0003ae6d9483085180"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__link__driver.html#ga7555618f13d2de0003ae6d9483085180">DRIVER_W25QXX_LINK_DELAY_MS</a>(HANDLE,  FUC)&#160;&#160;&#160;(HANDLE)-&gt;delay_ms = FUC</td></tr>
+<tr class="memdesc:ga7555618f13d2de0003ae6d9483085180"><td class="mdescLeft">&#160;</td><td class="mdescRight">link delay_ms function  <br /></td></tr>
 <tr class="separator:ga7555618f13d2de0003ae6d9483085180"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gafc81bf850c80dfa316f0c6ab40be6e67"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__link__driver.html#gafc81bf850c80dfa316f0c6ab40be6e67">DRIVER_W25QXX_LINK_DELAY_US</a>(HANDLE,  FUC)&#160;&#160;&#160;(HANDLE)-&gt;delay_us = FUC</td></tr>
-<tr class="memdesc:gafc81bf850c80dfa316f0c6ab40be6e67"><td class="mdescLeft">&#160;</td><td class="mdescRight">link delay_us function  <a href="group__w25qxx__link__driver.html#gafc81bf850c80dfa316f0c6ab40be6e67">More...</a><br /></td></tr>
+<tr class="memitem:gafc81bf850c80dfa316f0c6ab40be6e67" id="r_gafc81bf850c80dfa316f0c6ab40be6e67"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__link__driver.html#gafc81bf850c80dfa316f0c6ab40be6e67">DRIVER_W25QXX_LINK_DELAY_US</a>(HANDLE,  FUC)&#160;&#160;&#160;(HANDLE)-&gt;delay_us = FUC</td></tr>
+<tr class="memdesc:gafc81bf850c80dfa316f0c6ab40be6e67"><td class="mdescLeft">&#160;</td><td class="mdescRight">link delay_us function  <br /></td></tr>
 <tr class="separator:gafc81bf850c80dfa316f0c6ab40be6e67"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab8d49ef9dca942fe5f37c30dcd7e22a6"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__link__driver.html#gab8d49ef9dca942fe5f37c30dcd7e22a6">DRIVER_W25QXX_LINK_DEBUG_PRINT</a>(HANDLE,  FUC)&#160;&#160;&#160;(HANDLE)-&gt;debug_print = FUC</td></tr>
-<tr class="memdesc:gab8d49ef9dca942fe5f37c30dcd7e22a6"><td class="mdescLeft">&#160;</td><td class="mdescRight">link debug_print function  <a href="group__w25qxx__link__driver.html#gab8d49ef9dca942fe5f37c30dcd7e22a6">More...</a><br /></td></tr>
+<tr class="memitem:gab8d49ef9dca942fe5f37c30dcd7e22a6" id="r_gab8d49ef9dca942fe5f37c30dcd7e22a6"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__link__driver.html#gab8d49ef9dca942fe5f37c30dcd7e22a6">DRIVER_W25QXX_LINK_DEBUG_PRINT</a>(HANDLE,  FUC)&#160;&#160;&#160;(HANDLE)-&gt;debug_print = FUC</td></tr>
+<tr class="memdesc:gab8d49ef9dca942fe5f37c30dcd7e22a6"><td class="mdescLeft">&#160;</td><td class="mdescRight">link debug_print function  <br /></td></tr>
 <tr class="separator:gab8d49ef9dca942fe5f37c30dcd7e22a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
 <p>w25qxx link driver modules </p>
 <h2 class="groupheader">Macro Definition Documentation</h2>
-<a id="gab8d49ef9dca942fe5f37c30dcd7e22a6"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#gab8d49ef9dca942fe5f37c30dcd7e22a6">&#9670;&nbsp;</a></span>DRIVER_W25QXX_LINK_DEBUG_PRINT</h2>
+<a id="gab8d49ef9dca942fe5f37c30dcd7e22a6" name="gab8d49ef9dca942fe5f37c30dcd7e22a6"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gab8d49ef9dca942fe5f37c30dcd7e22a6">&#9670;&#160;</a></span>DRIVER_W25QXX_LINK_DEBUG_PRINT</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -161,8 +167,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#gab8d49ef9dca942fe5f37c30
 
 </div>
 </div>
-<a id="ga7555618f13d2de0003ae6d9483085180"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ga7555618f13d2de0003ae6d9483085180">&#9670;&nbsp;</a></span>DRIVER_W25QXX_LINK_DELAY_MS</h2>
+<a id="ga7555618f13d2de0003ae6d9483085180" name="ga7555618f13d2de0003ae6d9483085180"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga7555618f13d2de0003ae6d9483085180">&#9670;&#160;</a></span>DRIVER_W25QXX_LINK_DELAY_MS</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -201,8 +207,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#ga7555618f13d2de0003ae6d9
 
 </div>
 </div>
-<a id="gafc81bf850c80dfa316f0c6ab40be6e67"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#gafc81bf850c80dfa316f0c6ab40be6e67">&#9670;&nbsp;</a></span>DRIVER_W25QXX_LINK_DELAY_US</h2>
+<a id="gafc81bf850c80dfa316f0c6ab40be6e67" name="gafc81bf850c80dfa316f0c6ab40be6e67"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gafc81bf850c80dfa316f0c6ab40be6e67">&#9670;&#160;</a></span>DRIVER_W25QXX_LINK_DELAY_US</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -241,8 +247,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#gafc81bf850c80dfa316f0c6a
 
 </div>
 </div>
-<a id="ga995378489f95bc6bbddbe710557e3384"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ga995378489f95bc6bbddbe710557e3384">&#9670;&nbsp;</a></span>DRIVER_W25QXX_LINK_INIT</h2>
+<a id="ga995378489f95bc6bbddbe710557e3384" name="ga995378489f95bc6bbddbe710557e3384"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga995378489f95bc6bbddbe710557e3384">&#9670;&#160;</a></span>DRIVER_W25QXX_LINK_INIT</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -281,8 +287,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#ga995378489f95bc6bbddbe71
 
 </div>
 </div>
-<a id="gaec8b55e83b46907be1dd9e7c50be550d"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#gaec8b55e83b46907be1dd9e7c50be550d">&#9670;&nbsp;</a></span>DRIVER_W25QXX_LINK_SPI_QSPI_DEINIT</h2>
+<a id="gaec8b55e83b46907be1dd9e7c50be550d" name="gaec8b55e83b46907be1dd9e7c50be550d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaec8b55e83b46907be1dd9e7c50be550d">&#9670;&#160;</a></span>DRIVER_W25QXX_LINK_SPI_QSPI_DEINIT</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -321,8 +327,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#gaec8b55e83b46907be1dd9e7
 
 </div>
 </div>
-<a id="gab2587de93f1dba5664eede8cd787a88a"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#gab2587de93f1dba5664eede8cd787a88a">&#9670;&nbsp;</a></span>DRIVER_W25QXX_LINK_SPI_QSPI_INIT</h2>
+<a id="gab2587de93f1dba5664eede8cd787a88a" name="gab2587de93f1dba5664eede8cd787a88a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gab2587de93f1dba5664eede8cd787a88a">&#9670;&#160;</a></span>DRIVER_W25QXX_LINK_SPI_QSPI_INIT</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -361,8 +367,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#gab2587de93f1dba5664eede8
 
 </div>
 </div>
-<a id="gac8f0ca0a725790bace3241d1d616e3d1"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#gac8f0ca0a725790bace3241d1d616e3d1">&#9670;&nbsp;</a></span>DRIVER_W25QXX_LINK_SPI_QSPI_WRITE_READ</h2>
+<a id="gac8f0ca0a725790bace3241d1d616e3d1" name="gac8f0ca0a725790bace3241d1d616e3d1"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gac8f0ca0a725790bace3241d1d616e3d1">&#9670;&#160;</a></span>DRIVER_W25QXX_LINK_SPI_QSPI_WRITE_READ</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -406,7 +412,7 @@ <h2 class="memtitle"><span class="permalink"><a href="#gac8f0ca0a725790bace3241d
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
-    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
+    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/group__w25qxx__test__driver.html b/doc/html/group__w25qxx__test__driver.html
index e872ada..a5a3888 100644
--- a/doc/html/group__w25qxx__test__driver.html
+++ b/doc/html/group__w25qxx__test__driver.html
@@ -1,9 +1,9 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.8"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>LibDriver W25QXX: w25qxx test driver function</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -23,11 +23,10 @@
 <div id="titlearea">
 <table cellspacing="0" cellpadding="0">
  <tbody>
- <tr style="height: 56px;">
+ <tr id="projectrow">
   <td id="projectlogo"><img alt="Logo" src="doxygen.png"/></td>
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">LibDriver W25QXX
-   &#160;<span id="projectnumber">1.0.0</span>
+  <td id="projectalign">
+   <div id="projectname">LibDriver W25QXX<span id="projectnumber">&#160;1.0.0</span>
    </div>
    <div id="projectbrief">W25QXX full function driver</div>
   </td>
@@ -36,21 +35,22 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.8 -->
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search/",'.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
 <script type="text/javascript" src="menu.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(function() {
   initMenu('',true,false,'search.php','Search');
   $(document).ready(function() { init_search(); });
 });
-/* @license-end */</script>
+/* @license-end */
+</script>
 <div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
@@ -64,7 +64,7 @@
   </div>
 </div>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(document).ready(function(){initNavTree('group__w25qxx__test__driver.html',''); initResizable(); });
 /* @license-end */
 </script>
@@ -78,43 +78,49 @@
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
 </div>
 
 <div class="header">
   <div class="summary">
 <a href="#define-members">Macros</a> &#124;
 <a href="#func-members">Functions</a>  </div>
-  <div class="headertitle">
-<div class="title">w25qxx test driver function<div class="ingroups"><a class="el" href="group__w25qxx__driver.html">w25qxx driver function</a></div></div>  </div>
+  <div class="headertitle"><div class="title">w25qxx test driver function<div class="ingroups"><a class="el" href="group__w25qxx__driver.html">w25qxx driver function</a></div></div></div>
 </div><!--header-->
 <div class="contents">
 
 <p>w25qxx test driver modules  
 <a href="#details">More...</a></p>
 <table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="define-members" name="define-members"></a>
 Macros</h2></td></tr>
-<tr class="memitem:ga8be86baae6f8448171125c70da1fbfa0"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__test__driver.html#ga8be86baae6f8448171125c70da1fbfa0">W25QXX_ENABLE_ERASE_READ_TEST</a>&#160;&#160;&#160;1</td></tr>
-<tr class="memdesc:ga8be86baae6f8448171125c70da1fbfa0"><td class="mdescLeft">&#160;</td><td class="mdescRight">w25qxx enable erase read test enumeration definition  <a href="group__w25qxx__test__driver.html#ga8be86baae6f8448171125c70da1fbfa0">More...</a><br /></td></tr>
+<tr class="memitem:ga8be86baae6f8448171125c70da1fbfa0" id="r_ga8be86baae6f8448171125c70da1fbfa0"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__test__driver.html#ga8be86baae6f8448171125c70da1fbfa0">W25QXX_ENABLE_ERASE_READ_TEST</a>&#160;&#160;&#160;1</td></tr>
+<tr class="memdesc:ga8be86baae6f8448171125c70da1fbfa0"><td class="mdescLeft">&#160;</td><td class="mdescRight">w25qxx enable erase read test enumeration definition  <br /></td></tr>
 <tr class="separator:ga8be86baae6f8448171125c70da1fbfa0"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
 Functions</h2></td></tr>
-<tr class="memitem:ga4ce42ca34d33cd64cb823040780999af"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__test__driver.html#ga4ce42ca34d33cd64cb823040780999af">w25qxx_read_test</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga6cb4e5164464df549201dd96cb7a58b1">w25qxx_type_t</a> type, <a class="el" href="group__w25qxx__basic__driver.html#gacbf327a42336baf10713a1796ff4f2fe">w25qxx_interface_t</a> interface, <a class="el" href="group__w25qxx__basic__driver.html#gafb2690946f5baf4be6f3a63dde5491fb">w25qxx_bool_t</a> dual_quad_spi_enable)</td></tr>
-<tr class="memdesc:ga4ce42ca34d33cd64cb823040780999af"><td class="mdescLeft">&#160;</td><td class="mdescRight">read test  <a href="group__w25qxx__test__driver.html#ga4ce42ca34d33cd64cb823040780999af">More...</a><br /></td></tr>
+<tr class="memitem:ga4ce42ca34d33cd64cb823040780999af" id="r_ga4ce42ca34d33cd64cb823040780999af"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__test__driver.html#ga4ce42ca34d33cd64cb823040780999af">w25qxx_read_test</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga6cb4e5164464df549201dd96cb7a58b1">w25qxx_type_t</a> type, <a class="el" href="group__w25qxx__basic__driver.html#gacbf327a42336baf10713a1796ff4f2fe">w25qxx_interface_t</a> interface, <a class="el" href="group__w25qxx__basic__driver.html#gafb2690946f5baf4be6f3a63dde5491fb">w25qxx_bool_t</a> dual_quad_spi_enable)</td></tr>
+<tr class="memdesc:ga4ce42ca34d33cd64cb823040780999af"><td class="mdescLeft">&#160;</td><td class="mdescRight">read test  <br /></td></tr>
 <tr class="separator:ga4ce42ca34d33cd64cb823040780999af"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga05d07036254d102ebea0d0b1e83862c8"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__test__driver.html#ga05d07036254d102ebea0d0b1e83862c8">w25qxx_register_test</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga6cb4e5164464df549201dd96cb7a58b1">w25qxx_type_t</a> type, <a class="el" href="group__w25qxx__basic__driver.html#gacbf327a42336baf10713a1796ff4f2fe">w25qxx_interface_t</a> interface, <a class="el" href="group__w25qxx__basic__driver.html#gafb2690946f5baf4be6f3a63dde5491fb">w25qxx_bool_t</a> dual_quad_spi_enable)</td></tr>
-<tr class="memdesc:ga05d07036254d102ebea0d0b1e83862c8"><td class="mdescLeft">&#160;</td><td class="mdescRight">register test  <a href="group__w25qxx__test__driver.html#ga05d07036254d102ebea0d0b1e83862c8">More...</a><br /></td></tr>
+<tr class="memitem:ga05d07036254d102ebea0d0b1e83862c8" id="r_ga05d07036254d102ebea0d0b1e83862c8"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__w25qxx__test__driver.html#ga05d07036254d102ebea0d0b1e83862c8">w25qxx_register_test</a> (<a class="el" href="group__w25qxx__basic__driver.html#ga6cb4e5164464df549201dd96cb7a58b1">w25qxx_type_t</a> type, <a class="el" href="group__w25qxx__basic__driver.html#gacbf327a42336baf10713a1796ff4f2fe">w25qxx_interface_t</a> interface, <a class="el" href="group__w25qxx__basic__driver.html#gafb2690946f5baf4be6f3a63dde5491fb">w25qxx_bool_t</a> dual_quad_spi_enable)</td></tr>
+<tr class="memdesc:ga05d07036254d102ebea0d0b1e83862c8"><td class="mdescLeft">&#160;</td><td class="mdescRight">register test  <br /></td></tr>
 <tr class="separator:ga05d07036254d102ebea0d0b1e83862c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
 <p>w25qxx test driver modules </p>
 <h2 class="groupheader">Macro Definition Documentation</h2>
-<a id="ga8be86baae6f8448171125c70da1fbfa0"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ga8be86baae6f8448171125c70da1fbfa0">&#9670;&nbsp;</a></span>W25QXX_ENABLE_ERASE_READ_TEST</h2>
+<a id="ga8be86baae6f8448171125c70da1fbfa0" name="ga8be86baae6f8448171125c70da1fbfa0"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga8be86baae6f8448171125c70da1fbfa0">&#9670;&#160;</a></span>W25QXX_ENABLE_ERASE_READ_TEST</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -132,8 +138,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#ga8be86baae6f8448171125c7
 </div>
 </div>
 <h2 class="groupheader">Function Documentation</h2>
-<a id="ga4ce42ca34d33cd64cb823040780999af"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ga4ce42ca34d33cd64cb823040780999af">&#9670;&nbsp;</a></span>w25qxx_read_test()</h2>
+<a id="ga4ce42ca34d33cd64cb823040780999af" name="ga4ce42ca34d33cd64cb823040780999af"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga4ce42ca34d33cd64cb823040780999af">&#9670;&#160;</a></span>w25qxx_read_test()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -184,8 +190,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#ga4ce42ca34d33cd64cb82304
 
 </div>
 </div>
-<a id="ga05d07036254d102ebea0d0b1e83862c8"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ga05d07036254d102ebea0d0b1e83862c8">&#9670;&nbsp;</a></span>w25qxx_register_test()</h2>
+<a id="ga05d07036254d102ebea0d0b1e83862c8" name="ga05d07036254d102ebea0d0b1e83862c8"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga05d07036254d102ebea0d0b1e83862c8">&#9670;&#160;</a></span>w25qxx_register_test()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -241,7 +247,7 @@ <h2 class="memtitle"><span class="permalink"><a href="#ga05d07036254d102ebea0d0b
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
-    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
+    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/index.html b/doc/html/index.html
index fa44d30..4cb31bd 100644
--- a/doc/html/index.html
+++ b/doc/html/index.html
@@ -1,9 +1,9 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.8"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>LibDriver W25QXX: LibDriver W25QXX</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -23,11 +23,10 @@
 <div id="titlearea">
 <table cellspacing="0" cellpadding="0">
  <tbody>
- <tr style="height: 56px;">
+ <tr id="projectrow">
   <td id="projectlogo"><img alt="Logo" src="doxygen.png"/></td>
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">LibDriver W25QXX
-   &#160;<span id="projectnumber">1.0.0</span>
+  <td id="projectalign">
+   <div id="projectname">LibDriver W25QXX<span id="projectnumber">&#160;1.0.0</span>
    </div>
    <div id="projectbrief">W25QXX full function driver</div>
   </td>
@@ -36,21 +35,22 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.8 -->
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search/",'.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
 <script type="text/javascript" src="menu.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(function() {
   initMenu('',true,false,'search.php','Search');
   $(document).ready(function() { init_search(); });
 });
-/* @license-end */</script>
+/* @license-end */
+</script>
 <div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
@@ -64,7 +64,7 @@
   </div>
 </div>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(document).ready(function(){initNavTree('index.html',''); initResizable(); });
 /* @license-end */
 </script>
@@ -78,14 +78,20 @@
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
 </div>
 
-<div class="PageDoc"><div class="header">
-  <div class="headertitle">
-<div class="title">LibDriver W25QXX </div>  </div>
+<div><div class="header">
+  <div class="headertitle"><div class="title">LibDriver W25QXX </div></div>
 </div><!--header-->
 <div class="contents">
 <div class="textblock"><p>libdriver w25qxx is a full function driver of w25qxx and it can run in both MCU and Linux platform. </p><dl class="section version"><dt>Version</dt><dd>1.0.0 </dd></dl>
@@ -108,7 +114,7 @@ <h3><center>Copyright (c) LibDriver All rights reserved.</center></h3>
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
-    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
+    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/jquery.js b/doc/html/jquery.js
index 103c32d..1dffb65 100644
--- a/doc/html/jquery.js
+++ b/doc/html/jquery.js
@@ -1,12 +1,11 @@
-/*! jQuery v3.4.1 | (c) JS Foundation and other contributors | jquery.org/license */
-!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],E=C.document,r=Object.getPrototypeOf,s=t.slice,g=t.concat,u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.4.1",k=function(e,t){return new k.fn.init(e,t)},p=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;function d(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0<t&&t-1 in e)}k.fn=k.prototype={jquery:f,constructor:k,length:0,toArray:function(){return s.call(this)},get:function(e){return null==e?s.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=k.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return k.each(this,e)},map:function(n){return this.pushStack(k.map(this,function(e,t){return n.call(e,t,e)}))},slice:function(){return this.pushStack(s.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(0<=n&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:u,sort:t.sort,splice:t.splice},k.extend=k.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[s]||{},s++),"object"==typeof a||m(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)r=e[t],"__proto__"!==t&&a!==r&&(l&&r&&(k.isPlainObject(r)||(i=Array.isArray(r)))?(n=a[t],o=i&&!Array.isArray(n)?[]:i||k.isPlainObject(n)?n:{},i=!1,a[t]=k.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},k.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||"[object Object]"!==o.call(e))&&(!(t=r(e))||"function"==typeof(n=v.call(t,"constructor")&&t.constructor)&&a.call(n)===l)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e,t){b(e,{nonce:t&&t.nonce})},each:function(e,t){var n,r=0;if(d(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},trim:function(e){return null==e?"":(e+"").replace(p,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(d(Object(e))?k.merge(n,"string"==typeof e?[e]:e):u.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:i.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r=[],i=0,o=e.length,a=!n;i<o;i++)!t(e[i],i)!==a&&r.push(e[i]);return r},map:function(e,t,n){var r,i,o=0,a=[];if(d(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&a.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&a.push(i);return g.apply([],a)},guid:1,support:y}),"function"==typeof Symbol&&(k.fn[Symbol.iterator]=t[Symbol.iterator]),k.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){n["[object "+t+"]"]=t.toLowerCase()});var h=function(n){var e,d,b,o,i,h,f,g,w,u,l,T,C,a,E,v,s,c,y,k="sizzle"+1*new Date,m=n.document,S=0,r=0,p=ue(),x=ue(),N=ue(),A=ue(),D=function(e,t){return e===t&&(l=!0),0},j={}.hasOwnProperty,t=[],q=t.pop,L=t.push,H=t.push,O=t.slice,P=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},R="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",I="(?:\\\\.|[\\w-]|[^\0-\\xa0])+",W="\\["+M+"*("+I+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+I+"))|)"+M+"*\\]",$=":("+I+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+W+")*)|.*)\\)|)",F=new RegExp(M+"+","g"),B=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),_=new RegExp("^"+M+"*,"+M+"*"),z=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp($),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+$),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ne=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(m.childNodes),m.childNodes),t[m.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&((e?e.ownerDocument||e:m)!==C&&T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!A[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&U.test(t)){(s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=k),o=(l=h(t)).length;while(o--)l[o]="#"+s+" "+xe(l[o]);c=l.join(","),f=ee.test(t)&&ye(e.parentNode)||e}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){A(t,!0)}finally{s===k&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[k]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:m;return r!==C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),m!==C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=k,!C.getElementsByName||!C.getElementsByName(k).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){a.appendChild(e).innerHTML="<a id='"+k+"'></a><select id='"+k+"-\r\\' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+k+"-]").length||v.push("~="),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+k+"+*").length||v.push(".#.+[+~]")}),ce(function(e){e.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",$)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e===C||e.ownerDocument===m&&y(m,e)?-1:t===C||t.ownerDocument===m&&y(m,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===C?-1:t===C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]===m?-1:s[r]===m?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if((e.ownerDocument||e)!==C&&T(e),d.matchesSelector&&E&&!A[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){A(t,!0)}return 0<se(t,C,null,[e]).length},se.contains=function(e,t){return(e.ownerDocument||e)!==C&&T(e),y(e,t)},se.attr=function(e,t){(e.ownerDocument||e)!==C&&T(e);var n=b.attrHandle[t.toLowerCase()],r=n&&j.call(b.attrHandle,t.toLowerCase())?n(e,t,!E):void 0;return void 0!==r?r:d.attributes||!E?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},se.escape=function(e){return(e+"").replace(re,ie)},se.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},se.uniqueSort=function(e){var t,n=[],r=0,i=0;if(l=!d.detectDuplicates,u=!d.sortStable&&e.slice(0),e.sort(D),l){while(t=e[i++])t===e[i]&&(r=n.push(i));while(r--)e.splice(n[r],1)}return u=null,e},o=se.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=o(e)}else if(3===i||4===i)return e.nodeValue}else while(t=e[r++])n+=o(t);return n},(b=se.selectors={cacheLength:50,createPseudo:le,match:G,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=p[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&p(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1<t.indexOf(i):"$="===r?i&&t.slice(-i.length)===i:"~="===r?-1<(" "+t.replace(F," ")+" ").indexOf(i):"|="===r&&(t===i||t.slice(0,i.length+1)===i+"-"))}},CHILD:function(h,e,t,g,v){var y="nth"!==h.slice(0,3),m="last"!==h.slice(-4),x="of-type"===e;return 1===g&&0===v?function(e){return!!e.parentNode}:function(e,t,n){var r,i,o,a,s,u,l=y!==m?"nextSibling":"previousSibling",c=e.parentNode,f=x&&e.nodeName.toLowerCase(),p=!n&&!x,d=!1;if(c){if(y){while(l){a=e;while(a=a[l])if(x?a.nodeName.toLowerCase()===f:1===a.nodeType)return!1;u=l="only"===h&&!u&&"nextSibling"}return!0}if(u=[m?c.firstChild:c.lastChild],m&&p){d=(s=(r=(i=(o=(a=c)[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===S&&r[1])&&r[2],a=s&&c.childNodes[s];while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if(1===a.nodeType&&++d&&a===e){i[h]=[S,s,d];break}}else if(p&&(d=s=(r=(i=(o=(a=e)[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===S&&r[1]),!1===d)while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if((x?a.nodeName.toLowerCase()===f:1===a.nodeType)&&++d&&(p&&((i=(o=a[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]=[S,d]),a===e))break;return(d-=v)===g||d%g==0&&0<=d/g}}},PSEUDO:function(e,o){var t,a=b.pseudos[e]||b.setFilters[e.toLowerCase()]||se.error("unsupported pseudo: "+e);return a[k]?a(o):1<a.length?(t=[e,e,"",o],b.setFilters.hasOwnProperty(e.toLowerCase())?le(function(e,t){var n,r=a(e,o),i=r.length;while(i--)e[n=P(e,r[i])]=!(t[n]=r[i])}):function(e){return a(e,0,t)}):a}},pseudos:{not:le(function(e){var r=[],i=[],s=f(e.replace(B,"$1"));return s[k]?le(function(e,t,n,r){var i,o=s(e,null,r,[]),a=e.length;while(a--)(i=o[a])&&(e[a]=!(t[a]=i))}):function(e,t,n){return r[0]=e,s(r,null,n,i),r[0]=null,!i.pop()}}),has:le(function(t){return function(e){return 0<se(t,e).length}}),contains:le(function(t){return t=t.replace(te,ne),function(e){return-1<(e.textContent||o(e)).indexOf(t)}}),lang:le(function(n){return V.test(n||"")||se.error("unsupported lang: "+n),n=n.replace(te,ne).toLowerCase(),function(e){var t;do{if(t=E?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return(t=t.toLowerCase())===n||0===t.indexOf(n+"-")}while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var t=n.location&&n.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===a},focus:function(e){return e===C.activeElement&&(!C.hasFocus||C.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:ge(!1),disabled:ge(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!b.pseudos.empty(e)},header:function(e){return J.test(e.nodeName)},input:function(e){return Q.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:ve(function(){return[0]}),last:ve(function(e,t){return[t-1]}),eq:ve(function(e,t,n){return[n<0?n+t:n]}),even:ve(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:ve(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:ve(function(e,t,n){for(var r=n<0?n+t:t<n?t:n;0<=--r;)e.push(r);return e}),gt:ve(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=b.pseudos.eq,{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})b.pseudos[e]=de(e);for(e in{submit:!0,reset:!0})b.pseudos[e]=he(e);function me(){}function xe(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function be(s,e,t){var u=e.dir,l=e.next,c=l||u,f=t&&"parentNode"===c,p=r++;return e.first?function(e,t,n){while(e=e[u])if(1===e.nodeType||f)return s(e,t,n);return!1}:function(e,t,n){var r,i,o,a=[S,p];if(n){while(e=e[u])if((1===e.nodeType||f)&&s(e,t,n))return!0}else while(e=e[u])if(1===e.nodeType||f)if(i=(o=e[k]||(e[k]={}))[e.uniqueID]||(o[e.uniqueID]={}),l&&l===e.nodeName.toLowerCase())e=e[u]||e;else{if((r=i[c])&&r[0]===S&&r[1]===p)return a[2]=r[2];if((i[c]=a)[2]=s(e,t,n))return!0}return!1}}function we(i){return 1<i.length?function(e,t,n){var r=i.length;while(r--)if(!i[r](e,t,n))return!1;return!0}:i[0]}function Te(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),l&&t.push(s)));return a}function Ce(d,h,g,v,y,e){return v&&!v[k]&&(v=Ce(v)),y&&!y[k]&&(y=Ce(y,e)),le(function(e,t,n,r){var i,o,a,s=[],u=[],l=t.length,c=e||function(e,t,n){for(var r=0,i=t.length;r<i;r++)se(e,t[r],n);return n}(h||"*",n.nodeType?[n]:n,[]),f=!d||!e&&h?c:Te(c,s,d,n,r),p=g?y||(e?d:l||v)?[]:t:f;if(g&&g(f,p,n,r),v){i=Te(p,u),v(i,[],n,r),o=i.length;while(o--)(a=i[o])&&(p[u[o]]=!(f[u[o]]=a))}if(e){if(y||d){if(y){i=[],o=p.length;while(o--)(a=p[o])&&i.push(f[o]=a);y(null,p=[],i,r)}o=p.length;while(o--)(a=p[o])&&-1<(i=y?P(e,a):s[o])&&(e[i]=!(t[i]=a))}}else p=Te(p===t?p.splice(l,p.length):p),y?y(null,t,p,r):H.apply(t,p)})}function Ee(e){for(var i,t,n,r=e.length,o=b.relative[e[0].type],a=o||b.relative[" "],s=o?1:0,u=be(function(e){return e===i},a,!0),l=be(function(e){return-1<P(i,e)},a,!0),c=[function(e,t,n){var r=!o&&(n||t!==w)||((i=t).nodeType?u(e,t,n):l(e,t,n));return i=null,r}];s<r;s++)if(t=b.relative[e[s].type])c=[be(we(c),t)];else{if((t=b.filter[e[s].type].apply(null,e[s].matches))[k]){for(n=++s;n<r;n++)if(b.relative[e[n].type])break;return Ce(1<s&&we(c),1<s&&xe(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace(B,"$1"),t,s<n&&Ee(e.slice(s,n)),n<r&&Ee(e=e.slice(n)),n<r&&xe(e))}c.push(t)}return we(c)}return me.prototype=b.filters=b.pseudos,b.setFilters=new me,h=se.tokenize=function(e,t){var n,r,i,o,a,s,u,l=x[e+" "];if(l)return t?0:l.slice(0);a=e,s=[],u=b.preFilter;while(a){for(o in n&&!(r=_.exec(a))||(r&&(a=a.slice(r[0].length)||a),s.push(i=[])),n=!1,(r=z.exec(a))&&(n=r.shift(),i.push({value:n,type:r[0].replace(B," ")}),a=a.slice(n.length)),b.filter)!(r=G[o].exec(a))||u[o]&&!(r=u[o](r))||(n=r.shift(),i.push({value:n,type:o,matches:r}),a=a.slice(n.length));if(!n)break}return t?a.length:a?se.error(e):x(e,s).slice(0)},f=se.compile=function(e,t){var n,v,y,m,x,r,i=[],o=[],a=N[e+" "];if(!a){t||(t=h(e)),n=t.length;while(n--)(a=Ee(t[n]))[k]?i.push(a):o.push(a);(a=N(e,(v=o,m=0<(y=i).length,x=0<v.length,r=function(e,t,n,r,i){var o,a,s,u=0,l="0",c=e&&[],f=[],p=w,d=e||x&&b.find.TAG("*",i),h=S+=null==p?1:Math.random()||.1,g=d.length;for(i&&(w=t===C||t||i);l!==g&&null!=(o=d[l]);l++){if(x&&o){a=0,t||o.ownerDocument===C||(T(o),n=!E);while(s=v[a++])if(s(o,t||C,n)){r.push(o);break}i&&(S=h)}m&&((o=!s&&o)&&u--,e&&c.push(o))}if(u+=l,m&&l!==u){a=0;while(s=y[a++])s(c,f,t,n);if(e){if(0<u)while(l--)c[l]||f[l]||(f[l]=q.call(r));f=Te(f)}H.apply(r,f),i&&!e&&0<f.length&&1<u+y.length&&se.uniqueSort(r)}return i&&(S=h,w=p),c},m?le(r):r))).selector=e}return a},g=se.select=function(e,t,n,r){var i,o,a,s,u,l="function"==typeof e&&e,c=!r&&h(e=l.selector||e);if(n=n||[],1===c.length){if(2<(o=c[0]=c[0].slice(0)).length&&"ID"===(a=o[0]).type&&9===t.nodeType&&E&&b.relative[o[1].type]){if(!(t=(b.find.ID(a.matches[0].replace(te,ne),t)||[])[0]))return n;l&&(t=t.parentNode),e=e.slice(o.shift().value.length)}i=G.needsContext.test(e)?0:o.length;while(i--){if(a=o[i],b.relative[s=a.type])break;if((u=b.find[s])&&(r=u(a.matches[0].replace(te,ne),ee.test(o[0].type)&&ye(t.parentNode)||t))){if(o.splice(i,1),!(e=r.length&&xe(o)))return H.apply(n,r),n;break}}}return(l||f(e,c))(r,t,!E,n,!t||ee.test(e)&&ye(t.parentNode)||t),n},d.sortStable=k.split("").sort(D).join("")===k,d.detectDuplicates=!!l,T(),d.sortDetached=ce(function(e){return 1&e.compareDocumentPosition(C.createElement("fieldset"))}),ce(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||fe("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),d.attributes&&ce(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||fe("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),ce(function(e){return null==e.getAttribute("disabled")})||fe(R,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),se}(C);k.find=h,k.expr=h.selectors,k.expr[":"]=k.expr.pseudos,k.uniqueSort=k.unique=h.uniqueSort,k.text=h.getText,k.isXMLDoc=h.isXML,k.contains=h.contains,k.escapeSelector=h.escape;var T=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&k(e).is(n))break;r.push(e)}return r},S=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},N=k.expr.match.needsContext;function A(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var D=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?k.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?k.grep(e,function(e){return e===n!==r}):"string"!=typeof n?k.grep(e,function(e){return-1<i.call(n,e)!==r}):k.filter(n,e,r)}k.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?k.find.matchesSelector(r,e)?[r]:[]:k.find.matches(e,k.grep(t,function(e){return 1===e.nodeType}))},k.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(k(e).filter(function(){for(t=0;t<r;t++)if(k.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)k.find(e,i[t],n);return 1<r?k.uniqueSort(n):n},filter:function(e){return this.pushStack(j(this,e||[],!1))},not:function(e){return this.pushStack(j(this,e||[],!0))},is:function(e){return!!j(this,"string"==typeof e&&N.test(e)?k(e):e||[],!1).length}});var q,L=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(k.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:L.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof k?t[0]:t,k.merge(this,k.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),D.test(r[1])&&k.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(k):k.makeArray(e,this)}).prototype=k.fn,q=k(E);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}k.fn.extend({has:function(e){var t=k(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(k.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a="string"!=typeof e&&k(e);if(!N.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?-1<a.index(n):1===n.nodeType&&k.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(1<o.length?k.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?i.call(k(e),this[0]):i.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(k.uniqueSort(k.merge(this.get(),k(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),k.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return T(e,"parentNode")},parentsUntil:function(e,t,n){return T(e,"parentNode",n)},next:function(e){return P(e,"nextSibling")},prev:function(e){return P(e,"previousSibling")},nextAll:function(e){return T(e,"nextSibling")},prevAll:function(e){return T(e,"previousSibling")},nextUntil:function(e,t,n){return T(e,"nextSibling",n)},prevUntil:function(e,t,n){return T(e,"previousSibling",n)},siblings:function(e){return S((e.parentNode||{}).firstChild,e)},children:function(e){return S(e.firstChild)},contents:function(e){return"undefined"!=typeof e.contentDocument?e.contentDocument:(A(e,"template")&&(e=e.content||e),k.merge([],e.childNodes))}},function(r,i){k.fn[r]=function(e,t){var n=k.map(this,i,e);return"Until"!==r.slice(-5)&&(t=e),t&&"string"==typeof t&&(n=k.filter(t,n)),1<this.length&&(O[r]||k.uniqueSort(n),H.test(r)&&n.reverse()),this.pushStack(n)}});var R=/[^\x20\t\r\n\f]+/g;function M(e){return e}function I(e){throw e}function W(e,t,n,r){var i;try{e&&m(i=e.promise)?i.call(e).done(t).fail(n):e&&m(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}k.Callbacks=function(r){var e,n;r="string"==typeof r?(e=r,n={},k.each(e.match(R)||[],function(e,t){n[t]=!0}),n):k.extend({},r);var i,t,o,a,s=[],u=[],l=-1,c=function(){for(a=a||r.once,o=i=!0;u.length;l=-1){t=u.shift();while(++l<s.length)!1===s[l].apply(t[0],t[1])&&r.stopOnFalse&&(l=s.length,t=!1)}r.memory||(t=!1),i=!1,a&&(s=t?[]:"")},f={add:function(){return s&&(t&&!i&&(l=s.length-1,u.push(t)),function n(e){k.each(e,function(e,t){m(t)?r.unique&&f.has(t)||s.push(t):t&&t.length&&"string"!==w(t)&&n(t)})}(arguments),t&&!i&&c()),this},remove:function(){return k.each(arguments,function(e,t){var n;while(-1<(n=k.inArray(t,s,n)))s.splice(n,1),n<=l&&l--}),this},has:function(e){return e?-1<k.inArray(e,s):0<s.length},empty:function(){return s&&(s=[]),this},disable:function(){return a=u=[],s=t="",this},disabled:function(){return!s},lock:function(){return a=u=[],t||i||(s=t=""),this},locked:function(){return!!a},fireWith:function(e,t){return a||(t=[e,(t=t||[]).slice?t.slice():t],u.push(t),i||c()),this},fire:function(){return f.fireWith(this,arguments),this},fired:function(){return!!o}};return f},k.extend({Deferred:function(e){var o=[["notify","progress",k.Callbacks("memory"),k.Callbacks("memory"),2],["resolve","done",k.Callbacks("once memory"),k.Callbacks("once memory"),0,"resolved"],["reject","fail",k.Callbacks("once memory"),k.Callbacks("once memory"),1,"rejected"]],i="pending",a={state:function(){return i},always:function(){return s.done(arguments).fail(arguments),this},"catch":function(e){return a.then(null,e)},pipe:function(){var i=arguments;return k.Deferred(function(r){k.each(o,function(e,t){var n=m(i[t[4]])&&i[t[4]];s[t[1]](function(){var e=n&&n.apply(this,arguments);e&&m(e.promise)?e.promise().progress(r.notify).done(r.resolve).fail(r.reject):r[t[0]+"With"](this,n?[e]:arguments)})}),i=null}).promise()},then:function(t,n,r){var u=0;function l(i,o,a,s){return function(){var n=this,r=arguments,e=function(){var e,t;if(!(i<u)){if((e=a.apply(n,r))===o.promise())throw new TypeError("Thenable self-resolution");t=e&&("object"==typeof e||"function"==typeof e)&&e.then,m(t)?s?t.call(e,l(u,o,M,s),l(u,o,I,s)):(u++,t.call(e,l(u,o,M,s),l(u,o,I,s),l(u,o,M,o.notifyWith))):(a!==M&&(n=void 0,r=[e]),(s||o.resolveWith)(n,r))}},t=s?e:function(){try{e()}catch(e){k.Deferred.exceptionHook&&k.Deferred.exceptionHook(e,t.stackTrace),u<=i+1&&(a!==I&&(n=void 0,r=[e]),o.rejectWith(n,r))}};i?t():(k.Deferred.getStackHook&&(t.stackTrace=k.Deferred.getStackHook()),C.setTimeout(t))}}return k.Deferred(function(e){o[0][3].add(l(0,e,m(r)?r:M,e.notifyWith)),o[1][3].add(l(0,e,m(t)?t:M)),o[2][3].add(l(0,e,m(n)?n:I))}).promise()},promise:function(e){return null!=e?k.extend(e,a):a}},s={};return k.each(o,function(e,t){var n=t[2],r=t[5];a[t[1]]=n.add,r&&n.add(function(){i=r},o[3-e][2].disable,o[3-e][3].disable,o[0][2].lock,o[0][3].lock),n.add(t[3].fire),s[t[0]]=function(){return s[t[0]+"With"](this===s?void 0:this,arguments),this},s[t[0]+"With"]=n.fireWith}),a.promise(s),e&&e.call(s,s),s},when:function(e){var n=arguments.length,t=n,r=Array(t),i=s.call(arguments),o=k.Deferred(),a=function(t){return function(e){r[t]=this,i[t]=1<arguments.length?s.call(arguments):e,--n||o.resolveWith(r,i)}};if(n<=1&&(W(e,o.done(a(t)).resolve,o.reject,!n),"pending"===o.state()||m(i[t]&&i[t].then)))return o.then();while(t--)W(i[t],a(t),o.reject);return o.promise()}});var $=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;k.Deferred.exceptionHook=function(e,t){C.console&&C.console.warn&&e&&$.test(e.name)&&C.console.warn("jQuery.Deferred exception: "+e.message,e.stack,t)},k.readyException=function(e){C.setTimeout(function(){throw e})};var F=k.Deferred();function B(){E.removeEventListener("DOMContentLoaded",B),C.removeEventListener("load",B),k.ready()}k.fn.ready=function(e){return F.then(e)["catch"](function(e){k.readyException(e)}),this},k.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--k.readyWait:k.isReady)||(k.isReady=!0)!==e&&0<--k.readyWait||F.resolveWith(E,[k])}}),k.ready.then=F.then,"complete"===E.readyState||"loading"!==E.readyState&&!E.documentElement.doScroll?C.setTimeout(k.ready):(E.addEventListener("DOMContentLoaded",B),C.addEventListener("load",B));var _=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===w(n))for(s in i=!0,n)_(e,t,s,n[s],!0,o,a);else if(void 0!==r&&(i=!0,m(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(k(e),n)})),t))for(;s<u;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:l?t.call(e):u?t(e[0],n):o},z=/^-ms-/,U=/-([a-z])/g;function X(e,t){return t.toUpperCase()}function V(e){return e.replace(z,"ms-").replace(U,X)}var G=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function Y(){this.expando=k.expando+Y.uid++}Y.uid=1,Y.prototype={cache:function(e){var t=e[this.expando];return t||(t={},G(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if("string"==typeof t)i[V(t)]=n;else for(r in t)i[V(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][V(t)]},access:function(e,t,n){return void 0===t||t&&"string"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){n=(t=Array.isArray(t)?t.map(V):(t=V(t))in r?[t]:t.match(R)||[]).length;while(n--)delete r[t[n]]}(void 0===t||k.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!k.isEmptyObject(t)}};var Q=new Y,J=new Y,K=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,Z=/[A-Z]/g;function ee(e,t,n){var r,i;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(Z,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n="true"===(i=n)||"false"!==i&&("null"===i?null:i===+i+""?+i:K.test(i)?JSON.parse(i):i)}catch(e){}J.set(e,t,n)}else n=void 0;return n}k.extend({hasData:function(e){return J.hasData(e)||Q.hasData(e)},data:function(e,t,n){return J.access(e,t,n)},removeData:function(e,t){J.remove(e,t)},_data:function(e,t,n){return Q.access(e,t,n)},_removeData:function(e,t){Q.remove(e,t)}}),k.fn.extend({data:function(n,e){var t,r,i,o=this[0],a=o&&o.attributes;if(void 0===n){if(this.length&&(i=J.get(o),1===o.nodeType&&!Q.get(o,"hasDataAttrs"))){t=a.length;while(t--)a[t]&&0===(r=a[t].name).indexOf("data-")&&(r=V(r.slice(5)),ee(o,r,i[r]));Q.set(o,"hasDataAttrs",!0)}return i}return"object"==typeof n?this.each(function(){J.set(this,n)}):_(this,function(e){var t;if(o&&void 0===e)return void 0!==(t=J.get(o,n))?t:void 0!==(t=ee(o,n))?t:void 0;this.each(function(){J.set(this,n,e)})},null,e,1<arguments.length,null,!0)},removeData:function(e){return this.each(function(){J.remove(this,e)})}}),k.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=Q.get(e,t),n&&(!r||Array.isArray(n)?r=Q.access(e,t,k.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=k.queue(e,t),r=n.length,i=n.shift(),o=k._queueHooks(e,t);"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,function(){k.dequeue(e,t)},o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return Q.get(e,n)||Q.access(e,n,{empty:k.Callbacks("once memory").add(function(){Q.remove(e,[t+"queue",n])})})}}),k.fn.extend({queue:function(t,n){var e=2;return"string"!=typeof t&&(n=t,t="fx",e--),arguments.length<e?k.queue(this[0],t):void 0===n?this:this.each(function(){var e=k.queue(this,t,n);k._queueHooks(this,t),"fx"===t&&"inprogress"!==e[0]&&k.dequeue(this,t)})},dequeue:function(e){return this.each(function(){k.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=k.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};"string"!=typeof e&&(t=e,e=void 0),e=e||"fx";while(a--)(n=Q.get(o[a],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var te=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,ne=new RegExp("^(?:([+-])=|)("+te+")([a-z%]*)$","i"),re=["Top","Right","Bottom","Left"],ie=E.documentElement,oe=function(e){return k.contains(e.ownerDocument,e)},ae={composed:!0};ie.getRootNode&&(oe=function(e){return k.contains(e.ownerDocument,e)||e.getRootNode(ae)===e.ownerDocument});var se=function(e,t){return"none"===(e=t||e).style.display||""===e.style.display&&oe(e)&&"none"===k.css(e,"display")},ue=function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];for(o in i=n.apply(e,r||[]),t)e.style[o]=a[o];return i};function le(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return k.css(e,t,"")},u=s(),l=n&&n[3]||(k.cssNumber[t]?"":"px"),c=e.nodeType&&(k.cssNumber[t]||"px"!==l&&+u)&&ne.exec(k.css(e,t));if(c&&c[3]!==l){u/=2,l=l||c[3],c=+u||1;while(a--)k.style(e,t,c+l),(1-o)*(1-(o=s()/u||.5))<=0&&(a=0),c/=o;c*=2,k.style(e,t,c+l),n=n||[]}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}var ce={};function fe(e,t){for(var n,r,i,o,a,s,u,l=[],c=0,f=e.length;c<f;c++)(r=e[c]).style&&(n=r.style.display,t?("none"===n&&(l[c]=Q.get(r,"display")||null,l[c]||(r.style.display="")),""===r.style.display&&se(r)&&(l[c]=(u=a=o=void 0,a=(i=r).ownerDocument,s=i.nodeName,(u=ce[s])||(o=a.body.appendChild(a.createElement(s)),u=k.css(o,"display"),o.parentNode.removeChild(o),"none"===u&&(u="block"),ce[s]=u)))):"none"!==n&&(l[c]="none",Q.set(r,"display",n)));for(c=0;c<f;c++)null!=l[c]&&(e[c].style.display=l[c]);return e}k.fn.extend({show:function(){return fe(this,!0)},hide:function(){return fe(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){se(this)?k(this).show():k(this).hide()})}});var pe=/^(?:checkbox|radio)$/i,de=/<([a-z][^\/\0>\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?k.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n<r;n++)Q.set(e[n],"globalEval",!t||Q.get(t[n],"globalEval"))}ge.optgroup=ge.option,ge.tbody=ge.tfoot=ge.colgroup=ge.caption=ge.thead,ge.th=ge.td;var me,xe,be=/<|&#?\w+;/;function we(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d<h;d++)if((o=e[d])||0===o)if("object"===w(o))k.merge(p,o.nodeType?[o]:o);else if(be.test(o)){a=a||f.appendChild(t.createElement("div")),s=(de.exec(o)||["",""])[1].toLowerCase(),u=ge[s]||ge._default,a.innerHTML=u[1]+k.htmlPrefilter(o)+u[2],c=u[0];while(c--)a=a.lastChild;k.merge(p,a.childNodes),(a=f.firstChild).textContent=""}else p.push(t.createTextNode(o));f.textContent="",d=0;while(o=p[d++])if(r&&-1<k.inArray(o,r))i&&i.push(o);else if(l=oe(o),a=ve(f.appendChild(o),"script"),l&&ye(a),n){c=0;while(o=a[c++])he.test(o.type||"")&&n.push(o)}return f}me=E.createDocumentFragment().appendChild(E.createElement("div")),(xe=E.createElement("input")).setAttribute("type","radio"),xe.setAttribute("checked","checked"),xe.setAttribute("name","t"),me.appendChild(xe),y.checkClone=me.cloneNode(!0).cloneNode(!0).lastChild.checked,me.innerHTML="<textarea>x</textarea>",y.noCloneChecked=!!me.cloneNode(!0).lastChild.defaultValue;var Te=/^key/,Ce=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ee=/^([^.]*)(?:\.(.+)|)/;function ke(){return!0}function Se(){return!1}function Ne(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function Ae(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ae(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Se;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return k().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=k.guid++)),e.each(function(){k.event.add(this,t,i,r,n)})}function De(e,i,o){o?(Q.set(e,i,!1),k.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Q.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(k.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Q.set(this,i,r),t=o(this,i),this[i](),r!==(n=Q.get(this,i))||t?Q.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n.value}else r.length&&(Q.set(this,i,{value:k.event.trigger(k.extend(r[0],k.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Q.get(e,i)&&k.event.add(e,i,ke)}k.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.get(t);if(v){n.handler&&(n=(o=n).handler,i=o.selector),i&&k.find.matchesSelector(ie,i),n.guid||(n.guid=k.guid++),(u=v.events)||(u=v.events={}),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof k&&k.event.triggered!==e.type?k.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(R)||[""]).length;while(l--)d=g=(s=Ee.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=k.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=k.event.special[d]||{},c=k.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&k.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),k.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.hasData(e)&&Q.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(R)||[""]).length;while(l--)if(d=g=(s=Ee.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=k.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||k.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)k.event.remove(e,d+t[l],n,r,!0);k.isEmptyObject(u)&&Q.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=k.event.fix(e),u=new Array(arguments.length),l=(Q.get(this,"events")||{})[s.type]||[],c=k.event.special[s.type]||{};for(u[0]=s,t=1;t<arguments.length;t++)u[t]=arguments[t];if(s.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,s)){a=k.event.handlers.call(this,s,l),t=0;while((i=a[t++])&&!s.isPropagationStopped()){s.currentTarget=i.elem,n=0;while((o=i.handlers[n++])&&!s.isImmediatePropagationStopped())s.rnamespace&&!1!==o.namespace&&!s.rnamespace.test(o.namespace)||(s.handleObj=o,s.data=o.data,void 0!==(r=((k.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,u))&&!1===(s.result=r)&&(s.preventDefault(),s.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,s),s.result}},handlers:function(e,t){var n,r,i,o,a,s=[],u=t.delegateCount,l=e.target;if(u&&l.nodeType&&!("click"===e.type&&1<=e.button))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n<u;n++)void 0===a[i=(r=t[n]).selector+" "]&&(a[i]=r.needsContext?-1<k(i,this).index(l):k.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u<t.length&&s.push({elem:l,handlers:t.slice(u)}),s},addProp:function(t,e){Object.defineProperty(k.Event.prototype,t,{enumerable:!0,configurable:!0,get:m(e)?function(){if(this.originalEvent)return e(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[t]},set:function(e){Object.defineProperty(this,t,{enumerable:!0,configurable:!0,writable:!0,value:e})}})},fix:function(e){return e[k.expando]?e:new k.Event(e)},special:{load:{noBubble:!0},click:{setup:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&De(t,"click",ke),!1},trigger:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&De(t,"click"),!0},_default:function(e){var t=e.target;return pe.test(t.type)&&t.click&&A(t,"input")&&Q.get(t,"click")||A(t,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},k.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},k.Event=function(e,t){if(!(this instanceof k.Event))return new k.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?ke:Se,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&k.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[k.expando]=!0},k.Event.prototype={constructor:k.Event,isDefaultPrevented:Se,isPropagationStopped:Se,isImmediatePropagationStopped:Se,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=ke,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=ke,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=ke,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},k.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,code:!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(e){var t=e.button;return null==e.which&&Te.test(e.type)?null!=e.charCode?e.charCode:e.keyCode:!e.which&&void 0!==t&&Ce.test(e.type)?1&t?1:2&t?3:4&t?2:0:e.which}},k.event.addProp),k.each({focus:"focusin",blur:"focusout"},function(e,t){k.event.special[e]={setup:function(){return De(this,e,Ne),!1},trigger:function(){return De(this,e),!0},delegateType:t}}),k.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,i){k.event.special[e]={delegateType:i,bindType:i,handle:function(e){var t,n=e.relatedTarget,r=e.handleObj;return n&&(n===this||k.contains(this,n))||(e.type=r.origType,t=r.handler.apply(this,arguments),e.type=i),t}}}),k.fn.extend({on:function(e,t,n,r){return Ae(this,e,t,n,r)},one:function(e,t,n,r){return Ae(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,k(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return!1!==t&&"function"!=typeof t||(n=t,t=void 0),!1===n&&(n=Se),this.each(function(){k.event.remove(this,e,n,t)})}});var je=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,qe=/<script|<style|<link/i,Le=/checked\s*(?:[^=]|=\s*.checked.)/i,He=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function Oe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&k(e).children("tbody")[0]||e}function Pe(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Re(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Me(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(Q.hasData(e)&&(o=Q.access(e),a=Q.set(t,o),l=o.events))for(i in delete a.handle,a.events={},l)for(n=0,r=l[i].length;n<r;n++)k.event.add(t,i,l[i][n]);J.hasData(e)&&(s=J.access(e),u=k.extend({},s),J.set(t,u))}}function Ie(n,r,i,o){r=g.apply([],r);var e,t,a,s,u,l,c=0,f=n.length,p=f-1,d=r[0],h=m(d);if(h||1<f&&"string"==typeof d&&!y.checkClone&&Le.test(d))return n.each(function(e){var t=n.eq(e);h&&(r[0]=d.call(this,e,t.html())),Ie(t,r,i,o)});if(f&&(t=(e=we(r,n[0].ownerDocument,!1,n,o)).firstChild,1===e.childNodes.length&&(e=t),t||o)){for(s=(a=k.map(ve(e,"script"),Pe)).length;c<f;c++)u=e,c!==p&&(u=k.clone(u,!0,!0),s&&k.merge(a,ve(u,"script"))),i.call(n[c],u,c);if(s)for(l=a[a.length-1].ownerDocument,k.map(a,Re),c=0;c<s;c++)u=a[c],he.test(u.type||"")&&!Q.access(u,"globalEval")&&k.contains(l,u)&&(u.src&&"module"!==(u.type||"").toLowerCase()?k._evalUrl&&!u.noModule&&k._evalUrl(u.src,{nonce:u.nonce||u.getAttribute("nonce")}):b(u.textContent.replace(He,""),u,l))}return n}function We(e,t,n){for(var r,i=t?k.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||k.cleanData(ve(r)),r.parentNode&&(n&&oe(r)&&ye(ve(r,"script")),r.parentNode.removeChild(r));return e}k.extend({htmlPrefilter:function(e){return e.replace(je,"<$1></$2>")},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=oe(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||k.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r<i;r++)s=o[r],u=a[r],void 0,"input"===(l=u.nodeName.toLowerCase())&&pe.test(s.type)?u.checked=s.checked:"input"!==l&&"textarea"!==l||(u.defaultValue=s.defaultValue);if(t)if(n)for(o=o||ve(e),a=a||ve(c),r=0,i=o.length;r<i;r++)Me(o[r],a[r]);else Me(e,c);return 0<(a=ve(c,"script")).length&&ye(a,!f&&ve(e,"script")),c},cleanData:function(e){for(var t,n,r,i=k.event.special,o=0;void 0!==(n=e[o]);o++)if(G(n)){if(t=n[Q.expando]){if(t.events)for(r in t.events)i[r]?k.event.remove(n,r):k.removeEvent(n,r,t.handle);n[Q.expando]=void 0}n[J.expando]&&(n[J.expando]=void 0)}}}),k.fn.extend({detach:function(e){return We(this,e,!0)},remove:function(e){return We(this,e)},text:function(e){return _(this,function(e){return void 0===e?k.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return Ie(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Oe(this,e).appendChild(e)})},prepend:function(){return Ie(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Oe(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return Ie(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return Ie(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(k.cleanData(ve(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return k.clone(this,e,t)})},html:function(e){return _(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!qe.test(e)&&!ge[(de.exec(e)||["",""])[1].toLowerCase()]){e=k.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(k.cleanData(ve(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var n=[];return Ie(this,arguments,function(e){var t=this.parentNode;k.inArray(this,n)<0&&(k.cleanData(ve(this)),t&&t.replaceChild(e,this))},n)}}),k.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,a){k.fn[e]=function(e){for(var t,n=[],r=k(e),i=r.length-1,o=0;o<=i;o++)t=o===i?this:this.clone(!0),k(r[o])[a](t),u.apply(n,t.get());return this.pushStack(n)}});var $e=new RegExp("^("+te+")(?!px)[a-z%]+$","i"),Fe=function(e){var t=e.ownerDocument.defaultView;return t&&t.opener||(t=C),t.getComputedStyle(e)},Be=new RegExp(re.join("|"),"i");function _e(e,t,n){var r,i,o,a,s=e.style;return(n=n||Fe(e))&&(""!==(a=n.getPropertyValue(t)||n[t])||oe(e)||(a=k.style(e,t)),!y.pixelBoxStyles()&&$e.test(a)&&Be.test(t)&&(r=s.width,i=s.minWidth,o=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=r,s.minWidth=i,s.maxWidth=o)),void 0!==a?a+"":a}function ze(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}!function(){function e(){if(u){s.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",u.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",ie.appendChild(s).appendChild(u);var e=C.getComputedStyle(u);n="1%"!==e.top,a=12===t(e.marginLeft),u.style.right="60%",o=36===t(e.right),r=36===t(e.width),u.style.position="absolute",i=12===t(u.offsetWidth/3),ie.removeChild(s),u=null}}function t(e){return Math.round(parseFloat(e))}var n,r,i,o,a,s=E.createElement("div"),u=E.createElement("div");u.style&&(u.style.backgroundClip="content-box",u.cloneNode(!0).style.backgroundClip="",y.clearCloneStyle="content-box"===u.style.backgroundClip,k.extend(y,{boxSizingReliable:function(){return e(),r},pixelBoxStyles:function(){return e(),o},pixelPosition:function(){return e(),n},reliableMarginLeft:function(){return e(),a},scrollboxSize:function(){return e(),i}}))}();var Ue=["Webkit","Moz","ms"],Xe=E.createElement("div").style,Ve={};function Ge(e){var t=k.cssProps[e]||Ve[e];return t||(e in Xe?e:Ve[e]=function(e){var t=e[0].toUpperCase()+e.slice(1),n=Ue.length;while(n--)if((e=Ue[n]+t)in Xe)return e}(e)||e)}var Ye=/^(none|table(?!-c[ea]).+)/,Qe=/^--/,Je={position:"absolute",visibility:"hidden",display:"block"},Ke={letterSpacing:"0",fontWeight:"400"};function Ze(e,t,n){var r=ne.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function et(e,t,n,r,i,o){var a="width"===t?1:0,s=0,u=0;if(n===(r?"border":"content"))return 0;for(;a<4;a+=2)"margin"===n&&(u+=k.css(e,n+re[a],!0,i)),r?("content"===n&&(u-=k.css(e,"padding"+re[a],!0,i)),"margin"!==n&&(u-=k.css(e,"border"+re[a]+"Width",!0,i))):(u+=k.css(e,"padding"+re[a],!0,i),"padding"!==n?u+=k.css(e,"border"+re[a]+"Width",!0,i):s+=k.css(e,"border"+re[a]+"Width",!0,i));return!r&&0<=o&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))||0),u}function tt(e,t,n){var r=Fe(e),i=(!y.boxSizingReliable()||n)&&"border-box"===k.css(e,"boxSizing",!1,r),o=i,a=_e(e,t,r),s="offset"+t[0].toUpperCase()+t.slice(1);if($e.test(a)){if(!n)return a;a="auto"}return(!y.boxSizingReliable()&&i||"auto"===a||!parseFloat(a)&&"inline"===k.css(e,"display",!1,r))&&e.getClientRects().length&&(i="border-box"===k.css(e,"boxSizing",!1,r),(o=s in e)&&(a=e[s])),(a=parseFloat(a)||0)+et(e,t,n||(i?"border":"content"),o,r,a)+"px"}function nt(e,t,n,r,i){return new nt.prototype.init(e,t,n,r,i)}k.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=_e(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=V(t),u=Qe.test(t),l=e.style;if(u||(t=Ge(s)),a=k.cssHooks[t]||k.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"===(o=typeof n)&&(i=ne.exec(n))&&i[1]&&(n=le(e,t,i),o="number"),null!=n&&n==n&&("number"!==o||u||(n+=i&&i[3]||(k.cssNumber[s]?"":"px")),y.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=V(t);return Qe.test(t)||(t=Ge(s)),(a=k.cssHooks[t]||k.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=_e(e,t,r)),"normal"===i&&t in Ke&&(i=Ke[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),k.each(["height","width"],function(e,u){k.cssHooks[u]={get:function(e,t,n){if(t)return!Ye.test(k.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?tt(e,u,n):ue(e,Je,function(){return tt(e,u,n)})},set:function(e,t,n){var r,i=Fe(e),o=!y.scrollboxSize()&&"absolute"===i.position,a=(o||n)&&"border-box"===k.css(e,"boxSizing",!1,i),s=n?et(e,u,n,a,i):0;return a&&o&&(s-=Math.ceil(e["offset"+u[0].toUpperCase()+u.slice(1)]-parseFloat(i[u])-et(e,u,"border",!1,i)-.5)),s&&(r=ne.exec(t))&&"px"!==(r[3]||"px")&&(e.style[u]=t,t=k.css(e,u)),Ze(0,t,s)}}}),k.cssHooks.marginLeft=ze(y.reliableMarginLeft,function(e,t){if(t)return(parseFloat(_e(e,"marginLeft"))||e.getBoundingClientRect().left-ue(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),k.each({margin:"",padding:"",border:"Width"},function(i,o){k.cssHooks[i+o]={expand:function(e){for(var t=0,n={},r="string"==typeof e?e.split(" "):[e];t<4;t++)n[i+re[t]+o]=r[t]||r[t-2]||r[0];return n}},"margin"!==i&&(k.cssHooks[i+o].set=Ze)}),k.fn.extend({css:function(e,t){return _(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=Fe(e),i=t.length;a<i;a++)o[t[a]]=k.css(e,t[a],!1,r);return o}return void 0!==n?k.style(e,t,n):k.css(e,t)},e,t,1<arguments.length)}}),((k.Tween=nt).prototype={constructor:nt,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||k.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(k.cssNumber[n]?"":"px")},cur:function(){var e=nt.propHooks[this.prop];return e&&e.get?e.get(this):nt.propHooks._default.get(this)},run:function(e){var t,n=nt.propHooks[this.prop];return this.options.duration?this.pos=t=k.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):nt.propHooks._default.set(this),this}}).init.prototype=nt.prototype,(nt.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=k.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){k.fx.step[e.prop]?k.fx.step[e.prop](e):1!==e.elem.nodeType||!k.cssHooks[e.prop]&&null==e.elem.style[Ge(e.prop)]?e.elem[e.prop]=e.now:k.style(e.elem,e.prop,e.now+e.unit)}}}).scrollTop=nt.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},k.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},k.fx=nt.prototype.init,k.fx.step={};var rt,it,ot,at,st=/^(?:toggle|show|hide)$/,ut=/queueHooks$/;function lt(){it&&(!1===E.hidden&&C.requestAnimationFrame?C.requestAnimationFrame(lt):C.setTimeout(lt,k.fx.interval),k.fx.tick())}function ct(){return C.setTimeout(function(){rt=void 0}),rt=Date.now()}function ft(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=re[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function pt(e,t,n){for(var r,i=(dt.tweeners[t]||[]).concat(dt.tweeners["*"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function dt(o,e,t){var n,a,r=0,i=dt.prefilters.length,s=k.Deferred().always(function(){delete u.elem}),u=function(){if(a)return!1;for(var e=rt||ct(),t=Math.max(0,l.startTime+l.duration-e),n=1-(t/l.duration||0),r=0,i=l.tweens.length;r<i;r++)l.tweens[r].run(n);return s.notifyWith(o,[l,n,t]),n<1&&i?t:(i||s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l]),!1)},l=s.promise({elem:o,props:k.extend({},e),opts:k.extend(!0,{specialEasing:{},easing:k.easing._default},t),originalProperties:e,originalOptions:t,startTime:rt||ct(),duration:t.duration,tweens:[],createTween:function(e,t){var n=k.Tween(o,l.opts,e,t,l.opts.specialEasing[e]||l.opts.easing);return l.tweens.push(n),n},stop:function(e){var t=0,n=e?l.tweens.length:0;if(a)return this;for(a=!0;t<n;t++)l.tweens[t].run(1);return e?(s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l,e])):s.rejectWith(o,[l,e]),this}}),c=l.props;for(!function(e,t){var n,r,i,o,a;for(n in e)if(i=t[r=V(n)],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=k.cssHooks[r])&&"expand"in a)for(n in o=a.expand(o),delete e[r],o)n in e||(e[n]=o[n],t[n]=i);else t[r]=i}(c,l.opts.specialEasing);r<i;r++)if(n=dt.prefilters[r].call(l,o,c,l.opts))return m(n.stop)&&(k._queueHooks(l.elem,l.opts.queue).stop=n.stop.bind(n)),n;return k.map(c,pt,l),m(l.opts.start)&&l.opts.start.call(o,l),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always),k.fx.timer(k.extend(u,{elem:o,anim:l,queue:l.opts.queue})),l}k.Animation=k.extend(dt,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return le(n.elem,e,ne.exec(t),n),n}]},tweener:function(e,t){m(e)?(t=e,e=["*"]):e=e.match(R);for(var n,r=0,i=e.length;r<i;r++)n=e[r],dt.tweeners[n]=dt.tweeners[n]||[],dt.tweeners[n].unshift(t)},prefilters:[function(e,t,n){var r,i,o,a,s,u,l,c,f="width"in t||"height"in t,p=this,d={},h=e.style,g=e.nodeType&&se(e),v=Q.get(e,"fxshow");for(r in n.queue||(null==(a=k._queueHooks(e,"fx")).unqueued&&(a.unqueued=0,s=a.empty.fire,a.empty.fire=function(){a.unqueued||s()}),a.unqueued++,p.always(function(){p.always(function(){a.unqueued--,k.queue(e,"fx").length||a.empty.fire()})})),t)if(i=t[r],st.test(i)){if(delete t[r],o=o||"toggle"===i,i===(g?"hide":"show")){if("show"!==i||!v||void 0===v[r])continue;g=!0}d[r]=v&&v[r]||k.style(e,r)}if((u=!k.isEmptyObject(t))||!k.isEmptyObject(d))for(r in f&&1===e.nodeType&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],null==(l=v&&v.display)&&(l=Q.get(e,"display")),"none"===(c=k.css(e,"display"))&&(l?c=l:(fe([e],!0),l=e.style.display||l,c=k.css(e,"display"),fe([e]))),("inline"===c||"inline-block"===c&&null!=l)&&"none"===k.css(e,"float")&&(u||(p.done(function(){h.display=l}),null==l&&(c=h.display,l="none"===c?"":c)),h.display="inline-block")),n.overflow&&(h.overflow="hidden",p.always(function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]})),u=!1,d)u||(v?"hidden"in v&&(g=v.hidden):v=Q.access(e,"fxshow",{display:l}),o&&(v.hidden=!g),g&&fe([e],!0),p.done(function(){for(r in g||fe([e]),Q.remove(e,"fxshow"),d)k.style(e,r,d[r])})),u=pt(g?v[r]:0,r,p),r in v||(v[r]=u.start,g&&(u.end=u.start,u.start=0))}],prefilter:function(e,t){t?dt.prefilters.unshift(e):dt.prefilters.push(e)}}),k.speed=function(e,t,n){var r=e&&"object"==typeof e?k.extend({},e):{complete:n||!n&&t||m(e)&&e,duration:e,easing:n&&t||t&&!m(t)&&t};return k.fx.off?r.duration=0:"number"!=typeof r.duration&&(r.duration in k.fx.speeds?r.duration=k.fx.speeds[r.duration]:r.duration=k.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue="fx"),r.old=r.complete,r.complete=function(){m(r.old)&&r.old.call(this),r.queue&&k.dequeue(this,r.queue)},r},k.fn.extend({fadeTo:function(e,t,n,r){return this.filter(se).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(t,e,n,r){var i=k.isEmptyObject(t),o=k.speed(e,n,r),a=function(){var e=dt(this,k.extend({},t),o);(i||Q.get(this,"finish"))&&e.stop(!0)};return a.finish=a,i||!1===o.queue?this.each(a):this.queue(o.queue,a)},stop:function(i,e,o){var a=function(e){var t=e.stop;delete e.stop,t(o)};return"string"!=typeof i&&(o=e,e=i,i=void 0),e&&!1!==i&&this.queue(i||"fx",[]),this.each(function(){var e=!0,t=null!=i&&i+"queueHooks",n=k.timers,r=Q.get(this);if(t)r[t]&&r[t].stop&&a(r[t]);else for(t in r)r[t]&&r[t].stop&&ut.test(t)&&a(r[t]);for(t=n.length;t--;)n[t].elem!==this||null!=i&&n[t].queue!==i||(n[t].anim.stop(o),e=!1,n.splice(t,1));!e&&o||k.dequeue(this,i)})},finish:function(a){return!1!==a&&(a=a||"fx"),this.each(function(){var e,t=Q.get(this),n=t[a+"queue"],r=t[a+"queueHooks"],i=k.timers,o=n?n.length:0;for(t.finish=!0,k.queue(this,a,[]),r&&r.stop&&r.stop.call(this,!0),e=i.length;e--;)i[e].elem===this&&i[e].queue===a&&(i[e].anim.stop(!0),i.splice(e,1));for(e=0;e<o;e++)n[e]&&n[e].finish&&n[e].finish.call(this);delete t.finish})}}),k.each(["toggle","show","hide"],function(e,r){var i=k.fn[r];k.fn[r]=function(e,t,n){return null==e||"boolean"==typeof e?i.apply(this,arguments):this.animate(ft(r,!0),e,t,n)}}),k.each({slideDown:ft("show"),slideUp:ft("hide"),slideToggle:ft("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,r){k.fn[e]=function(e,t,n){return this.animate(r,e,t,n)}}),k.timers=[],k.fx.tick=function(){var e,t=0,n=k.timers;for(rt=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||k.fx.stop(),rt=void 0},k.fx.timer=function(e){k.timers.push(e),k.fx.start()},k.fx.interval=13,k.fx.start=function(){it||(it=!0,lt())},k.fx.stop=function(){it=null},k.fx.speeds={slow:600,fast:200,_default:400},k.fn.delay=function(r,e){return r=k.fx&&k.fx.speeds[r]||r,e=e||"fx",this.queue(e,function(e,t){var n=C.setTimeout(e,r);t.stop=function(){C.clearTimeout(n)}})},ot=E.createElement("input"),at=E.createElement("select").appendChild(E.createElement("option")),ot.type="checkbox",y.checkOn=""!==ot.value,y.optSelected=at.selected,(ot=E.createElement("input")).value="t",ot.type="radio",y.radioValue="t"===ot.value;var ht,gt=k.expr.attrHandle;k.fn.extend({attr:function(e,t){return _(this,k.attr,e,t,1<arguments.length)},removeAttr:function(e){return this.each(function(){k.removeAttr(this,e)})}}),k.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?k.prop(e,t,n):(1===o&&k.isXMLDoc(e)||(i=k.attrHooks[t.toLowerCase()]||(k.expr.match.bool.test(t)?ht:void 0)),void 0!==n?null===n?void k.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=k.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!y.radioValue&&"radio"===t&&A(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(R);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),ht={set:function(e,t,n){return!1===t?k.removeAttr(e,n):e.setAttribute(n,n),n}},k.each(k.expr.match.bool.source.match(/\w+/g),function(e,t){var a=gt[t]||k.find.attr;gt[t]=function(e,t,n){var r,i,o=t.toLowerCase();return n||(i=gt[o],gt[o]=r,r=null!=a(e,t,n)?o:null,gt[o]=i),r}});var vt=/^(?:input|select|textarea|button)$/i,yt=/^(?:a|area)$/i;function mt(e){return(e.match(R)||[]).join(" ")}function xt(e){return e.getAttribute&&e.getAttribute("class")||""}function bt(e){return Array.isArray(e)?e:"string"==typeof e&&e.match(R)||[]}k.fn.extend({prop:function(e,t){return _(this,k.prop,e,t,1<arguments.length)},removeProp:function(e){return this.each(function(){delete this[k.propFix[e]||e]})}}),k.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&k.isXMLDoc(e)||(t=k.propFix[t]||t,i=k.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=k.find.attr(e,"tabindex");return t?parseInt(t,10):vt.test(e.nodeName)||yt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),y.optSelected||(k.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),k.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){k.propFix[this.toLowerCase()]=this}),k.fn.extend({addClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){k(this).addClass(t.call(this,e,xt(this)))});if((e=bt(t)).length)while(n=this[u++])if(i=xt(n),r=1===n.nodeType&&" "+mt(i)+" "){a=0;while(o=e[a++])r.indexOf(" "+o+" ")<0&&(r+=o+" ");i!==(s=mt(r))&&n.setAttribute("class",s)}return this},removeClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){k(this).removeClass(t.call(this,e,xt(this)))});if(!arguments.length)return this.attr("class","");if((e=bt(t)).length)while(n=this[u++])if(i=xt(n),r=1===n.nodeType&&" "+mt(i)+" "){a=0;while(o=e[a++])while(-1<r.indexOf(" "+o+" "))r=r.replace(" "+o+" "," ");i!==(s=mt(r))&&n.setAttribute("class",s)}return this},toggleClass:function(i,t){var o=typeof i,a="string"===o||Array.isArray(i);return"boolean"==typeof t&&a?t?this.addClass(i):this.removeClass(i):m(i)?this.each(function(e){k(this).toggleClass(i.call(this,e,xt(this),t),t)}):this.each(function(){var e,t,n,r;if(a){t=0,n=k(this),r=bt(i);while(e=r[t++])n.hasClass(e)?n.removeClass(e):n.addClass(e)}else void 0!==i&&"boolean"!==o||((e=xt(this))&&Q.set(this,"__className__",e),this.setAttribute&&this.setAttribute("class",e||!1===i?"":Q.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&-1<(" "+mt(xt(n))+" ").indexOf(t))return!0;return!1}});var wt=/\r/g;k.fn.extend({val:function(n){var r,e,i,t=this[0];return arguments.length?(i=m(n),this.each(function(e){var t;1===this.nodeType&&(null==(t=i?n.call(this,e,k(this).val()):n)?t="":"number"==typeof t?t+="":Array.isArray(t)&&(t=k.map(t,function(e){return null==e?"":e+""})),(r=k.valHooks[this.type]||k.valHooks[this.nodeName.toLowerCase()])&&"set"in r&&void 0!==r.set(this,t,"value")||(this.value=t))})):t?(r=k.valHooks[t.type]||k.valHooks[t.nodeName.toLowerCase()])&&"get"in r&&void 0!==(e=r.get(t,"value"))?e:"string"==typeof(e=t.value)?e.replace(wt,""):null==e?"":e:void 0}}),k.extend({valHooks:{option:{get:function(e){var t=k.find.attr(e,"value");return null!=t?t:mt(k.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r<u;r++)if(((n=i[r]).selected||r===o)&&!n.disabled&&(!n.parentNode.disabled||!A(n.parentNode,"optgroup"))){if(t=k(n).val(),a)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=k.makeArray(t),a=i.length;while(a--)((r=i[a]).selected=-1<k.inArray(k.valHooks.option.get(r),o))&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),k.each(["radio","checkbox"],function(){k.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=-1<k.inArray(k(e).val(),t)}},y.checkOn||(k.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),y.focusin="onfocusin"in C;var Tt=/^(?:focusinfocus|focusoutblur)$/,Ct=function(e){e.stopPropagation()};k.extend(k.event,{trigger:function(e,t,n,r){var i,o,a,s,u,l,c,f,p=[n||E],d=v.call(e,"type")?e.type:e,h=v.call(e,"namespace")?e.namespace.split("."):[];if(o=f=a=n=n||E,3!==n.nodeType&&8!==n.nodeType&&!Tt.test(d+k.event.triggered)&&(-1<d.indexOf(".")&&(d=(h=d.split(".")).shift(),h.sort()),u=d.indexOf(":")<0&&"on"+d,(e=e[k.expando]?e:new k.Event(d,"object"==typeof e&&e)).isTrigger=r?2:3,e.namespace=h.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=n),t=null==t?[e]:k.makeArray(t,[e]),c=k.event.special[d]||{},r||!c.trigger||!1!==c.trigger.apply(n,t))){if(!r&&!c.noBubble&&!x(n)){for(s=c.delegateType||d,Tt.test(s+d)||(o=o.parentNode);o;o=o.parentNode)p.push(o),a=o;a===(n.ownerDocument||E)&&p.push(a.defaultView||a.parentWindow||C)}i=0;while((o=p[i++])&&!e.isPropagationStopped())f=o,e.type=1<i?s:c.bindType||d,(l=(Q.get(o,"events")||{})[e.type]&&Q.get(o,"handle"))&&l.apply(o,t),(l=u&&o[u])&&l.apply&&G(o)&&(e.result=l.apply(o,t),!1===e.result&&e.preventDefault());return e.type=d,r||e.isDefaultPrevented()||c._default&&!1!==c._default.apply(p.pop(),t)||!G(n)||u&&m(n[d])&&!x(n)&&((a=n[u])&&(n[u]=null),k.event.triggered=d,e.isPropagationStopped()&&f.addEventListener(d,Ct),n[d](),e.isPropagationStopped()&&f.removeEventListener(d,Ct),k.event.triggered=void 0,a&&(n[u]=a)),e.result}},simulate:function(e,t,n){var r=k.extend(new k.Event,n,{type:e,isSimulated:!0});k.event.trigger(r,null,t)}}),k.fn.extend({trigger:function(e,t){return this.each(function(){k.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return k.event.trigger(e,t,n,!0)}}),y.focusin||k.each({focus:"focusin",blur:"focusout"},function(n,r){var i=function(e){k.event.simulate(r,e.target,k.event.fix(e))};k.event.special[r]={setup:function(){var e=this.ownerDocument||this,t=Q.access(e,r);t||e.addEventListener(n,i,!0),Q.access(e,r,(t||0)+1)},teardown:function(){var e=this.ownerDocument||this,t=Q.access(e,r)-1;t?Q.access(e,r,t):(e.removeEventListener(n,i,!0),Q.remove(e,r))}}});var Et=C.location,kt=Date.now(),St=/\?/;k.parseXML=function(e){var t;if(!e||"string"!=typeof e)return null;try{t=(new C.DOMParser).parseFromString(e,"text/xml")}catch(e){t=void 0}return t&&!t.getElementsByTagName("parsererror").length||k.error("Invalid XML: "+e),t};var Nt=/\[\]$/,At=/\r?\n/g,Dt=/^(?:submit|button|image|reset|file)$/i,jt=/^(?:input|select|textarea|keygen)/i;function qt(n,e,r,i){var t;if(Array.isArray(e))k.each(e,function(e,t){r||Nt.test(n)?i(n,t):qt(n+"["+("object"==typeof t&&null!=t?e:"")+"]",t,r,i)});else if(r||"object"!==w(e))i(n,e);else for(t in e)qt(n+"["+t+"]",e[t],r,i)}k.param=function(e,t){var n,r=[],i=function(e,t){var n=m(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(null==e)return"";if(Array.isArray(e)||e.jquery&&!k.isPlainObject(e))k.each(e,function(){i(this.name,this.value)});else for(n in e)qt(n,e[n],t,i);return r.join("&")},k.fn.extend({serialize:function(){return k.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=k.prop(this,"elements");return e?k.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!k(this).is(":disabled")&&jt.test(this.nodeName)&&!Dt.test(e)&&(this.checked||!pe.test(e))}).map(function(e,t){var n=k(this).val();return null==n?null:Array.isArray(n)?k.map(n,function(e){return{name:t.name,value:e.replace(At,"\r\n")}}):{name:t.name,value:n.replace(At,"\r\n")}}).get()}});var Lt=/%20/g,Ht=/#.*$/,Ot=/([?&])_=[^&]*/,Pt=/^(.*?):[ \t]*([^\r\n]*)$/gm,Rt=/^(?:GET|HEAD)$/,Mt=/^\/\//,It={},Wt={},$t="*/".concat("*"),Ft=E.createElement("a");function Bt(o){return function(e,t){"string"!=typeof e&&(t=e,e="*");var n,r=0,i=e.toLowerCase().match(R)||[];if(m(t))while(n=i[r++])"+"===n[0]?(n=n.slice(1)||"*",(o[n]=o[n]||[]).unshift(t)):(o[n]=o[n]||[]).push(t)}}function _t(t,i,o,a){var s={},u=t===Wt;function l(e){var r;return s[e]=!0,k.each(t[e]||[],function(e,t){var n=t(i,o,a);return"string"!=typeof n||u||s[n]?u?!(r=n):void 0:(i.dataTypes.unshift(n),l(n),!1)}),r}return l(i.dataTypes[0])||!s["*"]&&l("*")}function zt(e,t){var n,r,i=k.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&k.extend(!0,e,r),e}Ft.href=Et.href,k.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Et.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(Et.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":$t,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":k.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?zt(zt(e,k.ajaxSettings),t):zt(k.ajaxSettings,e)},ajaxPrefilter:Bt(It),ajaxTransport:Bt(Wt),ajax:function(e,t){"object"==typeof e&&(t=e,e=void 0),t=t||{};var c,f,p,n,d,r,h,g,i,o,v=k.ajaxSetup({},t),y=v.context||v,m=v.context&&(y.nodeType||y.jquery)?k(y):k.event,x=k.Deferred(),b=k.Callbacks("once memory"),w=v.statusCode||{},a={},s={},u="canceled",T={readyState:0,getResponseHeader:function(e){var t;if(h){if(!n){n={};while(t=Pt.exec(p))n[t[1].toLowerCase()+" "]=(n[t[1].toLowerCase()+" "]||[]).concat(t[2])}t=n[e.toLowerCase()+" "]}return null==t?null:t.join(", ")},getAllResponseHeaders:function(){return h?p:null},setRequestHeader:function(e,t){return null==h&&(e=s[e.toLowerCase()]=s[e.toLowerCase()]||e,a[e]=t),this},overrideMimeType:function(e){return null==h&&(v.mimeType=e),this},statusCode:function(e){var t;if(e)if(h)T.always(e[T.status]);else for(t in e)w[t]=[w[t],e[t]];return this},abort:function(e){var t=e||u;return c&&c.abort(t),l(0,t),this}};if(x.promise(T),v.url=((e||v.url||Et.href)+"").replace(Mt,Et.protocol+"//"),v.type=t.method||t.type||v.method||v.type,v.dataTypes=(v.dataType||"*").toLowerCase().match(R)||[""],null==v.crossDomain){r=E.createElement("a");try{r.href=v.url,r.href=r.href,v.crossDomain=Ft.protocol+"//"+Ft.host!=r.protocol+"//"+r.host}catch(e){v.crossDomain=!0}}if(v.data&&v.processData&&"string"!=typeof v.data&&(v.data=k.param(v.data,v.traditional)),_t(It,v,t,T),h)return T;for(i in(g=k.event&&v.global)&&0==k.active++&&k.event.trigger("ajaxStart"),v.type=v.type.toUpperCase(),v.hasContent=!Rt.test(v.type),f=v.url.replace(Ht,""),v.hasContent?v.data&&v.processData&&0===(v.contentType||"").indexOf("application/x-www-form-urlencoded")&&(v.data=v.data.replace(Lt,"+")):(o=v.url.slice(f.length),v.data&&(v.processData||"string"==typeof v.data)&&(f+=(St.test(f)?"&":"?")+v.data,delete v.data),!1===v.cache&&(f=f.replace(Ot,"$1"),o=(St.test(f)?"&":"?")+"_="+kt+++o),v.url=f+o),v.ifModified&&(k.lastModified[f]&&T.setRequestHeader("If-Modified-Since",k.lastModified[f]),k.etag[f]&&T.setRequestHeader("If-None-Match",k.etag[f])),(v.data&&v.hasContent&&!1!==v.contentType||t.contentType)&&T.setRequestHeader("Content-Type",v.contentType),T.setRequestHeader("Accept",v.dataTypes[0]&&v.accepts[v.dataTypes[0]]?v.accepts[v.dataTypes[0]]+("*"!==v.dataTypes[0]?", "+$t+"; q=0.01":""):v.accepts["*"]),v.headers)T.setRequestHeader(i,v.headers[i]);if(v.beforeSend&&(!1===v.beforeSend.call(y,T,v)||h))return T.abort();if(u="abort",b.add(v.complete),T.done(v.success),T.fail(v.error),c=_t(Wt,v,t,T)){if(T.readyState=1,g&&m.trigger("ajaxSend",[T,v]),h)return T;v.async&&0<v.timeout&&(d=C.setTimeout(function(){T.abort("timeout")},v.timeout));try{h=!1,c.send(a,l)}catch(e){if(h)throw e;l(-1,e)}}else l(-1,"No Transport");function l(e,t,n,r){var i,o,a,s,u,l=t;h||(h=!0,d&&C.clearTimeout(d),c=void 0,p=r||"",T.readyState=0<e?4:0,i=200<=e&&e<300||304===e,n&&(s=function(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}(v,T,n)),s=function(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}(v,s,T,i),i?(v.ifModified&&((u=T.getResponseHeader("Last-Modified"))&&(k.lastModified[f]=u),(u=T.getResponseHeader("etag"))&&(k.etag[f]=u)),204===e||"HEAD"===v.type?l="nocontent":304===e?l="notmodified":(l=s.state,o=s.data,i=!(a=s.error))):(a=l,!e&&l||(l="error",e<0&&(e=0))),T.status=e,T.statusText=(t||l)+"",i?x.resolveWith(y,[o,l,T]):x.rejectWith(y,[T,l,a]),T.statusCode(w),w=void 0,g&&m.trigger(i?"ajaxSuccess":"ajaxError",[T,v,i?o:a]),b.fireWith(y,[T,l]),g&&(m.trigger("ajaxComplete",[T,v]),--k.active||k.event.trigger("ajaxStop")))}return T},getJSON:function(e,t,n){return k.get(e,t,n,"json")},getScript:function(e,t){return k.get(e,void 0,t,"script")}}),k.each(["get","post"],function(e,i){k[i]=function(e,t,n,r){return m(t)&&(r=r||n,n=t,t=void 0),k.ajax(k.extend({url:e,type:i,dataType:r,data:t,success:n},k.isPlainObject(e)&&e))}}),k._evalUrl=function(e,t){return k.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(e){k.globalEval(e,t)}})},k.fn.extend({wrapAll:function(e){var t;return this[0]&&(m(e)&&(e=e.call(this[0])),t=k(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(n){return m(n)?this.each(function(e){k(this).wrapInner(n.call(this,e))}):this.each(function(){var e=k(this),t=e.contents();t.length?t.wrapAll(n):e.append(n)})},wrap:function(t){var n=m(t);return this.each(function(e){k(this).wrapAll(n?t.call(this,e):t)})},unwrap:function(e){return this.parent(e).not("body").each(function(){k(this).replaceWith(this.childNodes)}),this}}),k.expr.pseudos.hidden=function(e){return!k.expr.pseudos.visible(e)},k.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},k.ajaxSettings.xhr=function(){try{return new C.XMLHttpRequest}catch(e){}};var Ut={0:200,1223:204},Xt=k.ajaxSettings.xhr();y.cors=!!Xt&&"withCredentials"in Xt,y.ajax=Xt=!!Xt,k.ajaxTransport(function(i){var o,a;if(y.cors||Xt&&!i.crossDomain)return{send:function(e,t){var n,r=i.xhr();if(r.open(i.type,i.url,i.async,i.username,i.password),i.xhrFields)for(n in i.xhrFields)r[n]=i.xhrFields[n];for(n in i.mimeType&&r.overrideMimeType&&r.overrideMimeType(i.mimeType),i.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest"),e)r.setRequestHeader(n,e[n]);o=function(e){return function(){o&&(o=a=r.onload=r.onerror=r.onabort=r.ontimeout=r.onreadystatechange=null,"abort"===e?r.abort():"error"===e?"number"!=typeof r.status?t(0,"error"):t(r.status,r.statusText):t(Ut[r.status]||r.status,r.statusText,"text"!==(r.responseType||"text")||"string"!=typeof r.responseText?{binary:r.response}:{text:r.responseText},r.getAllResponseHeaders()))}},r.onload=o(),a=r.onerror=r.ontimeout=o("error"),void 0!==r.onabort?r.onabort=a:r.onreadystatechange=function(){4===r.readyState&&C.setTimeout(function(){o&&a()})},o=o("abort");try{r.send(i.hasContent&&i.data||null)}catch(e){if(o)throw e}},abort:function(){o&&o()}}}),k.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),k.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return k.globalEval(e),e}}}),k.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),k.ajaxTransport("script",function(n){var r,i;if(n.crossDomain||n.scriptAttrs)return{send:function(e,t){r=k("<script>").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Vt,Gt=[],Yt=/(=)\?(?=&|$)|\?\?/;k.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Gt.pop()||k.expando+"_"+kt++;return this[e]=!0,e}}),k.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Yt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Yt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Yt,"$1"+r):!1!==e.jsonp&&(e.url+=(St.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||k.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?k(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Gt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Vt=E.implementation.createHTMLDocument("").body).innerHTML="<form></form><form></form>",2===Vt.childNodes.length),k.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=D.exec(e))?[t.createElement(i[1])]:(i=we([e],t,o),o&&o.length&&k(o).remove(),k.merge([],i.childNodes)));var r,i,o},k.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1<s&&(r=mt(e.slice(s)),e=e.slice(0,s)),m(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),0<a.length&&k.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,a.html(r?k("<div>").append(k.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},k.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){k.fn[t]=function(e){return this.on(t,e)}}),k.expr.pseudos.animated=function(t){return k.grep(k.timers,function(e){return t===e.elem}).length},k.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=k.css(e,"position"),c=k(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=k.css(e,"top"),u=k.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,k.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},k.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){k.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===k.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===k.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=k(e).offset()).top+=k.css(e,"borderTopWidth",!0),i.left+=k.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-k.css(r,"marginTop",!0),left:t.left-i.left-k.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===k.css(e,"position"))e=e.offsetParent;return e||ie})}}),k.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;k.fn[t]=function(e){return _(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),k.each(["top","left"],function(e,n){k.cssHooks[n]=ze(y.pixelPosition,function(e,t){if(t)return t=_e(e,n),$e.test(t)?k(e).position()[n]+"px":t})}),k.each({Height:"height",Width:"width"},function(a,s){k.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){k.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return _(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?k.css(e,t,i):k.style(e,t,n,i)},s,n?e:void 0,n)}})}),k.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){k.fn[n]=function(e,t){return 0<arguments.length?this.on(n,null,e,t):this.trigger(n)}}),k.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),k.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}}),k.proxy=function(e,t){var n,r,i;if("string"==typeof t&&(n=e[t],t=e,e=n),m(e))return r=s.call(arguments,2),(i=function(){return e.apply(t||this,r.concat(s.call(arguments)))}).guid=e.guid=e.guid||k.guid++,i},k.holdReady=function(e){e?k.readyWait++:k.ready(!0)},k.isArray=Array.isArray,k.parseJSON=JSON.parse,k.nodeName=A,k.isFunction=m,k.isWindow=x,k.camelCase=V,k.type=w,k.now=Date.now,k.isNumeric=function(e){var t=k.type(e);return("number"===t||"string"===t)&&!isNaN(e-parseFloat(e))},"function"==typeof define&&define.amd&&define("jquery",[],function(){return k});var Qt=C.jQuery,Jt=C.$;return k.noConflict=function(e){return C.$===k&&(C.$=Jt),e&&C.jQuery===k&&(C.jQuery=Qt),k},e||(C.jQuery=C.$=k),k});
-/*! jQuery UI - v1.12.1 - 2019-01-27
+/*! jQuery v3.6.0 | (c) OpenJS Foundation and other contributors | jquery.org/license */
+!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.6.0",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0<t&&t-1 in e)}S.fn=S.prototype={jquery:f,constructor:S,length:0,toArray:function(){return s.call(this)},get:function(e){return null==e?s.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=S.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return S.each(this,e)},map:function(n){return this.pushStack(S.map(this,function(e,t){return n.call(e,t,e)}))},slice:function(){return this.pushStack(s.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},even:function(){return this.pushStack(S.grep(this,function(e,t){return(t+1)%2}))},odd:function(){return this.pushStack(S.grep(this,function(e,t){return t%2}))},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(0<=n&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:u,sort:t.sort,splice:t.splice},S.extend=S.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[s]||{},s++),"object"==typeof a||m(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)r=e[t],"__proto__"!==t&&a!==r&&(l&&r&&(S.isPlainObject(r)||(i=Array.isArray(r)))?(n=a[t],o=i&&!Array.isArray(n)?[]:i||S.isPlainObject(n)?n:{},i=!1,a[t]=S.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},S.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||"[object Object]"!==o.call(e))&&(!(t=r(e))||"function"==typeof(n=v.call(t,"constructor")&&t.constructor)&&a.call(n)===l)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e,t,n){b(e,{nonce:t&&t.nonce},n)},each:function(e,t){var n,r=0;if(p(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},makeArray:function(e,t){var n=t||[];return null!=e&&(p(Object(e))?S.merge(n,"string"==typeof e?[e]:e):u.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:i.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r=[],i=0,o=e.length,a=!n;i<o;i++)!t(e[i],i)!==a&&r.push(e[i]);return r},map:function(e,t,n){var r,i,o=0,a=[];if(p(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&a.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&a.push(i);return g(a)},guid:1,support:y}),"function"==typeof Symbol&&(S.fn[Symbol.iterator]=t[Symbol.iterator]),S.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){n["[object "+t+"]"]=t.toLowerCase()});var d=function(n){var e,d,b,o,i,h,f,g,w,u,l,T,C,a,E,v,s,c,y,S="sizzle"+1*new Date,p=n.document,k=0,r=0,m=ue(),x=ue(),A=ue(),N=ue(),j=function(e,t){return e===t&&(l=!0),0},D={}.hasOwnProperty,t=[],q=t.pop,L=t.push,H=t.push,O=t.slice,P=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},R="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",I="(?:\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+",W="\\["+M+"*("+I+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+I+"))|)"+M+"*\\]",F=":("+I+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+W+")*)|.*)\\)|)",B=new RegExp(M+"+","g"),$=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),_=new RegExp("^"+M+"*,"+M+"*"),z=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="<a id='"+S+"'></a><select id='"+S+"-\r\\' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0<se(t,C,null,[e]).length},se.contains=function(e,t){return(e.ownerDocument||e)!=C&&T(e),y(e,t)},se.attr=function(e,t){(e.ownerDocument||e)!=C&&T(e);var n=b.attrHandle[t.toLowerCase()],r=n&&D.call(b.attrHandle,t.toLowerCase())?n(e,t,!E):void 0;return void 0!==r?r:d.attributes||!E?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},se.escape=function(e){return(e+"").replace(re,ie)},se.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},se.uniqueSort=function(e){var t,n=[],r=0,i=0;if(l=!d.detectDuplicates,u=!d.sortStable&&e.slice(0),e.sort(j),l){while(t=e[i++])t===e[i]&&(r=n.push(i));while(r--)e.splice(n[r],1)}return u=null,e},o=se.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=o(e)}else if(3===i||4===i)return e.nodeValue}else while(t=e[r++])n+=o(t);return n},(b=se.selectors={cacheLength:50,createPseudo:le,match:G,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1<t.indexOf(i):"$="===r?i&&t.slice(-i.length)===i:"~="===r?-1<(" "+t.replace(B," ")+" ").indexOf(i):"|="===r&&(t===i||t.slice(0,i.length+1)===i+"-"))}},CHILD:function(h,e,t,g,v){var y="nth"!==h.slice(0,3),m="last"!==h.slice(-4),x="of-type"===e;return 1===g&&0===v?function(e){return!!e.parentNode}:function(e,t,n){var r,i,o,a,s,u,l=y!==m?"nextSibling":"previousSibling",c=e.parentNode,f=x&&e.nodeName.toLowerCase(),p=!n&&!x,d=!1;if(c){if(y){while(l){a=e;while(a=a[l])if(x?a.nodeName.toLowerCase()===f:1===a.nodeType)return!1;u=l="only"===h&&!u&&"nextSibling"}return!0}if(u=[m?c.firstChild:c.lastChild],m&&p){d=(s=(r=(i=(o=(a=c)[S]||(a[S]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===k&&r[1])&&r[2],a=s&&c.childNodes[s];while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if(1===a.nodeType&&++d&&a===e){i[h]=[k,s,d];break}}else if(p&&(d=s=(r=(i=(o=(a=e)[S]||(a[S]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===k&&r[1]),!1===d)while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if((x?a.nodeName.toLowerCase()===f:1===a.nodeType)&&++d&&(p&&((i=(o=a[S]||(a[S]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]=[k,d]),a===e))break;return(d-=v)===g||d%g==0&&0<=d/g}}},PSEUDO:function(e,o){var t,a=b.pseudos[e]||b.setFilters[e.toLowerCase()]||se.error("unsupported pseudo: "+e);return a[S]?a(o):1<a.length?(t=[e,e,"",o],b.setFilters.hasOwnProperty(e.toLowerCase())?le(function(e,t){var n,r=a(e,o),i=r.length;while(i--)e[n=P(e,r[i])]=!(t[n]=r[i])}):function(e){return a(e,0,t)}):a}},pseudos:{not:le(function(e){var r=[],i=[],s=f(e.replace($,"$1"));return s[S]?le(function(e,t,n,r){var i,o=s(e,null,r,[]),a=e.length;while(a--)(i=o[a])&&(e[a]=!(t[a]=i))}):function(e,t,n){return r[0]=e,s(r,null,n,i),r[0]=null,!i.pop()}}),has:le(function(t){return function(e){return 0<se(t,e).length}}),contains:le(function(t){return t=t.replace(te,ne),function(e){return-1<(e.textContent||o(e)).indexOf(t)}}),lang:le(function(n){return V.test(n||"")||se.error("unsupported lang: "+n),n=n.replace(te,ne).toLowerCase(),function(e){var t;do{if(t=E?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return(t=t.toLowerCase())===n||0===t.indexOf(n+"-")}while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var t=n.location&&n.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===a},focus:function(e){return e===C.activeElement&&(!C.hasFocus||C.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:ge(!1),disabled:ge(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!b.pseudos.empty(e)},header:function(e){return J.test(e.nodeName)},input:function(e){return Q.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:ve(function(){return[0]}),last:ve(function(e,t){return[t-1]}),eq:ve(function(e,t,n){return[n<0?n+t:n]}),even:ve(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:ve(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:ve(function(e,t,n){for(var r=n<0?n+t:t<n?t:n;0<=--r;)e.push(r);return e}),gt:ve(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=b.pseudos.eq,{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})b.pseudos[e]=de(e);for(e in{submit:!0,reset:!0})b.pseudos[e]=he(e);function me(){}function xe(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function be(s,e,t){var u=e.dir,l=e.next,c=l||u,f=t&&"parentNode"===c,p=r++;return e.first?function(e,t,n){while(e=e[u])if(1===e.nodeType||f)return s(e,t,n);return!1}:function(e,t,n){var r,i,o,a=[k,p];if(n){while(e=e[u])if((1===e.nodeType||f)&&s(e,t,n))return!0}else while(e=e[u])if(1===e.nodeType||f)if(i=(o=e[S]||(e[S]={}))[e.uniqueID]||(o[e.uniqueID]={}),l&&l===e.nodeName.toLowerCase())e=e[u]||e;else{if((r=i[c])&&r[0]===k&&r[1]===p)return a[2]=r[2];if((i[c]=a)[2]=s(e,t,n))return!0}return!1}}function we(i){return 1<i.length?function(e,t,n){var r=i.length;while(r--)if(!i[r](e,t,n))return!1;return!0}:i[0]}function Te(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),l&&t.push(s)));return a}function Ce(d,h,g,v,y,e){return v&&!v[S]&&(v=Ce(v)),y&&!y[S]&&(y=Ce(y,e)),le(function(e,t,n,r){var i,o,a,s=[],u=[],l=t.length,c=e||function(e,t,n){for(var r=0,i=t.length;r<i;r++)se(e,t[r],n);return n}(h||"*",n.nodeType?[n]:n,[]),f=!d||!e&&h?c:Te(c,s,d,n,r),p=g?y||(e?d:l||v)?[]:t:f;if(g&&g(f,p,n,r),v){i=Te(p,u),v(i,[],n,r),o=i.length;while(o--)(a=i[o])&&(p[u[o]]=!(f[u[o]]=a))}if(e){if(y||d){if(y){i=[],o=p.length;while(o--)(a=p[o])&&i.push(f[o]=a);y(null,p=[],i,r)}o=p.length;while(o--)(a=p[o])&&-1<(i=y?P(e,a):s[o])&&(e[i]=!(t[i]=a))}}else p=Te(p===t?p.splice(l,p.length):p),y?y(null,t,p,r):H.apply(t,p)})}function Ee(e){for(var i,t,n,r=e.length,o=b.relative[e[0].type],a=o||b.relative[" "],s=o?1:0,u=be(function(e){return e===i},a,!0),l=be(function(e){return-1<P(i,e)},a,!0),c=[function(e,t,n){var r=!o&&(n||t!==w)||((i=t).nodeType?u(e,t,n):l(e,t,n));return i=null,r}];s<r;s++)if(t=b.relative[e[s].type])c=[be(we(c),t)];else{if((t=b.filter[e[s].type].apply(null,e[s].matches))[S]){for(n=++s;n<r;n++)if(b.relative[e[n].type])break;return Ce(1<s&&we(c),1<s&&xe(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace($,"$1"),t,s<n&&Ee(e.slice(s,n)),n<r&&Ee(e=e.slice(n)),n<r&&xe(e))}c.push(t)}return we(c)}return me.prototype=b.filters=b.pseudos,b.setFilters=new me,h=se.tokenize=function(e,t){var n,r,i,o,a,s,u,l=x[e+" "];if(l)return t?0:l.slice(0);a=e,s=[],u=b.preFilter;while(a){for(o in n&&!(r=_.exec(a))||(r&&(a=a.slice(r[0].length)||a),s.push(i=[])),n=!1,(r=z.exec(a))&&(n=r.shift(),i.push({value:n,type:r[0].replace($," ")}),a=a.slice(n.length)),b.filter)!(r=G[o].exec(a))||u[o]&&!(r=u[o](r))||(n=r.shift(),i.push({value:n,type:o,matches:r}),a=a.slice(n.length));if(!n)break}return t?a.length:a?se.error(e):x(e,s).slice(0)},f=se.compile=function(e,t){var n,v,y,m,x,r,i=[],o=[],a=A[e+" "];if(!a){t||(t=h(e)),n=t.length;while(n--)(a=Ee(t[n]))[S]?i.push(a):o.push(a);(a=A(e,(v=o,m=0<(y=i).length,x=0<v.length,r=function(e,t,n,r,i){var o,a,s,u=0,l="0",c=e&&[],f=[],p=w,d=e||x&&b.find.TAG("*",i),h=k+=null==p?1:Math.random()||.1,g=d.length;for(i&&(w=t==C||t||i);l!==g&&null!=(o=d[l]);l++){if(x&&o){a=0,t||o.ownerDocument==C||(T(o),n=!E);while(s=v[a++])if(s(o,t||C,n)){r.push(o);break}i&&(k=h)}m&&((o=!s&&o)&&u--,e&&c.push(o))}if(u+=l,m&&l!==u){a=0;while(s=y[a++])s(c,f,t,n);if(e){if(0<u)while(l--)c[l]||f[l]||(f[l]=q.call(r));f=Te(f)}H.apply(r,f),i&&!e&&0<f.length&&1<u+y.length&&se.uniqueSort(r)}return i&&(k=h,w=p),c},m?le(r):r))).selector=e}return a},g=se.select=function(e,t,n,r){var i,o,a,s,u,l="function"==typeof e&&e,c=!r&&h(e=l.selector||e);if(n=n||[],1===c.length){if(2<(o=c[0]=c[0].slice(0)).length&&"ID"===(a=o[0]).type&&9===t.nodeType&&E&&b.relative[o[1].type]){if(!(t=(b.find.ID(a.matches[0].replace(te,ne),t)||[])[0]))return n;l&&(t=t.parentNode),e=e.slice(o.shift().value.length)}i=G.needsContext.test(e)?0:o.length;while(i--){if(a=o[i],b.relative[s=a.type])break;if((u=b.find[s])&&(r=u(a.matches[0].replace(te,ne),ee.test(o[0].type)&&ye(t.parentNode)||t))){if(o.splice(i,1),!(e=r.length&&xe(o)))return H.apply(n,r),n;break}}}return(l||f(e,c))(r,t,!E,n,!t||ee.test(e)&&ye(t.parentNode)||t),n},d.sortStable=S.split("").sort(j).join("")===S,d.detectDuplicates=!!l,T(),d.sortDetached=ce(function(e){return 1&e.compareDocumentPosition(C.createElement("fieldset"))}),ce(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||fe("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),d.attributes&&ce(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||fe("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),ce(function(e){return null==e.getAttribute("disabled")})||fe(R,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),se}(C);S.find=d,S.expr=d.selectors,S.expr[":"]=S.expr.pseudos,S.uniqueSort=S.unique=d.uniqueSort,S.text=d.getText,S.isXMLDoc=d.isXML,S.contains=d.contains,S.escapeSelector=d.escape;var h=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&S(e).is(n))break;r.push(e)}return r},T=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},k=S.expr.match.needsContext;function A(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var N=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1<i.call(n,e)!==r}):S.filter(n,e,r)}S.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?S.find.matchesSelector(r,e)?[r]:[]:S.find.matches(e,S.grep(t,function(e){return 1===e.nodeType}))},S.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(S(e).filter(function(){for(t=0;t<r;t++)if(S.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)S.find(e,i[t],n);return 1<r?S.uniqueSort(n):n},filter:function(e){return this.pushStack(j(this,e||[],!1))},not:function(e){return this.pushStack(j(this,e||[],!0))},is:function(e){return!!j(this,"string"==typeof e&&k.test(e)?S(e):e||[],!1).length}});var D,q=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(S.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a="string"!=typeof e&&S(e);if(!k.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?-1<a.index(n):1===n.nodeType&&S.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(1<o.length?S.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?i.call(S(e),this[0]):i.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(S.uniqueSort(S.merge(this.get(),S(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),S.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return h(e,"parentNode")},parentsUntil:function(e,t,n){return h(e,"parentNode",n)},next:function(e){return O(e,"nextSibling")},prev:function(e){return O(e,"previousSibling")},nextAll:function(e){return h(e,"nextSibling")},prevAll:function(e){return h(e,"previousSibling")},nextUntil:function(e,t,n){return h(e,"nextSibling",n)},prevUntil:function(e,t,n){return h(e,"previousSibling",n)},siblings:function(e){return T((e.parentNode||{}).firstChild,e)},children:function(e){return T(e.firstChild)},contents:function(e){return null!=e.contentDocument&&r(e.contentDocument)?e.contentDocument:(A(e,"template")&&(e=e.content||e),S.merge([],e.childNodes))}},function(r,i){S.fn[r]=function(e,t){var n=S.map(this,i,e);return"Until"!==r.slice(-5)&&(t=e),t&&"string"==typeof t&&(n=S.filter(t,n)),1<this.length&&(H[r]||S.uniqueSort(n),L.test(r)&&n.reverse()),this.pushStack(n)}});var P=/[^\x20\t\r\n\f]+/g;function R(e){return e}function M(e){throw e}function I(e,t,n,r){var i;try{e&&m(i=e.promise)?i.call(e).done(t).fail(n):e&&m(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}S.Callbacks=function(r){var e,n;r="string"==typeof r?(e=r,n={},S.each(e.match(P)||[],function(e,t){n[t]=!0}),n):S.extend({},r);var i,t,o,a,s=[],u=[],l=-1,c=function(){for(a=a||r.once,o=i=!0;u.length;l=-1){t=u.shift();while(++l<s.length)!1===s[l].apply(t[0],t[1])&&r.stopOnFalse&&(l=s.length,t=!1)}r.memory||(t=!1),i=!1,a&&(s=t?[]:"")},f={add:function(){return s&&(t&&!i&&(l=s.length-1,u.push(t)),function n(e){S.each(e,function(e,t){m(t)?r.unique&&f.has(t)||s.push(t):t&&t.length&&"string"!==w(t)&&n(t)})}(arguments),t&&!i&&c()),this},remove:function(){return S.each(arguments,function(e,t){var n;while(-1<(n=S.inArray(t,s,n)))s.splice(n,1),n<=l&&l--}),this},has:function(e){return e?-1<S.inArray(e,s):0<s.length},empty:function(){return s&&(s=[]),this},disable:function(){return a=u=[],s=t="",this},disabled:function(){return!s},lock:function(){return a=u=[],t||i||(s=t=""),this},locked:function(){return!!a},fireWith:function(e,t){return a||(t=[e,(t=t||[]).slice?t.slice():t],u.push(t),i||c()),this},fire:function(){return f.fireWith(this,arguments),this},fired:function(){return!!o}};return f},S.extend({Deferred:function(e){var o=[["notify","progress",S.Callbacks("memory"),S.Callbacks("memory"),2],["resolve","done",S.Callbacks("once memory"),S.Callbacks("once memory"),0,"resolved"],["reject","fail",S.Callbacks("once memory"),S.Callbacks("once memory"),1,"rejected"]],i="pending",a={state:function(){return i},always:function(){return s.done(arguments).fail(arguments),this},"catch":function(e){return a.then(null,e)},pipe:function(){var i=arguments;return S.Deferred(function(r){S.each(o,function(e,t){var n=m(i[t[4]])&&i[t[4]];s[t[1]](function(){var e=n&&n.apply(this,arguments);e&&m(e.promise)?e.promise().progress(r.notify).done(r.resolve).fail(r.reject):r[t[0]+"With"](this,n?[e]:arguments)})}),i=null}).promise()},then:function(t,n,r){var u=0;function l(i,o,a,s){return function(){var n=this,r=arguments,e=function(){var e,t;if(!(i<u)){if((e=a.apply(n,r))===o.promise())throw new TypeError("Thenable self-resolution");t=e&&("object"==typeof e||"function"==typeof e)&&e.then,m(t)?s?t.call(e,l(u,o,R,s),l(u,o,M,s)):(u++,t.call(e,l(u,o,R,s),l(u,o,M,s),l(u,o,R,o.notifyWith))):(a!==R&&(n=void 0,r=[e]),(s||o.resolveWith)(n,r))}},t=s?e:function(){try{e()}catch(e){S.Deferred.exceptionHook&&S.Deferred.exceptionHook(e,t.stackTrace),u<=i+1&&(a!==M&&(n=void 0,r=[e]),o.rejectWith(n,r))}};i?t():(S.Deferred.getStackHook&&(t.stackTrace=S.Deferred.getStackHook()),C.setTimeout(t))}}return S.Deferred(function(e){o[0][3].add(l(0,e,m(r)?r:R,e.notifyWith)),o[1][3].add(l(0,e,m(t)?t:R)),o[2][3].add(l(0,e,m(n)?n:M))}).promise()},promise:function(e){return null!=e?S.extend(e,a):a}},s={};return S.each(o,function(e,t){var n=t[2],r=t[5];a[t[1]]=n.add,r&&n.add(function(){i=r},o[3-e][2].disable,o[3-e][3].disable,o[0][2].lock,o[0][3].lock),n.add(t[3].fire),s[t[0]]=function(){return s[t[0]+"With"](this===s?void 0:this,arguments),this},s[t[0]+"With"]=n.fireWith}),a.promise(s),e&&e.call(s,s),s},when:function(e){var n=arguments.length,t=n,r=Array(t),i=s.call(arguments),o=S.Deferred(),a=function(t){return function(e){r[t]=this,i[t]=1<arguments.length?s.call(arguments):e,--n||o.resolveWith(r,i)}};if(n<=1&&(I(e,o.done(a(t)).resolve,o.reject,!n),"pending"===o.state()||m(i[t]&&i[t].then)))return o.then();while(t--)I(i[t],a(t),o.reject);return o.promise()}});var W=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;S.Deferred.exceptionHook=function(e,t){C.console&&C.console.warn&&e&&W.test(e.name)&&C.console.warn("jQuery.Deferred exception: "+e.message,e.stack,t)},S.readyException=function(e){C.setTimeout(function(){throw e})};var F=S.Deferred();function B(){E.removeEventListener("DOMContentLoaded",B),C.removeEventListener("load",B),S.ready()}S.fn.ready=function(e){return F.then(e)["catch"](function(e){S.readyException(e)}),this},S.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--S.readyWait:S.isReady)||(S.isReady=!0)!==e&&0<--S.readyWait||F.resolveWith(E,[S])}}),S.ready.then=F.then,"complete"===E.readyState||"loading"!==E.readyState&&!E.documentElement.doScroll?C.setTimeout(S.ready):(E.addEventListener("DOMContentLoaded",B),C.addEventListener("load",B));var $=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===w(n))for(s in i=!0,n)$(e,t,s,n[s],!0,o,a);else if(void 0!==r&&(i=!0,m(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(S(e),n)})),t))for(;s<u;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:l?t.call(e):u?t(e[0],n):o},_=/^-ms-/,z=/-([a-z])/g;function U(e,t){return t.toUpperCase()}function X(e){return e.replace(_,"ms-").replace(z,U)}var V=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function G(){this.expando=S.expando+G.uid++}G.uid=1,G.prototype={cache:function(e){var t=e[this.expando];return t||(t={},V(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if("string"==typeof t)i[X(t)]=n;else for(r in t)i[X(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][X(t)]},access:function(e,t,n){return void 0===t||t&&"string"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){n=(t=Array.isArray(t)?t.map(X):(t=X(t))in r?[t]:t.match(P)||[]).length;while(n--)delete r[t[n]]}(void 0===t||S.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!S.isEmptyObject(t)}};var Y=new G,Q=new G,J=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,K=/[A-Z]/g;function Z(e,t,n){var r,i;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(K,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n="true"===(i=n)||"false"!==i&&("null"===i?null:i===+i+""?+i:J.test(i)?JSON.parse(i):i)}catch(e){}Q.set(e,t,n)}else n=void 0;return n}S.extend({hasData:function(e){return Q.hasData(e)||Y.hasData(e)},data:function(e,t,n){return Q.access(e,t,n)},removeData:function(e,t){Q.remove(e,t)},_data:function(e,t,n){return Y.access(e,t,n)},_removeData:function(e,t){Y.remove(e,t)}}),S.fn.extend({data:function(n,e){var t,r,i,o=this[0],a=o&&o.attributes;if(void 0===n){if(this.length&&(i=Q.get(o),1===o.nodeType&&!Y.get(o,"hasDataAttrs"))){t=a.length;while(t--)a[t]&&0===(r=a[t].name).indexOf("data-")&&(r=X(r.slice(5)),Z(o,r,i[r]));Y.set(o,"hasDataAttrs",!0)}return i}return"object"==typeof n?this.each(function(){Q.set(this,n)}):$(this,function(e){var t;if(o&&void 0===e)return void 0!==(t=Q.get(o,n))?t:void 0!==(t=Z(o,n))?t:void 0;this.each(function(){Q.set(this,n,e)})},null,e,1<arguments.length,null,!0)},removeData:function(e){return this.each(function(){Q.remove(this,e)})}}),S.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=Y.get(e,t),n&&(!r||Array.isArray(n)?r=Y.access(e,t,S.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=S.queue(e,t),r=n.length,i=n.shift(),o=S._queueHooks(e,t);"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,function(){S.dequeue(e,t)},o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return Y.get(e,n)||Y.access(e,n,{empty:S.Callbacks("once memory").add(function(){Y.remove(e,[t+"queue",n])})})}}),S.fn.extend({queue:function(t,n){var e=2;return"string"!=typeof t&&(n=t,t="fx",e--),arguments.length<e?S.queue(this[0],t):void 0===n?this:this.each(function(){var e=S.queue(this,t,n);S._queueHooks(this,t),"fx"===t&&"inprogress"!==e[0]&&S.dequeue(this,t)})},dequeue:function(e){return this.each(function(){S.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=S.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};"string"!=typeof e&&(t=e,e=void 0),e=e||"fx";while(a--)(n=Y.get(o[a],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var ee=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,te=new RegExp("^(?:([+-])=|)("+ee+")([a-z%]*)$","i"),ne=["Top","Right","Bottom","Left"],re=E.documentElement,ie=function(e){return S.contains(e.ownerDocument,e)},oe={composed:!0};re.getRootNode&&(ie=function(e){return S.contains(e.ownerDocument,e)||e.getRootNode(oe)===e.ownerDocument});var ae=function(e,t){return"none"===(e=t||e).style.display||""===e.style.display&&ie(e)&&"none"===S.css(e,"display")};function se(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return S.css(e,t,"")},u=s(),l=n&&n[3]||(S.cssNumber[t]?"":"px"),c=e.nodeType&&(S.cssNumber[t]||"px"!==l&&+u)&&te.exec(S.css(e,t));if(c&&c[3]!==l){u/=2,l=l||c[3],c=+u||1;while(a--)S.style(e,t,c+l),(1-o)*(1-(o=s()/u||.5))<=0&&(a=0),c/=o;c*=2,S.style(e,t,c+l),n=n||[]}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}var ue={};function le(e,t){for(var n,r,i,o,a,s,u,l=[],c=0,f=e.length;c<f;c++)(r=e[c]).style&&(n=r.style.display,t?("none"===n&&(l[c]=Y.get(r,"display")||null,l[c]||(r.style.display="")),""===r.style.display&&ae(r)&&(l[c]=(u=a=o=void 0,a=(i=r).ownerDocument,s=i.nodeName,(u=ue[s])||(o=a.body.appendChild(a.createElement(s)),u=S.css(o,"display"),o.parentNode.removeChild(o),"none"===u&&(u="block"),ue[s]=u)))):"none"!==n&&(l[c]="none",Y.set(r,"display",n)));for(c=0;c<f;c++)null!=l[c]&&(e[c].style.display=l[c]);return e}S.fn.extend({show:function(){return le(this,!0)},hide:function(){return le(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){ae(this)?S(this).show():S(this).hide()})}});var ce,fe,pe=/^(?:checkbox|radio)$/i,de=/<([a-z][^\/\0>\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="<textarea>x</textarea>",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="<option></option>",y.option=!!ce.lastChild;var ge={thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n<r;n++)Y.set(e[n],"globalEval",!t||Y.get(t[n],"globalEval"))}ge.tbody=ge.tfoot=ge.colgroup=ge.caption=ge.thead,ge.th=ge.td,y.option||(ge.optgroup=ge.option=[1,"<select multiple='multiple'>","</select>"]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d<h;d++)if((o=e[d])||0===o)if("object"===w(o))S.merge(p,o.nodeType?[o]:o);else if(me.test(o)){a=a||f.appendChild(t.createElement("div")),s=(de.exec(o)||["",""])[1].toLowerCase(),u=ge[s]||ge._default,a.innerHTML=u[1]+S.htmlPrefilter(o)+u[2],c=u[0];while(c--)a=a.lastChild;S.merge(p,a.childNodes),(a=f.firstChild).textContent=""}else p.push(t.createTextNode(o));f.textContent="",d=0;while(o=p[d++])if(r&&-1<S.inArray(o,r))i&&i.push(o);else if(l=ie(o),a=ve(f.appendChild(o),"script"),l&&ye(a),n){c=0;while(o=a[c++])he.test(o.type||"")&&n.push(o)}return f}var be=/^([^.]*)(?:\.(.+)|)/;function we(){return!0}function Te(){return!1}function Ce(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function Ee(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ee(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Te;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return S().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=S.guid++)),e.each(function(){S.event.add(this,t,i,r,n)})}function Se(e,i,o){o?(Y.set(e,i,!1),S.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Y.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(S.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Y.set(this,i,r),t=o(this,i),this[i](),r!==(n=Y.get(this,i))||t?Y.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n&&n.value}else r.length&&(Y.set(this,i,{value:S.event.trigger(S.extend(r[0],S.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Y.get(e,i)&&S.event.add(e,i,we)}S.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Y.get(t);if(V(t)){n.handler&&(n=(o=n).handler,i=o.selector),i&&S.find.matchesSelector(re,i),n.guid||(n.guid=S.guid++),(u=v.events)||(u=v.events=Object.create(null)),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof S&&S.event.triggered!==e.type?S.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(P)||[""]).length;while(l--)d=g=(s=be.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=S.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=S.event.special[d]||{},c=S.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&S.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),S.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Y.hasData(e)&&Y.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(P)||[""]).length;while(l--)if(d=g=(s=be.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=S.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||S.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)S.event.remove(e,d+t[l],n,r,!0);S.isEmptyObject(u)&&Y.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=new Array(arguments.length),u=S.event.fix(e),l=(Y.get(this,"events")||Object.create(null))[u.type]||[],c=S.event.special[u.type]||{};for(s[0]=u,t=1;t<arguments.length;t++)s[t]=arguments[t];if(u.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,u)){a=S.event.handlers.call(this,u,l),t=0;while((i=a[t++])&&!u.isPropagationStopped()){u.currentTarget=i.elem,n=0;while((o=i.handlers[n++])&&!u.isImmediatePropagationStopped())u.rnamespace&&!1!==o.namespace&&!u.rnamespace.test(o.namespace)||(u.handleObj=o,u.data=o.data,void 0!==(r=((S.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,s))&&!1===(u.result=r)&&(u.preventDefault(),u.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,u),u.result}},handlers:function(e,t){var n,r,i,o,a,s=[],u=t.delegateCount,l=e.target;if(u&&l.nodeType&&!("click"===e.type&&1<=e.button))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n<u;n++)void 0===a[i=(r=t[n]).selector+" "]&&(a[i]=r.needsContext?-1<S(i,this).index(l):S.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u<t.length&&s.push({elem:l,handlers:t.slice(u)}),s},addProp:function(t,e){Object.defineProperty(S.Event.prototype,t,{enumerable:!0,configurable:!0,get:m(e)?function(){if(this.originalEvent)return e(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[t]},set:function(e){Object.defineProperty(this,t,{enumerable:!0,configurable:!0,writable:!0,value:e})}})},fix:function(e){return e[S.expando]?e:new S.Event(e)},special:{load:{noBubble:!0},click:{setup:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&Se(t,"click",we),!1},trigger:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&Se(t,"click"),!0},_default:function(e){var t=e.target;return pe.test(t.type)&&t.click&&A(t,"input")&&Y.get(t,"click")||A(t,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},S.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},S.Event=function(e,t){if(!(this instanceof S.Event))return new S.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?we:Te,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&S.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[S.expando]=!0},S.Event.prototype={constructor:S.Event,isDefaultPrevented:Te,isPropagationStopped:Te,isImmediatePropagationStopped:Te,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=we,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=we,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=we,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},S.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,code:!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:!0},S.event.addProp),S.each({focus:"focusin",blur:"focusout"},function(e,t){S.event.special[e]={setup:function(){return Se(this,e,Ce),!1},trigger:function(){return Se(this,e),!0},_default:function(){return!0},delegateType:t}}),S.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,i){S.event.special[e]={delegateType:i,bindType:i,handle:function(e){var t,n=e.relatedTarget,r=e.handleObj;return n&&(n===this||S.contains(this,n))||(e.type=r.origType,t=r.handler.apply(this,arguments),e.type=i),t}}}),S.fn.extend({on:function(e,t,n,r){return Ee(this,e,t,n,r)},one:function(e,t,n,r){return Ee(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,S(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return!1!==t&&"function"!=typeof t||(n=t,t=void 0),!1===n&&(n=Te),this.each(function(){S.event.remove(this,e,n,t)})}});var ke=/<script|<style|<link/i,Ae=/checked\s*(?:[^=]|=\s*.checked.)/i,Ne=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n<r;n++)S.event.add(t,i,s[i][n]);Q.hasData(e)&&(o=Q.access(e),a=S.extend({},o),Q.set(t,a))}}function He(n,r,i,o){r=g(r);var e,t,a,s,u,l,c=0,f=n.length,p=f-1,d=r[0],h=m(d);if(h||1<f&&"string"==typeof d&&!y.checkClone&&Ae.test(d))return n.each(function(e){var t=n.eq(e);h&&(r[0]=d.call(this,e,t.html())),He(t,r,i,o)});if(f&&(t=(e=xe(r,n[0].ownerDocument,!1,n,o)).firstChild,1===e.childNodes.length&&(e=t),t||o)){for(s=(a=S.map(ve(e,"script"),De)).length;c<f;c++)u=e,c!==p&&(u=S.clone(u,!0,!0),s&&S.merge(a,ve(u,"script"))),i.call(n[c],u,c);if(s)for(l=a[a.length-1].ownerDocument,S.map(a,qe),c=0;c<s;c++)u=a[c],he.test(u.type||"")&&!Y.access(u,"globalEval")&&S.contains(l,u)&&(u.src&&"module"!==(u.type||"").toLowerCase()?S._evalUrl&&!u.noModule&&S._evalUrl(u.src,{nonce:u.nonce||u.getAttribute("nonce")},l):b(u.textContent.replace(Ne,""),u,l))}return n}function Oe(e,t,n){for(var r,i=t?S.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||S.cleanData(ve(r)),r.parentNode&&(n&&ie(r)&&ye(ve(r,"script")),r.parentNode.removeChild(r));return e}S.extend({htmlPrefilter:function(e){return e},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=ie(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||S.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r<i;r++)s=o[r],u=a[r],void 0,"input"===(l=u.nodeName.toLowerCase())&&pe.test(s.type)?u.checked=s.checked:"input"!==l&&"textarea"!==l||(u.defaultValue=s.defaultValue);if(t)if(n)for(o=o||ve(e),a=a||ve(c),r=0,i=o.length;r<i;r++)Le(o[r],a[r]);else Le(e,c);return 0<(a=ve(c,"script")).length&&ye(a,!f&&ve(e,"script")),c},cleanData:function(e){for(var t,n,r,i=S.event.special,o=0;void 0!==(n=e[o]);o++)if(V(n)){if(t=n[Y.expando]){if(t.events)for(r in t.events)i[r]?S.event.remove(n,r):S.removeEvent(n,r,t.handle);n[Y.expando]=void 0}n[Q.expando]&&(n[Q.expando]=void 0)}}}),S.fn.extend({detach:function(e){return Oe(this,e,!0)},remove:function(e){return Oe(this,e)},text:function(e){return $(this,function(e){return void 0===e?S.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return He(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||je(this,e).appendChild(e)})},prepend:function(){return He(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=je(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return He(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return He(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(S.cleanData(ve(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return S.clone(this,e,t)})},html:function(e){return $(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!ke.test(e)&&!ge[(de.exec(e)||["",""])[1].toLowerCase()]){e=S.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(S.cleanData(ve(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var n=[];return He(this,arguments,function(e){var t=this.parentNode;S.inArray(this,n)<0&&(S.cleanData(ve(this)),t&&t.replaceChild(e,this))},n)}}),S.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,a){S.fn[e]=function(e){for(var t,n=[],r=S(e),i=r.length-1,o=0;o<=i;o++)t=o===i?this:this.clone(!0),S(r[o])[a](t),u.apply(n,t.get());return this.pushStack(n)}});var Pe=new RegExp("^("+ee+")(?!px)[a-z%]+$","i"),Re=function(e){var t=e.ownerDocument.defaultView;return t&&t.opener||(t=C),t.getComputedStyle(e)},Me=function(e,t,n){var r,i,o={};for(i in t)o[i]=e.style[i],e.style[i]=t[i];for(i in r=n.call(e),t)e.style[i]=o[i];return r},Ie=new RegExp(ne.join("|"),"i");function We(e,t,n){var r,i,o,a,s=e.style;return(n=n||Re(e))&&(""!==(a=n.getPropertyValue(t)||n[t])||ie(e)||(a=S.style(e,t)),!y.pixelBoxStyles()&&Pe.test(a)&&Ie.test(t)&&(r=s.width,i=s.minWidth,o=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=r,s.minWidth=i,s.maxWidth=o)),void 0!==a?a+"":a}function Fe(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}!function(){function e(){if(l){u.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",l.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",re.appendChild(u).appendChild(l);var e=C.getComputedStyle(l);n="1%"!==e.top,s=12===t(e.marginLeft),l.style.right="60%",o=36===t(e.right),r=36===t(e.width),l.style.position="absolute",i=12===t(l.offsetWidth/3),re.removeChild(u),l=null}}function t(e){return Math.round(parseFloat(e))}var n,r,i,o,a,s,u=E.createElement("div"),l=E.createElement("div");l.style&&(l.style.backgroundClip="content-box",l.cloneNode(!0).style.backgroundClip="",y.clearCloneStyle="content-box"===l.style.backgroundClip,S.extend(y,{boxSizingReliable:function(){return e(),r},pixelBoxStyles:function(){return e(),o},pixelPosition:function(){return e(),n},reliableMarginLeft:function(){return e(),s},scrollboxSize:function(){return e(),i},reliableTrDimensions:function(){var e,t,n,r;return null==a&&(e=E.createElement("table"),t=E.createElement("tr"),n=E.createElement("div"),e.style.cssText="position:absolute;left:-11111px;border-collapse:separate",t.style.cssText="border:1px solid",t.style.height="1px",n.style.height="9px",n.style.display="block",re.appendChild(e).appendChild(t).appendChild(n),r=C.getComputedStyle(t),a=parseInt(r.height,10)+parseInt(r.borderTopWidth,10)+parseInt(r.borderBottomWidth,10)===t.offsetHeight,re.removeChild(e)),a}}))}();var Be=["Webkit","Moz","ms"],$e=E.createElement("div").style,_e={};function ze(e){var t=S.cssProps[e]||_e[e];return t||(e in $e?e:_e[e]=function(e){var t=e[0].toUpperCase()+e.slice(1),n=Be.length;while(n--)if((e=Be[n]+t)in $e)return e}(e)||e)}var Ue=/^(none|table(?!-c[ea]).+)/,Xe=/^--/,Ve={position:"absolute",visibility:"hidden",display:"block"},Ge={letterSpacing:"0",fontWeight:"400"};function Ye(e,t,n){var r=te.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function Qe(e,t,n,r,i,o){var a="width"===t?1:0,s=0,u=0;if(n===(r?"border":"content"))return 0;for(;a<4;a+=2)"margin"===n&&(u+=S.css(e,n+ne[a],!0,i)),r?("content"===n&&(u-=S.css(e,"padding"+ne[a],!0,i)),"margin"!==n&&(u-=S.css(e,"border"+ne[a]+"Width",!0,i))):(u+=S.css(e,"padding"+ne[a],!0,i),"padding"!==n?u+=S.css(e,"border"+ne[a]+"Width",!0,i):s+=S.css(e,"border"+ne[a]+"Width",!0,i));return!r&&0<=o&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))||0),u}function Je(e,t,n){var r=Re(e),i=(!y.boxSizingReliable()||n)&&"border-box"===S.css(e,"boxSizing",!1,r),o=i,a=We(e,t,r),s="offset"+t[0].toUpperCase()+t.slice(1);if(Pe.test(a)){if(!n)return a;a="auto"}return(!y.boxSizingReliable()&&i||!y.reliableTrDimensions()&&A(e,"tr")||"auto"===a||!parseFloat(a)&&"inline"===S.css(e,"display",!1,r))&&e.getClientRects().length&&(i="border-box"===S.css(e,"boxSizing",!1,r),(o=s in e)&&(a=e[s])),(a=parseFloat(a)||0)+Qe(e,t,n||(i?"border":"content"),o,r,a)+"px"}function Ke(e,t,n,r,i){return new Ke.prototype.init(e,t,n,r,i)}S.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=We(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=X(t),u=Xe.test(t),l=e.style;if(u||(t=ze(s)),a=S.cssHooks[t]||S.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"===(o=typeof n)&&(i=te.exec(n))&&i[1]&&(n=se(e,t,i),o="number"),null!=n&&n==n&&("number"!==o||u||(n+=i&&i[3]||(S.cssNumber[s]?"":"px")),y.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=X(t);return Xe.test(t)||(t=ze(s)),(a=S.cssHooks[t]||S.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=We(e,t,r)),"normal"===i&&t in Ge&&(i=Ge[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),S.each(["height","width"],function(e,u){S.cssHooks[u]={get:function(e,t,n){if(t)return!Ue.test(S.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?Je(e,u,n):Me(e,Ve,function(){return Je(e,u,n)})},set:function(e,t,n){var r,i=Re(e),o=!y.scrollboxSize()&&"absolute"===i.position,a=(o||n)&&"border-box"===S.css(e,"boxSizing",!1,i),s=n?Qe(e,u,n,a,i):0;return a&&o&&(s-=Math.ceil(e["offset"+u[0].toUpperCase()+u.slice(1)]-parseFloat(i[u])-Qe(e,u,"border",!1,i)-.5)),s&&(r=te.exec(t))&&"px"!==(r[3]||"px")&&(e.style[u]=t,t=S.css(e,u)),Ye(0,t,s)}}}),S.cssHooks.marginLeft=Fe(y.reliableMarginLeft,function(e,t){if(t)return(parseFloat(We(e,"marginLeft"))||e.getBoundingClientRect().left-Me(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),S.each({margin:"",padding:"",border:"Width"},function(i,o){S.cssHooks[i+o]={expand:function(e){for(var t=0,n={},r="string"==typeof e?e.split(" "):[e];t<4;t++)n[i+ne[t]+o]=r[t]||r[t-2]||r[0];return n}},"margin"!==i&&(S.cssHooks[i+o].set=Ye)}),S.fn.extend({css:function(e,t){return $(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=Re(e),i=t.length;a<i;a++)o[t[a]]=S.css(e,t[a],!1,r);return o}return void 0!==n?S.style(e,t,n):S.css(e,t)},e,t,1<arguments.length)}}),((S.Tween=Ke).prototype={constructor:Ke,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||S.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(S.cssNumber[n]?"":"px")},cur:function(){var e=Ke.propHooks[this.prop];return e&&e.get?e.get(this):Ke.propHooks._default.get(this)},run:function(e){var t,n=Ke.propHooks[this.prop];return this.options.duration?this.pos=t=S.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):Ke.propHooks._default.set(this),this}}).init.prototype=Ke.prototype,(Ke.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=S.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){S.fx.step[e.prop]?S.fx.step[e.prop](e):1!==e.elem.nodeType||!S.cssHooks[e.prop]&&null==e.elem.style[ze(e.prop)]?e.elem[e.prop]=e.now:S.style(e.elem,e.prop,e.now+e.unit)}}}).scrollTop=Ke.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},S.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},S.fx=Ke.prototype.init,S.fx.step={};var Ze,et,tt,nt,rt=/^(?:toggle|show|hide)$/,it=/queueHooks$/;function ot(){et&&(!1===E.hidden&&C.requestAnimationFrame?C.requestAnimationFrame(ot):C.setTimeout(ot,S.fx.interval),S.fx.tick())}function at(){return C.setTimeout(function(){Ze=void 0}),Ze=Date.now()}function st(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=ne[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function ut(e,t,n){for(var r,i=(lt.tweeners[t]||[]).concat(lt.tweeners["*"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function lt(o,e,t){var n,a,r=0,i=lt.prefilters.length,s=S.Deferred().always(function(){delete u.elem}),u=function(){if(a)return!1;for(var e=Ze||at(),t=Math.max(0,l.startTime+l.duration-e),n=1-(t/l.duration||0),r=0,i=l.tweens.length;r<i;r++)l.tweens[r].run(n);return s.notifyWith(o,[l,n,t]),n<1&&i?t:(i||s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l]),!1)},l=s.promise({elem:o,props:S.extend({},e),opts:S.extend(!0,{specialEasing:{},easing:S.easing._default},t),originalProperties:e,originalOptions:t,startTime:Ze||at(),duration:t.duration,tweens:[],createTween:function(e,t){var n=S.Tween(o,l.opts,e,t,l.opts.specialEasing[e]||l.opts.easing);return l.tweens.push(n),n},stop:function(e){var t=0,n=e?l.tweens.length:0;if(a)return this;for(a=!0;t<n;t++)l.tweens[t].run(1);return e?(s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l,e])):s.rejectWith(o,[l,e]),this}}),c=l.props;for(!function(e,t){var n,r,i,o,a;for(n in e)if(i=t[r=X(n)],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=S.cssHooks[r])&&"expand"in a)for(n in o=a.expand(o),delete e[r],o)n in e||(e[n]=o[n],t[n]=i);else t[r]=i}(c,l.opts.specialEasing);r<i;r++)if(n=lt.prefilters[r].call(l,o,c,l.opts))return m(n.stop)&&(S._queueHooks(l.elem,l.opts.queue).stop=n.stop.bind(n)),n;return S.map(c,ut,l),m(l.opts.start)&&l.opts.start.call(o,l),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always),S.fx.timer(S.extend(u,{elem:o,anim:l,queue:l.opts.queue})),l}S.Animation=S.extend(lt,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return se(n.elem,e,te.exec(t),n),n}]},tweener:function(e,t){m(e)?(t=e,e=["*"]):e=e.match(P);for(var n,r=0,i=e.length;r<i;r++)n=e[r],lt.tweeners[n]=lt.tweeners[n]||[],lt.tweeners[n].unshift(t)},prefilters:[function(e,t,n){var r,i,o,a,s,u,l,c,f="width"in t||"height"in t,p=this,d={},h=e.style,g=e.nodeType&&ae(e),v=Y.get(e,"fxshow");for(r in n.queue||(null==(a=S._queueHooks(e,"fx")).unqueued&&(a.unqueued=0,s=a.empty.fire,a.empty.fire=function(){a.unqueued||s()}),a.unqueued++,p.always(function(){p.always(function(){a.unqueued--,S.queue(e,"fx").length||a.empty.fire()})})),t)if(i=t[r],rt.test(i)){if(delete t[r],o=o||"toggle"===i,i===(g?"hide":"show")){if("show"!==i||!v||void 0===v[r])continue;g=!0}d[r]=v&&v[r]||S.style(e,r)}if((u=!S.isEmptyObject(t))||!S.isEmptyObject(d))for(r in f&&1===e.nodeType&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],null==(l=v&&v.display)&&(l=Y.get(e,"display")),"none"===(c=S.css(e,"display"))&&(l?c=l:(le([e],!0),l=e.style.display||l,c=S.css(e,"display"),le([e]))),("inline"===c||"inline-block"===c&&null!=l)&&"none"===S.css(e,"float")&&(u||(p.done(function(){h.display=l}),null==l&&(c=h.display,l="none"===c?"":c)),h.display="inline-block")),n.overflow&&(h.overflow="hidden",p.always(function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]})),u=!1,d)u||(v?"hidden"in v&&(g=v.hidden):v=Y.access(e,"fxshow",{display:l}),o&&(v.hidden=!g),g&&le([e],!0),p.done(function(){for(r in g||le([e]),Y.remove(e,"fxshow"),d)S.style(e,r,d[r])})),u=ut(g?v[r]:0,r,p),r in v||(v[r]=u.start,g&&(u.end=u.start,u.start=0))}],prefilter:function(e,t){t?lt.prefilters.unshift(e):lt.prefilters.push(e)}}),S.speed=function(e,t,n){var r=e&&"object"==typeof e?S.extend({},e):{complete:n||!n&&t||m(e)&&e,duration:e,easing:n&&t||t&&!m(t)&&t};return S.fx.off?r.duration=0:"number"!=typeof r.duration&&(r.duration in S.fx.speeds?r.duration=S.fx.speeds[r.duration]:r.duration=S.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue="fx"),r.old=r.complete,r.complete=function(){m(r.old)&&r.old.call(this),r.queue&&S.dequeue(this,r.queue)},r},S.fn.extend({fadeTo:function(e,t,n,r){return this.filter(ae).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(t,e,n,r){var i=S.isEmptyObject(t),o=S.speed(e,n,r),a=function(){var e=lt(this,S.extend({},t),o);(i||Y.get(this,"finish"))&&e.stop(!0)};return a.finish=a,i||!1===o.queue?this.each(a):this.queue(o.queue,a)},stop:function(i,e,o){var a=function(e){var t=e.stop;delete e.stop,t(o)};return"string"!=typeof i&&(o=e,e=i,i=void 0),e&&this.queue(i||"fx",[]),this.each(function(){var e=!0,t=null!=i&&i+"queueHooks",n=S.timers,r=Y.get(this);if(t)r[t]&&r[t].stop&&a(r[t]);else for(t in r)r[t]&&r[t].stop&&it.test(t)&&a(r[t]);for(t=n.length;t--;)n[t].elem!==this||null!=i&&n[t].queue!==i||(n[t].anim.stop(o),e=!1,n.splice(t,1));!e&&o||S.dequeue(this,i)})},finish:function(a){return!1!==a&&(a=a||"fx"),this.each(function(){var e,t=Y.get(this),n=t[a+"queue"],r=t[a+"queueHooks"],i=S.timers,o=n?n.length:0;for(t.finish=!0,S.queue(this,a,[]),r&&r.stop&&r.stop.call(this,!0),e=i.length;e--;)i[e].elem===this&&i[e].queue===a&&(i[e].anim.stop(!0),i.splice(e,1));for(e=0;e<o;e++)n[e]&&n[e].finish&&n[e].finish.call(this);delete t.finish})}}),S.each(["toggle","show","hide"],function(e,r){var i=S.fn[r];S.fn[r]=function(e,t,n){return null==e||"boolean"==typeof e?i.apply(this,arguments):this.animate(st(r,!0),e,t,n)}}),S.each({slideDown:st("show"),slideUp:st("hide"),slideToggle:st("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,r){S.fn[e]=function(e,t,n){return this.animate(r,e,t,n)}}),S.timers=[],S.fx.tick=function(){var e,t=0,n=S.timers;for(Ze=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||S.fx.stop(),Ze=void 0},S.fx.timer=function(e){S.timers.push(e),S.fx.start()},S.fx.interval=13,S.fx.start=function(){et||(et=!0,ot())},S.fx.stop=function(){et=null},S.fx.speeds={slow:600,fast:200,_default:400},S.fn.delay=function(r,e){return r=S.fx&&S.fx.speeds[r]||r,e=e||"fx",this.queue(e,function(e,t){var n=C.setTimeout(e,r);t.stop=function(){C.clearTimeout(n)}})},tt=E.createElement("input"),nt=E.createElement("select").appendChild(E.createElement("option")),tt.type="checkbox",y.checkOn=""!==tt.value,y.optSelected=nt.selected,(tt=E.createElement("input")).value="t",tt.type="radio",y.radioValue="t"===tt.value;var ct,ft=S.expr.attrHandle;S.fn.extend({attr:function(e,t){return $(this,S.attr,e,t,1<arguments.length)},removeAttr:function(e){return this.each(function(){S.removeAttr(this,e)})}}),S.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?S.prop(e,t,n):(1===o&&S.isXMLDoc(e)||(i=S.attrHooks[t.toLowerCase()]||(S.expr.match.bool.test(t)?ct:void 0)),void 0!==n?null===n?void S.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=S.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!y.radioValue&&"radio"===t&&A(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(P);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),ct={set:function(e,t,n){return!1===t?S.removeAttr(e,n):e.setAttribute(n,n),n}},S.each(S.expr.match.bool.source.match(/\w+/g),function(e,t){var a=ft[t]||S.find.attr;ft[t]=function(e,t,n){var r,i,o=t.toLowerCase();return n||(i=ft[o],ft[o]=r,r=null!=a(e,t,n)?o:null,ft[o]=i),r}});var pt=/^(?:input|select|textarea|button)$/i,dt=/^(?:a|area)$/i;function ht(e){return(e.match(P)||[]).join(" ")}function gt(e){return e.getAttribute&&e.getAttribute("class")||""}function vt(e){return Array.isArray(e)?e:"string"==typeof e&&e.match(P)||[]}S.fn.extend({prop:function(e,t){return $(this,S.prop,e,t,1<arguments.length)},removeProp:function(e){return this.each(function(){delete this[S.propFix[e]||e]})}}),S.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&S.isXMLDoc(e)||(t=S.propFix[t]||t,i=S.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=S.find.attr(e,"tabindex");return t?parseInt(t,10):pt.test(e.nodeName)||dt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),y.optSelected||(S.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),S.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){S.propFix[this.toLowerCase()]=this}),S.fn.extend({addClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){S(this).addClass(t.call(this,e,gt(this)))});if((e=vt(t)).length)while(n=this[u++])if(i=gt(n),r=1===n.nodeType&&" "+ht(i)+" "){a=0;while(o=e[a++])r.indexOf(" "+o+" ")<0&&(r+=o+" ");i!==(s=ht(r))&&n.setAttribute("class",s)}return this},removeClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){S(this).removeClass(t.call(this,e,gt(this)))});if(!arguments.length)return this.attr("class","");if((e=vt(t)).length)while(n=this[u++])if(i=gt(n),r=1===n.nodeType&&" "+ht(i)+" "){a=0;while(o=e[a++])while(-1<r.indexOf(" "+o+" "))r=r.replace(" "+o+" "," ");i!==(s=ht(r))&&n.setAttribute("class",s)}return this},toggleClass:function(i,t){var o=typeof i,a="string"===o||Array.isArray(i);return"boolean"==typeof t&&a?t?this.addClass(i):this.removeClass(i):m(i)?this.each(function(e){S(this).toggleClass(i.call(this,e,gt(this),t),t)}):this.each(function(){var e,t,n,r;if(a){t=0,n=S(this),r=vt(i);while(e=r[t++])n.hasClass(e)?n.removeClass(e):n.addClass(e)}else void 0!==i&&"boolean"!==o||((e=gt(this))&&Y.set(this,"__className__",e),this.setAttribute&&this.setAttribute("class",e||!1===i?"":Y.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&-1<(" "+ht(gt(n))+" ").indexOf(t))return!0;return!1}});var yt=/\r/g;S.fn.extend({val:function(n){var r,e,i,t=this[0];return arguments.length?(i=m(n),this.each(function(e){var t;1===this.nodeType&&(null==(t=i?n.call(this,e,S(this).val()):n)?t="":"number"==typeof t?t+="":Array.isArray(t)&&(t=S.map(t,function(e){return null==e?"":e+""})),(r=S.valHooks[this.type]||S.valHooks[this.nodeName.toLowerCase()])&&"set"in r&&void 0!==r.set(this,t,"value")||(this.value=t))})):t?(r=S.valHooks[t.type]||S.valHooks[t.nodeName.toLowerCase()])&&"get"in r&&void 0!==(e=r.get(t,"value"))?e:"string"==typeof(e=t.value)?e.replace(yt,""):null==e?"":e:void 0}}),S.extend({valHooks:{option:{get:function(e){var t=S.find.attr(e,"value");return null!=t?t:ht(S.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r<u;r++)if(((n=i[r]).selected||r===o)&&!n.disabled&&(!n.parentNode.disabled||!A(n.parentNode,"optgroup"))){if(t=S(n).val(),a)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=S.makeArray(t),a=i.length;while(a--)((r=i[a]).selected=-1<S.inArray(S.valHooks.option.get(r),o))&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),S.each(["radio","checkbox"],function(){S.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=-1<S.inArray(S(e).val(),t)}},y.checkOn||(S.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),y.focusin="onfocusin"in C;var mt=/^(?:focusinfocus|focusoutblur)$/,xt=function(e){e.stopPropagation()};S.extend(S.event,{trigger:function(e,t,n,r){var i,o,a,s,u,l,c,f,p=[n||E],d=v.call(e,"type")?e.type:e,h=v.call(e,"namespace")?e.namespace.split("."):[];if(o=f=a=n=n||E,3!==n.nodeType&&8!==n.nodeType&&!mt.test(d+S.event.triggered)&&(-1<d.indexOf(".")&&(d=(h=d.split(".")).shift(),h.sort()),u=d.indexOf(":")<0&&"on"+d,(e=e[S.expando]?e:new S.Event(d,"object"==typeof e&&e)).isTrigger=r?2:3,e.namespace=h.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=n),t=null==t?[e]:S.makeArray(t,[e]),c=S.event.special[d]||{},r||!c.trigger||!1!==c.trigger.apply(n,t))){if(!r&&!c.noBubble&&!x(n)){for(s=c.delegateType||d,mt.test(s+d)||(o=o.parentNode);o;o=o.parentNode)p.push(o),a=o;a===(n.ownerDocument||E)&&p.push(a.defaultView||a.parentWindow||C)}i=0;while((o=p[i++])&&!e.isPropagationStopped())f=o,e.type=1<i?s:c.bindType||d,(l=(Y.get(o,"events")||Object.create(null))[e.type]&&Y.get(o,"handle"))&&l.apply(o,t),(l=u&&o[u])&&l.apply&&V(o)&&(e.result=l.apply(o,t),!1===e.result&&e.preventDefault());return e.type=d,r||e.isDefaultPrevented()||c._default&&!1!==c._default.apply(p.pop(),t)||!V(n)||u&&m(n[d])&&!x(n)&&((a=n[u])&&(n[u]=null),S.event.triggered=d,e.isPropagationStopped()&&f.addEventListener(d,xt),n[d](),e.isPropagationStopped()&&f.removeEventListener(d,xt),S.event.triggered=void 0,a&&(n[u]=a)),e.result}},simulate:function(e,t,n){var r=S.extend(new S.Event,n,{type:e,isSimulated:!0});S.event.trigger(r,null,t)}}),S.fn.extend({trigger:function(e,t){return this.each(function(){S.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return S.event.trigger(e,t,n,!0)}}),y.focusin||S.each({focus:"focusin",blur:"focusout"},function(n,r){var i=function(e){S.event.simulate(r,e.target,S.event.fix(e))};S.event.special[r]={setup:function(){var e=this.ownerDocument||this.document||this,t=Y.access(e,r);t||e.addEventListener(n,i,!0),Y.access(e,r,(t||0)+1)},teardown:function(){var e=this.ownerDocument||this.document||this,t=Y.access(e,r)-1;t?Y.access(e,r,t):(e.removeEventListener(n,i,!0),Y.remove(e,r))}}});var bt=C.location,wt={guid:Date.now()},Tt=/\?/;S.parseXML=function(e){var t,n;if(!e||"string"!=typeof e)return null;try{t=(new C.DOMParser).parseFromString(e,"text/xml")}catch(e){}return n=t&&t.getElementsByTagName("parsererror")[0],t&&!n||S.error("Invalid XML: "+(n?S.map(n.childNodes,function(e){return e.textContent}).join("\n"):e)),t};var Ct=/\[\]$/,Et=/\r?\n/g,St=/^(?:submit|button|image|reset|file)$/i,kt=/^(?:input|select|textarea|keygen)/i;function At(n,e,r,i){var t;if(Array.isArray(e))S.each(e,function(e,t){r||Ct.test(n)?i(n,t):At(n+"["+("object"==typeof t&&null!=t?e:"")+"]",t,r,i)});else if(r||"object"!==w(e))i(n,e);else for(t in e)At(n+"["+t+"]",e[t],r,i)}S.param=function(e,t){var n,r=[],i=function(e,t){var n=m(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(null==e)return"";if(Array.isArray(e)||e.jquery&&!S.isPlainObject(e))S.each(e,function(){i(this.name,this.value)});else for(n in e)At(n,e[n],t,i);return r.join("&")},S.fn.extend({serialize:function(){return S.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=S.prop(this,"elements");return e?S.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!S(this).is(":disabled")&&kt.test(this.nodeName)&&!St.test(e)&&(this.checked||!pe.test(e))}).map(function(e,t){var n=S(this).val();return null==n?null:Array.isArray(n)?S.map(n,function(e){return{name:t.name,value:e.replace(Et,"\r\n")}}):{name:t.name,value:n.replace(Et,"\r\n")}}).get()}});var Nt=/%20/g,jt=/#.*$/,Dt=/([?&])_=[^&]*/,qt=/^(.*?):[ \t]*([^\r\n]*)$/gm,Lt=/^(?:GET|HEAD)$/,Ht=/^\/\//,Ot={},Pt={},Rt="*/".concat("*"),Mt=E.createElement("a");function It(o){return function(e,t){"string"!=typeof e&&(t=e,e="*");var n,r=0,i=e.toLowerCase().match(P)||[];if(m(t))while(n=i[r++])"+"===n[0]?(n=n.slice(1)||"*",(o[n]=o[n]||[]).unshift(t)):(o[n]=o[n]||[]).push(t)}}function Wt(t,i,o,a){var s={},u=t===Pt;function l(e){var r;return s[e]=!0,S.each(t[e]||[],function(e,t){var n=t(i,o,a);return"string"!=typeof n||u||s[n]?u?!(r=n):void 0:(i.dataTypes.unshift(n),l(n),!1)}),r}return l(i.dataTypes[0])||!s["*"]&&l("*")}function Ft(e,t){var n,r,i=S.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&S.extend(!0,e,r),e}Mt.href=bt.href,S.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:bt.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(bt.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Rt,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":S.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?Ft(Ft(e,S.ajaxSettings),t):Ft(S.ajaxSettings,e)},ajaxPrefilter:It(Ot),ajaxTransport:It(Pt),ajax:function(e,t){"object"==typeof e&&(t=e,e=void 0),t=t||{};var c,f,p,n,d,r,h,g,i,o,v=S.ajaxSetup({},t),y=v.context||v,m=v.context&&(y.nodeType||y.jquery)?S(y):S.event,x=S.Deferred(),b=S.Callbacks("once memory"),w=v.statusCode||{},a={},s={},u="canceled",T={readyState:0,getResponseHeader:function(e){var t;if(h){if(!n){n={};while(t=qt.exec(p))n[t[1].toLowerCase()+" "]=(n[t[1].toLowerCase()+" "]||[]).concat(t[2])}t=n[e.toLowerCase()+" "]}return null==t?null:t.join(", ")},getAllResponseHeaders:function(){return h?p:null},setRequestHeader:function(e,t){return null==h&&(e=s[e.toLowerCase()]=s[e.toLowerCase()]||e,a[e]=t),this},overrideMimeType:function(e){return null==h&&(v.mimeType=e),this},statusCode:function(e){var t;if(e)if(h)T.always(e[T.status]);else for(t in e)w[t]=[w[t],e[t]];return this},abort:function(e){var t=e||u;return c&&c.abort(t),l(0,t),this}};if(x.promise(T),v.url=((e||v.url||bt.href)+"").replace(Ht,bt.protocol+"//"),v.type=t.method||t.type||v.method||v.type,v.dataTypes=(v.dataType||"*").toLowerCase().match(P)||[""],null==v.crossDomain){r=E.createElement("a");try{r.href=v.url,r.href=r.href,v.crossDomain=Mt.protocol+"//"+Mt.host!=r.protocol+"//"+r.host}catch(e){v.crossDomain=!0}}if(v.data&&v.processData&&"string"!=typeof v.data&&(v.data=S.param(v.data,v.traditional)),Wt(Ot,v,t,T),h)return T;for(i in(g=S.event&&v.global)&&0==S.active++&&S.event.trigger("ajaxStart"),v.type=v.type.toUpperCase(),v.hasContent=!Lt.test(v.type),f=v.url.replace(jt,""),v.hasContent?v.data&&v.processData&&0===(v.contentType||"").indexOf("application/x-www-form-urlencoded")&&(v.data=v.data.replace(Nt,"+")):(o=v.url.slice(f.length),v.data&&(v.processData||"string"==typeof v.data)&&(f+=(Tt.test(f)?"&":"?")+v.data,delete v.data),!1===v.cache&&(f=f.replace(Dt,"$1"),o=(Tt.test(f)?"&":"?")+"_="+wt.guid+++o),v.url=f+o),v.ifModified&&(S.lastModified[f]&&T.setRequestHeader("If-Modified-Since",S.lastModified[f]),S.etag[f]&&T.setRequestHeader("If-None-Match",S.etag[f])),(v.data&&v.hasContent&&!1!==v.contentType||t.contentType)&&T.setRequestHeader("Content-Type",v.contentType),T.setRequestHeader("Accept",v.dataTypes[0]&&v.accepts[v.dataTypes[0]]?v.accepts[v.dataTypes[0]]+("*"!==v.dataTypes[0]?", "+Rt+"; q=0.01":""):v.accepts["*"]),v.headers)T.setRequestHeader(i,v.headers[i]);if(v.beforeSend&&(!1===v.beforeSend.call(y,T,v)||h))return T.abort();if(u="abort",b.add(v.complete),T.done(v.success),T.fail(v.error),c=Wt(Pt,v,t,T)){if(T.readyState=1,g&&m.trigger("ajaxSend",[T,v]),h)return T;v.async&&0<v.timeout&&(d=C.setTimeout(function(){T.abort("timeout")},v.timeout));try{h=!1,c.send(a,l)}catch(e){if(h)throw e;l(-1,e)}}else l(-1,"No Transport");function l(e,t,n,r){var i,o,a,s,u,l=t;h||(h=!0,d&&C.clearTimeout(d),c=void 0,p=r||"",T.readyState=0<e?4:0,i=200<=e&&e<300||304===e,n&&(s=function(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}(v,T,n)),!i&&-1<S.inArray("script",v.dataTypes)&&S.inArray("json",v.dataTypes)<0&&(v.converters["text script"]=function(){}),s=function(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}(v,s,T,i),i?(v.ifModified&&((u=T.getResponseHeader("Last-Modified"))&&(S.lastModified[f]=u),(u=T.getResponseHeader("etag"))&&(S.etag[f]=u)),204===e||"HEAD"===v.type?l="nocontent":304===e?l="notmodified":(l=s.state,o=s.data,i=!(a=s.error))):(a=l,!e&&l||(l="error",e<0&&(e=0))),T.status=e,T.statusText=(t||l)+"",i?x.resolveWith(y,[o,l,T]):x.rejectWith(y,[T,l,a]),T.statusCode(w),w=void 0,g&&m.trigger(i?"ajaxSuccess":"ajaxError",[T,v,i?o:a]),b.fireWith(y,[T,l]),g&&(m.trigger("ajaxComplete",[T,v]),--S.active||S.event.trigger("ajaxStop")))}return T},getJSON:function(e,t,n){return S.get(e,t,n,"json")},getScript:function(e,t){return S.get(e,void 0,t,"script")}}),S.each(["get","post"],function(e,i){S[i]=function(e,t,n,r){return m(t)&&(r=r||n,n=t,t=void 0),S.ajax(S.extend({url:e,type:i,dataType:r,data:t,success:n},S.isPlainObject(e)&&e))}}),S.ajaxPrefilter(function(e){var t;for(t in e.headers)"content-type"===t.toLowerCase()&&(e.contentType=e.headers[t]||"")}),S._evalUrl=function(e,t,n){return S.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(e){S.globalEval(e,t,n)}})},S.fn.extend({wrapAll:function(e){var t;return this[0]&&(m(e)&&(e=e.call(this[0])),t=S(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(n){return m(n)?this.each(function(e){S(this).wrapInner(n.call(this,e))}):this.each(function(){var e=S(this),t=e.contents();t.length?t.wrapAll(n):e.append(n)})},wrap:function(t){var n=m(t);return this.each(function(e){S(this).wrapAll(n?t.call(this,e):t)})},unwrap:function(e){return this.parent(e).not("body").each(function(){S(this).replaceWith(this.childNodes)}),this}}),S.expr.pseudos.hidden=function(e){return!S.expr.pseudos.visible(e)},S.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},S.ajaxSettings.xhr=function(){try{return new C.XMLHttpRequest}catch(e){}};var Bt={0:200,1223:204},$t=S.ajaxSettings.xhr();y.cors=!!$t&&"withCredentials"in $t,y.ajax=$t=!!$t,S.ajaxTransport(function(i){var o,a;if(y.cors||$t&&!i.crossDomain)return{send:function(e,t){var n,r=i.xhr();if(r.open(i.type,i.url,i.async,i.username,i.password),i.xhrFields)for(n in i.xhrFields)r[n]=i.xhrFields[n];for(n in i.mimeType&&r.overrideMimeType&&r.overrideMimeType(i.mimeType),i.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest"),e)r.setRequestHeader(n,e[n]);o=function(e){return function(){o&&(o=a=r.onload=r.onerror=r.onabort=r.ontimeout=r.onreadystatechange=null,"abort"===e?r.abort():"error"===e?"number"!=typeof r.status?t(0,"error"):t(r.status,r.statusText):t(Bt[r.status]||r.status,r.statusText,"text"!==(r.responseType||"text")||"string"!=typeof r.responseText?{binary:r.response}:{text:r.responseText},r.getAllResponseHeaders()))}},r.onload=o(),a=r.onerror=r.ontimeout=o("error"),void 0!==r.onabort?r.onabort=a:r.onreadystatechange=function(){4===r.readyState&&C.setTimeout(function(){o&&a()})},o=o("abort");try{r.send(i.hasContent&&i.data||null)}catch(e){if(o)throw e}},abort:function(){o&&o()}}}),S.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),S.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return S.globalEval(e),e}}}),S.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),S.ajaxTransport("script",function(n){var r,i;if(n.crossDomain||n.scriptAttrs)return{send:function(e,t){r=S("<script>").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var _t,zt=[],Ut=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=zt.pop()||S.expando+"_"+wt.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Ut.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ut.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Ut,"$1"+r):!1!==e.jsonp&&(e.url+=(Tt.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,zt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((_t=E.implementation.createHTMLDocument("").body).innerHTML="<form></form><form></form>",2===_t.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1<s&&(r=ht(e.slice(s)),e=e.slice(0,s)),m(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),0<a.length&&S.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,a.html(r?S("<div>").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=Fe(y.pixelPosition,function(e,t){if(t)return t=We(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0<arguments.length?this.on(n,null,e,t):this.trigger(n)}});var Xt=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;S.proxy=function(e,t){var n,r,i;if("string"==typeof t&&(n=e[t],t=e,e=n),m(e))return r=s.call(arguments,2),(i=function(){return e.apply(t||this,r.concat(s.call(arguments)))}).guid=e.guid=e.guid||S.guid++,i},S.holdReady=function(e){e?S.readyWait++:S.ready(!0)},S.isArray=Array.isArray,S.parseJSON=JSON.parse,S.nodeName=A,S.isFunction=m,S.isWindow=x,S.camelCase=X,S.type=w,S.now=Date.now,S.isNumeric=function(e){var t=S.type(e);return("number"===t||"string"===t)&&!isNaN(e-parseFloat(e))},S.trim=function(e){return null==e?"":(e+"").replace(Xt,"")},"function"==typeof define&&define.amd&&define("jquery",[],function(){return S});var Vt=C.jQuery,Gt=C.$;return S.noConflict=function(e){return C.$===S&&(C.$=Gt),e&&C.jQuery===S&&(C.jQuery=Vt),S},"undefined"==typeof e&&(C.jQuery=C.$=S),S});
+/*! jQuery UI - v1.13.2 - 2022-08-01
 * http://jqueryui.com
-* Includes: widget.js, position.js, data.js, disable-selection.js, focusable.js, form-reset-mixin.js, jquery-1-7.js, keycode.js, labels.js, scroll-parent.js, tabbable.js, unique-id.js, widgets/resizable.js, widgets/mouse.js
+* Includes: widget.js, position.js, data.js, disable-selection.js, focusable.js, form-reset-mixin.js, jquery-patch.js, keycode.js, labels.js, scroll-parent.js, tabbable.js, unique-id.js, widgets/resizable.js, widgets/mouse.js
 * Copyright jQuery Foundation and other contributors; Licensed MIT */
 
-(function(t){"function"==typeof define&&define.amd?define(["jquery"],t):t(jQuery)})(function(t){function e(t){for(var e=t.css("visibility");"inherit"===e;)t=t.parent(),e=t.css("visibility");return"hidden"!==e}t.ui=t.ui||{},t.ui.version="1.12.1";var i=0,s=Array.prototype.slice;t.cleanData=function(e){return function(i){var s,n,o;for(o=0;null!=(n=i[o]);o++)try{s=t._data(n,"events"),s&&s.remove&&t(n).triggerHandler("remove")}catch(a){}e(i)}}(t.cleanData),t.widget=function(e,i,s){var n,o,a,r={},h=e.split(".")[0];e=e.split(".")[1];var l=h+"-"+e;return s||(s=i,i=t.Widget),t.isArray(s)&&(s=t.extend.apply(null,[{}].concat(s))),t.expr[":"][l.toLowerCase()]=function(e){return!!t.data(e,l)},t[h]=t[h]||{},n=t[h][e],o=t[h][e]=function(t,e){return this._createWidget?(arguments.length&&this._createWidget(t,e),void 0):new o(t,e)},t.extend(o,n,{version:s.version,_proto:t.extend({},s),_childConstructors:[]}),a=new i,a.options=t.widget.extend({},a.options),t.each(s,function(e,s){return t.isFunction(s)?(r[e]=function(){function t(){return i.prototype[e].apply(this,arguments)}function n(t){return i.prototype[e].apply(this,t)}return function(){var e,i=this._super,o=this._superApply;return this._super=t,this._superApply=n,e=s.apply(this,arguments),this._super=i,this._superApply=o,e}}(),void 0):(r[e]=s,void 0)}),o.prototype=t.widget.extend(a,{widgetEventPrefix:n?a.widgetEventPrefix||e:e},r,{constructor:o,namespace:h,widgetName:e,widgetFullName:l}),n?(t.each(n._childConstructors,function(e,i){var s=i.prototype;t.widget(s.namespace+"."+s.widgetName,o,i._proto)}),delete n._childConstructors):i._childConstructors.push(o),t.widget.bridge(e,o),o},t.widget.extend=function(e){for(var i,n,o=s.call(arguments,1),a=0,r=o.length;r>a;a++)for(i in o[a])n=o[a][i],o[a].hasOwnProperty(i)&&void 0!==n&&(e[i]=t.isPlainObject(n)?t.isPlainObject(e[i])?t.widget.extend({},e[i],n):t.widget.extend({},n):n);return e},t.widget.bridge=function(e,i){var n=i.prototype.widgetFullName||e;t.fn[e]=function(o){var a="string"==typeof o,r=s.call(arguments,1),h=this;return a?this.length||"instance"!==o?this.each(function(){var i,s=t.data(this,n);return"instance"===o?(h=s,!1):s?t.isFunction(s[o])&&"_"!==o.charAt(0)?(i=s[o].apply(s,r),i!==s&&void 0!==i?(h=i&&i.jquery?h.pushStack(i.get()):i,!1):void 0):t.error("no such method '"+o+"' for "+e+" widget instance"):t.error("cannot call methods on "+e+" prior to initialization; "+"attempted to call method '"+o+"'")}):h=void 0:(r.length&&(o=t.widget.extend.apply(null,[o].concat(r))),this.each(function(){var e=t.data(this,n);e?(e.option(o||{}),e._init&&e._init()):t.data(this,n,new i(o,this))})),h}},t.Widget=function(){},t.Widget._childConstructors=[],t.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"<div>",options:{classes:{},disabled:!1,create:null},_createWidget:function(e,s){s=t(s||this.defaultElement||this)[0],this.element=t(s),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=t(),this.hoverable=t(),this.focusable=t(),this.classesElementLookup={},s!==this&&(t.data(s,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===s&&this.destroy()}}),this.document=t(s.style?s.ownerDocument:s.document||s),this.window=t(this.document[0].defaultView||this.document[0].parentWindow)),this.options=t.widget.extend({},this.options,this._getCreateOptions(),e),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:t.noop,_create:t.noop,_init:t.noop,destroy:function(){var e=this;this._destroy(),t.each(this.classesElementLookup,function(t,i){e._removeClass(i,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:t.noop,widget:function(){return this.element},option:function(e,i){var s,n,o,a=e;if(0===arguments.length)return t.widget.extend({},this.options);if("string"==typeof e)if(a={},s=e.split("."),e=s.shift(),s.length){for(n=a[e]=t.widget.extend({},this.options[e]),o=0;s.length-1>o;o++)n[s[o]]=n[s[o]]||{},n=n[s[o]];if(e=s.pop(),1===arguments.length)return void 0===n[e]?null:n[e];n[e]=i}else{if(1===arguments.length)return void 0===this.options[e]?null:this.options[e];a[e]=i}return this._setOptions(a),this},_setOptions:function(t){var e;for(e in t)this._setOption(e,t[e]);return this},_setOption:function(t,e){return"classes"===t&&this._setOptionClasses(e),this.options[t]=e,"disabled"===t&&this._setOptionDisabled(e),this},_setOptionClasses:function(e){var i,s,n;for(i in e)n=this.classesElementLookup[i],e[i]!==this.options.classes[i]&&n&&n.length&&(s=t(n.get()),this._removeClass(n,i),s.addClass(this._classes({element:s,keys:i,classes:e,add:!0})))},_setOptionDisabled:function(t){this._toggleClass(this.widget(),this.widgetFullName+"-disabled",null,!!t),t&&(this._removeClass(this.hoverable,null,"ui-state-hover"),this._removeClass(this.focusable,null,"ui-state-focus"))},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_classes:function(e){function i(i,o){var a,r;for(r=0;i.length>r;r++)a=n.classesElementLookup[i[r]]||t(),a=e.add?t(t.unique(a.get().concat(e.element.get()))):t(a.not(e.element).get()),n.classesElementLookup[i[r]]=a,s.push(i[r]),o&&e.classes[i[r]]&&s.push(e.classes[i[r]])}var s=[],n=this;return e=t.extend({element:this.element,classes:this.options.classes||{}},e),this._on(e.element,{remove:"_untrackClassesElement"}),e.keys&&i(e.keys.match(/\S+/g)||[],!0),e.extra&&i(e.extra.match(/\S+/g)||[]),s.join(" ")},_untrackClassesElement:function(e){var i=this;t.each(i.classesElementLookup,function(s,n){-1!==t.inArray(e.target,n)&&(i.classesElementLookup[s]=t(n.not(e.target).get()))})},_removeClass:function(t,e,i){return this._toggleClass(t,e,i,!1)},_addClass:function(t,e,i){return this._toggleClass(t,e,i,!0)},_toggleClass:function(t,e,i,s){s="boolean"==typeof s?s:i;var n="string"==typeof t||null===t,o={extra:n?e:i,keys:n?t:e,element:n?this.element:t,add:s};return o.element.toggleClass(this._classes(o),s),this},_on:function(e,i,s){var n,o=this;"boolean"!=typeof e&&(s=i,i=e,e=!1),s?(i=n=t(i),this.bindings=this.bindings.add(i)):(s=i,i=this.element,n=this.widget()),t.each(s,function(s,a){function r(){return e||o.options.disabled!==!0&&!t(this).hasClass("ui-state-disabled")?("string"==typeof a?o[a]:a).apply(o,arguments):void 0}"string"!=typeof a&&(r.guid=a.guid=a.guid||r.guid||t.guid++);var h=s.match(/^([\w:-]*)\s*(.*)$/),l=h[1]+o.eventNamespace,c=h[2];c?n.on(l,c,r):i.on(l,r)})},_off:function(e,i){i=(i||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,e.off(i).off(i),this.bindings=t(this.bindings.not(e).get()),this.focusable=t(this.focusable.not(e).get()),this.hoverable=t(this.hoverable.not(e).get())},_delay:function(t,e){function i(){return("string"==typeof t?s[t]:t).apply(s,arguments)}var s=this;return setTimeout(i,e||0)},_hoverable:function(e){this.hoverable=this.hoverable.add(e),this._on(e,{mouseenter:function(e){this._addClass(t(e.currentTarget),null,"ui-state-hover")},mouseleave:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-hover")}})},_focusable:function(e){this.focusable=this.focusable.add(e),this._on(e,{focusin:function(e){this._addClass(t(e.currentTarget),null,"ui-state-focus")},focusout:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-focus")}})},_trigger:function(e,i,s){var n,o,a=this.options[e];if(s=s||{},i=t.Event(i),i.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase(),i.target=this.element[0],o=i.originalEvent)for(n in o)n in i||(i[n]=o[n]);return this.element.trigger(i,s),!(t.isFunction(a)&&a.apply(this.element[0],[i].concat(s))===!1||i.isDefaultPrevented())}},t.each({show:"fadeIn",hide:"fadeOut"},function(e,i){t.Widget.prototype["_"+e]=function(s,n,o){"string"==typeof n&&(n={effect:n});var a,r=n?n===!0||"number"==typeof n?i:n.effect||i:e;n=n||{},"number"==typeof n&&(n={duration:n}),a=!t.isEmptyObject(n),n.complete=o,n.delay&&s.delay(n.delay),a&&t.effects&&t.effects.effect[r]?s[e](n):r!==e&&s[r]?s[r](n.duration,n.easing,o):s.queue(function(i){t(this)[e](),o&&o.call(s[0]),i()})}}),t.widget,function(){function e(t,e,i){return[parseFloat(t[0])*(u.test(t[0])?e/100:1),parseFloat(t[1])*(u.test(t[1])?i/100:1)]}function i(e,i){return parseInt(t.css(e,i),10)||0}function s(e){var i=e[0];return 9===i.nodeType?{width:e.width(),height:e.height(),offset:{top:0,left:0}}:t.isWindow(i)?{width:e.width(),height:e.height(),offset:{top:e.scrollTop(),left:e.scrollLeft()}}:i.preventDefault?{width:0,height:0,offset:{top:i.pageY,left:i.pageX}}:{width:e.outerWidth(),height:e.outerHeight(),offset:e.offset()}}var n,o=Math.max,a=Math.abs,r=/left|center|right/,h=/top|center|bottom/,l=/[\+\-]\d+(\.[\d]+)?%?/,c=/^\w+/,u=/%$/,d=t.fn.position;t.position={scrollbarWidth:function(){if(void 0!==n)return n;var e,i,s=t("<div style='display:block;position:absolute;width:50px;height:50px;overflow:hidden;'><div style='height:100px;width:auto;'></div></div>"),o=s.children()[0];return t("body").append(s),e=o.offsetWidth,s.css("overflow","scroll"),i=o.offsetWidth,e===i&&(i=s[0].clientWidth),s.remove(),n=e-i},getScrollInfo:function(e){var i=e.isWindow||e.isDocument?"":e.element.css("overflow-x"),s=e.isWindow||e.isDocument?"":e.element.css("overflow-y"),n="scroll"===i||"auto"===i&&e.width<e.element[0].scrollWidth,o="scroll"===s||"auto"===s&&e.height<e.element[0].scrollHeight;return{width:o?t.position.scrollbarWidth():0,height:n?t.position.scrollbarWidth():0}},getWithinInfo:function(e){var i=t(e||window),s=t.isWindow(i[0]),n=!!i[0]&&9===i[0].nodeType,o=!s&&!n;return{element:i,isWindow:s,isDocument:n,offset:o?t(e).offset():{left:0,top:0},scrollLeft:i.scrollLeft(),scrollTop:i.scrollTop(),width:i.outerWidth(),height:i.outerHeight()}}},t.fn.position=function(n){if(!n||!n.of)return d.apply(this,arguments);n=t.extend({},n);var u,p,f,m,g,_,v=t(n.of),b=t.position.getWithinInfo(n.within),y=t.position.getScrollInfo(b),w=(n.collision||"flip").split(" "),x={};return _=s(v),v[0].preventDefault&&(n.at="left top"),p=_.width,f=_.height,m=_.offset,g=t.extend({},m),t.each(["my","at"],function(){var t,e,i=(n[this]||"").split(" ");1===i.length&&(i=r.test(i[0])?i.concat(["center"]):h.test(i[0])?["center"].concat(i):["center","center"]),i[0]=r.test(i[0])?i[0]:"center",i[1]=h.test(i[1])?i[1]:"center",t=l.exec(i[0]),e=l.exec(i[1]),x[this]=[t?t[0]:0,e?e[0]:0],n[this]=[c.exec(i[0])[0],c.exec(i[1])[0]]}),1===w.length&&(w[1]=w[0]),"right"===n.at[0]?g.left+=p:"center"===n.at[0]&&(g.left+=p/2),"bottom"===n.at[1]?g.top+=f:"center"===n.at[1]&&(g.top+=f/2),u=e(x.at,p,f),g.left+=u[0],g.top+=u[1],this.each(function(){var s,r,h=t(this),l=h.outerWidth(),c=h.outerHeight(),d=i(this,"marginLeft"),_=i(this,"marginTop"),k=l+d+i(this,"marginRight")+y.width,C=c+_+i(this,"marginBottom")+y.height,D=t.extend({},g),T=e(x.my,h.outerWidth(),h.outerHeight());"right"===n.my[0]?D.left-=l:"center"===n.my[0]&&(D.left-=l/2),"bottom"===n.my[1]?D.top-=c:"center"===n.my[1]&&(D.top-=c/2),D.left+=T[0],D.top+=T[1],s={marginLeft:d,marginTop:_},t.each(["left","top"],function(e,i){t.ui.position[w[e]]&&t.ui.position[w[e]][i](D,{targetWidth:p,targetHeight:f,elemWidth:l,elemHeight:c,collisionPosition:s,collisionWidth:k,collisionHeight:C,offset:[u[0]+T[0],u[1]+T[1]],my:n.my,at:n.at,within:b,elem:h})}),n.using&&(r=function(t){var e=m.left-D.left,i=e+p-l,s=m.top-D.top,r=s+f-c,u={target:{element:v,left:m.left,top:m.top,width:p,height:f},element:{element:h,left:D.left,top:D.top,width:l,height:c},horizontal:0>i?"left":e>0?"right":"center",vertical:0>r?"top":s>0?"bottom":"middle"};l>p&&p>a(e+i)&&(u.horizontal="center"),c>f&&f>a(s+r)&&(u.vertical="middle"),u.important=o(a(e),a(i))>o(a(s),a(r))?"horizontal":"vertical",n.using.call(this,t,u)}),h.offset(t.extend(D,{using:r}))})},t.ui.position={fit:{left:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollLeft:s.offset.left,a=s.width,r=t.left-e.collisionPosition.marginLeft,h=n-r,l=r+e.collisionWidth-a-n;e.collisionWidth>a?h>0&&0>=l?(i=t.left+h+e.collisionWidth-a-n,t.left+=h-i):t.left=l>0&&0>=h?n:h>l?n+a-e.collisionWidth:n:h>0?t.left+=h:l>0?t.left-=l:t.left=o(t.left-r,t.left)},top:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollTop:s.offset.top,a=e.within.height,r=t.top-e.collisionPosition.marginTop,h=n-r,l=r+e.collisionHeight-a-n;e.collisionHeight>a?h>0&&0>=l?(i=t.top+h+e.collisionHeight-a-n,t.top+=h-i):t.top=l>0&&0>=h?n:h>l?n+a-e.collisionHeight:n:h>0?t.top+=h:l>0?t.top-=l:t.top=o(t.top-r,t.top)}},flip:{left:function(t,e){var i,s,n=e.within,o=n.offset.left+n.scrollLeft,r=n.width,h=n.isWindow?n.scrollLeft:n.offset.left,l=t.left-e.collisionPosition.marginLeft,c=l-h,u=l+e.collisionWidth-r-h,d="left"===e.my[0]?-e.elemWidth:"right"===e.my[0]?e.elemWidth:0,p="left"===e.at[0]?e.targetWidth:"right"===e.at[0]?-e.targetWidth:0,f=-2*e.offset[0];0>c?(i=t.left+d+p+f+e.collisionWidth-r-o,(0>i||a(c)>i)&&(t.left+=d+p+f)):u>0&&(s=t.left-e.collisionPosition.marginLeft+d+p+f-h,(s>0||u>a(s))&&(t.left+=d+p+f))},top:function(t,e){var i,s,n=e.within,o=n.offset.top+n.scrollTop,r=n.height,h=n.isWindow?n.scrollTop:n.offset.top,l=t.top-e.collisionPosition.marginTop,c=l-h,u=l+e.collisionHeight-r-h,d="top"===e.my[1],p=d?-e.elemHeight:"bottom"===e.my[1]?e.elemHeight:0,f="top"===e.at[1]?e.targetHeight:"bottom"===e.at[1]?-e.targetHeight:0,m=-2*e.offset[1];0>c?(s=t.top+p+f+m+e.collisionHeight-r-o,(0>s||a(c)>s)&&(t.top+=p+f+m)):u>0&&(i=t.top-e.collisionPosition.marginTop+p+f+m-h,(i>0||u>a(i))&&(t.top+=p+f+m))}},flipfit:{left:function(){t.ui.position.flip.left.apply(this,arguments),t.ui.position.fit.left.apply(this,arguments)},top:function(){t.ui.position.flip.top.apply(this,arguments),t.ui.position.fit.top.apply(this,arguments)}}}}(),t.ui.position,t.extend(t.expr[":"],{data:t.expr.createPseudo?t.expr.createPseudo(function(e){return function(i){return!!t.data(i,e)}}):function(e,i,s){return!!t.data(e,s[3])}}),t.fn.extend({disableSelection:function(){var t="onselectstart"in document.createElement("div")?"selectstart":"mousedown";return function(){return this.on(t+".ui-disableSelection",function(t){t.preventDefault()})}}(),enableSelection:function(){return this.off(".ui-disableSelection")}}),t.ui.focusable=function(i,s){var n,o,a,r,h,l=i.nodeName.toLowerCase();return"area"===l?(n=i.parentNode,o=n.name,i.href&&o&&"map"===n.nodeName.toLowerCase()?(a=t("img[usemap='#"+o+"']"),a.length>0&&a.is(":visible")):!1):(/^(input|select|textarea|button|object)$/.test(l)?(r=!i.disabled,r&&(h=t(i).closest("fieldset")[0],h&&(r=!h.disabled))):r="a"===l?i.href||s:s,r&&t(i).is(":visible")&&e(t(i)))},t.extend(t.expr[":"],{focusable:function(e){return t.ui.focusable(e,null!=t.attr(e,"tabindex"))}}),t.ui.focusable,t.fn.form=function(){return"string"==typeof this[0].form?this.closest("form"):t(this[0].form)},t.ui.formResetMixin={_formResetHandler:function(){var e=t(this);setTimeout(function(){var i=e.data("ui-form-reset-instances");t.each(i,function(){this.refresh()})})},_bindFormResetHandler:function(){if(this.form=this.element.form(),this.form.length){var t=this.form.data("ui-form-reset-instances")||[];t.length||this.form.on("reset.ui-form-reset",this._formResetHandler),t.push(this),this.form.data("ui-form-reset-instances",t)}},_unbindFormResetHandler:function(){if(this.form.length){var e=this.form.data("ui-form-reset-instances");e.splice(t.inArray(this,e),1),e.length?this.form.data("ui-form-reset-instances",e):this.form.removeData("ui-form-reset-instances").off("reset.ui-form-reset")}}},"1.7"===t.fn.jquery.substring(0,3)&&(t.each(["Width","Height"],function(e,i){function s(e,i,s,o){return t.each(n,function(){i-=parseFloat(t.css(e,"padding"+this))||0,s&&(i-=parseFloat(t.css(e,"border"+this+"Width"))||0),o&&(i-=parseFloat(t.css(e,"margin"+this))||0)}),i}var n="Width"===i?["Left","Right"]:["Top","Bottom"],o=i.toLowerCase(),a={innerWidth:t.fn.innerWidth,innerHeight:t.fn.innerHeight,outerWidth:t.fn.outerWidth,outerHeight:t.fn.outerHeight};t.fn["inner"+i]=function(e){return void 0===e?a["inner"+i].call(this):this.each(function(){t(this).css(o,s(this,e)+"px")})},t.fn["outer"+i]=function(e,n){return"number"!=typeof e?a["outer"+i].call(this,e):this.each(function(){t(this).css(o,s(this,e,!0,n)+"px")})}}),t.fn.addBack=function(t){return this.add(null==t?this.prevObject:this.prevObject.filter(t))}),t.ui.keyCode={BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38},t.ui.escapeSelector=function(){var t=/([!"#$%&'()*+,./:;<=>?@[\]^`{|}~])/g;return function(e){return e.replace(t,"\\$1")}}(),t.fn.labels=function(){var e,i,s,n,o;return this[0].labels&&this[0].labels.length?this.pushStack(this[0].labels):(n=this.eq(0).parents("label"),s=this.attr("id"),s&&(e=this.eq(0).parents().last(),o=e.add(e.length?e.siblings():this.siblings()),i="label[for='"+t.ui.escapeSelector(s)+"']",n=n.add(o.find(i).addBack(i))),this.pushStack(n))},t.fn.scrollParent=function(e){var i=this.css("position"),s="absolute"===i,n=e?/(auto|scroll|hidden)/:/(auto|scroll)/,o=this.parents().filter(function(){var e=t(this);return s&&"static"===e.css("position")?!1:n.test(e.css("overflow")+e.css("overflow-y")+e.css("overflow-x"))}).eq(0);return"fixed"!==i&&o.length?o:t(this[0].ownerDocument||document)},t.extend(t.expr[":"],{tabbable:function(e){var i=t.attr(e,"tabindex"),s=null!=i;return(!s||i>=0)&&t.ui.focusable(e,s)}}),t.fn.extend({uniqueId:function(){var t=0;return function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++t)})}}(),removeUniqueId:function(){return this.each(function(){/^ui-id-\d+$/.test(this.id)&&t(this).removeAttr("id")})}}),t.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase());var n=!1;t(document).on("mouseup",function(){n=!1}),t.widget("ui.mouse",{version:"1.12.1",options:{cancel:"input, textarea, button, select, option",distance:1,delay:0},_mouseInit:function(){var e=this;this.element.on("mousedown."+this.widgetName,function(t){return e._mouseDown(t)}).on("click."+this.widgetName,function(i){return!0===t.data(i.target,e.widgetName+".preventClickEvent")?(t.removeData(i.target,e.widgetName+".preventClickEvent"),i.stopImmediatePropagation(),!1):void 0}),this.started=!1},_mouseDestroy:function(){this.element.off("."+this.widgetName),this._mouseMoveDelegate&&this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(e){if(!n){this._mouseMoved=!1,this._mouseStarted&&this._mouseUp(e),this._mouseDownEvent=e;var i=this,s=1===e.which,o="string"==typeof this.options.cancel&&e.target.nodeName?t(e.target).closest(this.options.cancel).length:!1;return s&&!o&&this._mouseCapture(e)?(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){i.mouseDelayMet=!0},this.options.delay)),this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(e)!==!1,!this._mouseStarted)?(e.preventDefault(),!0):(!0===t.data(e.target,this.widgetName+".preventClickEvent")&&t.removeData(e.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(t){return i._mouseMove(t)},this._mouseUpDelegate=function(t){return i._mouseUp(t)},this.document.on("mousemove."+this.widgetName,this._mouseMoveDelegate).on("mouseup."+this.widgetName,this._mouseUpDelegate),e.preventDefault(),n=!0,!0)):!0}},_mouseMove:function(e){if(this._mouseMoved){if(t.ui.ie&&(!document.documentMode||9>document.documentMode)&&!e.button)return this._mouseUp(e);if(!e.which)if(e.originalEvent.altKey||e.originalEvent.ctrlKey||e.originalEvent.metaKey||e.originalEvent.shiftKey)this.ignoreMissingWhich=!0;else if(!this.ignoreMissingWhich)return this._mouseUp(e)}return(e.which||e.button)&&(this._mouseMoved=!0),this._mouseStarted?(this._mouseDrag(e),e.preventDefault()):(this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,e)!==!1,this._mouseStarted?this._mouseDrag(e):this._mouseUp(e)),!this._mouseStarted)},_mouseUp:function(e){this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,e.target===this._mouseDownEvent.target&&t.data(e.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(e)),this._mouseDelayTimer&&(clearTimeout(this._mouseDelayTimer),delete this._mouseDelayTimer),this.ignoreMissingWhich=!1,n=!1,e.preventDefault()},_mouseDistanceMet:function(t){return Math.max(Math.abs(this._mouseDownEvent.pageX-t.pageX),Math.abs(this._mouseDownEvent.pageY-t.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),t.ui.plugin={add:function(e,i,s){var n,o=t.ui[e].prototype;for(n in s)o.plugins[n]=o.plugins[n]||[],o.plugins[n].push([i,s[n]])},call:function(t,e,i,s){var n,o=t.plugins[e];if(o&&(s||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(n=0;o.length>n;n++)t.options[o[n][0]]&&o[n][1].apply(t.element,i)}},t.widget("ui.resizable",t.ui.mouse,{version:"1.12.1",widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,classes:{"ui-resizable-se":"ui-icon ui-icon-gripsmall-diagonal-se"},containment:!1,ghost:!1,grid:!1,handles:"e,s,se",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:90,resize:null,start:null,stop:null},_num:function(t){return parseFloat(t)||0},_isNumber:function(t){return!isNaN(parseFloat(t))},_hasScroll:function(e,i){if("hidden"===t(e).css("overflow"))return!1;var s=i&&"left"===i?"scrollLeft":"scrollTop",n=!1;return e[s]>0?!0:(e[s]=1,n=e[s]>0,e[s]=0,n)},_create:function(){var e,i=this.options,s=this;this._addClass("ui-resizable"),t.extend(this,{_aspectRatio:!!i.aspectRatio,aspectRatio:i.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:i.helper||i.ghost||i.animate?i.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/^(canvas|textarea|input|select|button|img)$/i)&&(this.element.wrap(t("<div class='ui-wrapper' style='overflow: hidden;'></div>").css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,e={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")},this.element.css(e),this.originalElement.css("margin",0),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css(e),this._proportionallyResize()),this._setupHandles(),i.autoHide&&t(this.element).on("mouseenter",function(){i.disabled||(s._removeClass("ui-resizable-autohide"),s._handles.show())}).on("mouseleave",function(){i.disabled||s.resizing||(s._addClass("ui-resizable-autohide"),s._handles.hide())}),this._mouseInit()},_destroy:function(){this._mouseDestroy();var e,i=function(e){t(e).removeData("resizable").removeData("ui-resizable").off(".resizable").find(".ui-resizable-handle").remove()};return this.elementIsWrapper&&(i(this.element),e=this.element,this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")}).insertAfter(e),e.remove()),this.originalElement.css("resize",this.originalResizeStyle),i(this.originalElement),this},_setOption:function(t,e){switch(this._super(t,e),t){case"handles":this._removeHandles(),this._setupHandles();break;default:}},_setupHandles:function(){var e,i,s,n,o,a=this.options,r=this;if(this.handles=a.handles||(t(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=t(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),s=this.handles.split(","),this.handles={},i=0;s.length>i;i++)e=t.trim(s[i]),n="ui-resizable-"+e,o=t("<div>"),this._addClass(o,"ui-resizable-handle "+n),o.css({zIndex:a.zIndex}),this.handles[e]=".ui-resizable-"+e,this.element.append(o);this._renderAxis=function(e){var i,s,n,o;e=e||this.element;for(i in this.handles)this.handles[i].constructor===String?this.handles[i]=this.element.children(this.handles[i]).first().show():(this.handles[i].jquery||this.handles[i].nodeType)&&(this.handles[i]=t(this.handles[i]),this._on(this.handles[i],{mousedown:r._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(s=t(this.handles[i],this.element),o=/sw|ne|nw|se|n|s/.test(i)?s.outerHeight():s.outerWidth(),n=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join(""),e.css(n,o),this._proportionallyResize()),this._handles=this._handles.add(this.handles[i])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.on("mouseover",function(){r.resizing||(this.className&&(o=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),r.axis=o&&o[1]?o[1]:"se")}),a.autoHide&&(this._handles.hide(),this._addClass("ui-resizable-autohide"))},_removeHandles:function(){this._handles.remove()},_mouseCapture:function(e){var i,s,n=!1;for(i in this.handles)s=t(this.handles[i])[0],(s===e.target||t.contains(s,e.target))&&(n=!0);return!this.options.disabled&&n},_mouseStart:function(e){var i,s,n,o=this.options,a=this.element;return this.resizing=!0,this._renderProxy(),i=this._num(this.helper.css("left")),s=this._num(this.helper.css("top")),o.containment&&(i+=t(o.containment).scrollLeft()||0,s+=t(o.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:i,top:s},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:a.width(),height:a.height()},this.originalSize=this._helper?{width:a.outerWidth(),height:a.outerHeight()}:{width:a.width(),height:a.height()},this.sizeDiff={width:a.outerWidth()-a.width(),height:a.outerHeight()-a.height()},this.originalPosition={left:i,top:s},this.originalMousePosition={left:e.pageX,top:e.pageY},this.aspectRatio="number"==typeof o.aspectRatio?o.aspectRatio:this.originalSize.width/this.originalSize.height||1,n=t(".ui-resizable-"+this.axis).css("cursor"),t("body").css("cursor","auto"===n?this.axis+"-resize":n),this._addClass("ui-resizable-resizing"),this._propagate("start",e),!0},_mouseDrag:function(e){var i,s,n=this.originalMousePosition,o=this.axis,a=e.pageX-n.left||0,r=e.pageY-n.top||0,h=this._change[o];return this._updatePrevProperties(),h?(i=h.apply(this,[e,a,r]),this._updateVirtualBoundaries(e.shiftKey),(this._aspectRatio||e.shiftKey)&&(i=this._updateRatio(i,e)),i=this._respectSize(i,e),this._updateCache(i),this._propagate("resize",e),s=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),t.isEmptyObject(s)||(this._updatePrevProperties(),this._trigger("resize",e,this.ui()),this._applyChanges()),!1):!1},_mouseStop:function(e){this.resizing=!1;var i,s,n,o,a,r,h,l=this.options,c=this;return this._helper&&(i=this._proportionallyResizeElements,s=i.length&&/textarea/i.test(i[0].nodeName),n=s&&this._hasScroll(i[0],"left")?0:c.sizeDiff.height,o=s?0:c.sizeDiff.width,a={width:c.helper.width()-o,height:c.helper.height()-n},r=parseFloat(c.element.css("left"))+(c.position.left-c.originalPosition.left)||null,h=parseFloat(c.element.css("top"))+(c.position.top-c.originalPosition.top)||null,l.animate||this.element.css(t.extend(a,{top:h,left:r})),c.helper.height(c.size.height),c.helper.width(c.size.width),this._helper&&!l.animate&&this._proportionallyResize()),t("body").css("cursor","auto"),this._removeClass("ui-resizable-resizing"),this._propagate("stop",e),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var t={};return this.position.top!==this.prevPosition.top&&(t.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(t.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(t.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(t.height=this.size.height+"px"),this.helper.css(t),t},_updateVirtualBoundaries:function(t){var e,i,s,n,o,a=this.options;o={minWidth:this._isNumber(a.minWidth)?a.minWidth:0,maxWidth:this._isNumber(a.maxWidth)?a.maxWidth:1/0,minHeight:this._isNumber(a.minHeight)?a.minHeight:0,maxHeight:this._isNumber(a.maxHeight)?a.maxHeight:1/0},(this._aspectRatio||t)&&(e=o.minHeight*this.aspectRatio,s=o.minWidth/this.aspectRatio,i=o.maxHeight*this.aspectRatio,n=o.maxWidth/this.aspectRatio,e>o.minWidth&&(o.minWidth=e),s>o.minHeight&&(o.minHeight=s),o.maxWidth>i&&(o.maxWidth=i),o.maxHeight>n&&(o.maxHeight=n)),this._vBoundaries=o},_updateCache:function(t){this.offset=this.helper.offset(),this._isNumber(t.left)&&(this.position.left=t.left),this._isNumber(t.top)&&(this.position.top=t.top),this._isNumber(t.height)&&(this.size.height=t.height),this._isNumber(t.width)&&(this.size.width=t.width)},_updateRatio:function(t){var e=this.position,i=this.size,s=this.axis;return this._isNumber(t.height)?t.width=t.height*this.aspectRatio:this._isNumber(t.width)&&(t.height=t.width/this.aspectRatio),"sw"===s&&(t.left=e.left+(i.width-t.width),t.top=null),"nw"===s&&(t.top=e.top+(i.height-t.height),t.left=e.left+(i.width-t.width)),t},_respectSize:function(t){var e=this._vBoundaries,i=this.axis,s=this._isNumber(t.width)&&e.maxWidth&&e.maxWidth<t.width,n=this._isNumber(t.height)&&e.maxHeight&&e.maxHeight<t.height,o=this._isNumber(t.width)&&e.minWidth&&e.minWidth>t.width,a=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,r=this.originalPosition.left+this.originalSize.width,h=this.originalPosition.top+this.originalSize.height,l=/sw|nw|w/.test(i),c=/nw|ne|n/.test(i);return o&&(t.width=e.minWidth),a&&(t.height=e.minHeight),s&&(t.width=e.maxWidth),n&&(t.height=e.maxHeight),o&&l&&(t.left=r-e.minWidth),s&&l&&(t.left=r-e.maxWidth),a&&c&&(t.top=h-e.minHeight),n&&c&&(t.top=h-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_getPaddingPlusBorderDimensions:function(t){for(var e=0,i=[],s=[t.css("borderTopWidth"),t.css("borderRightWidth"),t.css("borderBottomWidth"),t.css("borderLeftWidth")],n=[t.css("paddingTop"),t.css("paddingRight"),t.css("paddingBottom"),t.css("paddingLeft")];4>e;e++)i[e]=parseFloat(s[e])||0,i[e]+=parseFloat(n[e])||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var t,e=0,i=this.helper||this.element;this._proportionallyResizeElements.length>e;e++)t=this._proportionallyResizeElements[e],this.outerDimensions||(this.outerDimensions=this._getPaddingPlusBorderDimensions(t)),t.css({height:i.height()-this.outerDimensions.height||0,width:i.width()-this.outerDimensions.width||0})},_renderProxy:function(){var e=this.element,i=this.options;this.elementOffset=e.offset(),this._helper?(this.helper=this.helper||t("<div style='overflow:hidden;'></div>"),this._addClass(this.helper,this._helper),this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++i.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element
-},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var i=this.originalSize,s=this.originalPosition;return{left:s.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize,n=this.originalPosition;return{top:n.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},sw:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[e,i,s]))},ne:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},nw:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[e,i,s]))}},_propagate:function(e,i){t.ui.plugin.call(this,e,[i,this.ui()]),"resize"!==e&&this._trigger(e,i,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),t.ui.plugin.add("resizable","animate",{stop:function(e){var i=t(this).resizable("instance"),s=i.options,n=i._proportionallyResizeElements,o=n.length&&/textarea/i.test(n[0].nodeName),a=o&&i._hasScroll(n[0],"left")?0:i.sizeDiff.height,r=o?0:i.sizeDiff.width,h={width:i.size.width-r,height:i.size.height-a},l=parseFloat(i.element.css("left"))+(i.position.left-i.originalPosition.left)||null,c=parseFloat(i.element.css("top"))+(i.position.top-i.originalPosition.top)||null;i.element.animate(t.extend(h,c&&l?{top:c,left:l}:{}),{duration:s.animateDuration,easing:s.animateEasing,step:function(){var s={width:parseFloat(i.element.css("width")),height:parseFloat(i.element.css("height")),top:parseFloat(i.element.css("top")),left:parseFloat(i.element.css("left"))};n&&n.length&&t(n[0]).css({width:s.width,height:s.height}),i._updateCache(s),i._propagate("resize",e)}})}}),t.ui.plugin.add("resizable","containment",{start:function(){var e,i,s,n,o,a,r,h=t(this).resizable("instance"),l=h.options,c=h.element,u=l.containment,d=u instanceof t?u.get(0):/parent/.test(u)?c.parent().get(0):u;d&&(h.containerElement=t(d),/document/.test(u)||u===document?(h.containerOffset={left:0,top:0},h.containerPosition={left:0,top:0},h.parentData={element:t(document),left:0,top:0,width:t(document).width(),height:t(document).height()||document.body.parentNode.scrollHeight}):(e=t(d),i=[],t(["Top","Right","Left","Bottom"]).each(function(t,s){i[t]=h._num(e.css("padding"+s))}),h.containerOffset=e.offset(),h.containerPosition=e.position(),h.containerSize={height:e.innerHeight()-i[3],width:e.innerWidth()-i[1]},s=h.containerOffset,n=h.containerSize.height,o=h.containerSize.width,a=h._hasScroll(d,"left")?d.scrollWidth:o,r=h._hasScroll(d)?d.scrollHeight:n,h.parentData={element:d,left:s.left,top:s.top,width:a,height:r}))},resize:function(e){var i,s,n,o,a=t(this).resizable("instance"),r=a.options,h=a.containerOffset,l=a.position,c=a._aspectRatio||e.shiftKey,u={top:0,left:0},d=a.containerElement,p=!0;d[0]!==document&&/static/.test(d.css("position"))&&(u=h),l.left<(a._helper?h.left:0)&&(a.size.width=a.size.width+(a._helper?a.position.left-h.left:a.position.left-u.left),c&&(a.size.height=a.size.width/a.aspectRatio,p=!1),a.position.left=r.helper?h.left:0),l.top<(a._helper?h.top:0)&&(a.size.height=a.size.height+(a._helper?a.position.top-h.top:a.position.top),c&&(a.size.width=a.size.height*a.aspectRatio,p=!1),a.position.top=a._helper?h.top:0),n=a.containerElement.get(0)===a.element.parent().get(0),o=/relative|absolute/.test(a.containerElement.css("position")),n&&o?(a.offset.left=a.parentData.left+a.position.left,a.offset.top=a.parentData.top+a.position.top):(a.offset.left=a.element.offset().left,a.offset.top=a.element.offset().top),i=Math.abs(a.sizeDiff.width+(a._helper?a.offset.left-u.left:a.offset.left-h.left)),s=Math.abs(a.sizeDiff.height+(a._helper?a.offset.top-u.top:a.offset.top-h.top)),i+a.size.width>=a.parentData.width&&(a.size.width=a.parentData.width-i,c&&(a.size.height=a.size.width/a.aspectRatio,p=!1)),s+a.size.height>=a.parentData.height&&(a.size.height=a.parentData.height-s,c&&(a.size.width=a.size.height*a.aspectRatio,p=!1)),p||(a.position.left=a.prevPosition.left,a.position.top=a.prevPosition.top,a.size.width=a.prevSize.width,a.size.height=a.prevSize.height)},stop:function(){var e=t(this).resizable("instance"),i=e.options,s=e.containerOffset,n=e.containerPosition,o=e.containerElement,a=t(e.helper),r=a.offset(),h=a.outerWidth()-e.sizeDiff.width,l=a.outerHeight()-e.sizeDiff.height;e._helper&&!i.animate&&/relative/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l}),e._helper&&!i.animate&&/static/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l})}}),t.ui.plugin.add("resizable","alsoResize",{start:function(){var e=t(this).resizable("instance"),i=e.options;t(i.alsoResize).each(function(){var e=t(this);e.data("ui-resizable-alsoresize",{width:parseFloat(e.width()),height:parseFloat(e.height()),left:parseFloat(e.css("left")),top:parseFloat(e.css("top"))})})},resize:function(e,i){var s=t(this).resizable("instance"),n=s.options,o=s.originalSize,a=s.originalPosition,r={height:s.size.height-o.height||0,width:s.size.width-o.width||0,top:s.position.top-a.top||0,left:s.position.left-a.left||0};t(n.alsoResize).each(function(){var e=t(this),s=t(this).data("ui-resizable-alsoresize"),n={},o=e.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];t.each(o,function(t,e){var i=(s[e]||0)+(r[e]||0);i&&i>=0&&(n[e]=i||null)}),e.css(n)})},stop:function(){t(this).removeData("ui-resizable-alsoresize")}}),t.ui.plugin.add("resizable","ghost",{start:function(){var e=t(this).resizable("instance"),i=e.size;e.ghost=e.originalElement.clone(),e.ghost.css({opacity:.25,display:"block",position:"relative",height:i.height,width:i.width,margin:0,left:0,top:0}),e._addClass(e.ghost,"ui-resizable-ghost"),t.uiBackCompat!==!1&&"string"==typeof e.options.ghost&&e.ghost.addClass(this.options.ghost),e.ghost.appendTo(e.helper)},resize:function(){var e=t(this).resizable("instance");e.ghost&&e.ghost.css({position:"relative",height:e.size.height,width:e.size.width})},stop:function(){var e=t(this).resizable("instance");e.ghost&&e.helper&&e.helper.get(0).removeChild(e.ghost.get(0))}}),t.ui.plugin.add("resizable","grid",{resize:function(){var e,i=t(this).resizable("instance"),s=i.options,n=i.size,o=i.originalSize,a=i.originalPosition,r=i.axis,h="number"==typeof s.grid?[s.grid,s.grid]:s.grid,l=h[0]||1,c=h[1]||1,u=Math.round((n.width-o.width)/l)*l,d=Math.round((n.height-o.height)/c)*c,p=o.width+u,f=o.height+d,m=s.maxWidth&&p>s.maxWidth,g=s.maxHeight&&f>s.maxHeight,_=s.minWidth&&s.minWidth>p,v=s.minHeight&&s.minHeight>f;s.grid=h,_&&(p+=l),v&&(f+=c),m&&(p-=l),g&&(f-=c),/^(se|s|e)$/.test(r)?(i.size.width=p,i.size.height=f):/^(ne)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.top=a.top-d):/^(sw)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.left=a.left-u):((0>=f-c||0>=p-l)&&(e=i._getPaddingPlusBorderDimensions(this)),f-c>0?(i.size.height=f,i.position.top=a.top-d):(f=c-e.height,i.size.height=f,i.position.top=a.top+o.height-f),p-l>0?(i.size.width=p,i.position.left=a.left-u):(p=l-e.width,i.size.width=p,i.position.left=a.left+o.width-p))}}),t.ui.resizable});/**
+!function(t){"use strict";"function"==typeof define&&define.amd?define(["jquery"],t):t(jQuery)}(function(y){"use strict";y.ui=y.ui||{};y.ui.version="1.13.2";var n,i=0,h=Array.prototype.hasOwnProperty,a=Array.prototype.slice;y.cleanData=(n=y.cleanData,function(t){for(var e,i,s=0;null!=(i=t[s]);s++)(e=y._data(i,"events"))&&e.remove&&y(i).triggerHandler("remove");n(t)}),y.widget=function(t,i,e){var s,n,o,h={},a=t.split(".")[0],r=a+"-"+(t=t.split(".")[1]);return e||(e=i,i=y.Widget),Array.isArray(e)&&(e=y.extend.apply(null,[{}].concat(e))),y.expr.pseudos[r.toLowerCase()]=function(t){return!!y.data(t,r)},y[a]=y[a]||{},s=y[a][t],n=y[a][t]=function(t,e){if(!this||!this._createWidget)return new n(t,e);arguments.length&&this._createWidget(t,e)},y.extend(n,s,{version:e.version,_proto:y.extend({},e),_childConstructors:[]}),(o=new i).options=y.widget.extend({},o.options),y.each(e,function(e,s){function n(){return i.prototype[e].apply(this,arguments)}function o(t){return i.prototype[e].apply(this,t)}h[e]="function"==typeof s?function(){var t,e=this._super,i=this._superApply;return this._super=n,this._superApply=o,t=s.apply(this,arguments),this._super=e,this._superApply=i,t}:s}),n.prototype=y.widget.extend(o,{widgetEventPrefix:s&&o.widgetEventPrefix||t},h,{constructor:n,namespace:a,widgetName:t,widgetFullName:r}),s?(y.each(s._childConstructors,function(t,e){var i=e.prototype;y.widget(i.namespace+"."+i.widgetName,n,e._proto)}),delete s._childConstructors):i._childConstructors.push(n),y.widget.bridge(t,n),n},y.widget.extend=function(t){for(var e,i,s=a.call(arguments,1),n=0,o=s.length;n<o;n++)for(e in s[n])i=s[n][e],h.call(s[n],e)&&void 0!==i&&(y.isPlainObject(i)?t[e]=y.isPlainObject(t[e])?y.widget.extend({},t[e],i):y.widget.extend({},i):t[e]=i);return t},y.widget.bridge=function(o,e){var h=e.prototype.widgetFullName||o;y.fn[o]=function(i){var t="string"==typeof i,s=a.call(arguments,1),n=this;return t?this.length||"instance"!==i?this.each(function(){var t,e=y.data(this,h);return"instance"===i?(n=e,!1):e?"function"!=typeof e[i]||"_"===i.charAt(0)?y.error("no such method '"+i+"' for "+o+" widget instance"):(t=e[i].apply(e,s))!==e&&void 0!==t?(n=t&&t.jquery?n.pushStack(t.get()):t,!1):void 0:y.error("cannot call methods on "+o+" prior to initialization; attempted to call method '"+i+"'")}):n=void 0:(s.length&&(i=y.widget.extend.apply(null,[i].concat(s))),this.each(function(){var t=y.data(this,h);t?(t.option(i||{}),t._init&&t._init()):y.data(this,h,new e(i,this))})),n}},y.Widget=function(){},y.Widget._childConstructors=[],y.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"<div>",options:{classes:{},disabled:!1,create:null},_createWidget:function(t,e){e=y(e||this.defaultElement||this)[0],this.element=y(e),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=y(),this.hoverable=y(),this.focusable=y(),this.classesElementLookup={},e!==this&&(y.data(e,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===e&&this.destroy()}}),this.document=y(e.style?e.ownerDocument:e.document||e),this.window=y(this.document[0].defaultView||this.document[0].parentWindow)),this.options=y.widget.extend({},this.options,this._getCreateOptions(),t),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:y.noop,_create:y.noop,_init:y.noop,destroy:function(){var i=this;this._destroy(),y.each(this.classesElementLookup,function(t,e){i._removeClass(e,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:y.noop,widget:function(){return this.element},option:function(t,e){var i,s,n,o=t;if(0===arguments.length)return y.widget.extend({},this.options);if("string"==typeof t)if(o={},t=(i=t.split(".")).shift(),i.length){for(s=o[t]=y.widget.extend({},this.options[t]),n=0;n<i.length-1;n++)s[i[n]]=s[i[n]]||{},s=s[i[n]];if(t=i.pop(),1===arguments.length)return void 0===s[t]?null:s[t];s[t]=e}else{if(1===arguments.length)return void 0===this.options[t]?null:this.options[t];o[t]=e}return this._setOptions(o),this},_setOptions:function(t){for(var e in t)this._setOption(e,t[e]);return this},_setOption:function(t,e){return"classes"===t&&this._setOptionClasses(e),this.options[t]=e,"disabled"===t&&this._setOptionDisabled(e),this},_setOptionClasses:function(t){var e,i,s;for(e in t)s=this.classesElementLookup[e],t[e]!==this.options.classes[e]&&s&&s.length&&(i=y(s.get()),this._removeClass(s,e),i.addClass(this._classes({element:i,keys:e,classes:t,add:!0})))},_setOptionDisabled:function(t){this._toggleClass(this.widget(),this.widgetFullName+"-disabled",null,!!t),t&&(this._removeClass(this.hoverable,null,"ui-state-hover"),this._removeClass(this.focusable,null,"ui-state-focus"))},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_classes:function(n){var o=[],h=this;function t(t,e){for(var i,s=0;s<t.length;s++)i=h.classesElementLookup[t[s]]||y(),i=n.add?(function(){var i=[];n.element.each(function(t,e){y.map(h.classesElementLookup,function(t){return t}).some(function(t){return t.is(e)})||i.push(e)}),h._on(y(i),{remove:"_untrackClassesElement"})}(),y(y.uniqueSort(i.get().concat(n.element.get())))):y(i.not(n.element).get()),h.classesElementLookup[t[s]]=i,o.push(t[s]),e&&n.classes[t[s]]&&o.push(n.classes[t[s]])}return(n=y.extend({element:this.element,classes:this.options.classes||{}},n)).keys&&t(n.keys.match(/\S+/g)||[],!0),n.extra&&t(n.extra.match(/\S+/g)||[]),o.join(" ")},_untrackClassesElement:function(i){var s=this;y.each(s.classesElementLookup,function(t,e){-1!==y.inArray(i.target,e)&&(s.classesElementLookup[t]=y(e.not(i.target).get()))}),this._off(y(i.target))},_removeClass:function(t,e,i){return this._toggleClass(t,e,i,!1)},_addClass:function(t,e,i){return this._toggleClass(t,e,i,!0)},_toggleClass:function(t,e,i,s){var n="string"==typeof t||null===t,i={extra:n?e:i,keys:n?t:e,element:n?this.element:t,add:s="boolean"==typeof s?s:i};return i.element.toggleClass(this._classes(i),s),this},_on:function(n,o,t){var h,a=this;"boolean"!=typeof n&&(t=o,o=n,n=!1),t?(o=h=y(o),this.bindings=this.bindings.add(o)):(t=o,o=this.element,h=this.widget()),y.each(t,function(t,e){function i(){if(n||!0!==a.options.disabled&&!y(this).hasClass("ui-state-disabled"))return("string"==typeof e?a[e]:e).apply(a,arguments)}"string"!=typeof e&&(i.guid=e.guid=e.guid||i.guid||y.guid++);var s=t.match(/^([\w:-]*)\s*(.*)$/),t=s[1]+a.eventNamespace,s=s[2];s?h.on(t,s,i):o.on(t,i)})},_off:function(t,e){e=(e||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,t.off(e),this.bindings=y(this.bindings.not(t).get()),this.focusable=y(this.focusable.not(t).get()),this.hoverable=y(this.hoverable.not(t).get())},_delay:function(t,e){var i=this;return setTimeout(function(){return("string"==typeof t?i[t]:t).apply(i,arguments)},e||0)},_hoverable:function(t){this.hoverable=this.hoverable.add(t),this._on(t,{mouseenter:function(t){this._addClass(y(t.currentTarget),null,"ui-state-hover")},mouseleave:function(t){this._removeClass(y(t.currentTarget),null,"ui-state-hover")}})},_focusable:function(t){this.focusable=this.focusable.add(t),this._on(t,{focusin:function(t){this._addClass(y(t.currentTarget),null,"ui-state-focus")},focusout:function(t){this._removeClass(y(t.currentTarget),null,"ui-state-focus")}})},_trigger:function(t,e,i){var s,n,o=this.options[t];if(i=i||{},(e=y.Event(e)).type=(t===this.widgetEventPrefix?t:this.widgetEventPrefix+t).toLowerCase(),e.target=this.element[0],n=e.originalEvent)for(s in n)s in e||(e[s]=n[s]);return this.element.trigger(e,i),!("function"==typeof o&&!1===o.apply(this.element[0],[e].concat(i))||e.isDefaultPrevented())}},y.each({show:"fadeIn",hide:"fadeOut"},function(o,h){y.Widget.prototype["_"+o]=function(e,t,i){var s,n=(t="string"==typeof t?{effect:t}:t)?!0!==t&&"number"!=typeof t&&t.effect||h:o;"number"==typeof(t=t||{})?t={duration:t}:!0===t&&(t={}),s=!y.isEmptyObject(t),t.complete=i,t.delay&&e.delay(t.delay),s&&y.effects&&y.effects.effect[n]?e[o](t):n!==o&&e[n]?e[n](t.duration,t.easing,i):e.queue(function(t){y(this)[o](),i&&i.call(e[0]),t()})}});var s,x,D,o,r,l,u,p,W;y.widget;function E(t,e,i){return[parseFloat(t[0])*(p.test(t[0])?e/100:1),parseFloat(t[1])*(p.test(t[1])?i/100:1)]}function H(t,e){return parseInt(y.css(t,e),10)||0}function S(t){return null!=t&&t===t.window}x=Math.max,D=Math.abs,o=/left|center|right/,r=/top|center|bottom/,l=/[\+\-]\d+(\.[\d]+)?%?/,u=/^\w+/,p=/%$/,W=y.fn.position,y.position={scrollbarWidth:function(){if(void 0!==s)return s;var t,e=y("<div style='display:block;position:absolute;width:200px;height:200px;overflow:hidden;'><div style='height:300px;width:auto;'></div></div>"),i=e.children()[0];return y("body").append(e),t=i.offsetWidth,e.css("overflow","scroll"),t===(i=i.offsetWidth)&&(i=e[0].clientWidth),e.remove(),s=t-i},getScrollInfo:function(t){var e=t.isWindow||t.isDocument?"":t.element.css("overflow-x"),i=t.isWindow||t.isDocument?"":t.element.css("overflow-y"),e="scroll"===e||"auto"===e&&t.width<t.element[0].scrollWidth;return{width:"scroll"===i||"auto"===i&&t.height<t.element[0].scrollHeight?y.position.scrollbarWidth():0,height:e?y.position.scrollbarWidth():0}},getWithinInfo:function(t){var e=y(t||window),i=S(e[0]),s=!!e[0]&&9===e[0].nodeType;return{element:e,isWindow:i,isDocument:s,offset:!i&&!s?y(t).offset():{left:0,top:0},scrollLeft:e.scrollLeft(),scrollTop:e.scrollTop(),width:e.outerWidth(),height:e.outerHeight()}}},y.fn.position=function(p){if(!p||!p.of)return W.apply(this,arguments);var d,c,f,g,m,t,_="string"==typeof(p=y.extend({},p)).of?y(document).find(p.of):y(p.of),w=y.position.getWithinInfo(p.within),v=y.position.getScrollInfo(w),b=(p.collision||"flip").split(" "),z={},e=9===(t=(e=_)[0]).nodeType?{width:e.width(),height:e.height(),offset:{top:0,left:0}}:S(t)?{width:e.width(),height:e.height(),offset:{top:e.scrollTop(),left:e.scrollLeft()}}:t.preventDefault?{width:0,height:0,offset:{top:t.pageY,left:t.pageX}}:{width:e.outerWidth(),height:e.outerHeight(),offset:e.offset()};return _[0].preventDefault&&(p.at="left top"),c=e.width,f=e.height,m=y.extend({},g=e.offset),y.each(["my","at"],function(){var t,e,i=(p[this]||"").split(" ");(i=1===i.length?o.test(i[0])?i.concat(["center"]):r.test(i[0])?["center"].concat(i):["center","center"]:i)[0]=o.test(i[0])?i[0]:"center",i[1]=r.test(i[1])?i[1]:"center",t=l.exec(i[0]),e=l.exec(i[1]),z[this]=[t?t[0]:0,e?e[0]:0],p[this]=[u.exec(i[0])[0],u.exec(i[1])[0]]}),1===b.length&&(b[1]=b[0]),"right"===p.at[0]?m.left+=c:"center"===p.at[0]&&(m.left+=c/2),"bottom"===p.at[1]?m.top+=f:"center"===p.at[1]&&(m.top+=f/2),d=E(z.at,c,f),m.left+=d[0],m.top+=d[1],this.each(function(){var i,t,h=y(this),a=h.outerWidth(),r=h.outerHeight(),e=H(this,"marginLeft"),s=H(this,"marginTop"),n=a+e+H(this,"marginRight")+v.width,o=r+s+H(this,"marginBottom")+v.height,l=y.extend({},m),u=E(z.my,h.outerWidth(),h.outerHeight());"right"===p.my[0]?l.left-=a:"center"===p.my[0]&&(l.left-=a/2),"bottom"===p.my[1]?l.top-=r:"center"===p.my[1]&&(l.top-=r/2),l.left+=u[0],l.top+=u[1],i={marginLeft:e,marginTop:s},y.each(["left","top"],function(t,e){y.ui.position[b[t]]&&y.ui.position[b[t]][e](l,{targetWidth:c,targetHeight:f,elemWidth:a,elemHeight:r,collisionPosition:i,collisionWidth:n,collisionHeight:o,offset:[d[0]+u[0],d[1]+u[1]],my:p.my,at:p.at,within:w,elem:h})}),p.using&&(t=function(t){var e=g.left-l.left,i=e+c-a,s=g.top-l.top,n=s+f-r,o={target:{element:_,left:g.left,top:g.top,width:c,height:f},element:{element:h,left:l.left,top:l.top,width:a,height:r},horizontal:i<0?"left":0<e?"right":"center",vertical:n<0?"top":0<s?"bottom":"middle"};c<a&&D(e+i)<c&&(o.horizontal="center"),f<r&&D(s+n)<f&&(o.vertical="middle"),x(D(e),D(i))>x(D(s),D(n))?o.important="horizontal":o.important="vertical",p.using.call(this,t,o)}),h.offset(y.extend(l,{using:t}))})},y.ui.position={fit:{left:function(t,e){var i=e.within,s=i.isWindow?i.scrollLeft:i.offset.left,n=i.width,o=t.left-e.collisionPosition.marginLeft,h=s-o,a=o+e.collisionWidth-n-s;e.collisionWidth>n?0<h&&a<=0?(i=t.left+h+e.collisionWidth-n-s,t.left+=h-i):t.left=!(0<a&&h<=0)&&a<h?s+n-e.collisionWidth:s:0<h?t.left+=h:0<a?t.left-=a:t.left=x(t.left-o,t.left)},top:function(t,e){var i=e.within,s=i.isWindow?i.scrollTop:i.offset.top,n=e.within.height,o=t.top-e.collisionPosition.marginTop,h=s-o,a=o+e.collisionHeight-n-s;e.collisionHeight>n?0<h&&a<=0?(i=t.top+h+e.collisionHeight-n-s,t.top+=h-i):t.top=!(0<a&&h<=0)&&a<h?s+n-e.collisionHeight:s:0<h?t.top+=h:0<a?t.top-=a:t.top=x(t.top-o,t.top)}},flip:{left:function(t,e){var i=e.within,s=i.offset.left+i.scrollLeft,n=i.width,o=i.isWindow?i.scrollLeft:i.offset.left,h=t.left-e.collisionPosition.marginLeft,a=h-o,r=h+e.collisionWidth-n-o,l="left"===e.my[0]?-e.elemWidth:"right"===e.my[0]?e.elemWidth:0,i="left"===e.at[0]?e.targetWidth:"right"===e.at[0]?-e.targetWidth:0,h=-2*e.offset[0];a<0?((s=t.left+l+i+h+e.collisionWidth-n-s)<0||s<D(a))&&(t.left+=l+i+h):0<r&&(0<(o=t.left-e.collisionPosition.marginLeft+l+i+h-o)||D(o)<r)&&(t.left+=l+i+h)},top:function(t,e){var i=e.within,s=i.offset.top+i.scrollTop,n=i.height,o=i.isWindow?i.scrollTop:i.offset.top,h=t.top-e.collisionPosition.marginTop,a=h-o,r=h+e.collisionHeight-n-o,l="top"===e.my[1]?-e.elemHeight:"bottom"===e.my[1]?e.elemHeight:0,i="top"===e.at[1]?e.targetHeight:"bottom"===e.at[1]?-e.targetHeight:0,h=-2*e.offset[1];a<0?((s=t.top+l+i+h+e.collisionHeight-n-s)<0||s<D(a))&&(t.top+=l+i+h):0<r&&(0<(o=t.top-e.collisionPosition.marginTop+l+i+h-o)||D(o)<r)&&(t.top+=l+i+h)}},flipfit:{left:function(){y.ui.position.flip.left.apply(this,arguments),y.ui.position.fit.left.apply(this,arguments)},top:function(){y.ui.position.flip.top.apply(this,arguments),y.ui.position.fit.top.apply(this,arguments)}}};var t;y.ui.position,y.extend(y.expr.pseudos,{data:y.expr.createPseudo?y.expr.createPseudo(function(e){return function(t){return!!y.data(t,e)}}):function(t,e,i){return!!y.data(t,i[3])}}),y.fn.extend({disableSelection:(t="onselectstart"in document.createElement("div")?"selectstart":"mousedown",function(){return this.on(t+".ui-disableSelection",function(t){t.preventDefault()})}),enableSelection:function(){return this.off(".ui-disableSelection")}});y.ui.focusable=function(t,e){var i,s,n,o,h=t.nodeName.toLowerCase();return"area"===h?(s=(i=t.parentNode).name,!(!t.href||!s||"map"!==i.nodeName.toLowerCase())&&(0<(s=y("img[usemap='#"+s+"']")).length&&s.is(":visible"))):(/^(input|select|textarea|button|object)$/.test(h)?(n=!t.disabled)&&(o=y(t).closest("fieldset")[0])&&(n=!o.disabled):n="a"===h&&t.href||e,n&&y(t).is(":visible")&&function(t){var e=t.css("visibility");for(;"inherit"===e;)t=t.parent(),e=t.css("visibility");return"visible"===e}(y(t)))},y.extend(y.expr.pseudos,{focusable:function(t){return y.ui.focusable(t,null!=y.attr(t,"tabindex"))}});var e,d;y.ui.focusable,y.fn._form=function(){return"string"==typeof this[0].form?this.closest("form"):y(this[0].form)},y.ui.formResetMixin={_formResetHandler:function(){var e=y(this);setTimeout(function(){var t=e.data("ui-form-reset-instances");y.each(t,function(){this.refresh()})})},_bindFormResetHandler:function(){var t;this.form=this.element._form(),this.form.length&&((t=this.form.data("ui-form-reset-instances")||[]).length||this.form.on("reset.ui-form-reset",this._formResetHandler),t.push(this),this.form.data("ui-form-reset-instances",t))},_unbindFormResetHandler:function(){var t;this.form.length&&((t=this.form.data("ui-form-reset-instances")).splice(y.inArray(this,t),1),t.length?this.form.data("ui-form-reset-instances",t):this.form.removeData("ui-form-reset-instances").off("reset.ui-form-reset"))}};y.expr.pseudos||(y.expr.pseudos=y.expr[":"]),y.uniqueSort||(y.uniqueSort=y.unique),y.escapeSelector||(e=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g,d=function(t,e){return e?"\0"===t?"�":t.slice(0,-1)+"\\"+t.charCodeAt(t.length-1).toString(16)+" ":"\\"+t},y.escapeSelector=function(t){return(t+"").replace(e,d)}),y.fn.even&&y.fn.odd||y.fn.extend({even:function(){return this.filter(function(t){return t%2==0})},odd:function(){return this.filter(function(t){return t%2==1})}});y.ui.keyCode={BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38},y.fn.labels=function(){var t,e,i;return this.length?this[0].labels&&this[0].labels.length?this.pushStack(this[0].labels):(e=this.eq(0).parents("label"),(t=this.attr("id"))&&(i=(i=this.eq(0).parents().last()).add((i.length?i:this).siblings()),t="label[for='"+y.escapeSelector(t)+"']",e=e.add(i.find(t).addBack(t))),this.pushStack(e)):this.pushStack([])},y.fn.scrollParent=function(t){var e=this.css("position"),i="absolute"===e,s=t?/(auto|scroll|hidden)/:/(auto|scroll)/,t=this.parents().filter(function(){var t=y(this);return(!i||"static"!==t.css("position"))&&s.test(t.css("overflow")+t.css("overflow-y")+t.css("overflow-x"))}).eq(0);return"fixed"!==e&&t.length?t:y(this[0].ownerDocument||document)},y.extend(y.expr.pseudos,{tabbable:function(t){var e=y.attr(t,"tabindex"),i=null!=e;return(!i||0<=e)&&y.ui.focusable(t,i)}}),y.fn.extend({uniqueId:(c=0,function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++c)})}),removeUniqueId:function(){return this.each(function(){/^ui-id-\d+$/.test(this.id)&&y(this).removeAttr("id")})}}),y.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase());var c,f=!1;y(document).on("mouseup",function(){f=!1});y.widget("ui.mouse",{version:"1.13.2",options:{cancel:"input, textarea, button, select, option",distance:1,delay:0},_mouseInit:function(){var e=this;this.element.on("mousedown."+this.widgetName,function(t){return e._mouseDown(t)}).on("click."+this.widgetName,function(t){if(!0===y.data(t.target,e.widgetName+".preventClickEvent"))return y.removeData(t.target,e.widgetName+".preventClickEvent"),t.stopImmediatePropagation(),!1}),this.started=!1},_mouseDestroy:function(){this.element.off("."+this.widgetName),this._mouseMoveDelegate&&this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(t){if(!f){this._mouseMoved=!1,this._mouseStarted&&this._mouseUp(t),this._mouseDownEvent=t;var e=this,i=1===t.which,s=!("string"!=typeof this.options.cancel||!t.target.nodeName)&&y(t.target).closest(this.options.cancel).length;return i&&!s&&this._mouseCapture(t)?(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){e.mouseDelayMet=!0},this.options.delay)),this._mouseDistanceMet(t)&&this._mouseDelayMet(t)&&(this._mouseStarted=!1!==this._mouseStart(t),!this._mouseStarted)?(t.preventDefault(),!0):(!0===y.data(t.target,this.widgetName+".preventClickEvent")&&y.removeData(t.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(t){return e._mouseMove(t)},this._mouseUpDelegate=function(t){return e._mouseUp(t)},this.document.on("mousemove."+this.widgetName,this._mouseMoveDelegate).on("mouseup."+this.widgetName,this._mouseUpDelegate),t.preventDefault(),f=!0)):!0}},_mouseMove:function(t){if(this._mouseMoved){if(y.ui.ie&&(!document.documentMode||document.documentMode<9)&&!t.button)return this._mouseUp(t);if(!t.which)if(t.originalEvent.altKey||t.originalEvent.ctrlKey||t.originalEvent.metaKey||t.originalEvent.shiftKey)this.ignoreMissingWhich=!0;else if(!this.ignoreMissingWhich)return this._mouseUp(t)}return(t.which||t.button)&&(this._mouseMoved=!0),this._mouseStarted?(this._mouseDrag(t),t.preventDefault()):(this._mouseDistanceMet(t)&&this._mouseDelayMet(t)&&(this._mouseStarted=!1!==this._mouseStart(this._mouseDownEvent,t),this._mouseStarted?this._mouseDrag(t):this._mouseUp(t)),!this._mouseStarted)},_mouseUp:function(t){this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,t.target===this._mouseDownEvent.target&&y.data(t.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(t)),this._mouseDelayTimer&&(clearTimeout(this._mouseDelayTimer),delete this._mouseDelayTimer),this.ignoreMissingWhich=!1,f=!1,t.preventDefault()},_mouseDistanceMet:function(t){return Math.max(Math.abs(this._mouseDownEvent.pageX-t.pageX),Math.abs(this._mouseDownEvent.pageY-t.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),y.ui.plugin={add:function(t,e,i){var s,n=y.ui[t].prototype;for(s in i)n.plugins[s]=n.plugins[s]||[],n.plugins[s].push([e,i[s]])},call:function(t,e,i,s){var n,o=t.plugins[e];if(o&&(s||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(n=0;n<o.length;n++)t.options[o[n][0]]&&o[n][1].apply(t.element,i)}};y.widget("ui.resizable",y.ui.mouse,{version:"1.13.2",widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,classes:{"ui-resizable-se":"ui-icon ui-icon-gripsmall-diagonal-se"},containment:!1,ghost:!1,grid:!1,handles:"e,s,se",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:90,resize:null,start:null,stop:null},_num:function(t){return parseFloat(t)||0},_isNumber:function(t){return!isNaN(parseFloat(t))},_hasScroll:function(t,e){if("hidden"===y(t).css("overflow"))return!1;var i=e&&"left"===e?"scrollLeft":"scrollTop",e=!1;if(0<t[i])return!0;try{t[i]=1,e=0<t[i],t[i]=0}catch(t){}return e},_create:function(){var t,e=this.options,i=this;this._addClass("ui-resizable"),y.extend(this,{_aspectRatio:!!e.aspectRatio,aspectRatio:e.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:e.helper||e.ghost||e.animate?e.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/^(canvas|textarea|input|select|button|img)$/i)&&(this.element.wrap(y("<div class='ui-wrapper'></div>").css({overflow:"hidden",position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,t={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")},this.element.css(t),this.originalElement.css("margin",0),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css(t),this._proportionallyResize()),this._setupHandles(),e.autoHide&&y(this.element).on("mouseenter",function(){e.disabled||(i._removeClass("ui-resizable-autohide"),i._handles.show())}).on("mouseleave",function(){e.disabled||i.resizing||(i._addClass("ui-resizable-autohide"),i._handles.hide())}),this._mouseInit()},_destroy:function(){this._mouseDestroy(),this._addedHandles.remove();function t(t){y(t).removeData("resizable").removeData("ui-resizable").off(".resizable")}var e;return this.elementIsWrapper&&(t(this.element),e=this.element,this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")}).insertAfter(e),e.remove()),this.originalElement.css("resize",this.originalResizeStyle),t(this.originalElement),this},_setOption:function(t,e){switch(this._super(t,e),t){case"handles":this._removeHandles(),this._setupHandles();break;case"aspectRatio":this._aspectRatio=!!e}},_setupHandles:function(){var t,e,i,s,n,o=this.options,h=this;if(this.handles=o.handles||(y(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=y(),this._addedHandles=y(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),i=this.handles.split(","),this.handles={},e=0;e<i.length;e++)s="ui-resizable-"+(t=String.prototype.trim.call(i[e])),n=y("<div>"),this._addClass(n,"ui-resizable-handle "+s),n.css({zIndex:o.zIndex}),this.handles[t]=".ui-resizable-"+t,this.element.children(this.handles[t]).length||(this.element.append(n),this._addedHandles=this._addedHandles.add(n));this._renderAxis=function(t){var e,i,s;for(e in t=t||this.element,this.handles)this.handles[e].constructor===String?this.handles[e]=this.element.children(this.handles[e]).first().show():(this.handles[e].jquery||this.handles[e].nodeType)&&(this.handles[e]=y(this.handles[e]),this._on(this.handles[e],{mousedown:h._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(i=y(this.handles[e],this.element),s=/sw|ne|nw|se|n|s/.test(e)?i.outerHeight():i.outerWidth(),i=["padding",/ne|nw|n/.test(e)?"Top":/se|sw|s/.test(e)?"Bottom":/^e$/.test(e)?"Right":"Left"].join(""),t.css(i,s),this._proportionallyResize()),this._handles=this._handles.add(this.handles[e])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.on("mouseover",function(){h.resizing||(this.className&&(n=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),h.axis=n&&n[1]?n[1]:"se")}),o.autoHide&&(this._handles.hide(),this._addClass("ui-resizable-autohide"))},_removeHandles:function(){this._addedHandles.remove()},_mouseCapture:function(t){var e,i,s=!1;for(e in this.handles)(i=y(this.handles[e])[0])!==t.target&&!y.contains(i,t.target)||(s=!0);return!this.options.disabled&&s},_mouseStart:function(t){var e,i,s=this.options,n=this.element;return this.resizing=!0,this._renderProxy(),e=this._num(this.helper.css("left")),i=this._num(this.helper.css("top")),s.containment&&(e+=y(s.containment).scrollLeft()||0,i+=y(s.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:e,top:i},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:n.width(),height:n.height()},this.originalSize=this._helper?{width:n.outerWidth(),height:n.outerHeight()}:{width:n.width(),height:n.height()},this.sizeDiff={width:n.outerWidth()-n.width(),height:n.outerHeight()-n.height()},this.originalPosition={left:e,top:i},this.originalMousePosition={left:t.pageX,top:t.pageY},this.aspectRatio="number"==typeof s.aspectRatio?s.aspectRatio:this.originalSize.width/this.originalSize.height||1,s=y(".ui-resizable-"+this.axis).css("cursor"),y("body").css("cursor","auto"===s?this.axis+"-resize":s),this._addClass("ui-resizable-resizing"),this._propagate("start",t),!0},_mouseDrag:function(t){var e=this.originalMousePosition,i=this.axis,s=t.pageX-e.left||0,e=t.pageY-e.top||0,i=this._change[i];return this._updatePrevProperties(),i&&(e=i.apply(this,[t,s,e]),this._updateVirtualBoundaries(t.shiftKey),(this._aspectRatio||t.shiftKey)&&(e=this._updateRatio(e,t)),e=this._respectSize(e,t),this._updateCache(e),this._propagate("resize",t),e=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),y.isEmptyObject(e)||(this._updatePrevProperties(),this._trigger("resize",t,this.ui()),this._applyChanges())),!1},_mouseStop:function(t){this.resizing=!1;var e,i,s,n=this.options,o=this;return this._helper&&(s=(e=(i=this._proportionallyResizeElements).length&&/textarea/i.test(i[0].nodeName))&&this._hasScroll(i[0],"left")?0:o.sizeDiff.height,i=e?0:o.sizeDiff.width,e={width:o.helper.width()-i,height:o.helper.height()-s},i=parseFloat(o.element.css("left"))+(o.position.left-o.originalPosition.left)||null,s=parseFloat(o.element.css("top"))+(o.position.top-o.originalPosition.top)||null,n.animate||this.element.css(y.extend(e,{top:s,left:i})),o.helper.height(o.size.height),o.helper.width(o.size.width),this._helper&&!n.animate&&this._proportionallyResize()),y("body").css("cursor","auto"),this._removeClass("ui-resizable-resizing"),this._propagate("stop",t),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var t={};return this.position.top!==this.prevPosition.top&&(t.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(t.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(t.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(t.height=this.size.height+"px"),this.helper.css(t),t},_updateVirtualBoundaries:function(t){var e,i,s=this.options,n={minWidth:this._isNumber(s.minWidth)?s.minWidth:0,maxWidth:this._isNumber(s.maxWidth)?s.maxWidth:1/0,minHeight:this._isNumber(s.minHeight)?s.minHeight:0,maxHeight:this._isNumber(s.maxHeight)?s.maxHeight:1/0};(this._aspectRatio||t)&&(e=n.minHeight*this.aspectRatio,i=n.minWidth/this.aspectRatio,s=n.maxHeight*this.aspectRatio,t=n.maxWidth/this.aspectRatio,e>n.minWidth&&(n.minWidth=e),i>n.minHeight&&(n.minHeight=i),s<n.maxWidth&&(n.maxWidth=s),t<n.maxHeight&&(n.maxHeight=t)),this._vBoundaries=n},_updateCache:function(t){this.offset=this.helper.offset(),this._isNumber(t.left)&&(this.position.left=t.left),this._isNumber(t.top)&&(this.position.top=t.top),this._isNumber(t.height)&&(this.size.height=t.height),this._isNumber(t.width)&&(this.size.width=t.width)},_updateRatio:function(t){var e=this.position,i=this.size,s=this.axis;return this._isNumber(t.height)?t.width=t.height*this.aspectRatio:this._isNumber(t.width)&&(t.height=t.width/this.aspectRatio),"sw"===s&&(t.left=e.left+(i.width-t.width),t.top=null),"nw"===s&&(t.top=e.top+(i.height-t.height),t.left=e.left+(i.width-t.width)),t},_respectSize:function(t){var e=this._vBoundaries,i=this.axis,s=this._isNumber(t.width)&&e.maxWidth&&e.maxWidth<t.width,n=this._isNumber(t.height)&&e.maxHeight&&e.maxHeight<t.height,o=this._isNumber(t.width)&&e.minWidth&&e.minWidth>t.width,h=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,a=this.originalPosition.left+this.originalSize.width,r=this.originalPosition.top+this.originalSize.height,l=/sw|nw|w/.test(i),i=/nw|ne|n/.test(i);return o&&(t.width=e.minWidth),h&&(t.height=e.minHeight),s&&(t.width=e.maxWidth),n&&(t.height=e.maxHeight),o&&l&&(t.left=a-e.minWidth),s&&l&&(t.left=a-e.maxWidth),h&&i&&(t.top=r-e.minHeight),n&&i&&(t.top=r-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_getPaddingPlusBorderDimensions:function(t){for(var e=0,i=[],s=[t.css("borderTopWidth"),t.css("borderRightWidth"),t.css("borderBottomWidth"),t.css("borderLeftWidth")],n=[t.css("paddingTop"),t.css("paddingRight"),t.css("paddingBottom"),t.css("paddingLeft")];e<4;e++)i[e]=parseFloat(s[e])||0,i[e]+=parseFloat(n[e])||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var t,e=0,i=this.helper||this.element;e<this._proportionallyResizeElements.length;e++)t=this._proportionallyResizeElements[e],this.outerDimensions||(this.outerDimensions=this._getPaddingPlusBorderDimensions(t)),t.css({height:i.height()-this.outerDimensions.height||0,width:i.width()-this.outerDimensions.width||0})},_renderProxy:function(){var t=this.element,e=this.options;this.elementOffset=t.offset(),this._helper?(this.helper=this.helper||y("<div></div>").css({overflow:"hidden"}),this._addClass(this.helper,this._helper),this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++e.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var i=this.originalSize;return{left:this.originalPosition.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize;return{top:this.originalPosition.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(t,e,i){return y.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[t,e,i]))},sw:function(t,e,i){return y.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[t,e,i]))},ne:function(t,e,i){return y.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[t,e,i]))},nw:function(t,e,i){return y.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[t,e,i]))}},_propagate:function(t,e){y.ui.plugin.call(this,t,[e,this.ui()]),"resize"!==t&&this._trigger(t,e,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),y.ui.plugin.add("resizable","animate",{stop:function(e){var i=y(this).resizable("instance"),t=i.options,s=i._proportionallyResizeElements,n=s.length&&/textarea/i.test(s[0].nodeName),o=n&&i._hasScroll(s[0],"left")?0:i.sizeDiff.height,h=n?0:i.sizeDiff.width,n={width:i.size.width-h,height:i.size.height-o},h=parseFloat(i.element.css("left"))+(i.position.left-i.originalPosition.left)||null,o=parseFloat(i.element.css("top"))+(i.position.top-i.originalPosition.top)||null;i.element.animate(y.extend(n,o&&h?{top:o,left:h}:{}),{duration:t.animateDuration,easing:t.animateEasing,step:function(){var t={width:parseFloat(i.element.css("width")),height:parseFloat(i.element.css("height")),top:parseFloat(i.element.css("top")),left:parseFloat(i.element.css("left"))};s&&s.length&&y(s[0]).css({width:t.width,height:t.height}),i._updateCache(t),i._propagate("resize",e)}})}}),y.ui.plugin.add("resizable","containment",{start:function(){var i,s,n=y(this).resizable("instance"),t=n.options,e=n.element,o=t.containment,h=o instanceof y?o.get(0):/parent/.test(o)?e.parent().get(0):o;h&&(n.containerElement=y(h),/document/.test(o)||o===document?(n.containerOffset={left:0,top:0},n.containerPosition={left:0,top:0},n.parentData={element:y(document),left:0,top:0,width:y(document).width(),height:y(document).height()||document.body.parentNode.scrollHeight}):(i=y(h),s=[],y(["Top","Right","Left","Bottom"]).each(function(t,e){s[t]=n._num(i.css("padding"+e))}),n.containerOffset=i.offset(),n.containerPosition=i.position(),n.containerSize={height:i.innerHeight()-s[3],width:i.innerWidth()-s[1]},t=n.containerOffset,e=n.containerSize.height,o=n.containerSize.width,o=n._hasScroll(h,"left")?h.scrollWidth:o,e=n._hasScroll(h)?h.scrollHeight:e,n.parentData={element:h,left:t.left,top:t.top,width:o,height:e}))},resize:function(t){var e=y(this).resizable("instance"),i=e.options,s=e.containerOffset,n=e.position,o=e._aspectRatio||t.shiftKey,h={top:0,left:0},a=e.containerElement,t=!0;a[0]!==document&&/static/.test(a.css("position"))&&(h=s),n.left<(e._helper?s.left:0)&&(e.size.width=e.size.width+(e._helper?e.position.left-s.left:e.position.left-h.left),o&&(e.size.height=e.size.width/e.aspectRatio,t=!1),e.position.left=i.helper?s.left:0),n.top<(e._helper?s.top:0)&&(e.size.height=e.size.height+(e._helper?e.position.top-s.top:e.position.top),o&&(e.size.width=e.size.height*e.aspectRatio,t=!1),e.position.top=e._helper?s.top:0),i=e.containerElement.get(0)===e.element.parent().get(0),n=/relative|absolute/.test(e.containerElement.css("position")),i&&n?(e.offset.left=e.parentData.left+e.position.left,e.offset.top=e.parentData.top+e.position.top):(e.offset.left=e.element.offset().left,e.offset.top=e.element.offset().top),n=Math.abs(e.sizeDiff.width+(e._helper?e.offset.left-h.left:e.offset.left-s.left)),s=Math.abs(e.sizeDiff.height+(e._helper?e.offset.top-h.top:e.offset.top-s.top)),n+e.size.width>=e.parentData.width&&(e.size.width=e.parentData.width-n,o&&(e.size.height=e.size.width/e.aspectRatio,t=!1)),s+e.size.height>=e.parentData.height&&(e.size.height=e.parentData.height-s,o&&(e.size.width=e.size.height*e.aspectRatio,t=!1)),t||(e.position.left=e.prevPosition.left,e.position.top=e.prevPosition.top,e.size.width=e.prevSize.width,e.size.height=e.prevSize.height)},stop:function(){var t=y(this).resizable("instance"),e=t.options,i=t.containerOffset,s=t.containerPosition,n=t.containerElement,o=y(t.helper),h=o.offset(),a=o.outerWidth()-t.sizeDiff.width,o=o.outerHeight()-t.sizeDiff.height;t._helper&&!e.animate&&/relative/.test(n.css("position"))&&y(this).css({left:h.left-s.left-i.left,width:a,height:o}),t._helper&&!e.animate&&/static/.test(n.css("position"))&&y(this).css({left:h.left-s.left-i.left,width:a,height:o})}}),y.ui.plugin.add("resizable","alsoResize",{start:function(){var t=y(this).resizable("instance").options;y(t.alsoResize).each(function(){var t=y(this);t.data("ui-resizable-alsoresize",{width:parseFloat(t.width()),height:parseFloat(t.height()),left:parseFloat(t.css("left")),top:parseFloat(t.css("top"))})})},resize:function(t,i){var e=y(this).resizable("instance"),s=e.options,n=e.originalSize,o=e.originalPosition,h={height:e.size.height-n.height||0,width:e.size.width-n.width||0,top:e.position.top-o.top||0,left:e.position.left-o.left||0};y(s.alsoResize).each(function(){var t=y(this),s=y(this).data("ui-resizable-alsoresize"),n={},e=t.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];y.each(e,function(t,e){var i=(s[e]||0)+(h[e]||0);i&&0<=i&&(n[e]=i||null)}),t.css(n)})},stop:function(){y(this).removeData("ui-resizable-alsoresize")}}),y.ui.plugin.add("resizable","ghost",{start:function(){var t=y(this).resizable("instance"),e=t.size;t.ghost=t.originalElement.clone(),t.ghost.css({opacity:.25,display:"block",position:"relative",height:e.height,width:e.width,margin:0,left:0,top:0}),t._addClass(t.ghost,"ui-resizable-ghost"),!1!==y.uiBackCompat&&"string"==typeof t.options.ghost&&t.ghost.addClass(this.options.ghost),t.ghost.appendTo(t.helper)},resize:function(){var t=y(this).resizable("instance");t.ghost&&t.ghost.css({position:"relative",height:t.size.height,width:t.size.width})},stop:function(){var t=y(this).resizable("instance");t.ghost&&t.helper&&t.helper.get(0).removeChild(t.ghost.get(0))}}),y.ui.plugin.add("resizable","grid",{resize:function(){var t,e=y(this).resizable("instance"),i=e.options,s=e.size,n=e.originalSize,o=e.originalPosition,h=e.axis,a="number"==typeof i.grid?[i.grid,i.grid]:i.grid,r=a[0]||1,l=a[1]||1,u=Math.round((s.width-n.width)/r)*r,p=Math.round((s.height-n.height)/l)*l,d=n.width+u,c=n.height+p,f=i.maxWidth&&i.maxWidth<d,g=i.maxHeight&&i.maxHeight<c,m=i.minWidth&&i.minWidth>d,s=i.minHeight&&i.minHeight>c;i.grid=a,m&&(d+=r),s&&(c+=l),f&&(d-=r),g&&(c-=l),/^(se|s|e)$/.test(h)?(e.size.width=d,e.size.height=c):/^(ne)$/.test(h)?(e.size.width=d,e.size.height=c,e.position.top=o.top-p):/^(sw)$/.test(h)?(e.size.width=d,e.size.height=c,e.position.left=o.left-u):((c-l<=0||d-r<=0)&&(t=e._getPaddingPlusBorderDimensions(this)),0<c-l?(e.size.height=c,e.position.top=o.top-p):(c=l-t.height,e.size.height=c,e.position.top=o.top+n.height-c),0<d-r?(e.size.width=d,e.position.left=o.left-u):(d=r-t.width,e.size.width=d,e.position.left=o.left+n.width-d))}});y.ui.resizable});/**
  * Copyright (c) 2007 Ariel Flesler - aflesler ○ gmail • com | https://github.com/flesler
  * Licensed under MIT
  * @author Ariel Flesler
diff --git a/doc/html/mainpage_8h.html b/doc/html/mainpage_8h.html
index 3998b5c..96d1e74 100644
--- a/doc/html/mainpage_8h.html
+++ b/doc/html/mainpage_8h.html
@@ -1,9 +1,9 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.8"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>LibDriver W25QXX: doc/mainpage/mainpage.h File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -23,11 +23,10 @@
 <div id="titlearea">
 <table cellspacing="0" cellpadding="0">
  <tbody>
- <tr style="height: 56px;">
+ <tr id="projectrow">
   <td id="projectlogo"><img alt="Logo" src="doxygen.png"/></td>
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">LibDriver W25QXX
-   &#160;<span id="projectnumber">1.0.0</span>
+  <td id="projectalign">
+   <div id="projectname">LibDriver W25QXX<span id="projectnumber">&#160;1.0.0</span>
    </div>
    <div id="projectbrief">W25QXX full function driver</div>
   </td>
@@ -36,21 +35,22 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.8 -->
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search/",'.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
 <script type="text/javascript" src="menu.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(function() {
   initMenu('',true,false,'search.php','Search');
   $(document).ready(function() { init_search(); });
 });
-/* @license-end */</script>
+/* @license-end */
+</script>
 <div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
@@ -64,7 +64,7 @@
   </div>
 </div>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(document).ready(function(){initNavTree('mainpage_8h.html',''); initResizable(); });
 /* @license-end */
 </script>
@@ -78,14 +78,20 @@
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
 </div>
 
 <div class="header">
-  <div class="headertitle">
-<div class="title">mainpage.h File Reference</div>  </div>
+  <div class="headertitle"><div class="title">mainpage.h File Reference</div></div>
 </div><!--header-->
 <div class="contents">
 
@@ -96,7 +102,7 @@
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
     <li class="navelem"><a class="el" href="dir_e68e8157741866f444e17edd764ebbae.html">doc</a></li><li class="navelem"><a class="el" href="dir_11ec664f88f5f079ad4de1adb8458c37.html">mainpage</a></li><li class="navelem"><a class="el" href="mainpage_8h.html">mainpage.h</a></li>
-    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
+    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/mainpage_8h_source.html b/doc/html/mainpage_8h_source.html
index 0dd254b..ac24538 100644
--- a/doc/html/mainpage_8h_source.html
+++ b/doc/html/mainpage_8h_source.html
@@ -1,9 +1,9 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.8"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>LibDriver W25QXX: doc/mainpage/mainpage.h Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -23,11 +23,10 @@
 <div id="titlearea">
 <table cellspacing="0" cellpadding="0">
  <tbody>
- <tr style="height: 56px;">
+ <tr id="projectrow">
   <td id="projectlogo"><img alt="Logo" src="doxygen.png"/></td>
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">LibDriver W25QXX
-   &#160;<span id="projectnumber">1.0.0</span>
+  <td id="projectalign">
+   <div id="projectname">LibDriver W25QXX<span id="projectnumber">&#160;1.0.0</span>
    </div>
    <div id="projectbrief">W25QXX full function driver</div>
   </td>
@@ -36,22 +35,28 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.8 -->
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search/",'.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
 <script type="text/javascript" src="menu.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(function() {
   initMenu('',true,false,'search.php','Search');
   $(document).ready(function() { init_search(); });
 });
-/* @license-end */</script>
+/* @license-end */
+</script>
 <div id="main-nav"></div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(document).ready(function() { init_codefold(0); });
+/* @license-end */
+</script>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -64,7 +69,7 @@
   </div>
 </div>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(document).ready(function(){initNavTree('mainpage_8h_source.html',''); initResizable(); });
 /* @license-end */
 </script>
@@ -78,24 +83,30 @@
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
 </div>
 
 <div class="header">
-  <div class="headertitle">
-<div class="title">mainpage.h</div>  </div>
+  <div class="headertitle"><div class="title">mainpage.h</div></div>
 </div><!--header-->
 <div class="contents">
-<a href="mainpage_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160; </div>
+<a href="mainpage_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno">    1</span> </div>
 </div><!-- fragment --></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
     <li class="navelem"><a class="el" href="dir_e68e8157741866f444e17edd764ebbae.html">doc</a></li><li class="navelem"><a class="el" href="dir_11ec664f88f5f079ad4de1adb8458c37.html">mainpage</a></li><li class="navelem"><a class="el" href="mainpage_8h.html">mainpage.h</a></li>
-    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
+    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/menu.js b/doc/html/menu.js
index 2fe2214..b0b2693 100644
--- a/doc/html/menu.js
+++ b/doc/html/menu.js
@@ -28,7 +28,15 @@ function initMenu(relPath,searchEnabled,serverSide,searchPage,search) {
     if ('children' in data) {
       result+='<ul>';
       for (var i in data.children) {
-        result+='<li><a href="'+relPath+data.children[i].url+'">'+
+        var url;
+        var link;
+        link = data.children[i].url;
+        if (link.substring(0,1)=='^') {
+          url = link.substring(1);
+        } else {
+          url = relPath+link;
+        }
+        result+='<li><a href="'+url+'">'+
                                 data.children[i].text+'</a>'+
                                 makeTree(data.children[i],relPath)+'</li>';
       }
@@ -36,15 +44,92 @@ function initMenu(relPath,searchEnabled,serverSide,searchPage,search) {
     }
     return result;
   }
-
-  $('#main-nav').append(makeTree(menudata,relPath));
-  $('#main-nav').children(':first').addClass('sm sm-dox').attr('id','main-menu');
+  var searchBoxHtml;
   if (searchEnabled) {
     if (serverSide) {
-      $('#main-menu').append('<li style="float:right"><div id="MSearchBox" class="MSearchBoxInactive"><div class="left"><form id="FSearchBox" action="'+relPath+searchPage+'" method="get"><img id="MSearchSelect" src="'+relPath+'search/mag.svg" alt=""/><input type="text" id="MSearchField" name="query" value="'+search+'" size="20" accesskey="S" onfocus="searchBox.OnSearchFieldFocus(true)" onblur="searchBox.OnSearchFieldFocus(false)"></form></div><div class="right"></div></div></li>');
+      searchBoxHtml='<div id="MSearchBox" class="MSearchBoxInactive">'+
+                 '<div class="left">'+
+                  '<form id="FSearchBox" action="'+relPath+searchPage+
+                    '" method="get"><span id="MSearchSelectExt">&#160;</span>'+
+                  '<input type="text" id="MSearchField" name="query" value="" placeholder="'+search+
+                    '" size="20" accesskey="S" onfocus="searchBox.OnSearchFieldFocus(true)"'+
+                    ' onblur="searchBox.OnSearchFieldFocus(false)"/>'+
+                  '</form>'+
+                 '</div>'+
+                 '<div class="right"></div>'+
+                '</div>';
     } else {
-      $('#main-menu').append('<li style="float:right"><div id="MSearchBox" class="MSearchBoxInactive"><span class="left"><img id="MSearchSelect" src="'+relPath+'search/mag_sel.svg" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()" alt=""/><input type="text" id="MSearchField" value="'+search+'" accesskey="S" onfocus="searchBox.OnSearchFieldFocus(true)" onblur="searchBox.OnSearchFieldFocus(false)" onkeyup="searchBox.OnSearchFieldChange(event)"/></span><span class="right"><a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="'+relPath+'search/close.svg" alt=""/></a></span></div></li>');
+      searchBoxHtml='<div id="MSearchBox" class="MSearchBoxInactive">'+
+                 '<span class="left">'+
+                  '<span id="MSearchSelect" onmouseover="return searchBox.OnSearchSelectShow()"'+
+                     ' onmouseout="return searchBox.OnSearchSelectHide()">&#160;</span>'+
+                  '<input type="text" id="MSearchField" value="" placeholder="'+search+
+                    '" accesskey="S" onfocus="searchBox.OnSearchFieldFocus(true)" '+
+                    'onblur="searchBox.OnSearchFieldFocus(false)" '+
+                    'onkeyup="searchBox.OnSearchFieldChange(event)"/>'+
+                 '</span>'+
+                 '<span class="right"><a id="MSearchClose" '+
+                  'href="javascript:searchBox.CloseResultsWindow()">'+
+                  '<img id="MSearchCloseImg" border="0" src="'+relPath+
+                  'search/close.svg" alt=""/></a>'+
+                 '</span>'+
+                '</div>';
+    }
+  }
+
+  $('#main-nav').before('<div class="sm sm-dox"><input id="main-menu-state" type="checkbox"/>'+
+                        '<label class="main-menu-btn" for="main-menu-state">'+
+                        '<span class="main-menu-btn-icon"></span> '+
+                        'Toggle main menu visibility</label>'+
+                        '<span id="searchBoxPos1" style="position:absolute;right:8px;top:8px;height:36px;"></span>'+
+                        '</div>');
+  $('#main-nav').append(makeTree(menudata,relPath));
+  $('#main-nav').children(':first').addClass('sm sm-dox').attr('id','main-menu');
+  if (searchBoxHtml) {
+    $('#main-menu').append('<li id="searchBoxPos2" style="float:right"></li>');
+  }
+  var $mainMenuState = $('#main-menu-state');
+  var prevWidth = 0;
+  if ($mainMenuState.length) {
+    function initResizableIfExists() {
+      if (typeof initResizable==='function') initResizable();
+    }
+    // animate mobile menu
+    $mainMenuState.change(function(e) {
+      var $menu = $('#main-menu');
+      var options = { duration: 250, step: initResizableIfExists };
+      if (this.checked) {
+        options['complete'] = function() { $menu.css('display', 'block') };
+        $menu.hide().slideDown(options);
+      } else {
+        options['complete'] = function() { $menu.css('display', 'none') };
+        $menu.show().slideUp(options);
+      }
+    });
+    // set default menu visibility
+    function resetState() {
+      var $menu = $('#main-menu');
+      var $mainMenuState = $('#main-menu-state');
+      var newWidth = $(window).outerWidth();
+      if (newWidth!=prevWidth) {
+        if ($(window).outerWidth()<768) {
+          $mainMenuState.prop('checked',false); $menu.hide();
+          $('#searchBoxPos1').html(searchBoxHtml);
+          $('#searchBoxPos2').hide();
+        } else {
+          $menu.show();
+          $('#searchBoxPos1').empty();
+          $('#searchBoxPos2').html(searchBoxHtml);
+          $('#searchBoxPos2').show();
+        }
+        if (typeof searchBox!=='undefined') {
+          searchBox.CloseResultsWindow();
+        }
+        prevWidth = newWidth;
+      }
     }
+    $(window).ready(function() { resetState(); initResizableIfExists(); });
+    $(window).resize(resetState);
   }
   $('#main-menu').smartmenus();
 }
diff --git a/doc/html/menudata.js b/doc/html/menudata.js
index c8580c4..e651d59 100644
--- a/doc/html/menudata.js
+++ b/doc/html/menudata.js
@@ -24,7 +24,7 @@
 */
 var menudata={children:[
 {text:"Main Page",url:"index.html"},
-{text:"Modules",url:"modules.html"},
+{text:"Topics",url:"topics.html"},
 {text:"Data Structures",url:"annotated.html",children:[
 {text:"Data Structures",url:"annotated.html"},
 {text:"Data Structure Index",url:"classes.html"},
diff --git a/doc/html/minus.svg b/doc/html/minus.svg
new file mode 100644
index 0000000..f70d0c1
--- /dev/null
+++ b/doc/html/minus.svg
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg width="12px" height="12px" viewBox="0 0 105.83333 105.83333" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg">
+  <g>
+    <rect style="fill:#808080;stroke-width:0" width="105.83333" height="105.83334" x="4.2409692e-08" y="-1.2701158e-06" ry="0" />
+    <rect style="fill:#fcfcfc;stroke-width:0" width="79.375" height="79.375" x="13.229166" y="13.229166" />
+    <rect style="fill:#808080;stroke-width:0" width="52.916668" height="15.874998" x="26.458332" y="44.979168" />
+  </g>
+</svg>
diff --git a/doc/html/minusd.svg b/doc/html/minusd.svg
new file mode 100644
index 0000000..5f8e879
--- /dev/null
+++ b/doc/html/minusd.svg
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg width="12px" height="12px" viewBox="0 0 105.83333 105.83333" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg">
+  <g>
+    <rect style="fill:#808080;stroke-width:0" width="105.83333" height="105.83334" x="4.2409692e-08" y="-1.2701158e-06" ry="0" />
+    <rect style="fill:#000000;stroke-width:0" width="79.375" height="79.375" x="13.229166" y="13.229166" />
+    <rect style="fill:#808080;stroke-width:0" width="52.916668" height="15.874998" x="26.458332" y="44.979168" />
+  </g>
+</svg>
diff --git a/doc/html/nav_fd.png b/doc/html/nav_fd.png
new file mode 100644
index 0000000..032fbdd
Binary files /dev/null and b/doc/html/nav_fd.png differ
diff --git a/doc/html/nav_hd.png b/doc/html/nav_hd.png
new file mode 100644
index 0000000..de80f18
Binary files /dev/null and b/doc/html/nav_hd.png differ
diff --git a/doc/html/navtree.css b/doc/html/navtree.css
index 33341a6..69211d4 100644
--- a/doc/html/navtree.css
+++ b/doc/html/navtree.css
@@ -22,8 +22,13 @@
 #nav-tree .selected {
   background-image: url('tab_a.png');
   background-repeat:repeat-x;
-  color: #fff;
-  text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);
+  color: var(--nav-text-active-color);
+  text-shadow: var(--nav-text-active-shadow);
+}
+
+#nav-tree .selected .arrow {
+  color: var(--nav-arrow-selected-color);
+  text-shadow: none;
 }
 
 #nav-tree img {
@@ -37,13 +42,12 @@
   text-decoration:none;
   padding:0px;
   margin:0px;
-  outline:none;
 }
 
 #nav-tree .label {
   margin:0px;
   padding:0px;
-  font: 12px 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif;
+  font: 12px var(--font-family-nav);
 }
 
 #nav-tree .label a {
@@ -52,7 +56,7 @@
 
 #nav-tree .selected a {
   text-decoration:none;
-  color:#fff;
+  color:var(--nav-text-active-color);
 }
 
 #nav-tree .children_ul {
@@ -67,7 +71,6 @@
 
 #nav-tree {
   padding: 0px 0px;
-  background-color: #FAFAFF; 
   font-size:14px;
   overflow:auto;
 }
@@ -86,7 +89,8 @@
   display:block;
   position: absolute;
   left: 0px;
-  width: 250px;
+  width: $width;
+  overflow : hidden;
 }
 
 .ui-resizable .ui-resizable-handle {
@@ -94,7 +98,7 @@
 }
 
 .ui-resizable-e {
-  background-image:url("splitbar.png");
+  background-image:var(--nav-splitbar-image);
   background-size:100%;
   background-repeat:repeat-y;
   background-attachment: scroll;
@@ -117,9 +121,8 @@
 }
 
 #nav-tree {
-  background-image:url('nav_h.png');
   background-repeat:repeat-x;
-  background-color: #F9FAFC;
+  background-color: var(--nav-background-color);
   -webkit-overflow-scrolling : touch; /* iOS 5+ */
 }
 
diff --git a/doc/html/navtree.js b/doc/html/navtree.js
index 1e272d3..93dd3d4 100644
--- a/doc/html/navtree.js
+++ b/doc/html/navtree.js
@@ -94,7 +94,7 @@ function cachedLink()
   }
 }
 
-function getScript(scriptName,func,show)
+function getScript(scriptName,func)
 {
   var head = document.getElementsByTagName("head")[0];
   var script = document.createElement('script');
@@ -124,7 +124,7 @@ function createIndent(o,domNode,node,level)
         node.plus_img.innerHTML=arrowRight;
         node.expanded = false;
       } else {
-        expandNode(o, node, false, false);
+        expandNode(o, node, false, true);
       }
     }
     node.expandToggle.appendChild(imgNode);
@@ -265,15 +265,15 @@ function showRoot()
   })();
 }
 
-function expandNode(o, node, imm, showRoot)
+function expandNode(o, node, imm, setFocus)
 {
   if (node.childrenData && !node.expanded) {
     if (typeof(node.childrenData)==='string') {
       var varName    = node.childrenData;
       getScript(node.relpath+varName,function(){
         node.childrenData = getData(varName);
-        expandNode(o, node, imm, showRoot);
-      }, showRoot);
+        expandNode(o, node, imm, setFocus);
+      });
     } else {
       if (!node.childrenVisited) {
         getNode(o, node);
@@ -281,6 +281,9 @@ function expandNode(o, node, imm, showRoot)
       $(node.getChildrenUL()).slideDown("fast");
       node.plus_img.innerHTML = arrowDown;
       node.expanded = true;
+      if (setFocus) {
+        $(node.expandToggle).focus();
+      }
     }
   }
 }
@@ -325,11 +328,14 @@ function selectAndHighlight(hash,n)
     $(n.itemDiv).addClass('selected');
     $(n.itemDiv).attr('id','selected');
   }
+  var topOffset=5;
+  if (typeof page_layout!=='undefined' && page_layout==1) {
+    topOffset+=$('#top').outerHeight();
+  }
   if ($('#nav-tree-contents .item:first').hasClass('selected')) {
-    $('#nav-sync').css('top','30px');
-  } else {
-    $('#nav-sync').css('top','5px');
+    topOffset+=25;
   }
+  $('#nav-sync').css('top',topOffset+'px');
   showRoot();
 }
 
@@ -341,7 +347,7 @@ function showNode(o, node, index, hash)
       getScript(node.relpath+varName,function(){
         node.childrenData = getData(varName);
         showNode(o,node,index,hash);
-      },true);
+      });
     } else {
       if (!node.childrenVisited) {
         getNode(o, node);
@@ -359,11 +365,11 @@ function showNode(o, node, index, hash)
             n.childrenData = getData(varName);
             node.expanded=false;
             showNode(o,node,index,hash); // retry with child node expanded
-          },true);
+          });
         } else {
           var rootBase = stripPath(o.toroot.replace(/\..+$/, ''));
           if (rootBase=="index" || rootBase=="pages" || rootBase=="search") {
-            expandNode(o, n, true, true);
+            expandNode(o, n, true, false);
           }
           selectAndHighlight(hash,n);
         }
@@ -441,7 +447,7 @@ function navTo(o,root,hash,relpath)
       if (navTreeSubIndices[i]) {
         gotoNode(o,i,root,hash,relpath);
       }
-    },true);
+    });
   }
 }
 
@@ -542,5 +548,12 @@ function initNavTree(toroot,relpath)
        navTo(o,toroot,hashUrl(),relpath);
      }
   })
+
+  $("div.toc a[href]").click(function(e) {
+    e.preventDefault();
+    var docContent = $('#doc-content');
+    var aname = $(this).attr("href");
+    gotoAnchor($(aname),aname,true);
+  })
 }
 /* @license-end */
diff --git a/doc/html/navtreedata.js b/doc/html/navtreedata.js
index 3df5fc2..3a25dfe 100644
--- a/doc/html/navtreedata.js
+++ b/doc/html/navtreedata.js
@@ -25,7 +25,7 @@
 var NAVTREE =
 [
   [ "LibDriver W25QXX", "index.html", [
-    [ "Modules", "modules.html", "modules" ],
+    [ "Topics", "topics.html", "topics" ],
     [ "Data Structures", "annotated.html", [
       [ "Data Structures", "annotated.html", "annotated_dup" ],
       [ "Data Structure Index", "classes.html", null ],
@@ -51,8 +51,7 @@ var NAVTREE =
 var NAVTREEINDEX =
 [
 "annotated.html",
-"group__w25qxx__advance__driver.html#gga6ff284154302248f00db269146545443a6423b5606e72af6479fe31a6a9883aeb",
-"group__w25qxx__example__driver.html#ga9325acc424c95624f15e11631082201d"
+"group__w25qxx__example__driver.html#ga5e4938b4575c417ae22fa82079459b1a"
 ];
 
 var SYNCONMSG = 'click to disable panel synchronisation';
diff --git a/doc/html/navtreeindex0.js b/doc/html/navtreeindex0.js
index 9d52941..de026fc 100644
--- a/doc/html/navtreeindex0.js
+++ b/doc/html/navtreeindex0.js
@@ -103,151 +103,151 @@ var NAVTREEINDEX0 =
 "globals_w.html":[2,1,0,5],
 "group__w25qxx__advance__driver.html":[0,0,2],
 "group__w25qxx__advance__driver.html#ga05c69ac66309544eba4ff38a69f24c00":[0,0,2,12],
-"group__w25qxx__advance__driver.html#ga05c69ac66309544eba4ff38a69f24c00":[2,0,3,1,29],
-"group__w25qxx__advance__driver.html#ga05c69ac66309544eba4ff38a69f24c00":[2,0,3,0,62],
-"group__w25qxx__advance__driver.html#ga0d28076f6fc7d3ae9dd7f8410069a277":[2,0,3,1,17],
 "group__w25qxx__advance__driver.html#ga0d28076f6fc7d3ae9dd7f8410069a277":[0,0,2,5],
 "group__w25qxx__advance__driver.html#ga0f8889d6a25c32e150a2ab30753d461d":[0,0,2,9],
-"group__w25qxx__advance__driver.html#ga0f8889d6a25c32e150a2ab30753d461d":[2,0,3,1,26],
-"group__w25qxx__advance__driver.html#ga0f8889d6a25c32e150a2ab30753d461d":[2,0,3,0,59],
-"group__w25qxx__advance__driver.html#ga11af244389478de68a6777076ee82d69":[2,0,3,1,50],
 "group__w25qxx__advance__driver.html#ga11af244389478de68a6777076ee82d69":[0,0,2,27],
-"group__w25qxx__advance__driver.html#ga11af244389478de68a6777076ee82d69":[2,0,3,0,83],
 "group__w25qxx__advance__driver.html#ga1cd3aec1bdeabbaed5f049fbf83ceeb4":[0,0,2,21],
-"group__w25qxx__advance__driver.html#ga1cd3aec1bdeabbaed5f049fbf83ceeb4":[2,0,3,1,43],
-"group__w25qxx__advance__driver.html#ga1cd3aec1bdeabbaed5f049fbf83ceeb4":[2,0,3,0,76],
-"group__w25qxx__advance__driver.html#ga1f80bbbaaa852eecfffb87737889363d":[2,0,3,1,60],
 "group__w25qxx__advance__driver.html#ga1f80bbbaaa852eecfffb87737889363d":[0,0,2,33],
-"group__w25qxx__advance__driver.html#ga1f80bbbaaa852eecfffb87737889363d":[2,0,3,0,93],
-"group__w25qxx__advance__driver.html#ga244a91b9c0c32e899ca89e1943045624":[2,0,3,1,45],
 "group__w25qxx__advance__driver.html#ga244a91b9c0c32e899ca89e1943045624":[0,0,2,23],
-"group__w25qxx__advance__driver.html#ga244a91b9c0c32e899ca89e1943045624":[2,0,3,0,78],
-"group__w25qxx__advance__driver.html#ga246e0bb07c8bbb39731f17906779c012":[2,0,3,1,74],
 "group__w25qxx__advance__driver.html#ga246e0bb07c8bbb39731f17906779c012":[0,0,2,40],
-"group__w25qxx__advance__driver.html#ga246e0bb07c8bbb39731f17906779c012":[2,0,3,0,107],
-"group__w25qxx__advance__driver.html#ga2abebfe2a8d9377eb88448ffca73f222":[2,0,3,1,67],
 "group__w25qxx__advance__driver.html#ga2abebfe2a8d9377eb88448ffca73f222":[0,0,2,37],
-"group__w25qxx__advance__driver.html#ga2abebfe2a8d9377eb88448ffca73f222":[2,0,3,0,100],
-"group__w25qxx__advance__driver.html#ga2fd3023819e1aebe089a4a72eb136da3":[2,0,3,1,14],
 "group__w25qxx__advance__driver.html#ga2fd3023819e1aebe089a4a72eb136da3":[0,0,2,2],
-"group__w25qxx__advance__driver.html#ga4c65debc4947bd9a61e0073105164b9c":[2,0,3,1,65],
 "group__w25qxx__advance__driver.html#ga4c65debc4947bd9a61e0073105164b9c":[0,0,2,36],
-"group__w25qxx__advance__driver.html#ga4c65debc4947bd9a61e0073105164b9c":[2,0,3,0,98],
-"group__w25qxx__advance__driver.html#ga4e9c059ff78866e478e835cb27a92899":[2,0,3,1,62],
 "group__w25qxx__advance__driver.html#ga4e9c059ff78866e478e835cb27a92899":[0,0,2,34],
-"group__w25qxx__advance__driver.html#ga4e9c059ff78866e478e835cb27a92899":[2,0,3,0,95],
-"group__w25qxx__advance__driver.html#ga4f00c2c169cb7c3084841c6cd795e76b":[2,0,3,1,53],
 "group__w25qxx__advance__driver.html#ga4f00c2c169cb7c3084841c6cd795e76b":[0,0,2,30],
-"group__w25qxx__advance__driver.html#ga4f00c2c169cb7c3084841c6cd795e76b":[2,0,3,0,86],
 "group__w25qxx__advance__driver.html#ga59e655ca78a175037ca810bbc8539a96":[0,0,2,35],
-"group__w25qxx__advance__driver.html#ga59e655ca78a175037ca810bbc8539a96":[2,0,3,1,64],
-"group__w25qxx__advance__driver.html#ga59e655ca78a175037ca810bbc8539a96":[2,0,3,0,97],
 "group__w25qxx__advance__driver.html#ga61bd3ce40b76b6862c6a53e0e37a3455":[0,0,2,22],
-"group__w25qxx__advance__driver.html#ga61bd3ce40b76b6862c6a53e0e37a3455":[2,0,3,1,44],
-"group__w25qxx__advance__driver.html#ga61bd3ce40b76b6862c6a53e0e37a3455":[2,0,3,0,77],
-"group__w25qxx__advance__driver.html#ga6b9f75f7426a54ffdb1f5a057f8188f4":[2,0,3,1,32],
 "group__w25qxx__advance__driver.html#ga6b9f75f7426a54ffdb1f5a057f8188f4":[0,0,2,15],
-"group__w25qxx__advance__driver.html#ga6b9f75f7426a54ffdb1f5a057f8188f4":[2,0,3,0,65],
-"group__w25qxx__advance__driver.html#ga6d62f7d14945cfde7cde7a0e9a4e3afb":[2,0,3,1,52],
 "group__w25qxx__advance__driver.html#ga6d62f7d14945cfde7cde7a0e9a4e3afb":[0,0,2,29],
-"group__w25qxx__advance__driver.html#ga6d62f7d14945cfde7cde7a0e9a4e3afb":[2,0,3,0,85],
 "group__w25qxx__advance__driver.html#ga6ff284154302248f00db269146545443":[0,0,2,1],
-"group__w25qxx__advance__driver.html#ga6ff284154302248f00db269146545443":[2,0,3,1,13],
 "group__w25qxx__advance__driver.html#ga7a19230ca3916816ea8fb7421483d293":[0,0,2,17],
-"group__w25qxx__advance__driver.html#ga7a19230ca3916816ea8fb7421483d293":[2,0,3,1,35],
-"group__w25qxx__advance__driver.html#ga7a19230ca3916816ea8fb7421483d293":[2,0,3,0,68],
-"group__w25qxx__advance__driver.html#ga7f88cedf7619071b3235ba094915b2a7":[2,0,3,1,54],
 "group__w25qxx__advance__driver.html#ga7f88cedf7619071b3235ba094915b2a7":[0,0,2,31],
-"group__w25qxx__advance__driver.html#ga7f88cedf7619071b3235ba094915b2a7":[2,0,3,0,87],
-"group__w25qxx__advance__driver.html#ga81ddc7d4b9f4f124163beea19cc33c7e":[2,0,3,1,15],
 "group__w25qxx__advance__driver.html#ga81ddc7d4b9f4f124163beea19cc33c7e":[0,0,2,3],
-"group__w25qxx__advance__driver.html#ga88a62ec42e86db821ff3f0d3ab541dbb":[2,0,3,1,57],
 "group__w25qxx__advance__driver.html#ga88a62ec42e86db821ff3f0d3ab541dbb":[0,0,2,32],
-"group__w25qxx__advance__driver.html#ga88a62ec42e86db821ff3f0d3ab541dbb":[2,0,3,0,90],
 "group__w25qxx__advance__driver.html#ga8a93ba14a032e10a27f1495fdcf56058":[0,0,2,20],
-"group__w25qxx__advance__driver.html#ga8a93ba14a032e10a27f1495fdcf56058":[2,0,3,1,41],
-"group__w25qxx__advance__driver.html#ga8a93ba14a032e10a27f1495fdcf56058":[2,0,3,0,74],
 "group__w25qxx__advance__driver.html#ga94bbae2bf8906903e8dc2a28c490723d":[0,0,2,0],
-"group__w25qxx__advance__driver.html#ga94bbae2bf8906903e8dc2a28c490723d":[2,0,3,1,11],
-"group__w25qxx__advance__driver.html#ga99cf6a325a00921d4531004f0c1d75b1":[2,0,3,1,48],
 "group__w25qxx__advance__driver.html#ga99cf6a325a00921d4531004f0c1d75b1":[0,0,2,26],
-"group__w25qxx__advance__driver.html#ga99cf6a325a00921d4531004f0c1d75b1":[2,0,3,0,81],
-"group__w25qxx__advance__driver.html#ga9ad10781d888b32b43b9eba45d049624":[2,0,3,1,73],
 "group__w25qxx__advance__driver.html#ga9ad10781d888b32b43b9eba45d049624":[0,0,2,39],
-"group__w25qxx__advance__driver.html#ga9ad10781d888b32b43b9eba45d049624":[2,0,3,0,106],
-"group__w25qxx__advance__driver.html#ga9e41a72d1e25d39d88ce7108a9b25595":[2,0,3,1,16],
 "group__w25qxx__advance__driver.html#ga9e41a72d1e25d39d88ce7108a9b25595":[0,0,2,4],
 "group__w25qxx__advance__driver.html#gaa21237ecbd5951b8017799066e7db5d9":[0,0,2,25],
-"group__w25qxx__advance__driver.html#gaa21237ecbd5951b8017799066e7db5d9":[2,0,3,1,47],
-"group__w25qxx__advance__driver.html#gaa21237ecbd5951b8017799066e7db5d9":[2,0,3,0,80],
 "group__w25qxx__advance__driver.html#gaa5ab3548707a95ded115255432224c5a":[0,0,2,11],
-"group__w25qxx__advance__driver.html#gaa5ab3548707a95ded115255432224c5a":[2,0,3,1,28],
-"group__w25qxx__advance__driver.html#gaa5ab3548707a95ded115255432224c5a":[2,0,3,0,61],
-"group__w25qxx__advance__driver.html#gaa77d2b00b4fb9cf586f77ace827ea7c6":[2,0,3,1,46],
 "group__w25qxx__advance__driver.html#gaa77d2b00b4fb9cf586f77ace827ea7c6":[0,0,2,24],
-"group__w25qxx__advance__driver.html#gaa77d2b00b4fb9cf586f77ace827ea7c6":[2,0,3,0,79],
-"group__w25qxx__advance__driver.html#gaab5f28e8930d50dbc2178e39bc9fa456":[2,0,3,1,75],
 "group__w25qxx__advance__driver.html#gaab5f28e8930d50dbc2178e39bc9fa456":[0,0,2,41],
-"group__w25qxx__advance__driver.html#gaab5f28e8930d50dbc2178e39bc9fa456":[2,0,3,0,108],
-"group__w25qxx__advance__driver.html#gab5579bc42bc07a7657848140888a817c":[2,0,3,1,51],
 "group__w25qxx__advance__driver.html#gab5579bc42bc07a7657848140888a817c":[0,0,2,28],
-"group__w25qxx__advance__driver.html#gab5579bc42bc07a7657848140888a817c":[2,0,3,0,84],
 "group__w25qxx__advance__driver.html#gab55b4e071e20feb58584025287949438":[0,0,2,8],
-"group__w25qxx__advance__driver.html#gab55b4e071e20feb58584025287949438":[2,0,3,1,25],
-"group__w25qxx__advance__driver.html#gab55b4e071e20feb58584025287949438":[2,0,3,0,58],
 "group__w25qxx__advance__driver.html#gab97a64bd3776874518f60381d921ae41":[0,0,2,18],
-"group__w25qxx__advance__driver.html#gab97a64bd3776874518f60381d921ae41":[2,0,3,1,36],
-"group__w25qxx__advance__driver.html#gab97a64bd3776874518f60381d921ae41":[2,0,3,0,69],
 "group__w25qxx__advance__driver.html#gac16a31269277051baad6c28fe4254b4a":[0,0,2,7],
-"group__w25qxx__advance__driver.html#gac16a31269277051baad6c28fe4254b4a":[2,0,3,1,24],
-"group__w25qxx__advance__driver.html#gac16a31269277051baad6c28fe4254b4a":[2,0,3,0,57],
-"group__w25qxx__advance__driver.html#gac19c1d0f3fd48968ea2a93c1dbe3d75d":[2,0,3,1,70],
 "group__w25qxx__advance__driver.html#gac19c1d0f3fd48968ea2a93c1dbe3d75d":[0,0,2,38],
-"group__w25qxx__advance__driver.html#gac19c1d0f3fd48968ea2a93c1dbe3d75d":[2,0,3,0,103],
 "group__w25qxx__advance__driver.html#gac7fbabc574c250eec100be861f5918ff":[0,0,2,13],
-"group__w25qxx__advance__driver.html#gac7fbabc574c250eec100be861f5918ff":[2,0,3,1,30],
-"group__w25qxx__advance__driver.html#gac7fbabc574c250eec100be861f5918ff":[2,0,3,0,63],
 "group__w25qxx__advance__driver.html#gac894f4650905cba10dd3a31284de6d5e":[0,0,2,16],
-"group__w25qxx__advance__driver.html#gac894f4650905cba10dd3a31284de6d5e":[2,0,3,1,34],
-"group__w25qxx__advance__driver.html#gac894f4650905cba10dd3a31284de6d5e":[2,0,3,0,67],
-"group__w25qxx__advance__driver.html#gace18ebb2eac49cbde44a2935916f44ac":[2,0,3,1,18],
 "group__w25qxx__advance__driver.html#gace18ebb2eac49cbde44a2935916f44ac":[0,0,2,6],
-"group__w25qxx__advance__driver.html#gad97d7e410dd77c49334097a0fd332660":[2,0,3,1,78],
 "group__w25qxx__advance__driver.html#gad97d7e410dd77c49334097a0fd332660":[0,0,2,43],
-"group__w25qxx__advance__driver.html#gad97d7e410dd77c49334097a0fd332660":[2,0,3,0,111],
-"group__w25qxx__advance__driver.html#gada897a6c6d6acb99f4dd4ff9b65ad8ee":[2,0,3,1,76],
 "group__w25qxx__advance__driver.html#gada897a6c6d6acb99f4dd4ff9b65ad8ee":[0,0,2,42],
-"group__w25qxx__advance__driver.html#gada897a6c6d6acb99f4dd4ff9b65ad8ee":[2,0,3,0,109],
 "group__w25qxx__advance__driver.html#gaeb269123feec054eaaf70f2ffb5797a3":[0,0,2,10],
-"group__w25qxx__advance__driver.html#gaeb269123feec054eaaf70f2ffb5797a3":[2,0,3,1,27],
-"group__w25qxx__advance__driver.html#gaeb269123feec054eaaf70f2ffb5797a3":[2,0,3,0,60],
 "group__w25qxx__advance__driver.html#gaf297e2c6877c64f8fd10a555f783ddaf":[0,0,2,14],
-"group__w25qxx__advance__driver.html#gaf297e2c6877c64f8fd10a555f783ddaf":[2,0,3,1,31],
-"group__w25qxx__advance__driver.html#gaf297e2c6877c64f8fd10a555f783ddaf":[2,0,3,0,64],
 "group__w25qxx__advance__driver.html#gaf4bfafd1f80aa0316a4b1a15183dcd50":[0,0,2,19],
-"group__w25qxx__advance__driver.html#gaf4bfafd1f80aa0316a4b1a15183dcd50":[2,0,3,1,37],
-"group__w25qxx__advance__driver.html#gaf4bfafd1f80aa0316a4b1a15183dcd50":[2,0,3,0,70],
-"group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277a0f3e2b3059d56f974724a8284142e69a":[2,0,3,1,17,2],
 "group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277a0f3e2b3059d56f974724a8284142e69a":[0,0,2,5,2],
-"group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277a24a99f1a97023ae103c1bec3027bbf26":[2,0,3,1,17,3],
 "group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277a24a99f1a97023ae103c1bec3027bbf26":[0,0,2,5,3],
-"group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277a3fdb54846709f77391e426c626a19152":[2,0,3,1,17,0],
 "group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277a3fdb54846709f77391e426c626a19152":[0,0,2,5,0],
-"group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277a517e9e50ada30462f902d01e8d5579dc":[2,0,3,1,17,1],
 "group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277a517e9e50ada30462f902d01e8d5579dc":[0,0,2,5,1],
-"group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277a5a89a885ba2a59eccd0445443e3bbac6":[2,0,3,1,17,6],
 "group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277a5a89a885ba2a59eccd0445443e3bbac6":[0,0,2,5,6],
-"group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277a7a631c1c153cc099a52883b40007079e":[2,0,3,1,17,4],
 "group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277a7a631c1c153cc099a52883b40007079e":[0,0,2,5,4],
-"group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277aa920a9c9a590fb8740419d8d2e4230f3":[2,0,3,1,17,5],
 "group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277aa920a9c9a590fb8740419d8d2e4230f3":[0,0,2,5,5],
-"group__w25qxx__advance__driver.html#gga2fd3023819e1aebe089a4a72eb136da3a5b8fa1026c564fe83f3f0f0edb89d1dd":[2,0,3,1,14,0],
 "group__w25qxx__advance__driver.html#gga2fd3023819e1aebe089a4a72eb136da3a5b8fa1026c564fe83f3f0f0edb89d1dd":[0,0,2,2,0],
-"group__w25qxx__advance__driver.html#gga2fd3023819e1aebe089a4a72eb136da3a736f25eeae36f6a0b62d4cb1666a689f":[2,0,3,1,14,3],
 "group__w25qxx__advance__driver.html#gga2fd3023819e1aebe089a4a72eb136da3a736f25eeae36f6a0b62d4cb1666a689f":[0,0,2,2,3],
-"group__w25qxx__advance__driver.html#gga2fd3023819e1aebe089a4a72eb136da3aa5f2e6b5718a85ab9241125e84181216":[2,0,3,1,14,2],
 "group__w25qxx__advance__driver.html#gga2fd3023819e1aebe089a4a72eb136da3aa5f2e6b5718a85ab9241125e84181216":[0,0,2,2,2],
 "group__w25qxx__advance__driver.html#gga2fd3023819e1aebe089a4a72eb136da3ae6bc2fcd2d4fc3af63f22da56a3b393b":[0,0,2,2,1],
-"group__w25qxx__advance__driver.html#gga2fd3023819e1aebe089a4a72eb136da3ae6bc2fcd2d4fc3af63f22da56a3b393b":[2,0,3,1,14,1],
-"group__w25qxx__advance__driver.html#gga6ff284154302248f00db269146545443a6423b5606e72af6479fe31a6a9883aeb":[0,0,2,1,1]
+"group__w25qxx__advance__driver.html#gga6ff284154302248f00db269146545443a6423b5606e72af6479fe31a6a9883aeb":[0,0,2,1,1],
+"group__w25qxx__advance__driver.html#gga6ff284154302248f00db269146545443a78393debe12bbb3efb710e38e3c1d550":[0,0,2,1,2],
+"group__w25qxx__advance__driver.html#gga6ff284154302248f00db269146545443ad73634a0f4534c3ae35d4242b2bc8f13":[0,0,2,1,0],
+"group__w25qxx__advance__driver.html#gga6ff284154302248f00db269146545443ade1d3511f15c7d92de8c5d8967c471c3":[0,0,2,1,3],
+"group__w25qxx__advance__driver.html#gga81ddc7d4b9f4f124163beea19cc33c7ea3353a88090850174ca163d56e4d7089c":[0,0,2,3,1],
+"group__w25qxx__advance__driver.html#gga81ddc7d4b9f4f124163beea19cc33c7ea65b73162d921075bed8cb8d848948900":[0,0,2,3,2],
+"group__w25qxx__advance__driver.html#gga81ddc7d4b9f4f124163beea19cc33c7eaaf27484a497c13915c8acb0161cf137d":[0,0,2,3,0],
+"group__w25qxx__advance__driver.html#gga94bbae2bf8906903e8dc2a28c490723da2a3afd7924b00cf74abe83f5216c8915":[0,0,2,0,4],
+"group__w25qxx__advance__driver.html#gga94bbae2bf8906903e8dc2a28c490723da35edf6c31d0fe1771ab79669d13b7af8":[0,0,2,0,1],
+"group__w25qxx__advance__driver.html#gga94bbae2bf8906903e8dc2a28c490723dae2ac810153f9515a145773c34409b995":[0,0,2,0,3],
+"group__w25qxx__advance__driver.html#gga94bbae2bf8906903e8dc2a28c490723dae39a7ea65512a56d40aad2990d55815d":[0,0,2,0,0],
+"group__w25qxx__advance__driver.html#gga94bbae2bf8906903e8dc2a28c490723dafec1eb230b49fbda6ffcc1eeda64179a":[0,0,2,0,2],
+"group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a00d1d224963ec1f38ac97802480b2129":[0,0,2,4,0],
+"group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a1438a76d1be1aa02e4f7450a045c02e3":[0,0,2,4,6],
+"group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a3465f02625d38730630b60cd01e92085":[0,0,2,4,4],
+"group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a63bc45b7e0e19de7e58e3494eb4046c5":[0,0,2,4,2],
+"group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a7b7e8922009c0d6a88bbfad76a812262":[0,0,2,4,5],
+"group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a9522040a098337442eff127e1598776d":[0,0,2,4,1],
+"group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a9a02180228dbb94e9d302b667fda884f":[0,0,2,4,3],
+"group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595ae1ce566fc564776e98a5c7edefe8c5ea":[0,0,2,4,7],
+"group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44aca3c822d6eacd9747ca2173607a09591ac":[0,0,2,6,7],
+"group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44aca7ab6ace72a02afc20f92f48e975b60b7":[0,0,2,6,2],
+"group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44aca7dc507c444fb395a4956bf50d78f1ee3":[0,0,2,6,5],
+"group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44aca8abcd821f1f0d02b3d9179c7ab58d0e0":[0,0,2,6,3],
+"group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44aca9ab13d5388af0156c4e4de08765ec401":[0,0,2,6,0],
+"group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44acab5b1ce328b88d08f3d55ed776e01fedb":[0,0,2,6,1],
+"group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44acadc8d5949eaea0c6ce4e17c6e746f4f65":[0,0,2,6,6],
+"group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44acae645c265a6beb76a088352e2f4bfb4e1":[0,0,2,6,4],
+"group__w25qxx__basic__driver.html":[0,0,1],
+"group__w25qxx__basic__driver.html#ga0862833b36831f92684980b2e21f2e39":[0,0,1,10],
+"group__w25qxx__basic__driver.html#ga09c9b52877516a2ee4c080dc249e7331":[0,0,1,24],
+"group__w25qxx__basic__driver.html#ga1e9ebf198137d23558dbf6470213c472":[0,0,1,20],
+"group__w25qxx__basic__driver.html#ga39c8fb382e8c3e4d57232dfa79af781c":[0,0,1,8],
+"group__w25qxx__basic__driver.html#ga3a52036a97b12fcbe2280b0901a80b90":[0,0,1,13],
+"group__w25qxx__basic__driver.html#ga50a62003d566402d46ada2f272c41eb5":[0,0,1,28],
+"group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be":[0,0,1,2],
+"group__w25qxx__basic__driver.html#ga601d841ddd0ff8ad3ab52e07c679ef19":[0,0,1,3],
+"group__w25qxx__basic__driver.html#ga6280e7e4ab26306436e2c210617a28b3":[0,0,1,21],
+"group__w25qxx__basic__driver.html#ga665139209b0abc386474a78d89cce6f2":[0,0,1,27],
+"group__w25qxx__basic__driver.html#ga685379998dad173b6d9c0b0da270685c":[0,0,1,17],
+"group__w25qxx__basic__driver.html#ga6cb4e5164464df549201dd96cb7a58b1":[0,0,1,7],
+"group__w25qxx__basic__driver.html#ga86ef839d475f3926a0be46bbc18d4b45":[0,0,1,15],
+"group__w25qxx__basic__driver.html#ga8e7a163b3d255b8c7fc035d0d60f2491":[0,0,1,19],
+"group__w25qxx__basic__driver.html#ga921836a777b082ff4d0f322ccfda6b22":[0,0,1,16],
+"group__w25qxx__basic__driver.html#ga996e2d3009432e7f8c1a5175c4438a57":[0,0,1,18],
+"group__w25qxx__basic__driver.html#ga9a03c51b4c84655350c15fbfce0a6b40":[0,0,1,25],
+"group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d":[0,0,1,11],
+"group__w25qxx__basic__driver.html#gaa4c45f146d1ade8a2da8e751818fa4a2":[0,0,1,4],
+"group__w25qxx__basic__driver.html#gaa57189cd4170b73f8b1300ca15e27de6":[0,0,1,29],
+"group__w25qxx__basic__driver.html#gaaee8264d840e51460821cb6e609338ee":[0,0,1,30],
+"group__w25qxx__basic__driver.html#gac345ba10af5ad355578fa97697487123":[0,0,1,12],
+"group__w25qxx__basic__driver.html#gacbf327a42336baf10713a1796ff4f2fe":[0,0,1,6],
+"group__w25qxx__basic__driver.html#gad0e125eff304ce66fb3956d2c8c80656":[0,0,1,26],
+"group__w25qxx__basic__driver.html#gad4c9b8b0a2d0916c13567f9d7e494cf8":[0,0,1,14],
+"group__w25qxx__basic__driver.html#gae4effce67e36120325e3c7b245b90142":[0,0,1,22],
+"group__w25qxx__basic__driver.html#gae7479fc9ce911a52e3c5b6f1a615b879":[0,0,1,23],
+"group__w25qxx__basic__driver.html#gaf53bc5f6073482b9b74efd417ec7ac83":[0,0,1,9],
+"group__w25qxx__basic__driver.html#gafb2690946f5baf4be6f3a63dde5491fb":[0,0,1,5],
+"group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a1ad4f72437de5f26cb7b212d4d91e7c2":[0,0,1,7,0],
+"group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a3ea98b2b3e06afa29441c51548bbb16e":[0,0,1,7,3],
+"group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a4fdad551be6485441db5951f196db7cb":[0,0,1,7,2],
+"group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a66acb81a2d520a7d92ce1d37210c6435":[0,0,1,7,1],
+"group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a75afcbe71906d3884f4fcc119c1cabd5":[0,0,1,7,4],
+"group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca":[0,0,1,7,5],
+"group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503":[0,0,1,4,0],
+"group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe":[0,0,1,4,1],
+"group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2fea895dcb5c91da89fad1c12161ffd2d5d4":[0,0,1,6,1],
+"group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8":[0,0,1,6,0],
+"group__w25qxx__basic__driver.html#ggafb2690946f5baf4be6f3a63dde5491fba02afbdc2c6c3d761cd31ac39c857ee9a":[0,0,1,5,0],
+"group__w25qxx__basic__driver.html#ggafb2690946f5baf4be6f3a63dde5491fbae2a935d12b0b1bc9fc321246ee0e0df8":[0,0,1,5,1],
+"group__w25qxx__driver.html":[0,0],
+"group__w25qxx__example__driver.html":[0,0,5],
+"group__w25qxx__example__driver.html#ga013a389763200b54daaa345adf9329dc":[0,0,5,33],
+"group__w25qxx__example__driver.html#ga02652a58ee418b432cf77505809d7d42":[0,0,5,27],
+"group__w25qxx__example__driver.html#ga02914409a9db38f35bc89d9fc4d96a17":[0,0,5,48],
+"group__w25qxx__example__driver.html#ga0f49d960f8b6c6498ab293b369ffc389":[0,0,5,6],
+"group__w25qxx__example__driver.html#ga0f65053ad28443f19ed73dbc3412b5b2":[0,0,5,35],
+"group__w25qxx__example__driver.html#ga143fa1f19a792142339f3d4e9ce078d0":[0,0,5,47],
+"group__w25qxx__example__driver.html#ga15cb243f227ef8d897ef3208b622bded":[0,0,5,2],
+"group__w25qxx__example__driver.html#ga16411577fcb794f7485912f5db1bdde9":[0,0,5,28],
+"group__w25qxx__example__driver.html#ga1e20768311dfdf33c77b442fa874b61a":[0,0,5,45],
+"group__w25qxx__example__driver.html#ga2cbcc018dc11a870d2e0fc3a8946b1d8":[0,0,5,10],
+"group__w25qxx__example__driver.html#ga31bcd3d2cc68d2fc589685b5087bd8b3":[0,0,5,9],
+"group__w25qxx__example__driver.html#ga364d891407cf323d3686d36ad6357604":[0,0,5,17],
+"group__w25qxx__example__driver.html#ga374d35b73fa61d5f7464c3effdae1d57":[0,0,5,23],
+"group__w25qxx__example__driver.html#ga395add1fa33f4f70d0ba52b38842dbdb":[0,0,5,18],
+"group__w25qxx__example__driver.html#ga39ff13988a3d451231cec3260c13a4cd":[0,0,5,31],
+"group__w25qxx__example__driver.html#ga413b420bc199d09ce5cafee4a4debb28":[0,0,5,14],
+"group__w25qxx__example__driver.html#ga4bbaf1a989fae25d16d07edb1e38ca4f":[0,0,5,16],
+"group__w25qxx__example__driver.html#ga4c1be6979b4dc878d07ec86b8624c9d2":[0,0,5,7],
+"group__w25qxx__example__driver.html#ga5599de31797633ae75a63bcd5a8f4736":[0,0,5,32],
+"group__w25qxx__example__driver.html#ga572c9f7a0bf2e7ab43dc078121162ec3":[0,0,5,46],
+"group__w25qxx__example__driver.html#ga5cf24fc78e1b45e845d02ec9133f46ab":[0,0,5,49]
 };
diff --git a/doc/html/navtreeindex1.js b/doc/html/navtreeindex1.js
index dc0143d..a6f5606 100644
--- a/doc/html/navtreeindex1.js
+++ b/doc/html/navtreeindex1.js
@@ -1,253 +1,84 @@
 var NAVTREEINDEX1 =
 {
-"group__w25qxx__advance__driver.html#gga6ff284154302248f00db269146545443a6423b5606e72af6479fe31a6a9883aeb":[2,0,3,1,13,1],
-"group__w25qxx__advance__driver.html#gga6ff284154302248f00db269146545443a78393debe12bbb3efb710e38e3c1d550":[0,0,2,1,2],
-"group__w25qxx__advance__driver.html#gga6ff284154302248f00db269146545443a78393debe12bbb3efb710e38e3c1d550":[2,0,3,1,13,2],
-"group__w25qxx__advance__driver.html#gga6ff284154302248f00db269146545443ad73634a0f4534c3ae35d4242b2bc8f13":[0,0,2,1,0],
-"group__w25qxx__advance__driver.html#gga6ff284154302248f00db269146545443ad73634a0f4534c3ae35d4242b2bc8f13":[2,0,3,1,13,0],
-"group__w25qxx__advance__driver.html#gga6ff284154302248f00db269146545443ade1d3511f15c7d92de8c5d8967c471c3":[0,0,2,1,3],
-"group__w25qxx__advance__driver.html#gga6ff284154302248f00db269146545443ade1d3511f15c7d92de8c5d8967c471c3":[2,0,3,1,13,3],
-"group__w25qxx__advance__driver.html#gga81ddc7d4b9f4f124163beea19cc33c7ea3353a88090850174ca163d56e4d7089c":[2,0,3,1,15,1],
-"group__w25qxx__advance__driver.html#gga81ddc7d4b9f4f124163beea19cc33c7ea3353a88090850174ca163d56e4d7089c":[0,0,2,3,1],
-"group__w25qxx__advance__driver.html#gga81ddc7d4b9f4f124163beea19cc33c7ea65b73162d921075bed8cb8d848948900":[2,0,3,1,15,2],
-"group__w25qxx__advance__driver.html#gga81ddc7d4b9f4f124163beea19cc33c7ea65b73162d921075bed8cb8d848948900":[0,0,2,3,2],
-"group__w25qxx__advance__driver.html#gga81ddc7d4b9f4f124163beea19cc33c7eaaf27484a497c13915c8acb0161cf137d":[2,0,3,1,15,0],
-"group__w25qxx__advance__driver.html#gga81ddc7d4b9f4f124163beea19cc33c7eaaf27484a497c13915c8acb0161cf137d":[0,0,2,3,0],
-"group__w25qxx__advance__driver.html#gga94bbae2bf8906903e8dc2a28c490723da2a3afd7924b00cf74abe83f5216c8915":[0,0,2,0,4],
-"group__w25qxx__advance__driver.html#gga94bbae2bf8906903e8dc2a28c490723da2a3afd7924b00cf74abe83f5216c8915":[2,0,3,1,11,4],
-"group__w25qxx__advance__driver.html#gga94bbae2bf8906903e8dc2a28c490723da35edf6c31d0fe1771ab79669d13b7af8":[0,0,2,0,1],
-"group__w25qxx__advance__driver.html#gga94bbae2bf8906903e8dc2a28c490723da35edf6c31d0fe1771ab79669d13b7af8":[2,0,3,1,11,1],
-"group__w25qxx__advance__driver.html#gga94bbae2bf8906903e8dc2a28c490723dae2ac810153f9515a145773c34409b995":[0,0,2,0,3],
-"group__w25qxx__advance__driver.html#gga94bbae2bf8906903e8dc2a28c490723dae2ac810153f9515a145773c34409b995":[2,0,3,1,11,3],
-"group__w25qxx__advance__driver.html#gga94bbae2bf8906903e8dc2a28c490723dae39a7ea65512a56d40aad2990d55815d":[2,0,3,1,11,0],
-"group__w25qxx__advance__driver.html#gga94bbae2bf8906903e8dc2a28c490723dae39a7ea65512a56d40aad2990d55815d":[0,0,2,0,0],
-"group__w25qxx__advance__driver.html#gga94bbae2bf8906903e8dc2a28c490723dafec1eb230b49fbda6ffcc1eeda64179a":[0,0,2,0,2],
-"group__w25qxx__advance__driver.html#gga94bbae2bf8906903e8dc2a28c490723dafec1eb230b49fbda6ffcc1eeda64179a":[2,0,3,1,11,2],
-"group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a00d1d224963ec1f38ac97802480b2129":[2,0,3,1,16,0],
-"group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a00d1d224963ec1f38ac97802480b2129":[0,0,2,4,0],
-"group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a1438a76d1be1aa02e4f7450a045c02e3":[2,0,3,1,16,6],
-"group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a1438a76d1be1aa02e4f7450a045c02e3":[0,0,2,4,6],
-"group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a3465f02625d38730630b60cd01e92085":[2,0,3,1,16,4],
-"group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a3465f02625d38730630b60cd01e92085":[0,0,2,4,4],
-"group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a63bc45b7e0e19de7e58e3494eb4046c5":[2,0,3,1,16,2],
-"group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a63bc45b7e0e19de7e58e3494eb4046c5":[0,0,2,4,2],
-"group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a7b7e8922009c0d6a88bbfad76a812262":[0,0,2,4,5],
-"group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a7b7e8922009c0d6a88bbfad76a812262":[2,0,3,1,16,5],
-"group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a9522040a098337442eff127e1598776d":[2,0,3,1,16,1],
-"group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a9522040a098337442eff127e1598776d":[0,0,2,4,1],
-"group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a9a02180228dbb94e9d302b667fda884f":[2,0,3,1,16,3],
-"group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a9a02180228dbb94e9d302b667fda884f":[0,0,2,4,3],
-"group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595ae1ce566fc564776e98a5c7edefe8c5ea":[2,0,3,1,16,7],
-"group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595ae1ce566fc564776e98a5c7edefe8c5ea":[0,0,2,4,7],
-"group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44aca3c822d6eacd9747ca2173607a09591ac":[2,0,3,1,18,7],
-"group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44aca3c822d6eacd9747ca2173607a09591ac":[0,0,2,6,7],
-"group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44aca7ab6ace72a02afc20f92f48e975b60b7":[2,0,3,1,18,2],
-"group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44aca7ab6ace72a02afc20f92f48e975b60b7":[0,0,2,6,2],
-"group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44aca7dc507c444fb395a4956bf50d78f1ee3":[2,0,3,1,18,5],
-"group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44aca7dc507c444fb395a4956bf50d78f1ee3":[0,0,2,6,5],
-"group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44aca8abcd821f1f0d02b3d9179c7ab58d0e0":[2,0,3,1,18,3],
-"group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44aca8abcd821f1f0d02b3d9179c7ab58d0e0":[0,0,2,6,3],
-"group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44aca9ab13d5388af0156c4e4de08765ec401":[2,0,3,1,18,0],
-"group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44aca9ab13d5388af0156c4e4de08765ec401":[0,0,2,6,0],
-"group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44acab5b1ce328b88d08f3d55ed776e01fedb":[2,0,3,1,18,1],
-"group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44acab5b1ce328b88d08f3d55ed776e01fedb":[0,0,2,6,1],
-"group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44acadc8d5949eaea0c6ce4e17c6e746f4f65":[2,0,3,1,18,6],
-"group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44acadc8d5949eaea0c6ce4e17c6e746f4f65":[0,0,2,6,6],
-"group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44acae645c265a6beb76a088352e2f4bfb4e1":[2,0,3,1,18,4],
-"group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44acae645c265a6beb76a088352e2f4bfb4e1":[0,0,2,6,4],
-"group__w25qxx__basic__driver.html":[0,0,1],
-"group__w25qxx__basic__driver.html#ga0862833b36831f92684980b2e21f2e39":[2,0,3,1,22],
-"group__w25qxx__basic__driver.html#ga0862833b36831f92684980b2e21f2e39":[0,0,1,10],
-"group__w25qxx__basic__driver.html#ga0862833b36831f92684980b2e21f2e39":[2,0,3,0,55],
-"group__w25qxx__basic__driver.html#ga09c9b52877516a2ee4c080dc249e7331":[2,0,3,1,66],
-"group__w25qxx__basic__driver.html#ga09c9b52877516a2ee4c080dc249e7331":[0,0,1,24],
-"group__w25qxx__basic__driver.html#ga09c9b52877516a2ee4c080dc249e7331":[2,0,3,0,99],
-"group__w25qxx__basic__driver.html#ga1e9ebf198137d23558dbf6470213c472":[0,0,1,20],
-"group__w25qxx__basic__driver.html#ga1e9ebf198137d23558dbf6470213c472":[2,0,3,1,58],
-"group__w25qxx__basic__driver.html#ga1e9ebf198137d23558dbf6470213c472":[2,0,3,0,91],
-"group__w25qxx__basic__driver.html#ga39c8fb382e8c3e4d57232dfa79af781c":[2,0,3,1,20],
-"group__w25qxx__basic__driver.html#ga39c8fb382e8c3e4d57232dfa79af781c":[2,0,3,0,53],
-"group__w25qxx__basic__driver.html#ga39c8fb382e8c3e4d57232dfa79af781c":[0,0,1,8],
-"group__w25qxx__basic__driver.html#ga3a52036a97b12fcbe2280b0901a80b90":[2,0,3,1,38],
-"group__w25qxx__basic__driver.html#ga3a52036a97b12fcbe2280b0901a80b90":[2,0,3,0,71],
-"group__w25qxx__basic__driver.html#ga3a52036a97b12fcbe2280b0901a80b90":[0,0,1,13],
-"group__w25qxx__basic__driver.html#ga50a62003d566402d46ada2f272c41eb5":[0,0,1,28],
-"group__w25qxx__basic__driver.html#ga50a62003d566402d46ada2f272c41eb5":[2,0,3,1,72],
-"group__w25qxx__basic__driver.html#ga50a62003d566402d46ada2f272c41eb5":[2,0,3,0,105],
-"group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be":[0,0,1,2],
-"group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be":[2,0,3,1,7],
-"group__w25qxx__basic__driver.html#ga601d841ddd0ff8ad3ab52e07c679ef19":[0,0,1,3],
-"group__w25qxx__basic__driver.html#ga601d841ddd0ff8ad3ab52e07c679ef19":[2,0,3,1,8],
-"group__w25qxx__basic__driver.html#ga6280e7e4ab26306436e2c210617a28b3":[2,0,3,1,59],
-"group__w25qxx__basic__driver.html#ga6280e7e4ab26306436e2c210617a28b3":[0,0,1,21],
-"group__w25qxx__basic__driver.html#ga6280e7e4ab26306436e2c210617a28b3":[2,0,3,0,92],
-"group__w25qxx__basic__driver.html#ga665139209b0abc386474a78d89cce6f2":[0,0,1,27],
-"group__w25qxx__basic__driver.html#ga665139209b0abc386474a78d89cce6f2":[2,0,3,1,71],
-"group__w25qxx__basic__driver.html#ga665139209b0abc386474a78d89cce6f2":[2,0,3,0,104],
-"group__w25qxx__basic__driver.html#ga685379998dad173b6d9c0b0da270685c":[0,0,1,17],
-"group__w25qxx__basic__driver.html#ga685379998dad173b6d9c0b0da270685c":[2,0,3,1,49],
-"group__w25qxx__basic__driver.html#ga685379998dad173b6d9c0b0da270685c":[2,0,3,0,82],
-"group__w25qxx__basic__driver.html#ga6cb4e5164464df549201dd96cb7a58b1":[2,0,3,1,19],
-"group__w25qxx__basic__driver.html#ga6cb4e5164464df549201dd96cb7a58b1":[0,0,1,7],
-"group__w25qxx__basic__driver.html#ga86ef839d475f3926a0be46bbc18d4b45":[0,0,1,15],
-"group__w25qxx__basic__driver.html#ga86ef839d475f3926a0be46bbc18d4b45":[2,0,3,1,40],
-"group__w25qxx__basic__driver.html#ga86ef839d475f3926a0be46bbc18d4b45":[2,0,3,0,73],
-"group__w25qxx__basic__driver.html#ga8e7a163b3d255b8c7fc035d0d60f2491":[0,0,1,19],
-"group__w25qxx__basic__driver.html#ga8e7a163b3d255b8c7fc035d0d60f2491":[2,0,3,1,56],
-"group__w25qxx__basic__driver.html#ga8e7a163b3d255b8c7fc035d0d60f2491":[2,0,3,0,89],
-"group__w25qxx__basic__driver.html#ga921836a777b082ff4d0f322ccfda6b22":[0,0,1,16],
-"group__w25qxx__basic__driver.html#ga921836a777b082ff4d0f322ccfda6b22":[2,0,3,0,75],
-"group__w25qxx__basic__driver.html#ga921836a777b082ff4d0f322ccfda6b22":[2,0,3,1,42],
-"group__w25qxx__basic__driver.html#ga996e2d3009432e7f8c1a5175c4438a57":[0,0,1,18],
-"group__w25qxx__basic__driver.html#ga996e2d3009432e7f8c1a5175c4438a57":[2,0,3,1,55],
-"group__w25qxx__basic__driver.html#ga996e2d3009432e7f8c1a5175c4438a57":[2,0,3,0,88],
-"group__w25qxx__basic__driver.html#ga9a03c51b4c84655350c15fbfce0a6b40":[0,0,1,25],
-"group__w25qxx__basic__driver.html#ga9a03c51b4c84655350c15fbfce0a6b40":[2,0,3,1,68],
-"group__w25qxx__basic__driver.html#ga9a03c51b4c84655350c15fbfce0a6b40":[2,0,3,0,101],
-"group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d":[2,0,3,0,56],
-"group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d":[2,0,3,1,23],
-"group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d":[0,0,1,11],
-"group__w25qxx__basic__driver.html#gaa4c45f146d1ade8a2da8e751818fa4a2":[0,0,1,4],
-"group__w25qxx__basic__driver.html#gaa4c45f146d1ade8a2da8e751818fa4a2":[2,0,3,1,9],
-"group__w25qxx__basic__driver.html#gaa57189cd4170b73f8b1300ca15e27de6":[2,0,3,0,110],
-"group__w25qxx__basic__driver.html#gaa57189cd4170b73f8b1300ca15e27de6":[0,0,1,29],
-"group__w25qxx__basic__driver.html#gaa57189cd4170b73f8b1300ca15e27de6":[2,0,3,1,77],
-"group__w25qxx__basic__driver.html#gaaee8264d840e51460821cb6e609338ee":[2,0,3,1,79],
-"group__w25qxx__basic__driver.html#gaaee8264d840e51460821cb6e609338ee":[0,0,1,30],
-"group__w25qxx__basic__driver.html#gaaee8264d840e51460821cb6e609338ee":[2,0,3,0,112],
-"group__w25qxx__basic__driver.html#gac345ba10af5ad355578fa97697487123":[2,0,3,1,33],
-"group__w25qxx__basic__driver.html#gac345ba10af5ad355578fa97697487123":[2,0,3,0,66],
-"group__w25qxx__basic__driver.html#gac345ba10af5ad355578fa97697487123":[0,0,1,12],
-"group__w25qxx__basic__driver.html#gacbf327a42336baf10713a1796ff4f2fe":[0,0,1,6],
-"group__w25qxx__basic__driver.html#gacbf327a42336baf10713a1796ff4f2fe":[2,0,3,1,12],
-"group__w25qxx__basic__driver.html#gad0e125eff304ce66fb3956d2c8c80656":[2,0,3,0,102],
-"group__w25qxx__basic__driver.html#gad0e125eff304ce66fb3956d2c8c80656":[0,0,1,26],
-"group__w25qxx__basic__driver.html#gad0e125eff304ce66fb3956d2c8c80656":[2,0,3,1,69],
-"group__w25qxx__basic__driver.html#gad4c9b8b0a2d0916c13567f9d7e494cf8":[0,0,1,14],
-"group__w25qxx__basic__driver.html#gad4c9b8b0a2d0916c13567f9d7e494cf8":[2,0,3,1,39],
-"group__w25qxx__basic__driver.html#gad4c9b8b0a2d0916c13567f9d7e494cf8":[2,0,3,0,72],
-"group__w25qxx__basic__driver.html#gae4effce67e36120325e3c7b245b90142":[0,0,1,22],
-"group__w25qxx__basic__driver.html#gae4effce67e36120325e3c7b245b90142":[2,0,3,0,94],
-"group__w25qxx__basic__driver.html#gae4effce67e36120325e3c7b245b90142":[2,0,3,1,61],
-"group__w25qxx__basic__driver.html#gae7479fc9ce911a52e3c5b6f1a615b879":[2,0,3,1,63],
-"group__w25qxx__basic__driver.html#gae7479fc9ce911a52e3c5b6f1a615b879":[0,0,1,23],
-"group__w25qxx__basic__driver.html#gae7479fc9ce911a52e3c5b6f1a615b879":[2,0,3,0,96],
-"group__w25qxx__basic__driver.html#gaf53bc5f6073482b9b74efd417ec7ac83":[2,0,3,1,21],
-"group__w25qxx__basic__driver.html#gaf53bc5f6073482b9b74efd417ec7ac83":[2,0,3,0,54],
-"group__w25qxx__basic__driver.html#gaf53bc5f6073482b9b74efd417ec7ac83":[0,0,1,9],
-"group__w25qxx__basic__driver.html#gafb2690946f5baf4be6f3a63dde5491fb":[0,0,1,5],
-"group__w25qxx__basic__driver.html#gafb2690946f5baf4be6f3a63dde5491fb":[2,0,3,1,10],
-"group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a1ad4f72437de5f26cb7b212d4d91e7c2":[2,0,3,1,19,0],
-"group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a1ad4f72437de5f26cb7b212d4d91e7c2":[0,0,1,7,0],
-"group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a3ea98b2b3e06afa29441c51548bbb16e":[2,0,3,1,19,3],
-"group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a3ea98b2b3e06afa29441c51548bbb16e":[0,0,1,7,3],
-"group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a4fdad551be6485441db5951f196db7cb":[2,0,3,1,19,2],
-"group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a4fdad551be6485441db5951f196db7cb":[0,0,1,7,2],
-"group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a66acb81a2d520a7d92ce1d37210c6435":[0,0,1,7,1],
-"group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a66acb81a2d520a7d92ce1d37210c6435":[2,0,3,1,19,1],
-"group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a75afcbe71906d3884f4fcc119c1cabd5":[2,0,3,1,19,4],
-"group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a75afcbe71906d3884f4fcc119c1cabd5":[0,0,1,7,4],
-"group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca":[2,0,3,1,19,5],
-"group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca":[0,0,1,7,5],
-"group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503":[0,0,1,4,0],
-"group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503":[2,0,3,1,9,0],
-"group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe":[0,0,1,4,1],
-"group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe":[2,0,3,1,9,1],
-"group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2fea895dcb5c91da89fad1c12161ffd2d5d4":[0,0,1,6,1],
-"group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2fea895dcb5c91da89fad1c12161ffd2d5d4":[2,0,3,1,12,1],
-"group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8":[2,0,3,1,12,0],
-"group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8":[0,0,1,6,0],
-"group__w25qxx__basic__driver.html#ggafb2690946f5baf4be6f3a63dde5491fba02afbdc2c6c3d761cd31ac39c857ee9a":[2,0,3,1,10,0],
-"group__w25qxx__basic__driver.html#ggafb2690946f5baf4be6f3a63dde5491fba02afbdc2c6c3d761cd31ac39c857ee9a":[0,0,1,5,0],
-"group__w25qxx__basic__driver.html#ggafb2690946f5baf4be6f3a63dde5491fbae2a935d12b0b1bc9fc321246ee0e0df8":[0,0,1,5,1],
-"group__w25qxx__basic__driver.html#ggafb2690946f5baf4be6f3a63dde5491fbae2a935d12b0b1bc9fc321246ee0e0df8":[2,0,3,1,10,1],
-"group__w25qxx__driver.html":[0,0],
-"group__w25qxx__example__driver.html":[0,0,5],
-"group__w25qxx__example__driver.html#ga013a389763200b54daaa345adf9329dc":[0,0,5,33],
-"group__w25qxx__example__driver.html#ga013a389763200b54daaa345adf9329dc":[2,0,1,0,33],
-"group__w25qxx__example__driver.html#ga013a389763200b54daaa345adf9329dc":[2,0,1,1,33],
-"group__w25qxx__example__driver.html#ga02652a58ee418b432cf77505809d7d42":[2,0,1,0,27],
-"group__w25qxx__example__driver.html#ga02652a58ee418b432cf77505809d7d42":[2,0,1,1,27],
-"group__w25qxx__example__driver.html#ga02652a58ee418b432cf77505809d7d42":[0,0,5,27],
-"group__w25qxx__example__driver.html#ga02914409a9db38f35bc89d9fc4d96a17":[0,0,5,48],
-"group__w25qxx__example__driver.html#ga02914409a9db38f35bc89d9fc4d96a17":[2,0,1,2,6],
-"group__w25qxx__example__driver.html#ga02914409a9db38f35bc89d9fc4d96a17":[2,0,1,3,6],
-"group__w25qxx__example__driver.html#ga0f49d960f8b6c6498ab293b369ffc389":[2,0,1,0,6],
-"group__w25qxx__example__driver.html#ga0f49d960f8b6c6498ab293b369ffc389":[0,0,5,6],
-"group__w25qxx__example__driver.html#ga0f49d960f8b6c6498ab293b369ffc389":[2,0,1,1,6],
-"group__w25qxx__example__driver.html#ga0f65053ad28443f19ed73dbc3412b5b2":[0,0,5,35],
-"group__w25qxx__example__driver.html#ga0f65053ad28443f19ed73dbc3412b5b2":[2,0,1,1,35],
-"group__w25qxx__example__driver.html#ga0f65053ad28443f19ed73dbc3412b5b2":[2,0,1,0,35],
-"group__w25qxx__example__driver.html#ga143fa1f19a792142339f3d4e9ce078d0":[0,0,5,47],
-"group__w25qxx__example__driver.html#ga143fa1f19a792142339f3d4e9ce078d0":[2,0,1,2,5],
-"group__w25qxx__example__driver.html#ga143fa1f19a792142339f3d4e9ce078d0":[2,0,1,3,5],
-"group__w25qxx__example__driver.html#ga15cb243f227ef8d897ef3208b622bded":[2,0,1,1,2],
-"group__w25qxx__example__driver.html#ga15cb243f227ef8d897ef3208b622bded":[0,0,5,2],
-"group__w25qxx__example__driver.html#ga15cb243f227ef8d897ef3208b622bded":[2,0,1,0,2],
-"group__w25qxx__example__driver.html#ga16411577fcb794f7485912f5db1bdde9":[2,0,1,1,28],
-"group__w25qxx__example__driver.html#ga16411577fcb794f7485912f5db1bdde9":[0,0,5,28],
-"group__w25qxx__example__driver.html#ga16411577fcb794f7485912f5db1bdde9":[2,0,1,0,28],
-"group__w25qxx__example__driver.html#ga1e20768311dfdf33c77b442fa874b61a":[0,0,5,45],
-"group__w25qxx__example__driver.html#ga1e20768311dfdf33c77b442fa874b61a":[2,0,1,2,3],
-"group__w25qxx__example__driver.html#ga1e20768311dfdf33c77b442fa874b61a":[2,0,1,3,3],
-"group__w25qxx__example__driver.html#ga2cbcc018dc11a870d2e0fc3a8946b1d8":[0,0,5,10],
-"group__w25qxx__example__driver.html#ga2cbcc018dc11a870d2e0fc3a8946b1d8":[2,0,1,1,10],
-"group__w25qxx__example__driver.html#ga2cbcc018dc11a870d2e0fc3a8946b1d8":[2,0,1,0,10],
-"group__w25qxx__example__driver.html#ga31bcd3d2cc68d2fc589685b5087bd8b3":[2,0,1,0,9],
-"group__w25qxx__example__driver.html#ga31bcd3d2cc68d2fc589685b5087bd8b3":[0,0,5,9],
-"group__w25qxx__example__driver.html#ga31bcd3d2cc68d2fc589685b5087bd8b3":[2,0,1,1,9],
-"group__w25qxx__example__driver.html#ga364d891407cf323d3686d36ad6357604":[2,0,1,0,17],
-"group__w25qxx__example__driver.html#ga364d891407cf323d3686d36ad6357604":[0,0,5,17],
-"group__w25qxx__example__driver.html#ga364d891407cf323d3686d36ad6357604":[2,0,1,1,17],
-"group__w25qxx__example__driver.html#ga374d35b73fa61d5f7464c3effdae1d57":[2,0,1,0,23],
-"group__w25qxx__example__driver.html#ga374d35b73fa61d5f7464c3effdae1d57":[2,0,1,1,23],
-"group__w25qxx__example__driver.html#ga374d35b73fa61d5f7464c3effdae1d57":[0,0,5,23],
-"group__w25qxx__example__driver.html#ga395add1fa33f4f70d0ba52b38842dbdb":[0,0,5,18],
-"group__w25qxx__example__driver.html#ga395add1fa33f4f70d0ba52b38842dbdb":[2,0,1,1,18],
-"group__w25qxx__example__driver.html#ga395add1fa33f4f70d0ba52b38842dbdb":[2,0,1,0,18],
-"group__w25qxx__example__driver.html#ga39ff13988a3d451231cec3260c13a4cd":[2,0,1,1,31],
-"group__w25qxx__example__driver.html#ga39ff13988a3d451231cec3260c13a4cd":[2,0,1,0,31],
-"group__w25qxx__example__driver.html#ga39ff13988a3d451231cec3260c13a4cd":[0,0,5,31],
-"group__w25qxx__example__driver.html#ga413b420bc199d09ce5cafee4a4debb28":[2,0,1,0,14],
-"group__w25qxx__example__driver.html#ga413b420bc199d09ce5cafee4a4debb28":[0,0,5,14],
-"group__w25qxx__example__driver.html#ga413b420bc199d09ce5cafee4a4debb28":[2,0,1,1,14],
-"group__w25qxx__example__driver.html#ga4bbaf1a989fae25d16d07edb1e38ca4f":[2,0,1,1,16],
-"group__w25qxx__example__driver.html#ga4bbaf1a989fae25d16d07edb1e38ca4f":[2,0,1,0,16],
-"group__w25qxx__example__driver.html#ga4bbaf1a989fae25d16d07edb1e38ca4f":[0,0,5,16],
-"group__w25qxx__example__driver.html#ga4c1be6979b4dc878d07ec86b8624c9d2":[2,0,1,0,7],
-"group__w25qxx__example__driver.html#ga4c1be6979b4dc878d07ec86b8624c9d2":[0,0,5,7],
-"group__w25qxx__example__driver.html#ga4c1be6979b4dc878d07ec86b8624c9d2":[2,0,1,1,7],
-"group__w25qxx__example__driver.html#ga5599de31797633ae75a63bcd5a8f4736":[2,0,1,0,32],
-"group__w25qxx__example__driver.html#ga5599de31797633ae75a63bcd5a8f4736":[2,0,1,1,32],
-"group__w25qxx__example__driver.html#ga5599de31797633ae75a63bcd5a8f4736":[0,0,5,32],
-"group__w25qxx__example__driver.html#ga572c9f7a0bf2e7ab43dc078121162ec3":[2,0,1,3,4],
-"group__w25qxx__example__driver.html#ga572c9f7a0bf2e7ab43dc078121162ec3":[2,0,1,2,4],
-"group__w25qxx__example__driver.html#ga572c9f7a0bf2e7ab43dc078121162ec3":[0,0,5,46],
-"group__w25qxx__example__driver.html#ga5cf24fc78e1b45e845d02ec9133f46ab":[0,0,5,49],
-"group__w25qxx__example__driver.html#ga5cf24fc78e1b45e845d02ec9133f46ab":[2,0,1,2,7],
-"group__w25qxx__example__driver.html#ga5cf24fc78e1b45e845d02ec9133f46ab":[2,0,1,3,7],
-"group__w25qxx__example__driver.html#ga5e4938b4575c417ae22fa82079459b1a":[2,0,1,1,37],
 "group__w25qxx__example__driver.html#ga5e4938b4575c417ae22fa82079459b1a":[0,0,5,37],
-"group__w25qxx__example__driver.html#ga5e4938b4575c417ae22fa82079459b1a":[2,0,1,0,37],
-"group__w25qxx__example__driver.html#ga6142b5a1e8602e2990dec34015812615":[2,0,1,0,21],
 "group__w25qxx__example__driver.html#ga6142b5a1e8602e2990dec34015812615":[0,0,5,21],
-"group__w25qxx__example__driver.html#ga6142b5a1e8602e2990dec34015812615":[2,0,1,1,21],
-"group__w25qxx__example__driver.html#ga63f4e1dce2ef7c7de56461524fd22d04":[2,0,1,1,41],
-"group__w25qxx__example__driver.html#ga63f4e1dce2ef7c7de56461524fd22d04":[2,0,1,0,41],
 "group__w25qxx__example__driver.html#ga63f4e1dce2ef7c7de56461524fd22d04":[0,0,5,41],
-"group__w25qxx__example__driver.html#ga66726fc451c7804e8fec6eb46a6a77d6":[2,0,1,0,13],
-"group__w25qxx__example__driver.html#ga66726fc451c7804e8fec6eb46a6a77d6":[2,0,1,1,13],
 "group__w25qxx__example__driver.html#ga66726fc451c7804e8fec6eb46a6a77d6":[0,0,5,13],
-"group__w25qxx__example__driver.html#ga67c70da103511d1cff9274e61a08ce56":[2,0,1,0,11],
-"group__w25qxx__example__driver.html#ga67c70da103511d1cff9274e61a08ce56":[2,0,1,1,11],
 "group__w25qxx__example__driver.html#ga67c70da103511d1cff9274e61a08ce56":[0,0,5,11],
 "group__w25qxx__example__driver.html#ga7ade25a387b9d03ddecefd86fb328389":[0,0,5,4],
-"group__w25qxx__example__driver.html#ga7ade25a387b9d03ddecefd86fb328389":[2,0,1,1,4],
-"group__w25qxx__example__driver.html#ga7ade25a387b9d03ddecefd86fb328389":[2,0,1,0,4],
-"group__w25qxx__example__driver.html#ga825a567c535236d7d18ffccf07df59e9":[2,0,1,0,24],
 "group__w25qxx__example__driver.html#ga825a567c535236d7d18ffccf07df59e9":[0,0,5,24],
-"group__w25qxx__example__driver.html#ga825a567c535236d7d18ffccf07df59e9":[2,0,1,1,24],
-"group__w25qxx__example__driver.html#ga8a57e2d056d452abc14b0a08d4223251":[2,0,1,0,40],
-"group__w25qxx__example__driver.html#ga8a57e2d056d452abc14b0a08d4223251":[2,0,1,1,40],
-"group__w25qxx__example__driver.html#ga8a57e2d056d452abc14b0a08d4223251":[0,0,5,40]
+"group__w25qxx__example__driver.html#ga8a57e2d056d452abc14b0a08d4223251":[0,0,5,40],
+"group__w25qxx__example__driver.html#ga9325acc424c95624f15e11631082201d":[0,0,5,36],
+"group__w25qxx__example__driver.html#ga9b1854e0ae52f57523bc2fa7cc0656df":[0,0,5,22],
+"group__w25qxx__example__driver.html#ga9bc0e696b700d66f15b3605e10d33718":[0,0,5,38],
+"group__w25qxx__example__driver.html#gaa6c5f97106e769ba071973cc2e782ad4":[0,0,5,30],
+"group__w25qxx__example__driver.html#gaa7af99e92b3e81f5b202575b55dc3a7c":[0,0,5,12],
+"group__w25qxx__example__driver.html#gab5c990ebd4874137b7d23f2b896d4601":[0,0,5,39],
+"group__w25qxx__example__driver.html#gac0d9e08a37ee37563c8dbb501608a668":[0,0,5,20],
+"group__w25qxx__example__driver.html#gac1773fe914a01825ca28346205601036":[0,0,5,34],
+"group__w25qxx__example__driver.html#gac1c7f320706dd6d6d937da75b8a4da93":[0,0,5,26],
+"group__w25qxx__example__driver.html#gaca6b4c6ea32dd96a4ae8714e2862d67a":[0,0,5,29],
+"group__w25qxx__example__driver.html#gacc7435a39b61c44f0ce16690d5da896b":[0,0,5,5],
+"group__w25qxx__example__driver.html#gacdda3af55c024b55fc9939aa23650356":[0,0,5,44],
+"group__w25qxx__example__driver.html#gace2a5b7acd9798cfcaa2b5eb2f18e1d1":[0,0,5,15],
+"group__w25qxx__example__driver.html#gad243655eb738e44c50e6079c983fd782":[0,0,5,25],
+"group__w25qxx__example__driver.html#gae7cba4e0b22a1043fe304e46148fa13c":[0,0,5,1],
+"group__w25qxx__example__driver.html#gaeb167c2924a3490e9a8d11e0c57d2dc0":[0,0,5,43],
+"group__w25qxx__example__driver.html#gaee04edb9e97785e423dffe14a1cad780":[0,0,5,0],
+"group__w25qxx__example__driver.html#gaf390bbb2c4140f49d25822d963ead722":[0,0,5,3],
+"group__w25qxx__example__driver.html#gaf4736fff906c2f0c1dbed26b20847052":[0,0,5,8],
+"group__w25qxx__example__driver.html#gaf5f978c432de7d6adaf41cd256724a01":[0,0,5,19],
+"group__w25qxx__example__driver.html#gaf78e9f136e29b826c1a2b337b8451d6d":[0,0,5,42],
+"group__w25qxx__extern__driver.html":[0,0,3],
+"group__w25qxx__extern__driver.html#ga9623a3bec148b148498480518a66cb2b":[0,0,3,0],
+"group__w25qxx__interface__driver.html":[0,0,4],
+"group__w25qxx__interface__driver.html#ga091f3607fcdd47f9e5f94cf1397bd46a":[0,0,4,3],
+"group__w25qxx__interface__driver.html#ga2bdc17a556f1c801a38656331f3bb7b6":[0,0,4,4],
+"group__w25qxx__interface__driver.html#ga38e79039b913154c9dd1036ff52bb420":[0,0,4,2],
+"group__w25qxx__interface__driver.html#ga3d76ea1f431978f6b55edfd0628c94cd":[0,0,4,5],
+"group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e":[0,0,4,0],
+"group__w25qxx__interface__driver.html#ga964fa232abf98737cb98458eebfff82c":[0,0,4,1],
+"group__w25qxx__link__driver.html":[0,0,0],
+"group__w25qxx__link__driver.html#ga7555618f13d2de0003ae6d9483085180":[0,0,0,1],
+"group__w25qxx__link__driver.html#ga995378489f95bc6bbddbe710557e3384":[0,0,0,3],
+"group__w25qxx__link__driver.html#gab2587de93f1dba5664eede8cd787a88a":[0,0,0,5],
+"group__w25qxx__link__driver.html#gab8d49ef9dca942fe5f37c30dcd7e22a6":[0,0,0,0],
+"group__w25qxx__link__driver.html#gac8f0ca0a725790bace3241d1d616e3d1":[0,0,0,6],
+"group__w25qxx__link__driver.html#gaec8b55e83b46907be1dd9e7c50be550d":[0,0,0,4],
+"group__w25qxx__link__driver.html#gafc81bf850c80dfa316f0c6ab40be6e67":[0,0,0,2],
+"group__w25qxx__test__driver.html":[0,0,6],
+"group__w25qxx__test__driver.html#ga05d07036254d102ebea0d0b1e83862c8":[0,0,6,2],
+"group__w25qxx__test__driver.html#ga4ce42ca34d33cd64cb823040780999af":[0,0,6,1],
+"group__w25qxx__test__driver.html#ga8be86baae6f8448171125c70da1fbfa0":[0,0,6,0],
+"index.html":[],
+"mainpage_8h.html":[2,0,0,0,0],
+"mainpage_8h_source.html":[2,0,0,0,0],
+"pages.html":[],
+"structw25qxx__handle__s.html":[0,0,1,0],
+"structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f":[0,0,1,0,8],
+"structw25qxx__handle__s.html#a2121914a1858618e9216fa2daf0a42a2":[0,0,1,0,1],
+"structw25qxx__handle__s.html#a2d39cde883403779e3da9dd39c32bec5":[0,0,1,0,13],
+"structw25qxx__handle__s.html#a3d28993689552e18d554dc0644efcf16":[0,0,1,0,9],
+"structw25qxx__handle__s.html#a406c9433252b7366de417b7a60915c81":[0,0,1,0,4],
+"structw25qxx__handle__s.html#a4568e23228174b7d32678d9a96d2420c":[0,0,1,0,11],
+"structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729":[0,0,1,0,0],
+"structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b":[0,0,1,0,3],
+"structw25qxx__handle__s.html#a97ffc4fce945527bd6ab25a3596caef7":[0,0,1,0,5],
+"structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70":[0,0,1,0,10],
+"structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7":[0,0,1,0,6],
+"structw25qxx__handle__s.html#ac80aa2927adf500634749513e88c474b":[0,0,1,0,2],
+"structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679":[0,0,1,0,14],
+"structw25qxx__handle__s.html#aec834df46e5185868dfdcc6fcec2e801":[0,0,1,0,12],
+"structw25qxx__handle__s.html#aff7b59f569ec689a7580bd6911daafd5":[0,0,1,0,7],
+"structw25qxx__info__s.html":[0,0,1,1],
+"structw25qxx__info__s.html#a3366a5dce9b829e03c3d321c2b4df3f6":[0,0,1,1,7],
+"structw25qxx__info__s.html#a3d2b12bcac7a85ea8646bff9debe8660":[0,0,1,1,5],
+"structw25qxx__info__s.html#a41b0bd442708b70d252c50b92c75265a":[0,0,1,1,1],
+"structw25qxx__info__s.html#a5778305279cae46b2ecf862e97f73600":[0,0,1,1,2],
+"structw25qxx__info__s.html#a8f9dbe66ac0b66ebae0a36fcb4ba368e":[0,0,1,1,8],
+"structw25qxx__info__s.html#a9db82802561bf22d799b03a345f1d1dc":[0,0,1,1,4],
+"structw25qxx__info__s.html#ad25285dbf810c90f8eaf3fcef6f2b2ea":[0,0,1,1,3],
+"structw25qxx__info__s.html#ad8bde6ddadaf43d951e62f3befb9d35a":[0,0,1,1,6],
+"structw25qxx__info__s.html#af890958c72bd715cc6454a10dc846ae6":[0,0,1,1,0],
+"topics.html":[0]
 };
diff --git a/doc/html/plus.svg b/doc/html/plus.svg
new file mode 100644
index 0000000..0752016
--- /dev/null
+++ b/doc/html/plus.svg
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg width="12px" height="12px" viewBox="0 0 105.83333 105.83333" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg">
+  <g>
+    <rect style="fill:#808080;stroke-width:0" width="105.83333" height="105.83334" x="4.2409692e-08" y="-1.2701158e-06" ry="0" />
+    <rect style="fill:#fcfcfc;stroke-width:0" width="79.375" height="79.375" x="13.229166" y="13.229166" />
+    <rect style="fill:#808080;stroke-width:0" width="52.916668" height="15.874998" x="26.458332" y="44.979168" />
+    <rect style="fill:#808080;stroke-width:0" width="15.874998" height="52.916668" x="44.979168" y="26.458332" />
+  </g>
+</svg>
diff --git a/doc/html/plusd.svg b/doc/html/plusd.svg
new file mode 100644
index 0000000..0c65bfe
--- /dev/null
+++ b/doc/html/plusd.svg
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg width="12px" height="12px" viewBox="0 0 105.83333 105.83333" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg">
+  <g>
+    <rect style="fill:#808080;stroke-width:0" width="105.83333" height="105.83334" x="4.2409692e-08" y="-1.2701158e-06" ry="0" />
+    <rect style="fill:#000000;stroke-width:0" width="79.375" height="79.375" x="13.229166" y="13.229166" />
+    <rect style="fill:#808080;stroke-width:0" width="52.916668" height="15.874998" x="26.458332" y="44.979168" />
+    <rect style="fill:#808080;stroke-width:0" width="15.874998" height="52.916668" x="44.979168" y="26.458332" />
+  </g>
+</svg>
diff --git a/doc/html/resize.js b/doc/html/resize.js
index e1ad0fe..aaeb6fc 100644
--- a/doc/html/resize.js
+++ b/doc/html/resize.js
@@ -22,38 +22,45 @@
 
  @licend  The above is the entire license notice for the JavaScript code in this file
  */
+var once=1;
 function initResizable()
 {
   var cookie_namespace = 'doxygen';
-  var sidenav,navtree,content,header,collapsed,collapsedWidth=0,barWidth=6,desktop_vp=768,titleHeight;
+  var sidenav,navtree,content,header,barWidth=6,desktop_vp=768,titleHeight;
 
-  function readCookie(cookie)
+  function readSetting(cookie)
   {
-    var myCookie = cookie_namespace+"_"+cookie+"=";
-    if (document.cookie) {
-      var index = document.cookie.indexOf(myCookie);
-      if (index != -1) {
-        var valStart = index + myCookie.length;
-        var valEnd = document.cookie.indexOf(";", valStart);
-        if (valEnd == -1) {
-          valEnd = document.cookie.length;
+    if (window.chrome) {
+      var val = localStorage.getItem(cookie_namespace+'_width');
+      if (val) return val;
+    } else {
+      var myCookie = cookie_namespace+"_"+cookie+"=";
+      if (document.cookie) {
+        var index = document.cookie.indexOf(myCookie);
+        if (index != -1) {
+          var valStart = index + myCookie.length;
+          var valEnd = document.cookie.indexOf(";", valStart);
+          if (valEnd == -1) {
+            valEnd = document.cookie.length;
+          }
+          var val = document.cookie.substring(valStart, valEnd);
+          return val;
         }
-        var val = document.cookie.substring(valStart, valEnd);
-        return val;
       }
     }
-    return 0;
+    return 250;
   }
 
-  function writeCookie(cookie, val, expiration)
+  function writeSetting(cookie, val)
   {
-    if (val==undefined) return;
-    if (expiration == null) {
+    if (window.chrome) {
+      localStorage.setItem(cookie_namespace+"_width",val);
+    } else {
       var date = new Date();
       date.setTime(date.getTime()+(10*365*24*60*60*1000)); // default expiration is one week
       expiration = date.toGMTString();
+      document.cookie = cookie_namespace + "_" + cookie + "=" + val + "; SameSite=Lax; expires=" + expiration+"; path=/";
     }
-    document.cookie = cookie_namespace + "_" + cookie + "=" + val + "; expires=" + expiration+"; path=/";
   }
 
   function resizeWidth()
@@ -61,13 +68,19 @@ function initResizable()
     var windowWidth = $(window).width() + "px";
     var sidenavWidth = $(sidenav).outerWidth();
     content.css({marginLeft:parseInt(sidenavWidth)+"px"});
-    writeCookie('width',sidenavWidth-barWidth, null);
+    if (typeof page_layout!=='undefined' && page_layout==1) {
+      footer.css({marginLeft:parseInt(sidenavWidth)+"px"});
+    }
+    writeSetting('width',sidenavWidth-barWidth);
   }
 
   function restoreWidth(navWidth)
   {
     var windowWidth = $(window).width() + "px";
     content.css({marginLeft:parseInt(navWidth)+barWidth+"px"});
+    if (typeof page_layout!=='undefined' && page_layout==1) {
+      footer.css({marginLeft:parseInt(navWidth)+barWidth+"px"});
+    }
     sidenav.css({width:navWidth + "px"});
   }
 
@@ -75,23 +88,20 @@ function initResizable()
   {
     var headerHeight = header.outerHeight();
     var footerHeight = footer.outerHeight();
-    var windowHeight = $(window).height() - headerHeight - footerHeight;
-    content.css({height:windowHeight + "px"});
-    navtree.css({height:windowHeight + "px"});
-    sidenav.css({height:windowHeight + "px"});
-    var width=$(window).width();
-    if (width!=collapsedWidth) {
-      if (width<desktop_vp && collapsedWidth>=desktop_vp) {
-        if (!collapsed) {
-          collapseExpand();
-        }
-      } else if (width>desktop_vp && collapsedWidth<desktop_vp) {
-        if (collapsed) {
-          collapseExpand();
-        }
-      }
-      collapsedWidth=width;
+    var windowHeight = $(window).height();
+    var contentHeight,navtreeHeight,sideNavHeight;
+    if (typeof page_layout==='undefined' || page_layout==0) { /* DISABLE_INDEX=NO */
+      contentHeight = windowHeight - headerHeight - footerHeight;
+      navtreeHeight = contentHeight;
+      sideNavHeight = contentHeight;
+    } else if (page_layout==1) { /* DISABLE_INDEX=YES */
+      contentHeight = windowHeight - footerHeight;
+      navtreeHeight = windowHeight - headerHeight;
+      sideNavHeight = windowHeight;
     }
+    content.css({height:contentHeight + "px"});
+    navtree.css({height:navtreeHeight + "px"});
+    sidenav.css({height:sideNavHeight + "px"});
     if (location.hash.slice(1)) {
       (document.getElementById(location.hash.slice(1))||document.body).scrollIntoView();
     }
@@ -99,15 +109,17 @@ function initResizable()
 
   function collapseExpand()
   {
+    var newWidth;
     if (sidenav.width()>0) {
-      restoreWidth(0);
-      collapsed=true;
+      newWidth=0;
     }
     else {
-      var width = readCookie('width');
-      if (width>200 && width<$(window).width()) { restoreWidth(width); } else { restoreWidth(200); }
-      collapsed=false;
+      var width = readSetting('width');
+      newWidth = (width>250 && width<$(window).width()) ? width : 250;
     }
+    restoreWidth(newWidth);
+    var sidenavWidth = $(sidenav).outerWidth();
+    writeSetting('width',sidenavWidth-barWidth);
   }
 
   header  = $("#top");
@@ -126,7 +138,7 @@ function initResizable()
     $('#nav-sync').css({ right:'34px' });
     barWidth=20;
   }
-  var width = readCookie('width');
+  var width = readSetting('width');
   if (width) { restoreWidth(width); } else { resizeWidth(); }
   resizeHeight();
   var url = location.href;
@@ -134,7 +146,10 @@ function initResizable()
   if (i>=0) window.location.hash=url.substr(i);
   var _preventDefault = function(evt) { evt.preventDefault(); };
   $("#splitbar").bind("dragstart", _preventDefault).bind("selectstart", _preventDefault);
-  $(".ui-resizable-handle").dblclick(collapseExpand);
+  if (once) {
+    $(".ui-resizable-handle").dblclick(collapseExpand);
+    once=0
+  }
   $(window).on('load',resizeHeight);
 }
 /* @license-end */
diff --git a/doc/html/search/all_0.js b/doc/html/search/all_0.js
index ed42faa..5562cf2 100644
--- a/doc/html/search/all_0.js
+++ b/doc/html/search/all_0.js
@@ -1,4 +1,5 @@
 var searchData=
 [
-  ['address_5fmode_0',['address_mode',['../structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729',1,'w25qxx_handle_s']]]
+  ['address_5fmode_0',['address_mode',['../structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729',1,'w25qxx_handle_s']]],
+  ['advance_20driver_20function_1',['w25qxx advance driver function',['../group__w25qxx__advance__driver.html',1,'']]]
 ];
diff --git a/doc/html/search/all_1.js b/doc/html/search/all_1.js
index a926790..0007191 100644
--- a/doc/html/search/all_1.js
+++ b/doc/html/search/all_1.js
@@ -1,5 +1,6 @@
 var searchData=
 [
+  ['basic_20driver_20function_0',['w25qxx basic driver function',['../group__w25qxx__basic__driver.html',1,'']]],
   ['buf_1',['buf',['../structw25qxx__handle__s.html#a2121914a1858618e9216fa2daf0a42a2',1,'w25qxx_handle_s']]],
   ['buf_5f4k_2',['buf_4k',['../structw25qxx__handle__s.html#ac80aa2927adf500634749513e88c474b',1,'w25qxx_handle_s']]]
 ];
diff --git a/doc/html/search/all_2.js b/doc/html/search/all_2.js
index a165801..8a44786 100644
--- a/doc/html/search/all_2.js
+++ b/doc/html/search/all_2.js
@@ -1,5 +1,4 @@
 var searchData=
 [
-  ['chip_5fname_3',['chip_name',['../structw25qxx__info__s.html#af890958c72bd715cc6454a10dc846ae6',1,'w25qxx_info_s']]],
-  ['chip_5fname_4',['CHIP_NAME',['../driver__w25qxx_8c.html#adc9da0a24824ca1239b593f6459b3954',1,'driver_w25qxx.c']]]
+  ['chip_5fname_0',['chip_name',['../structw25qxx__info__s.html#af890958c72bd715cc6454a10dc846ae6',1,'w25qxx_info_s::chip_name'],['../driver__w25qxx_8c.html#adc9da0a24824ca1239b593f6459b3954',1,'CHIP_NAME:&#160;driver_w25qxx.c']]]
 ];
diff --git a/doc/html/search/all_3.js b/doc/html/search/all_3.js
index e97a971..4609aa8 100644
--- a/doc/html/search/all_3.js
+++ b/doc/html/search/all_3.js
@@ -1,29 +1,29 @@
 var searchData=
 [
-  ['debug_5fprint_5',['debug_print',['../structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b',1,'w25qxx_handle_s']]],
-  ['delay_5fms_6',['delay_ms',['../structw25qxx__handle__s.html#a406c9433252b7366de417b7a60915c81',1,'w25qxx_handle_s']]],
-  ['delay_5fus_7',['delay_us',['../structw25qxx__handle__s.html#a97ffc4fce945527bd6ab25a3596caef7',1,'w25qxx_handle_s']]],
-  ['driver_5fversion_8',['driver_version',['../structw25qxx__info__s.html#a41b0bd442708b70d252c50b92c75265a',1,'w25qxx_info_s']]],
-  ['driver_5fversion_9',['DRIVER_VERSION',['../driver__w25qxx_8c.html#ae578001fe043b4cca7a0edd801cfe9c4',1,'driver_w25qxx.c']]],
-  ['driver_5fw25qxx_2ec_10',['driver_w25qxx.c',['../driver__w25qxx_8c.html',1,'']]],
-  ['driver_5fw25qxx_2eh_11',['driver_w25qxx.h',['../driver__w25qxx_8h.html',1,'']]],
-  ['driver_5fw25qxx_5fadvance_2ec_12',['driver_w25qxx_advance.c',['../driver__w25qxx__advance_8c.html',1,'']]],
-  ['driver_5fw25qxx_5fadvance_2eh_13',['driver_w25qxx_advance.h',['../driver__w25qxx__advance_8h.html',1,'']]],
-  ['driver_5fw25qxx_5fbasic_2ec_14',['driver_w25qxx_basic.c',['../driver__w25qxx__basic_8c.html',1,'']]],
-  ['driver_5fw25qxx_5fbasic_2eh_15',['driver_w25qxx_basic.h',['../driver__w25qxx__basic_8h.html',1,'']]],
-  ['driver_5fw25qxx_5finterface_2eh_16',['driver_w25qxx_interface.h',['../driver__w25qxx__interface_8h.html',1,'']]],
-  ['driver_5fw25qxx_5finterface_5ftemplate_2ec_17',['driver_w25qxx_interface_template.c',['../driver__w25qxx__interface__template_8c.html',1,'']]],
-  ['driver_5fw25qxx_5flink_5fdebug_5fprint_18',['DRIVER_W25QXX_LINK_DEBUG_PRINT',['../group__w25qxx__link__driver.html#gab8d49ef9dca942fe5f37c30dcd7e22a6',1,'driver_w25qxx.h']]],
-  ['driver_5fw25qxx_5flink_5fdelay_5fms_19',['DRIVER_W25QXX_LINK_DELAY_MS',['../group__w25qxx__link__driver.html#ga7555618f13d2de0003ae6d9483085180',1,'driver_w25qxx.h']]],
-  ['driver_5fw25qxx_5flink_5fdelay_5fus_20',['DRIVER_W25QXX_LINK_DELAY_US',['../group__w25qxx__link__driver.html#gafc81bf850c80dfa316f0c6ab40be6e67',1,'driver_w25qxx.h']]],
-  ['driver_5fw25qxx_5flink_5finit_21',['DRIVER_W25QXX_LINK_INIT',['../group__w25qxx__link__driver.html#ga995378489f95bc6bbddbe710557e3384',1,'driver_w25qxx.h']]],
-  ['driver_5fw25qxx_5flink_5fspi_5fqspi_5fdeinit_22',['DRIVER_W25QXX_LINK_SPI_QSPI_DEINIT',['../group__w25qxx__link__driver.html#gaec8b55e83b46907be1dd9e7c50be550d',1,'driver_w25qxx.h']]],
-  ['driver_5fw25qxx_5flink_5fspi_5fqspi_5finit_23',['DRIVER_W25QXX_LINK_SPI_QSPI_INIT',['../group__w25qxx__link__driver.html#gab2587de93f1dba5664eede8cd787a88a',1,'driver_w25qxx.h']]],
-  ['driver_5fw25qxx_5flink_5fspi_5fqspi_5fwrite_5fread_24',['DRIVER_W25QXX_LINK_SPI_QSPI_WRITE_READ',['../group__w25qxx__link__driver.html#gac8f0ca0a725790bace3241d1d616e3d1',1,'driver_w25qxx.h']]],
-  ['driver_5fw25qxx_5fread_5ftest_2ec_25',['driver_w25qxx_read_test.c',['../driver__w25qxx__read__test_8c.html',1,'']]],
-  ['driver_5fw25qxx_5fread_5ftest_2eh_26',['driver_w25qxx_read_test.h',['../driver__w25qxx__read__test_8h.html',1,'']]],
-  ['driver_5fw25qxx_5fregister_5ftest_2ec_27',['driver_w25qxx_register_test.c',['../driver__w25qxx__register__test_8c.html',1,'']]],
-  ['driver_5fw25qxx_5fregister_5ftest_2eh_28',['driver_w25qxx_register_test.h',['../driver__w25qxx__register__test_8h.html',1,'']]],
-  ['dual_5fquad_5fspi_5fenable_29',['dual_quad_spi_enable',['../structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7',1,'w25qxx_handle_s']]],
-  ['dummy_30',['dummy',['../structw25qxx__handle__s.html#aff7b59f569ec689a7580bd6911daafd5',1,'w25qxx_handle_s']]]
+  ['debug_5fprint_0',['debug_print',['../structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b',1,'w25qxx_handle_s']]],
+  ['delay_5fms_1',['delay_ms',['../structw25qxx__handle__s.html#a406c9433252b7366de417b7a60915c81',1,'w25qxx_handle_s']]],
+  ['delay_5fus_2',['delay_us',['../structw25qxx__handle__s.html#a97ffc4fce945527bd6ab25a3596caef7',1,'w25qxx_handle_s']]],
+  ['driver_20function_3',['driver function',['../group__w25qxx__advance__driver.html',1,'w25qxx advance driver function'],['../group__w25qxx__basic__driver.html',1,'w25qxx basic driver function'],['../group__w25qxx__driver.html',1,'w25qxx driver function'],['../group__w25qxx__example__driver.html',1,'w25qxx example driver function'],['../group__w25qxx__extern__driver.html',1,'w25qxx extern driver function'],['../group__w25qxx__interface__driver.html',1,'w25qxx interface driver function'],['../group__w25qxx__link__driver.html',1,'w25qxx link driver function'],['../group__w25qxx__test__driver.html',1,'w25qxx test driver function']]],
+  ['driver_5fversion_4',['driver_version',['../structw25qxx__info__s.html#a41b0bd442708b70d252c50b92c75265a',1,'w25qxx_info_s::driver_version'],['../driver__w25qxx_8c.html#ae578001fe043b4cca7a0edd801cfe9c4',1,'DRIVER_VERSION:&#160;driver_w25qxx.c']]],
+  ['driver_5fw25qxx_2ec_5',['driver_w25qxx.c',['../driver__w25qxx_8c.html',1,'']]],
+  ['driver_5fw25qxx_2eh_6',['driver_w25qxx.h',['../driver__w25qxx_8h.html',1,'']]],
+  ['driver_5fw25qxx_5fadvance_2ec_7',['driver_w25qxx_advance.c',['../driver__w25qxx__advance_8c.html',1,'']]],
+  ['driver_5fw25qxx_5fadvance_2eh_8',['driver_w25qxx_advance.h',['../driver__w25qxx__advance_8h.html',1,'']]],
+  ['driver_5fw25qxx_5fbasic_2ec_9',['driver_w25qxx_basic.c',['../driver__w25qxx__basic_8c.html',1,'']]],
+  ['driver_5fw25qxx_5fbasic_2eh_10',['driver_w25qxx_basic.h',['../driver__w25qxx__basic_8h.html',1,'']]],
+  ['driver_5fw25qxx_5finterface_2eh_11',['driver_w25qxx_interface.h',['../driver__w25qxx__interface_8h.html',1,'']]],
+  ['driver_5fw25qxx_5finterface_5ftemplate_2ec_12',['driver_w25qxx_interface_template.c',['../driver__w25qxx__interface__template_8c.html',1,'']]],
+  ['driver_5fw25qxx_5flink_5fdebug_5fprint_13',['DRIVER_W25QXX_LINK_DEBUG_PRINT',['../group__w25qxx__link__driver.html#gab8d49ef9dca942fe5f37c30dcd7e22a6',1,'driver_w25qxx.h']]],
+  ['driver_5fw25qxx_5flink_5fdelay_5fms_14',['DRIVER_W25QXX_LINK_DELAY_MS',['../group__w25qxx__link__driver.html#ga7555618f13d2de0003ae6d9483085180',1,'driver_w25qxx.h']]],
+  ['driver_5fw25qxx_5flink_5fdelay_5fus_15',['DRIVER_W25QXX_LINK_DELAY_US',['../group__w25qxx__link__driver.html#gafc81bf850c80dfa316f0c6ab40be6e67',1,'driver_w25qxx.h']]],
+  ['driver_5fw25qxx_5flink_5finit_16',['DRIVER_W25QXX_LINK_INIT',['../group__w25qxx__link__driver.html#ga995378489f95bc6bbddbe710557e3384',1,'driver_w25qxx.h']]],
+  ['driver_5fw25qxx_5flink_5fspi_5fqspi_5fdeinit_17',['DRIVER_W25QXX_LINK_SPI_QSPI_DEINIT',['../group__w25qxx__link__driver.html#gaec8b55e83b46907be1dd9e7c50be550d',1,'driver_w25qxx.h']]],
+  ['driver_5fw25qxx_5flink_5fspi_5fqspi_5finit_18',['DRIVER_W25QXX_LINK_SPI_QSPI_INIT',['../group__w25qxx__link__driver.html#gab2587de93f1dba5664eede8cd787a88a',1,'driver_w25qxx.h']]],
+  ['driver_5fw25qxx_5flink_5fspi_5fqspi_5fwrite_5fread_19',['DRIVER_W25QXX_LINK_SPI_QSPI_WRITE_READ',['../group__w25qxx__link__driver.html#gac8f0ca0a725790bace3241d1d616e3d1',1,'driver_w25qxx.h']]],
+  ['driver_5fw25qxx_5fread_5ftest_2ec_20',['driver_w25qxx_read_test.c',['../driver__w25qxx__read__test_8c.html',1,'']]],
+  ['driver_5fw25qxx_5fread_5ftest_2eh_21',['driver_w25qxx_read_test.h',['../driver__w25qxx__read__test_8h.html',1,'']]],
+  ['driver_5fw25qxx_5fregister_5ftest_2ec_22',['driver_w25qxx_register_test.c',['../driver__w25qxx__register__test_8c.html',1,'']]],
+  ['driver_5fw25qxx_5fregister_5ftest_2eh_23',['driver_w25qxx_register_test.h',['../driver__w25qxx__register__test_8h.html',1,'']]],
+  ['dual_5fquad_5fspi_5fenable_24',['dual_quad_spi_enable',['../structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7',1,'w25qxx_handle_s']]],
+  ['dummy_25',['dummy',['../structw25qxx__handle__s.html#aff7b59f569ec689a7580bd6911daafd5',1,'w25qxx_handle_s']]]
 ];
diff --git a/doc/html/search/all_4.js b/doc/html/search/all_4.js
index f771790..04e1c05 100644
--- a/doc/html/search/all_4.js
+++ b/doc/html/search/all_4.js
@@ -1,5 +1,5 @@
 var searchData=
 [
-  ['inited_31',['inited',['../structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f',1,'w25qxx_handle_s']]],
-  ['interface_32',['interface',['../structw25qxx__info__s.html#a5778305279cae46b2ecf862e97f73600',1,'w25qxx_info_s']]]
+  ['example_20driver_20function_0',['w25qxx example driver function',['../group__w25qxx__example__driver.html',1,'']]],
+  ['extern_20driver_20function_1',['w25qxx extern driver function',['../group__w25qxx__extern__driver.html',1,'']]]
 ];
diff --git a/doc/html/search/all_5.js b/doc/html/search/all_5.js
index 69e5ce8..41e369b 100644
--- a/doc/html/search/all_5.js
+++ b/doc/html/search/all_5.js
@@ -1,4 +1,4 @@
 var searchData=
 [
-  ['libdriver_20w25qxx_33',['LibDriver W25QXX',['../index.html',1,'']]]
+  ['function_0',['function',['../group__w25qxx__advance__driver.html',1,'w25qxx advance driver function'],['../group__w25qxx__basic__driver.html',1,'w25qxx basic driver function'],['../group__w25qxx__driver.html',1,'w25qxx driver function'],['../group__w25qxx__example__driver.html',1,'w25qxx example driver function'],['../group__w25qxx__extern__driver.html',1,'w25qxx extern driver function'],['../group__w25qxx__interface__driver.html',1,'w25qxx interface driver function'],['../group__w25qxx__link__driver.html',1,'w25qxx link driver function'],['../group__w25qxx__test__driver.html',1,'w25qxx test driver function']]]
 ];
diff --git a/doc/html/search/all_6.js b/doc/html/search/all_6.js
index 4db9b4a..7475daf 100644
--- a/doc/html/search/all_6.js
+++ b/doc/html/search/all_6.js
@@ -1,8 +1,6 @@
 var searchData=
 [
-  ['mainpage_2eh_34',['mainpage.h',['../mainpage_8h.html',1,'']]],
-  ['manufacturer_5fname_35',['manufacturer_name',['../structw25qxx__info__s.html#ad25285dbf810c90f8eaf3fcef6f2b2ea',1,'w25qxx_info_s']]],
-  ['manufacturer_5fname_36',['MANUFACTURER_NAME',['../driver__w25qxx_8c.html#aaa2b8f5b105c3019df0cb346f472e803',1,'driver_w25qxx.c']]],
-  ['max_5fcurrent_37',['MAX_CURRENT',['../driver__w25qxx_8c.html#a2989837a37d6d63b59c6dd541b785435',1,'driver_w25qxx.c']]],
-  ['max_5fcurrent_5fma_38',['max_current_ma',['../structw25qxx__info__s.html#a9db82802561bf22d799b03a345f1d1dc',1,'w25qxx_info_s']]]
+  ['inited_0',['inited',['../structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f',1,'w25qxx_handle_s']]],
+  ['interface_1',['interface',['../structw25qxx__info__s.html#a5778305279cae46b2ecf862e97f73600',1,'w25qxx_info_s']]],
+  ['interface_20driver_20function_2',['w25qxx interface driver function',['../group__w25qxx__interface__driver.html',1,'']]]
 ];
diff --git a/doc/html/search/all_7.js b/doc/html/search/all_7.js
index 3190092..dd12bd6 100644
--- a/doc/html/search/all_7.js
+++ b/doc/html/search/all_7.js
@@ -1,4 +1,5 @@
 var searchData=
 [
-  ['param_39',['param',['../structw25qxx__handle__s.html#a3d28993689552e18d554dc0644efcf16',1,'w25qxx_handle_s']]]
+  ['libdriver_20w25qxx_0',['LibDriver W25QXX',['../index.html',1,'']]],
+  ['link_20driver_20function_1',['w25qxx link driver function',['../group__w25qxx__link__driver.html',1,'']]]
 ];
diff --git a/doc/html/search/all_8.js b/doc/html/search/all_8.js
index 0e1bbe5..fcbd64a 100644
--- a/doc/html/search/all_8.js
+++ b/doc/html/search/all_8.js
@@ -1,11 +1,7 @@
 var searchData=
 [
-  ['spi_5fqspi_40',['spi_qspi',['../structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70',1,'w25qxx_handle_s']]],
-  ['spi_5fqspi_5fdeinit_41',['spi_qspi_deinit',['../structw25qxx__handle__s.html#a4568e23228174b7d32678d9a96d2420c',1,'w25qxx_handle_s']]],
-  ['spi_5fqspi_5finit_42',['spi_qspi_init',['../structw25qxx__handle__s.html#aec834df46e5185868dfdcc6fcec2e801',1,'w25qxx_handle_s']]],
-  ['spi_5fqspi_5fwrite_5fread_43',['spi_qspi_write_read',['../structw25qxx__handle__s.html#a2d39cde883403779e3da9dd39c32bec5',1,'w25qxx_handle_s']]],
-  ['supply_5fvoltage_5fmax_44',['SUPPLY_VOLTAGE_MAX',['../driver__w25qxx_8c.html#a68eba8b601afe11f1b871d944976c035',1,'driver_w25qxx.c']]],
-  ['supply_5fvoltage_5fmax_5fv_45',['supply_voltage_max_v',['../structw25qxx__info__s.html#a3d2b12bcac7a85ea8646bff9debe8660',1,'w25qxx_info_s']]],
-  ['supply_5fvoltage_5fmin_46',['SUPPLY_VOLTAGE_MIN',['../driver__w25qxx_8c.html#aac8d8cbd899667d609787ef4cf37054d',1,'driver_w25qxx.c']]],
-  ['supply_5fvoltage_5fmin_5fv_47',['supply_voltage_min_v',['../structw25qxx__info__s.html#ad8bde6ddadaf43d951e62f3befb9d35a',1,'w25qxx_info_s']]]
+  ['mainpage_2eh_0',['mainpage.h',['../mainpage_8h.html',1,'']]],
+  ['manufacturer_5fname_1',['manufacturer_name',['../structw25qxx__info__s.html#ad25285dbf810c90f8eaf3fcef6f2b2ea',1,'w25qxx_info_s::manufacturer_name'],['../driver__w25qxx_8c.html#aaa2b8f5b105c3019df0cb346f472e803',1,'MANUFACTURER_NAME:&#160;driver_w25qxx.c']]],
+  ['max_5fcurrent_2',['MAX_CURRENT',['../driver__w25qxx_8c.html#a2989837a37d6d63b59c6dd541b785435',1,'driver_w25qxx.c']]],
+  ['max_5fcurrent_5fma_3',['max_current_ma',['../structw25qxx__info__s.html#a9db82802561bf22d799b03a345f1d1dc',1,'w25qxx_info_s']]]
 ];
diff --git a/doc/html/search/all_9.js b/doc/html/search/all_9.js
index 8d03904..22d1b3e 100644
--- a/doc/html/search/all_9.js
+++ b/doc/html/search/all_9.js
@@ -1,8 +1,4 @@
 var searchData=
 [
-  ['temperature_5fmax_48',['temperature_max',['../structw25qxx__info__s.html#a3366a5dce9b829e03c3d321c2b4df3f6',1,'w25qxx_info_s']]],
-  ['temperature_5fmax_49',['TEMPERATURE_MAX',['../driver__w25qxx_8c.html#a90c0b20d54005712fcc8cb01281360e9',1,'driver_w25qxx.c']]],
-  ['temperature_5fmin_50',['temperature_min',['../structw25qxx__info__s.html#a8f9dbe66ac0b66ebae0a36fcb4ba368e',1,'w25qxx_info_s']]],
-  ['temperature_5fmin_51',['TEMPERATURE_MIN',['../driver__w25qxx_8c.html#aab353db5bf4eb787f86a2080f609a551',1,'driver_w25qxx.c']]],
-  ['type_52',['type',['../structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679',1,'w25qxx_handle_s']]]
+  ['param_0',['param',['../structw25qxx__handle__s.html#a3d28993689552e18d554dc0644efcf16',1,'w25qxx_handle_s']]]
 ];
diff --git a/doc/html/search/all_a.js b/doc/html/search/all_a.js
index 2903f61..e5cd1d8 100644
--- a/doc/html/search/all_a.js
+++ b/doc/html/search/all_a.js
@@ -1,242 +1,11 @@
 var searchData=
 [
-  ['w25q128_53',['W25Q128',['../group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a75afcbe71906d3884f4fcc119c1cabd5',1,'driver_w25qxx.h']]],
-  ['w25q16_54',['W25Q16',['../group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a66acb81a2d520a7d92ce1d37210c6435',1,'driver_w25qxx.h']]],
-  ['w25q256_55',['W25Q256',['../group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca',1,'driver_w25qxx.h']]],
-  ['w25q32_56',['W25Q32',['../group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a4fdad551be6485441db5951f196db7cb',1,'driver_w25qxx.h']]],
-  ['w25q64_57',['W25Q64',['../group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a3ea98b2b3e06afa29441c51548bbb16e',1,'driver_w25qxx.h']]],
-  ['w25q80_58',['W25Q80',['../group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a1ad4f72437de5f26cb7b212d4d91e7c2',1,'driver_w25qxx.h']]],
-  ['w25qxx_20advance_20driver_20function_59',['w25qxx advance driver function',['../group__w25qxx__advance__driver.html',1,'']]],
-  ['w25qxx_20basic_20driver_20function_60',['w25qxx basic driver function',['../group__w25qxx__basic__driver.html',1,'']]],
-  ['w25qxx_20driver_20function_61',['w25qxx driver function',['../group__w25qxx__driver.html',1,'']]],
-  ['w25qxx_20example_20driver_20function_62',['w25qxx example driver function',['../group__w25qxx__example__driver.html',1,'']]],
-  ['w25qxx_20extern_20driver_20function_63',['w25qxx extern driver function',['../group__w25qxx__extern__driver.html',1,'']]],
-  ['w25qxx_20interface_20driver_20function_64',['w25qxx interface driver function',['../group__w25qxx__interface__driver.html',1,'']]],
-  ['w25qxx_20link_20driver_20function_65',['w25qxx link driver function',['../group__w25qxx__link__driver.html',1,'']]],
-  ['w25qxx_20test_20driver_20function_66',['w25qxx test driver function',['../group__w25qxx__test__driver.html',1,'']]],
-  ['w25qxx_5faddress_5fmode_5f3_5fbyte_67',['W25QXX_ADDRESS_MODE_3_BYTE',['../group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503',1,'driver_w25qxx.h']]],
-  ['w25qxx_5faddress_5fmode_5f4_5fbyte_68',['W25QXX_ADDRESS_MODE_4_BYTE',['../group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe',1,'driver_w25qxx.h']]],
-  ['w25qxx_5faddress_5fmode_5ft_69',['w25qxx_address_mode_t',['../group__w25qxx__basic__driver.html#gaa4c45f146d1ade8a2da8e751818fa4a2',1,'driver_w25qxx.h']]],
-  ['w25qxx_5fadvance_5fblock_5ferase_5f32k_70',['w25qxx_advance_block_erase_32k',['../group__w25qxx__example__driver.html#gaee04edb9e97785e423dffe14a1cad780',1,'w25qxx_advance_block_erase_32k(uint32_t addr):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#gaee04edb9e97785e423dffe14a1cad780',1,'w25qxx_advance_block_erase_32k(uint32_t addr):&#160;driver_w25qxx_advance.c']]],
-  ['w25qxx_5fadvance_5fblock_5ferase_5f64k_71',['w25qxx_advance_block_erase_64k',['../group__w25qxx__example__driver.html#gae7cba4e0b22a1043fe304e46148fa13c',1,'w25qxx_advance_block_erase_64k(uint32_t addr):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#gae7cba4e0b22a1043fe304e46148fa13c',1,'w25qxx_advance_block_erase_64k(uint32_t addr):&#160;driver_w25qxx_advance.c']]],
-  ['w25qxx_5fadvance_5fchip_5ferase_72',['w25qxx_advance_chip_erase',['../group__w25qxx__example__driver.html#ga15cb243f227ef8d897ef3208b622bded',1,'w25qxx_advance_chip_erase(void):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#ga15cb243f227ef8d897ef3208b622bded',1,'w25qxx_advance_chip_erase(void):&#160;driver_w25qxx_advance.c']]],
-  ['w25qxx_5fadvance_5fdeinit_73',['w25qxx_advance_deinit',['../group__w25qxx__example__driver.html#gaf390bbb2c4140f49d25822d963ead722',1,'w25qxx_advance_deinit(void):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#gaf390bbb2c4140f49d25822d963ead722',1,'w25qxx_advance_deinit(void):&#160;driver_w25qxx_advance.c']]],
-  ['w25qxx_5fadvance_5ffast_5fread_74',['w25qxx_advance_fast_read',['../group__w25qxx__example__driver.html#ga7ade25a387b9d03ddecefd86fb328389',1,'w25qxx_advance_fast_read(uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#ga7ade25a387b9d03ddecefd86fb328389',1,'w25qxx_advance_fast_read(uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx_advance.c']]],
-  ['w25qxx_5fadvance_5fget_5fget_5fjedec_5fid_75',['w25qxx_advance_get_get_jedec_id',['../group__w25qxx__example__driver.html#gacc7435a39b61c44f0ce16690d5da896b',1,'w25qxx_advance_get_get_jedec_id(uint8_t *manufacturer, uint8_t device_id[2]):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#gacc7435a39b61c44f0ce16690d5da896b',1,'w25qxx_advance_get_get_jedec_id(uint8_t *manufacturer, uint8_t device_id[2]):&#160;driver_w25qxx_advance.c']]],
-  ['w25qxx_5fadvance_5fget_5fid_76',['w25qxx_advance_get_id',['../group__w25qxx__example__driver.html#ga0f49d960f8b6c6498ab293b369ffc389',1,'w25qxx_advance_get_id(uint8_t *manufacturer, uint8_t *device_id):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#ga0f49d960f8b6c6498ab293b369ffc389',1,'w25qxx_advance_get_id(uint8_t *manufacturer, uint8_t *device_id):&#160;driver_w25qxx_advance.c']]],
-  ['w25qxx_5fadvance_5fget_5fstatus1_77',['w25qxx_advance_get_status1',['../group__w25qxx__example__driver.html#ga4c1be6979b4dc878d07ec86b8624c9d2',1,'w25qxx_advance_get_status1(uint8_t *status):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#ga4c1be6979b4dc878d07ec86b8624c9d2',1,'w25qxx_advance_get_status1(uint8_t *status):&#160;driver_w25qxx_advance.c']]],
-  ['w25qxx_5fadvance_5fget_5fstatus2_78',['w25qxx_advance_get_status2',['../group__w25qxx__example__driver.html#gaf4736fff906c2f0c1dbed26b20847052',1,'w25qxx_advance_get_status2(uint8_t *status):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#gaf4736fff906c2f0c1dbed26b20847052',1,'w25qxx_advance_get_status2(uint8_t *status):&#160;driver_w25qxx_advance.c']]],
-  ['w25qxx_5fadvance_5fget_5fstatus3_79',['w25qxx_advance_get_status3',['../group__w25qxx__example__driver.html#ga31bcd3d2cc68d2fc589685b5087bd8b3',1,'w25qxx_advance_get_status3(uint8_t *status):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#ga31bcd3d2cc68d2fc589685b5087bd8b3',1,'w25qxx_advance_get_status3(uint8_t *status):&#160;driver_w25qxx_advance.c']]],
-  ['w25qxx_5fadvance_5fglobal_5fblock_5flock_80',['w25qxx_advance_global_block_lock',['../group__w25qxx__example__driver.html#ga2cbcc018dc11a870d2e0fc3a8946b1d8',1,'w25qxx_advance_global_block_lock(void):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#ga2cbcc018dc11a870d2e0fc3a8946b1d8',1,'w25qxx_advance_global_block_lock(void):&#160;driver_w25qxx_advance.c']]],
-  ['w25qxx_5fadvance_5fglobal_5fblock_5funlock_81',['w25qxx_advance_global_block_unlock',['../group__w25qxx__example__driver.html#ga67c70da103511d1cff9274e61a08ce56',1,'w25qxx_advance_global_block_unlock(void):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#ga67c70da103511d1cff9274e61a08ce56',1,'w25qxx_advance_global_block_unlock(void):&#160;driver_w25qxx_advance.c']]],
-  ['w25qxx_5fadvance_5findividual_5fblock_5flock_82',['w25qxx_advance_individual_block_lock',['../group__w25qxx__example__driver.html#gaa7af99e92b3e81f5b202575b55dc3a7c',1,'w25qxx_advance_individual_block_lock(uint32_t addr):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#gaa7af99e92b3e81f5b202575b55dc3a7c',1,'w25qxx_advance_individual_block_lock(uint32_t addr):&#160;driver_w25qxx_advance.c']]],
-  ['w25qxx_5fadvance_5findividual_5fblock_5funlock_83',['w25qxx_advance_individual_block_unlock',['../group__w25qxx__example__driver.html#ga66726fc451c7804e8fec6eb46a6a77d6',1,'w25qxx_advance_individual_block_unlock(uint32_t addr):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#ga66726fc451c7804e8fec6eb46a6a77d6',1,'w25qxx_advance_individual_block_unlock(uint32_t addr):&#160;driver_w25qxx_advance.c']]],
-  ['w25qxx_5fadvance_5finit_84',['w25qxx_advance_init',['../group__w25qxx__example__driver.html#ga413b420bc199d09ce5cafee4a4debb28',1,'w25qxx_advance_init(w25qxx_type_t type, w25qxx_interface_t interface, w25qxx_bool_t dual_quad_spi_enable):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#ga413b420bc199d09ce5cafee4a4debb28',1,'w25qxx_advance_init(w25qxx_type_t type, w25qxx_interface_t interface, w25qxx_bool_t dual_quad_spi_enable):&#160;driver_w25qxx_advance.c']]],
-  ['w25qxx_5fadvance_5fonly_5fqspi_5fset_5fread_5fparameters_85',['w25qxx_advance_only_qspi_set_read_parameters',['../group__w25qxx__example__driver.html#gace2a5b7acd9798cfcaa2b5eb2f18e1d1',1,'w25qxx_advance_only_qspi_set_read_parameters(w25qxx_qspi_read_dummy_t dummy, w25qxx_qspi_read_wrap_length_t length):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#gace2a5b7acd9798cfcaa2b5eb2f18e1d1',1,'w25qxx_advance_only_qspi_set_read_parameters(w25qxx_qspi_read_dummy_t dummy, w25qxx_qspi_read_wrap_length_t length):&#160;driver_w25qxx_advance.c']]],
-  ['w25qxx_5fadvance_5fonly_5fspi_5ffast_5fread_5fdual_5fio_86',['w25qxx_advance_only_spi_fast_read_dual_io',['../group__w25qxx__example__driver.html#ga4bbaf1a989fae25d16d07edb1e38ca4f',1,'w25qxx_advance_only_spi_fast_read_dual_io(uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#ga4bbaf1a989fae25d16d07edb1e38ca4f',1,'w25qxx_advance_only_spi_fast_read_dual_io(uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx_advance.c']]],
-  ['w25qxx_5fadvance_5fonly_5fspi_5ffast_5fread_5fdual_5foutput_87',['w25qxx_advance_only_spi_fast_read_dual_output',['../group__w25qxx__example__driver.html#ga364d891407cf323d3686d36ad6357604',1,'w25qxx_advance_only_spi_fast_read_dual_output(uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#ga364d891407cf323d3686d36ad6357604',1,'w25qxx_advance_only_spi_fast_read_dual_output(uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx_advance.c']]],
-  ['w25qxx_5fadvance_5fonly_5fspi_5ffast_5fread_5fquad_5fio_88',['w25qxx_advance_only_spi_fast_read_quad_io',['../group__w25qxx__example__driver.html#ga395add1fa33f4f70d0ba52b38842dbdb',1,'w25qxx_advance_only_spi_fast_read_quad_io(uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#ga395add1fa33f4f70d0ba52b38842dbdb',1,'w25qxx_advance_only_spi_fast_read_quad_io(uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx_advance.c']]],
-  ['w25qxx_5fadvance_5fonly_5fspi_5ffast_5fread_5fquad_5foutput_89',['w25qxx_advance_only_spi_fast_read_quad_output',['../group__w25qxx__example__driver.html#gaf5f978c432de7d6adaf41cd256724a01',1,'w25qxx_advance_only_spi_fast_read_quad_output(uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#gaf5f978c432de7d6adaf41cd256724a01',1,'w25qxx_advance_only_spi_fast_read_quad_output(uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx_advance.c']]],
-  ['w25qxx_5fadvance_5fonly_5fspi_5fget_5fmanufacturer_5fdevice_5fid_5fdual_5fio_90',['w25qxx_advance_only_spi_get_manufacturer_device_id_dual_io',['../group__w25qxx__example__driver.html#gac0d9e08a37ee37563c8dbb501608a668',1,'w25qxx_advance_only_spi_get_manufacturer_device_id_dual_io(uint8_t *manufacturer, uint8_t *device_id):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#gac0d9e08a37ee37563c8dbb501608a668',1,'w25qxx_advance_only_spi_get_manufacturer_device_id_dual_io(uint8_t *manufacturer, uint8_t *device_id):&#160;driver_w25qxx_advance.c']]],
-  ['w25qxx_5fadvance_5fonly_5fspi_5fget_5fmanufacturer_5fdevice_5fid_5fquad_5fio_91',['w25qxx_advance_only_spi_get_manufacturer_device_id_quad_io',['../group__w25qxx__example__driver.html#ga6142b5a1e8602e2990dec34015812615',1,'w25qxx_advance_only_spi_get_manufacturer_device_id_quad_io(uint8_t *manufacturer, uint8_t *device_id):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#ga6142b5a1e8602e2990dec34015812615',1,'w25qxx_advance_only_spi_get_manufacturer_device_id_quad_io(uint8_t *manufacturer, uint8_t *device_id):&#160;driver_w25qxx_advance.c']]],
-  ['w25qxx_5fadvance_5fonly_5fspi_5fget_5fsfdp_92',['w25qxx_advance_only_spi_get_sfdp',['../group__w25qxx__example__driver.html#ga9b1854e0ae52f57523bc2fa7cc0656df',1,'w25qxx_advance_only_spi_get_sfdp(uint8_t sfdp[256]):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#ga9b1854e0ae52f57523bc2fa7cc0656df',1,'w25qxx_advance_only_spi_get_sfdp(uint8_t sfdp[256]):&#160;driver_w25qxx_advance.c']]],
-  ['w25qxx_5fadvance_5fonly_5fspi_5fget_5funique_5fid_93',['w25qxx_advance_only_spi_get_unique_id',['../group__w25qxx__example__driver.html#ga374d35b73fa61d5f7464c3effdae1d57',1,'w25qxx_advance_only_spi_get_unique_id(uint8_t id[8]):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#ga374d35b73fa61d5f7464c3effdae1d57',1,'w25qxx_advance_only_spi_get_unique_id(uint8_t id[8]):&#160;driver_w25qxx_advance.c']]],
-  ['w25qxx_5fadvance_5fonly_5fspi_5foctal_5fword_5fread_5fquad_5fio_94',['w25qxx_advance_only_spi_octal_word_read_quad_io',['../group__w25qxx__example__driver.html#ga825a567c535236d7d18ffccf07df59e9',1,'w25qxx_advance_only_spi_octal_word_read_quad_io(uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#ga825a567c535236d7d18ffccf07df59e9',1,'w25qxx_advance_only_spi_octal_word_read_quad_io(uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx_advance.c']]],
-  ['w25qxx_5fadvance_5fonly_5fspi_5fpage_5fprogram_5fquad_5finput_95',['w25qxx_advance_only_spi_page_program_quad_input',['../group__w25qxx__example__driver.html#gad243655eb738e44c50e6079c983fd782',1,'w25qxx_advance_only_spi_page_program_quad_input(uint32_t addr, uint8_t *data, uint16_t len):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#gad243655eb738e44c50e6079c983fd782',1,'w25qxx_advance_only_spi_page_program_quad_input(uint32_t addr, uint8_t *data, uint16_t len):&#160;driver_w25qxx_advance.c']]],
-  ['w25qxx_5fadvance_5fonly_5fspi_5fread_96',['w25qxx_advance_only_spi_read',['../group__w25qxx__example__driver.html#gac1c7f320706dd6d6d937da75b8a4da93',1,'w25qxx_advance_only_spi_read(uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#gac1c7f320706dd6d6d937da75b8a4da93',1,'w25qxx_advance_only_spi_read(uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx_advance.c']]],
-  ['w25qxx_5fadvance_5fonly_5fspi_5fread_5fsecurity_5fregister_97',['w25qxx_advance_only_spi_read_security_register',['../group__w25qxx__example__driver.html#ga02652a58ee418b432cf77505809d7d42',1,'w25qxx_advance_only_spi_read_security_register(w25qxx_security_register_t num, uint8_t data[256]):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#ga02652a58ee418b432cf77505809d7d42',1,'w25qxx_advance_only_spi_read_security_register(w25qxx_security_register_t num, uint8_t data[256]):&#160;driver_w25qxx_advance.c']]],
-  ['w25qxx_5fadvance_5fonly_5fspi_5fset_5fburst_5fwith_5fwrap_98',['w25qxx_advance_only_spi_set_burst_with_wrap',['../group__w25qxx__example__driver.html#ga16411577fcb794f7485912f5db1bdde9',1,'w25qxx_advance_only_spi_set_burst_with_wrap(w25qxx_burst_wrap_t wrap):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#ga16411577fcb794f7485912f5db1bdde9',1,'w25qxx_advance_only_spi_set_burst_with_wrap(w25qxx_burst_wrap_t wrap):&#160;driver_w25qxx_advance.c']]],
-  ['w25qxx_5fadvance_5fonly_5fspi_5fword_5fread_5fquad_5fio_99',['w25qxx_advance_only_spi_word_read_quad_io',['../group__w25qxx__example__driver.html#gaca6b4c6ea32dd96a4ae8714e2862d67a',1,'w25qxx_advance_only_spi_word_read_quad_io(uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#gaca6b4c6ea32dd96a4ae8714e2862d67a',1,'w25qxx_advance_only_spi_word_read_quad_io(uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx_advance.c']]],
-  ['w25qxx_5fadvance_5fonly_5fspi_5fwrite_5fsecurity_5fregister_100',['w25qxx_advance_only_spi_write_security_register',['../group__w25qxx__example__driver.html#gaa6c5f97106e769ba071973cc2e782ad4',1,'w25qxx_advance_only_spi_write_security_register(w25qxx_security_register_t num, uint8_t data[256]):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#gaa6c5f97106e769ba071973cc2e782ad4',1,'w25qxx_advance_only_spi_write_security_register(w25qxx_security_register_t num, uint8_t data[256]):&#160;driver_w25qxx_advance.c']]],
-  ['w25qxx_5fadvance_5fpage_5fprogram_101',['w25qxx_advance_page_program',['../group__w25qxx__example__driver.html#ga39ff13988a3d451231cec3260c13a4cd',1,'w25qxx_advance_page_program(uint32_t addr, uint8_t *data, uint16_t len):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#ga39ff13988a3d451231cec3260c13a4cd',1,'w25qxx_advance_page_program(uint32_t addr, uint8_t *data, uint16_t len):&#160;driver_w25qxx_advance.c']]],
-  ['w25qxx_5fadvance_5fpower_5fdown_102',['w25qxx_advance_power_down',['../group__w25qxx__example__driver.html#ga5599de31797633ae75a63bcd5a8f4736',1,'w25qxx_advance_power_down(void):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#ga5599de31797633ae75a63bcd5a8f4736',1,'w25qxx_advance_power_down(void):&#160;driver_w25qxx_advance.c']]],
-  ['w25qxx_5fadvance_5fread_103',['w25qxx_advance_read',['../group__w25qxx__example__driver.html#ga013a389763200b54daaa345adf9329dc',1,'w25qxx_advance_read(uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#ga013a389763200b54daaa345adf9329dc',1,'w25qxx_advance_read(uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx_advance.c']]],
-  ['w25qxx_5fadvance_5fread_5fblock_5flock_104',['w25qxx_advance_read_block_lock',['../group__w25qxx__example__driver.html#gac1773fe914a01825ca28346205601036',1,'w25qxx_advance_read_block_lock(uint32_t addr, uint8_t *value):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#gac1773fe914a01825ca28346205601036',1,'w25qxx_advance_read_block_lock(uint32_t addr, uint8_t *value):&#160;driver_w25qxx_advance.c']]],
-  ['w25qxx_5fadvance_5freset_105',['w25qxx_advance_reset',['../group__w25qxx__example__driver.html#ga0f65053ad28443f19ed73dbc3412b5b2',1,'w25qxx_advance_reset(void):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#ga0f65053ad28443f19ed73dbc3412b5b2',1,'w25qxx_advance_reset(void):&#160;driver_w25qxx_advance.c']]],
-  ['w25qxx_5fadvance_5fsector_5ferase_5f4k_106',['w25qxx_advance_sector_erase_4k',['../group__w25qxx__example__driver.html#ga9325acc424c95624f15e11631082201d',1,'w25qxx_advance_sector_erase_4k(uint32_t addr):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#ga9325acc424c95624f15e11631082201d',1,'w25qxx_advance_sector_erase_4k(uint32_t addr):&#160;driver_w25qxx_advance.c']]],
-  ['w25qxx_5fadvance_5fset_5fstatus1_107',['w25qxx_advance_set_status1',['../group__w25qxx__example__driver.html#ga5e4938b4575c417ae22fa82079459b1a',1,'w25qxx_advance_set_status1(uint8_t status):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#ga5e4938b4575c417ae22fa82079459b1a',1,'w25qxx_advance_set_status1(uint8_t status):&#160;driver_w25qxx_advance.c']]],
-  ['w25qxx_5fadvance_5fset_5fstatus2_108',['w25qxx_advance_set_status2',['../group__w25qxx__example__driver.html#ga9bc0e696b700d66f15b3605e10d33718',1,'w25qxx_advance_set_status2(uint8_t status):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#ga9bc0e696b700d66f15b3605e10d33718',1,'w25qxx_advance_set_status2(uint8_t status):&#160;driver_w25qxx_advance.c']]],
-  ['w25qxx_5fadvance_5fset_5fstatus3_109',['w25qxx_advance_set_status3',['../group__w25qxx__example__driver.html#gab5c990ebd4874137b7d23f2b896d4601',1,'w25qxx_advance_set_status3(uint8_t status):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#gab5c990ebd4874137b7d23f2b896d4601',1,'w25qxx_advance_set_status3(uint8_t status):&#160;driver_w25qxx_advance.c']]],
-  ['w25qxx_5fadvance_5fwake_5fup_110',['w25qxx_advance_wake_up',['../group__w25qxx__example__driver.html#ga8a57e2d056d452abc14b0a08d4223251',1,'w25qxx_advance_wake_up(void):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#ga8a57e2d056d452abc14b0a08d4223251',1,'w25qxx_advance_wake_up(void):&#160;driver_w25qxx_advance.c']]],
-  ['w25qxx_5fadvance_5fwrite_111',['w25qxx_advance_write',['../group__w25qxx__example__driver.html#ga63f4e1dce2ef7c7de56461524fd22d04',1,'w25qxx_advance_write(uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#ga63f4e1dce2ef7c7de56461524fd22d04',1,'w25qxx_advance_write(uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx_advance.c']]],
-  ['w25qxx_5fbasic_5fchip_5ferase_112',['w25qxx_basic_chip_erase',['../group__w25qxx__example__driver.html#gaf78e9f136e29b826c1a2b337b8451d6d',1,'w25qxx_basic_chip_erase(void):&#160;driver_w25qxx_basic.c'],['../group__w25qxx__example__driver.html#gaf78e9f136e29b826c1a2b337b8451d6d',1,'w25qxx_basic_chip_erase(void):&#160;driver_w25qxx_basic.c']]],
-  ['w25qxx_5fbasic_5fdeinit_113',['w25qxx_basic_deinit',['../group__w25qxx__example__driver.html#gaeb167c2924a3490e9a8d11e0c57d2dc0',1,'w25qxx_basic_deinit(void):&#160;driver_w25qxx_basic.c'],['../group__w25qxx__example__driver.html#gaeb167c2924a3490e9a8d11e0c57d2dc0',1,'w25qxx_basic_deinit(void):&#160;driver_w25qxx_basic.c']]],
-  ['w25qxx_5fbasic_5fget_5fid_114',['w25qxx_basic_get_id',['../group__w25qxx__example__driver.html#gacdda3af55c024b55fc9939aa23650356',1,'w25qxx_basic_get_id(uint8_t *manufacturer, uint8_t *device_id):&#160;driver_w25qxx_basic.c'],['../group__w25qxx__example__driver.html#gacdda3af55c024b55fc9939aa23650356',1,'w25qxx_basic_get_id(uint8_t *manufacturer, uint8_t *device_id):&#160;driver_w25qxx_basic.c']]],
-  ['w25qxx_5fbasic_5finit_115',['w25qxx_basic_init',['../group__w25qxx__example__driver.html#ga1e20768311dfdf33c77b442fa874b61a',1,'w25qxx_basic_init(w25qxx_type_t type, w25qxx_interface_t interface, w25qxx_bool_t dual_quad_spi_enable):&#160;driver_w25qxx_basic.c'],['../group__w25qxx__example__driver.html#ga1e20768311dfdf33c77b442fa874b61a',1,'w25qxx_basic_init(w25qxx_type_t type, w25qxx_interface_t interface, w25qxx_bool_t dual_quad_spi_enable):&#160;driver_w25qxx_basic.c']]],
-  ['w25qxx_5fbasic_5fpower_5fdown_116',['w25qxx_basic_power_down',['../group__w25qxx__example__driver.html#ga572c9f7a0bf2e7ab43dc078121162ec3',1,'w25qxx_basic_power_down(void):&#160;driver_w25qxx_basic.c'],['../group__w25qxx__example__driver.html#ga572c9f7a0bf2e7ab43dc078121162ec3',1,'w25qxx_basic_power_down(void):&#160;driver_w25qxx_basic.c']]],
-  ['w25qxx_5fbasic_5fread_117',['w25qxx_basic_read',['../group__w25qxx__example__driver.html#ga143fa1f19a792142339f3d4e9ce078d0',1,'w25qxx_basic_read(uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx_basic.c'],['../group__w25qxx__example__driver.html#ga143fa1f19a792142339f3d4e9ce078d0',1,'w25qxx_basic_read(uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx_basic.c']]],
-  ['w25qxx_5fbasic_5fwake_5fup_118',['w25qxx_basic_wake_up',['../group__w25qxx__example__driver.html#ga02914409a9db38f35bc89d9fc4d96a17',1,'w25qxx_basic_wake_up(void):&#160;driver_w25qxx_basic.c'],['../group__w25qxx__example__driver.html#ga02914409a9db38f35bc89d9fc4d96a17',1,'w25qxx_basic_wake_up(void):&#160;driver_w25qxx_basic.c']]],
-  ['w25qxx_5fbasic_5fwrite_119',['w25qxx_basic_write',['../group__w25qxx__example__driver.html#ga5cf24fc78e1b45e845d02ec9133f46ab',1,'w25qxx_basic_write(uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx_basic.c'],['../group__w25qxx__example__driver.html#ga5cf24fc78e1b45e845d02ec9133f46ab',1,'w25qxx_basic_write(uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx_basic.c']]],
-  ['w25qxx_5fblock_5ferase_5f32k_120',['w25qxx_block_erase_32k',['../group__w25qxx__basic__driver.html#ga39c8fb382e8c3e4d57232dfa79af781c',1,'w25qxx_block_erase_32k(w25qxx_handle_t *handle, uint32_t addr):&#160;driver_w25qxx.c'],['../group__w25qxx__basic__driver.html#ga39c8fb382e8c3e4d57232dfa79af781c',1,'w25qxx_block_erase_32k(w25qxx_handle_t *handle, uint32_t addr):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5fblock_5ferase_5f64k_121',['w25qxx_block_erase_64k',['../group__w25qxx__basic__driver.html#gaf53bc5f6073482b9b74efd417ec7ac83',1,'w25qxx_block_erase_64k(w25qxx_handle_t *handle, uint32_t addr):&#160;driver_w25qxx.c'],['../group__w25qxx__basic__driver.html#gaf53bc5f6073482b9b74efd417ec7ac83',1,'w25qxx_block_erase_64k(w25qxx_handle_t *handle, uint32_t addr):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5fbool_5ffalse_122',['W25QXX_BOOL_FALSE',['../group__w25qxx__basic__driver.html#ggafb2690946f5baf4be6f3a63dde5491fba02afbdc2c6c3d761cd31ac39c857ee9a',1,'driver_w25qxx.h']]],
-  ['w25qxx_5fbool_5ft_123',['w25qxx_bool_t',['../group__w25qxx__basic__driver.html#gafb2690946f5baf4be6f3a63dde5491fb',1,'driver_w25qxx.h']]],
-  ['w25qxx_5fbool_5ftrue_124',['W25QXX_BOOL_TRUE',['../group__w25qxx__basic__driver.html#ggafb2690946f5baf4be6f3a63dde5491fbae2a935d12b0b1bc9fc321246ee0e0df8',1,'driver_w25qxx.h']]],
-  ['w25qxx_5fburst_5fwrap_5f16_5fbyte_125',['W25QXX_BURST_WRAP_16_BYTE',['../group__w25qxx__advance__driver.html#gga94bbae2bf8906903e8dc2a28c490723dafec1eb230b49fbda6ffcc1eeda64179a',1,'driver_w25qxx.h']]],
-  ['w25qxx_5fburst_5fwrap_5f32_5fbyte_126',['W25QXX_BURST_WRAP_32_BYTE',['../group__w25qxx__advance__driver.html#gga94bbae2bf8906903e8dc2a28c490723dae2ac810153f9515a145773c34409b995',1,'driver_w25qxx.h']]],
-  ['w25qxx_5fburst_5fwrap_5f64_5fbyte_127',['W25QXX_BURST_WRAP_64_BYTE',['../group__w25qxx__advance__driver.html#gga94bbae2bf8906903e8dc2a28c490723da2a3afd7924b00cf74abe83f5216c8915',1,'driver_w25qxx.h']]],
-  ['w25qxx_5fburst_5fwrap_5f8_5fbyte_128',['W25QXX_BURST_WRAP_8_BYTE',['../group__w25qxx__advance__driver.html#gga94bbae2bf8906903e8dc2a28c490723da35edf6c31d0fe1771ab79669d13b7af8',1,'driver_w25qxx.h']]],
-  ['w25qxx_5fburst_5fwrap_5fnone_129',['W25QXX_BURST_WRAP_NONE',['../group__w25qxx__advance__driver.html#gga94bbae2bf8906903e8dc2a28c490723dae39a7ea65512a56d40aad2990d55815d',1,'driver_w25qxx.h']]],
-  ['w25qxx_5fburst_5fwrap_5ft_130',['w25qxx_burst_wrap_t',['../group__w25qxx__advance__driver.html#ga94bbae2bf8906903e8dc2a28c490723d',1,'driver_w25qxx.h']]],
-  ['w25qxx_5fchip_5ferase_131',['w25qxx_chip_erase',['../group__w25qxx__basic__driver.html#ga0862833b36831f92684980b2e21f2e39',1,'w25qxx_chip_erase(w25qxx_handle_t *handle):&#160;driver_w25qxx.c'],['../group__w25qxx__basic__driver.html#ga0862833b36831f92684980b2e21f2e39',1,'w25qxx_chip_erase(w25qxx_handle_t *handle):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5fcommand_5fblock_5ferase_5f32k_132',['W25QXX_COMMAND_BLOCK_ERASE_32K',['../driver__w25qxx_8c.html#a8bfb4e869985f5fa21ea7d1d262f90ad',1,'driver_w25qxx.c']]],
-  ['w25qxx_5fcommand_5fblock_5ferase_5f64k_133',['W25QXX_COMMAND_BLOCK_ERASE_64K',['../driver__w25qxx_8c.html#a4c5a1ed46f4d662a61bc06573ab548a0',1,'driver_w25qxx.c']]],
-  ['w25qxx_5fcommand_5fchip_5ferase_134',['W25QXX_COMMAND_CHIP_ERASE',['../driver__w25qxx_8c.html#a63ec9ecd709fcb69107756f253616a6e',1,'driver_w25qxx.c']]],
-  ['w25qxx_5fcommand_5fdevice_5fid_5fdual_5fio_135',['W25QXX_COMMAND_DEVICE_ID_DUAL_IO',['../driver__w25qxx_8c.html#a374c09f79cc61a3e7ac374bca5122e25',1,'driver_w25qxx.c']]],
-  ['w25qxx_5fcommand_5fdevice_5fid_5fquad_5fio_136',['W25QXX_COMMAND_DEVICE_ID_QUAD_IO',['../driver__w25qxx_8c.html#a7573bc250d850078be3221c29521bc5c',1,'driver_w25qxx.c']]],
-  ['w25qxx_5fcommand_5fenable_5freset_137',['W25QXX_COMMAND_ENABLE_RESET',['../driver__w25qxx_8c.html#a6dae3a832abc19d1861fafb32f231d94',1,'driver_w25qxx.c']]],
-  ['w25qxx_5fcommand_5fenter_5fqspi_5fmode_138',['W25QXX_COMMAND_ENTER_QSPI_MODE',['../driver__w25qxx_8c.html#a052d5373086b473bf0d450ea1bd73828',1,'driver_w25qxx.c']]],
-  ['w25qxx_5fcommand_5ferase_5fprogram_5fresume_139',['W25QXX_COMMAND_ERASE_PROGRAM_RESUME',['../driver__w25qxx_8c.html#a0daeb46fb8b219a3d6b37d426c5c0e95',1,'driver_w25qxx.c']]],
-  ['w25qxx_5fcommand_5ferase_5fprogram_5fsuspend_140',['W25QXX_COMMAND_ERASE_PROGRAM_SUSPEND',['../driver__w25qxx_8c.html#a43f9a1e3c03d4a7d2a991e81f0e89f51',1,'driver_w25qxx.c']]],
-  ['w25qxx_5fcommand_5ferase_5fsecurity_5fregister_141',['W25QXX_COMMAND_ERASE_SECURITY_REGISTER',['../driver__w25qxx_8c.html#a842f8d646fc8f8ed72422fc1d789498c',1,'driver_w25qxx.c']]],
-  ['w25qxx_5fcommand_5ffast_5fread_142',['W25QXX_COMMAND_FAST_READ',['../driver__w25qxx_8c.html#ac957b31a68db8c14f88a196a98b0aa18',1,'driver_w25qxx.c']]],
-  ['w25qxx_5fcommand_5ffast_5fread_5fdual_5fio_143',['W25QXX_COMMAND_FAST_READ_DUAL_IO',['../driver__w25qxx_8c.html#a2232ada3558228c2902d654989ca65f1',1,'driver_w25qxx.c']]],
-  ['w25qxx_5fcommand_5ffast_5fread_5fdual_5foutput_144',['W25QXX_COMMAND_FAST_READ_DUAL_OUTPUT',['../driver__w25qxx_8c.html#a8d49efa8b978ae8fd3eb18d0e5ae73e8',1,'driver_w25qxx.c']]],
-  ['w25qxx_5fcommand_5ffast_5fread_5fquad_5fio_145',['W25QXX_COMMAND_FAST_READ_QUAD_IO',['../driver__w25qxx_8c.html#a80d19998d9d1218d0fa69e7d4d6b0ecb',1,'driver_w25qxx.c']]],
-  ['w25qxx_5fcommand_5ffast_5fread_5fquad_5foutput_146',['W25QXX_COMMAND_FAST_READ_QUAD_OUTPUT',['../driver__w25qxx_8c.html#a54ddb3d948c4bb95cc62199676c817b2',1,'driver_w25qxx.c']]],
-  ['w25qxx_5fcommand_5fglobal_5fblock_5fsector_5flock_147',['W25QXX_COMMAND_GLOBAL_BLOCK_SECTOR_LOCK',['../driver__w25qxx_8c.html#af81bc9ddfc8da8eb911435e835536ffb',1,'driver_w25qxx.c']]],
-  ['w25qxx_5fcommand_5fglobal_5fblock_5fsector_5funlock_148',['W25QXX_COMMAND_GLOBAL_BLOCK_SECTOR_UNLOCK',['../driver__w25qxx_8c.html#ab96d2ad8602a5a50c988b8c09d4bbbc5',1,'driver_w25qxx.c']]],
-  ['w25qxx_5fcommand_5findividual_5fblock_5flock_149',['W25QXX_COMMAND_INDIVIDUAL_BLOCK_LOCK',['../driver__w25qxx_8c.html#a328f6a9635b1ec6868410375de90b0df',1,'driver_w25qxx.c']]],
-  ['w25qxx_5fcommand_5findividual_5fblock_5funlock_150',['W25QXX_COMMAND_INDIVIDUAL_BLOCK_UNLOCK',['../driver__w25qxx_8c.html#a3cc8b61583b5eb9d7c1ecd6831689718',1,'driver_w25qxx.c']]],
-  ['w25qxx_5fcommand_5fjedec_5fid_151',['W25QXX_COMMAND_JEDEC_ID',['../driver__w25qxx_8c.html#a54f3ece548cd5eadc94642235442315a',1,'driver_w25qxx.c']]],
-  ['w25qxx_5fcommand_5foctal_5fword_5fread_5fquad_5fio_152',['W25QXX_COMMAND_OCTAL_WORD_READ_QUAD_IO',['../driver__w25qxx_8c.html#acb7f8599b26c29356651690ec9b25e66',1,'driver_w25qxx.c']]],
-  ['w25qxx_5fcommand_5fpage_5fprogram_153',['W25QXX_COMMAND_PAGE_PROGRAM',['../driver__w25qxx_8c.html#aebca01f1f7fd279523d29e579998574a',1,'driver_w25qxx.c']]],
-  ['w25qxx_5fcommand_5fpower_5fdown_154',['W25QXX_COMMAND_POWER_DOWN',['../driver__w25qxx_8c.html#a6fe4d603e33b7c8b8310a884e02a130b',1,'driver_w25qxx.c']]],
-  ['w25qxx_5fcommand_5fprogram_5fsecurity_5fregister_155',['W25QXX_COMMAND_PROGRAM_SECURITY_REGISTER',['../driver__w25qxx_8c.html#a915ab53f5f2d1cad6b954205e76cb4d5',1,'driver_w25qxx.c']]],
-  ['w25qxx_5fcommand_5fquad_5fpage_5fprogram_156',['W25QXX_COMMAND_QUAD_PAGE_PROGRAM',['../driver__w25qxx_8c.html#a8212fac3d1e43024621b6b560a8dddfe',1,'driver_w25qxx.c']]],
-  ['w25qxx_5fcommand_5fread_5fblock_5flock_157',['W25QXX_COMMAND_READ_BLOCK_LOCK',['../driver__w25qxx_8c.html#a19e055bec30de0ad30e7f8ab5feea6a8',1,'driver_w25qxx.c']]],
-  ['w25qxx_5fcommand_5fread_5fdata_158',['W25QXX_COMMAND_READ_DATA',['../driver__w25qxx_8c.html#a23fcd6d9b067580d534d626c43b7cff3',1,'driver_w25qxx.c']]],
-  ['w25qxx_5fcommand_5fread_5fmanufacturer_159',['W25QXX_COMMAND_READ_MANUFACTURER',['../driver__w25qxx_8c.html#af6d9a5bc0b57b041e22af80b85e53f56',1,'driver_w25qxx.c']]],
-  ['w25qxx_5fcommand_5fread_5fsecurity_5fregister_160',['W25QXX_COMMAND_READ_SECURITY_REGISTER',['../driver__w25qxx_8c.html#a4dc5fb2c3c15ef86df56b534b874a919',1,'driver_w25qxx.c']]],
-  ['w25qxx_5fcommand_5fread_5fsfdp_5fregister_161',['W25QXX_COMMAND_READ_SFDP_REGISTER',['../driver__w25qxx_8c.html#a63774c5ebbdf5445466d840fad567bf6',1,'driver_w25qxx.c']]],
-  ['w25qxx_5fcommand_5fread_5fstatus_5freg1_162',['W25QXX_COMMAND_READ_STATUS_REG1',['../driver__w25qxx_8c.html#adf682969c34f4b31a87dd92dd18ccea3',1,'driver_w25qxx.c']]],
-  ['w25qxx_5fcommand_5fread_5fstatus_5freg2_163',['W25QXX_COMMAND_READ_STATUS_REG2',['../driver__w25qxx_8c.html#a4a8cdc5b6ce75029df877263bdf35f2a',1,'driver_w25qxx.c']]],
-  ['w25qxx_5fcommand_5fread_5fstatus_5freg3_164',['W25QXX_COMMAND_READ_STATUS_REG3',['../driver__w25qxx_8c.html#a09798bdb3fabdf7bb4cfd8bce18100ce',1,'driver_w25qxx.c']]],
-  ['w25qxx_5fcommand_5fread_5funique_5fid_165',['W25QXX_COMMAND_READ_UNIQUE_ID',['../driver__w25qxx_8c.html#a6aeed0a651b31064f25ab2f57fdacf2f',1,'driver_w25qxx.c']]],
-  ['w25qxx_5fcommand_5frelease_5fpower_5fdown_166',['W25QXX_COMMAND_RELEASE_POWER_DOWN',['../driver__w25qxx_8c.html#ad344065461b2c71521017984f040b425',1,'driver_w25qxx.c']]],
-  ['w25qxx_5fcommand_5freset_5fdevice_167',['W25QXX_COMMAND_RESET_DEVICE',['../driver__w25qxx_8c.html#ab25182298c921c8f7f42216e0d5aa56b',1,'driver_w25qxx.c']]],
-  ['w25qxx_5fcommand_5fsector_5ferase_5f4k_168',['W25QXX_COMMAND_SECTOR_ERASE_4K',['../driver__w25qxx_8c.html#a6e7cd159f91e23930450725fd6910f9c',1,'driver_w25qxx.c']]],
-  ['w25qxx_5fcommand_5fset_5fburst_5fwith_5fwrap_169',['W25QXX_COMMAND_SET_BURST_WITH_WRAP',['../driver__w25qxx_8c.html#acfb19490258b26729fa83fdd60c4d822',1,'driver_w25qxx.c']]],
-  ['w25qxx_5fcommand_5fvolatile_5fsr_5fwrite_5fenable_170',['W25QXX_COMMAND_VOLATILE_SR_WRITE_ENABLE',['../driver__w25qxx_8c.html#a7c9e980e30f499dd97b02935c91f2c02',1,'driver_w25qxx.c']]],
-  ['w25qxx_5fcommand_5fword_5fread_5fquad_5fio_171',['W25QXX_COMMAND_WORD_READ_QUAD_IO',['../driver__w25qxx_8c.html#a947382a74ac06eb8a2ff8f5bcb1b744d',1,'driver_w25qxx.c']]],
-  ['w25qxx_5fcommand_5fwrite_5fdisable_172',['W25QXX_COMMAND_WRITE_DISABLE',['../driver__w25qxx_8c.html#a36dfb1951fe152d63e3715a161646713',1,'driver_w25qxx.c']]],
-  ['w25qxx_5fcommand_5fwrite_5fenable_173',['W25QXX_COMMAND_WRITE_ENABLE',['../driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5',1,'driver_w25qxx.c']]],
-  ['w25qxx_5fcommand_5fwrite_5fstatus_5freg1_174',['W25QXX_COMMAND_WRITE_STATUS_REG1',['../driver__w25qxx_8c.html#a932f54ff92de8bbab4602ab85ac6c155',1,'driver_w25qxx.c']]],
-  ['w25qxx_5fcommand_5fwrite_5fstatus_5freg2_175',['W25QXX_COMMAND_WRITE_STATUS_REG2',['../driver__w25qxx_8c.html#a4be10ed873d56bb183d9b1bde9105135',1,'driver_w25qxx.c']]],
-  ['w25qxx_5fcommand_5fwrite_5fstatus_5freg3_176',['W25QXX_COMMAND_WRITE_STATUS_REG3',['../driver__w25qxx_8c.html#a6d099dc6afb59cc950d3abe96b840158',1,'driver_w25qxx.c']]],
-  ['w25qxx_5fdeinit_177',['w25qxx_deinit',['../group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d',1,'w25qxx_deinit(w25qxx_handle_t *handle):&#160;driver_w25qxx.c'],['../group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d',1,'w25qxx_deinit(w25qxx_handle_t *handle):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5fdisable_5fwrite_178',['w25qxx_disable_write',['../group__w25qxx__advance__driver.html#gac16a31269277051baad6c28fe4254b4a',1,'w25qxx_disable_write(w25qxx_handle_t *handle):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#gac16a31269277051baad6c28fe4254b4a',1,'w25qxx_disable_write(w25qxx_handle_t *handle):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5fenable_5ferase_5fread_5ftest_179',['W25QXX_ENABLE_ERASE_READ_TEST',['../group__w25qxx__test__driver.html#ga8be86baae6f8448171125c70da1fbfa0',1,'driver_w25qxx_read_test.h']]],
-  ['w25qxx_5fenable_5freset_180',['w25qxx_enable_reset',['../group__w25qxx__advance__driver.html#gab55b4e071e20feb58584025287949438',1,'w25qxx_enable_reset(w25qxx_handle_t *handle):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#gab55b4e071e20feb58584025287949438',1,'w25qxx_enable_reset(w25qxx_handle_t *handle):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5fenable_5fvolatile_5fsr_5fwrite_181',['w25qxx_enable_volatile_sr_write',['../group__w25qxx__advance__driver.html#ga0f8889d6a25c32e150a2ab30753d461d',1,'w25qxx_enable_volatile_sr_write(w25qxx_handle_t *handle):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#ga0f8889d6a25c32e150a2ab30753d461d',1,'w25qxx_enable_volatile_sr_write(w25qxx_handle_t *handle):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5fenable_5fwrite_182',['w25qxx_enable_write',['../group__w25qxx__advance__driver.html#gaeb269123feec054eaaf70f2ffb5797a3',1,'w25qxx_enable_write(w25qxx_handle_t *handle):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#gaeb269123feec054eaaf70f2ffb5797a3',1,'w25qxx_enable_write(w25qxx_handle_t *handle):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5fenter_5fqspi_5fmode_183',['w25qxx_enter_qspi_mode',['../group__w25qxx__advance__driver.html#gaa5ab3548707a95ded115255432224c5a',1,'w25qxx_enter_qspi_mode(w25qxx_handle_t *handle):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#gaa5ab3548707a95ded115255432224c5a',1,'w25qxx_enter_qspi_mode(w25qxx_handle_t *handle):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5ferase_5fprogram_5fresume_184',['w25qxx_erase_program_resume',['../group__w25qxx__advance__driver.html#ga05c69ac66309544eba4ff38a69f24c00',1,'w25qxx_erase_program_resume(w25qxx_handle_t *handle):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#ga05c69ac66309544eba4ff38a69f24c00',1,'w25qxx_erase_program_resume(w25qxx_handle_t *handle):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5ferase_5fprogram_5fsuspend_185',['w25qxx_erase_program_suspend',['../group__w25qxx__advance__driver.html#gac7fbabc574c250eec100be861f5918ff',1,'w25qxx_erase_program_suspend(w25qxx_handle_t *handle):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#gac7fbabc574c250eec100be861f5918ff',1,'w25qxx_erase_program_suspend(w25qxx_handle_t *handle):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5ferase_5fsecurity_5fregister_186',['w25qxx_erase_security_register',['../group__w25qxx__advance__driver.html#gaf297e2c6877c64f8fd10a555f783ddaf',1,'w25qxx_erase_security_register(w25qxx_handle_t *handle, w25qxx_security_register_t num):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#gaf297e2c6877c64f8fd10a555f783ddaf',1,'w25qxx_erase_security_register(w25qxx_handle_t *handle, w25qxx_security_register_t num):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5fexit_5fqspi_5fmode_187',['w25qxx_exit_qspi_mode',['../group__w25qxx__advance__driver.html#ga6b9f75f7426a54ffdb1f5a057f8188f4',1,'w25qxx_exit_qspi_mode(w25qxx_handle_t *handle):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#ga6b9f75f7426a54ffdb1f5a057f8188f4',1,'w25qxx_exit_qspi_mode(w25qxx_handle_t *handle):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5ffast_5fread_188',['w25qxx_fast_read',['../group__w25qxx__basic__driver.html#gac345ba10af5ad355578fa97697487123',1,'w25qxx_fast_read(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx.c'],['../group__w25qxx__basic__driver.html#gac345ba10af5ad355578fa97697487123',1,'w25qxx_fast_read(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5ffast_5fread_5fdual_5fio_189',['w25qxx_fast_read_dual_io',['../group__w25qxx__advance__driver.html#gac894f4650905cba10dd3a31284de6d5e',1,'w25qxx_fast_read_dual_io(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#gac894f4650905cba10dd3a31284de6d5e',1,'w25qxx_fast_read_dual_io(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5ffast_5fread_5fdual_5foutput_190',['w25qxx_fast_read_dual_output',['../group__w25qxx__advance__driver.html#ga7a19230ca3916816ea8fb7421483d293',1,'w25qxx_fast_read_dual_output(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#ga7a19230ca3916816ea8fb7421483d293',1,'w25qxx_fast_read_dual_output(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5ffast_5fread_5fquad_5fio_191',['w25qxx_fast_read_quad_io',['../group__w25qxx__advance__driver.html#gab97a64bd3776874518f60381d921ae41',1,'w25qxx_fast_read_quad_io(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#gab97a64bd3776874518f60381d921ae41',1,'w25qxx_fast_read_quad_io(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5ffast_5fread_5fquad_5foutput_192',['w25qxx_fast_read_quad_output',['../group__w25qxx__advance__driver.html#gaf4bfafd1f80aa0316a4b1a15183dcd50',1,'w25qxx_fast_read_quad_output(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#gaf4bfafd1f80aa0316a4b1a15183dcd50',1,'w25qxx_fast_read_quad_output(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5fget_5faddress_5fmode_193',['w25qxx_get_address_mode',['../group__w25qxx__basic__driver.html#ga3a52036a97b12fcbe2280b0901a80b90',1,'w25qxx_get_address_mode(w25qxx_handle_t *handle, w25qxx_address_mode_t *mode):&#160;driver_w25qxx.c'],['../group__w25qxx__basic__driver.html#ga3a52036a97b12fcbe2280b0901a80b90',1,'w25qxx_get_address_mode(w25qxx_handle_t *handle, w25qxx_address_mode_t *mode):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5fget_5fdual_5fquad_5fspi_194',['w25qxx_get_dual_quad_spi',['../group__w25qxx__basic__driver.html#gad4c9b8b0a2d0916c13567f9d7e494cf8',1,'w25qxx_get_dual_quad_spi(w25qxx_handle_t *handle, w25qxx_bool_t *enable):&#160;driver_w25qxx.c'],['../group__w25qxx__basic__driver.html#gad4c9b8b0a2d0916c13567f9d7e494cf8',1,'w25qxx_get_dual_quad_spi(w25qxx_handle_t *handle, w25qxx_bool_t *enable):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5fget_5finterface_195',['w25qxx_get_interface',['../group__w25qxx__basic__driver.html#ga86ef839d475f3926a0be46bbc18d4b45',1,'w25qxx_get_interface(w25qxx_handle_t *handle, w25qxx_interface_t *interface):&#160;driver_w25qxx.c'],['../group__w25qxx__basic__driver.html#ga86ef839d475f3926a0be46bbc18d4b45',1,'w25qxx_get_interface(w25qxx_handle_t *handle, w25qxx_interface_t *interface):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5fget_5fjedec_5fid_196',['w25qxx_get_jedec_id',['../group__w25qxx__advance__driver.html#ga8a93ba14a032e10a27f1495fdcf56058',1,'w25qxx_get_jedec_id(w25qxx_handle_t *handle, uint8_t *manufacturer, uint8_t device_id[2]):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#ga8a93ba14a032e10a27f1495fdcf56058',1,'w25qxx_get_jedec_id(w25qxx_handle_t *handle, uint8_t *manufacturer, uint8_t device_id[2]):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5fget_5fmanufacturer_5fdevice_5fid_197',['w25qxx_get_manufacturer_device_id',['../group__w25qxx__basic__driver.html#ga921836a777b082ff4d0f322ccfda6b22',1,'w25qxx_get_manufacturer_device_id(w25qxx_handle_t *handle, uint8_t *manufacturer, uint8_t *device_id):&#160;driver_w25qxx.c'],['../group__w25qxx__basic__driver.html#ga921836a777b082ff4d0f322ccfda6b22',1,'w25qxx_get_manufacturer_device_id(w25qxx_handle_t *handle, uint8_t *manufacturer, uint8_t *device_id):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5fget_5fmanufacturer_5fdevice_5fid_5fdual_5fio_198',['w25qxx_get_manufacturer_device_id_dual_io',['../group__w25qxx__advance__driver.html#ga1cd3aec1bdeabbaed5f049fbf83ceeb4',1,'w25qxx_get_manufacturer_device_id_dual_io(w25qxx_handle_t *handle, uint8_t *manufacturer, uint8_t *device_id):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#ga1cd3aec1bdeabbaed5f049fbf83ceeb4',1,'w25qxx_get_manufacturer_device_id_dual_io(w25qxx_handle_t *handle, uint8_t *manufacturer, uint8_t *device_id):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5fget_5fmanufacturer_5fdevice_5fid_5fquad_5fio_199',['w25qxx_get_manufacturer_device_id_quad_io',['../group__w25qxx__advance__driver.html#ga61bd3ce40b76b6862c6a53e0e37a3455',1,'w25qxx_get_manufacturer_device_id_quad_io(w25qxx_handle_t *handle, uint8_t *manufacturer, uint8_t *device_id):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#ga61bd3ce40b76b6862c6a53e0e37a3455',1,'w25qxx_get_manufacturer_device_id_quad_io(w25qxx_handle_t *handle, uint8_t *manufacturer, uint8_t *device_id):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5fget_5fsfdp_200',['w25qxx_get_sfdp',['../group__w25qxx__advance__driver.html#ga244a91b9c0c32e899ca89e1943045624',1,'w25qxx_get_sfdp(w25qxx_handle_t *handle, uint8_t sfdp[256]):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#ga244a91b9c0c32e899ca89e1943045624',1,'w25qxx_get_sfdp(w25qxx_handle_t *handle, uint8_t sfdp[256]):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5fget_5fstatus1_201',['w25qxx_get_status1',['../group__w25qxx__advance__driver.html#gaa77d2b00b4fb9cf586f77ace827ea7c6',1,'w25qxx_get_status1(w25qxx_handle_t *handle, uint8_t *status):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#gaa77d2b00b4fb9cf586f77ace827ea7c6',1,'w25qxx_get_status1(w25qxx_handle_t *handle, uint8_t *status):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5fget_5fstatus2_202',['w25qxx_get_status2',['../group__w25qxx__advance__driver.html#gaa21237ecbd5951b8017799066e7db5d9',1,'w25qxx_get_status2(w25qxx_handle_t *handle, uint8_t *status):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#gaa21237ecbd5951b8017799066e7db5d9',1,'w25qxx_get_status2(w25qxx_handle_t *handle, uint8_t *status):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5fget_5fstatus3_203',['w25qxx_get_status3',['../group__w25qxx__advance__driver.html#ga99cf6a325a00921d4531004f0c1d75b1',1,'w25qxx_get_status3(w25qxx_handle_t *handle, uint8_t *status):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#ga99cf6a325a00921d4531004f0c1d75b1',1,'w25qxx_get_status3(w25qxx_handle_t *handle, uint8_t *status):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5fget_5ftype_204',['w25qxx_get_type',['../group__w25qxx__basic__driver.html#ga685379998dad173b6d9c0b0da270685c',1,'w25qxx_get_type(w25qxx_handle_t *handle, w25qxx_type_t *type):&#160;driver_w25qxx.c'],['../group__w25qxx__basic__driver.html#ga685379998dad173b6d9c0b0da270685c',1,'w25qxx_get_type(w25qxx_handle_t *handle, w25qxx_type_t *type):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5fget_5funique_5fid_205',['w25qxx_get_unique_id',['../group__w25qxx__advance__driver.html#ga11af244389478de68a6777076ee82d69',1,'w25qxx_get_unique_id(w25qxx_handle_t *handle, uint8_t id[8]):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#ga11af244389478de68a6777076ee82d69',1,'w25qxx_get_unique_id(w25qxx_handle_t *handle, uint8_t id[8]):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5fglobal_5fblock_5flock_206',['w25qxx_global_block_lock',['../group__w25qxx__advance__driver.html#gab5579bc42bc07a7657848140888a817c',1,'w25qxx_global_block_lock(w25qxx_handle_t *handle):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#gab5579bc42bc07a7657848140888a817c',1,'w25qxx_global_block_lock(w25qxx_handle_t *handle):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5fglobal_5fblock_5funlock_207',['w25qxx_global_block_unlock',['../group__w25qxx__advance__driver.html#ga6d62f7d14945cfde7cde7a0e9a4e3afb',1,'w25qxx_global_block_unlock(w25qxx_handle_t *handle):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#ga6d62f7d14945cfde7cde7a0e9a4e3afb',1,'w25qxx_global_block_unlock(w25qxx_handle_t *handle):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5fhandle_5fs_208',['w25qxx_handle_s',['../structw25qxx__handle__s.html',1,'']]],
-  ['w25qxx_5fhandle_5ft_209',['w25qxx_handle_t',['../group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be',1,'driver_w25qxx.h']]],
-  ['w25qxx_5findividual_5fblock_5flock_210',['w25qxx_individual_block_lock',['../group__w25qxx__advance__driver.html#ga4f00c2c169cb7c3084841c6cd795e76b',1,'w25qxx_individual_block_lock(w25qxx_handle_t *handle, uint32_t addr):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#ga4f00c2c169cb7c3084841c6cd795e76b',1,'w25qxx_individual_block_lock(w25qxx_handle_t *handle, uint32_t addr):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5findividual_5fblock_5funlock_211',['w25qxx_individual_block_unlock',['../group__w25qxx__advance__driver.html#ga7f88cedf7619071b3235ba094915b2a7',1,'w25qxx_individual_block_unlock(w25qxx_handle_t *handle, uint32_t addr):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#ga7f88cedf7619071b3235ba094915b2a7',1,'w25qxx_individual_block_unlock(w25qxx_handle_t *handle, uint32_t addr):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5finfo_212',['w25qxx_info',['../group__w25qxx__basic__driver.html#ga996e2d3009432e7f8c1a5175c4438a57',1,'w25qxx_info(w25qxx_info_t *info):&#160;driver_w25qxx.c'],['../group__w25qxx__basic__driver.html#ga996e2d3009432e7f8c1a5175c4438a57',1,'w25qxx_info(w25qxx_info_t *info):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5finfo_5fs_213',['w25qxx_info_s',['../structw25qxx__info__s.html',1,'']]],
-  ['w25qxx_5finfo_5ft_214',['w25qxx_info_t',['../group__w25qxx__basic__driver.html#ga601d841ddd0ff8ad3ab52e07c679ef19',1,'driver_w25qxx.h']]],
-  ['w25qxx_5finit_215',['w25qxx_init',['../group__w25qxx__basic__driver.html#ga8e7a163b3d255b8c7fc035d0d60f2491',1,'w25qxx_init(w25qxx_handle_t *handle):&#160;driver_w25qxx.c'],['../group__w25qxx__basic__driver.html#ga8e7a163b3d255b8c7fc035d0d60f2491',1,'w25qxx_init(w25qxx_handle_t *handle):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5finterface_5fdebug_5fprint_216',['w25qxx_interface_debug_print',['../group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e',1,'w25qxx_interface_debug_print(const char *const fmt,...):&#160;driver_w25qxx_interface_template.c'],['../group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e',1,'w25qxx_interface_debug_print(const char *const fmt,...):&#160;driver_w25qxx_interface_template.c']]],
-  ['w25qxx_5finterface_5fdelay_5fms_217',['w25qxx_interface_delay_ms',['../group__w25qxx__interface__driver.html#ga964fa232abf98737cb98458eebfff82c',1,'w25qxx_interface_delay_ms(uint32_t ms):&#160;driver_w25qxx_interface_template.c'],['../group__w25qxx__interface__driver.html#ga964fa232abf98737cb98458eebfff82c',1,'w25qxx_interface_delay_ms(uint32_t ms):&#160;driver_w25qxx_interface_template.c']]],
-  ['w25qxx_5finterface_5fdelay_5fus_218',['w25qxx_interface_delay_us',['../group__w25qxx__interface__driver.html#ga38e79039b913154c9dd1036ff52bb420',1,'w25qxx_interface_delay_us(uint32_t us):&#160;driver_w25qxx_interface_template.c'],['../group__w25qxx__interface__driver.html#ga38e79039b913154c9dd1036ff52bb420',1,'w25qxx_interface_delay_us(uint32_t us):&#160;driver_w25qxx_interface_template.c']]],
-  ['w25qxx_5finterface_5fqspi_219',['W25QXX_INTERFACE_QSPI',['../group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2fea895dcb5c91da89fad1c12161ffd2d5d4',1,'driver_w25qxx.h']]],
-  ['w25qxx_5finterface_5fspi_220',['W25QXX_INTERFACE_SPI',['../group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8',1,'driver_w25qxx.h']]],
-  ['w25qxx_5finterface_5fspi_5fqspi_5fdeinit_221',['w25qxx_interface_spi_qspi_deinit',['../group__w25qxx__interface__driver.html#ga091f3607fcdd47f9e5f94cf1397bd46a',1,'w25qxx_interface_spi_qspi_deinit(void):&#160;driver_w25qxx_interface_template.c'],['../group__w25qxx__interface__driver.html#ga091f3607fcdd47f9e5f94cf1397bd46a',1,'w25qxx_interface_spi_qspi_deinit(void):&#160;driver_w25qxx_interface_template.c']]],
-  ['w25qxx_5finterface_5fspi_5fqspi_5finit_222',['w25qxx_interface_spi_qspi_init',['../group__w25qxx__interface__driver.html#ga2bdc17a556f1c801a38656331f3bb7b6',1,'w25qxx_interface_spi_qspi_init(void):&#160;driver_w25qxx_interface_template.c'],['../group__w25qxx__interface__driver.html#ga2bdc17a556f1c801a38656331f3bb7b6',1,'w25qxx_interface_spi_qspi_init(void):&#160;driver_w25qxx_interface_template.c']]],
-  ['w25qxx_5finterface_5fspi_5fqspi_5fwrite_5fread_223',['w25qxx_interface_spi_qspi_write_read',['../group__w25qxx__interface__driver.html#ga3d76ea1f431978f6b55edfd0628c94cd',1,'w25qxx_interface_spi_qspi_write_read(uint8_t instruction, uint8_t instruction_line, uint32_t address, uint8_t address_line, uint8_t address_len, uint32_t alternate, uint8_t alternate_line, uint8_t alternate_len, uint8_t dummy, uint8_t *in_buf, uint32_t in_len, uint8_t *out_buf, uint32_t out_len, uint8_t data_line):&#160;driver_w25qxx_interface_template.c'],['../group__w25qxx__interface__driver.html#ga3d76ea1f431978f6b55edfd0628c94cd',1,'w25qxx_interface_spi_qspi_write_read(uint8_t instruction, uint8_t instruction_line, uint32_t address, uint8_t address_line, uint8_t address_len, uint32_t alternate, uint8_t alternate_line, uint8_t alternate_len, uint8_t dummy, uint8_t *in_buf, uint32_t in_len, uint8_t *out_buf, uint32_t out_len, uint8_t data_line):&#160;driver_w25qxx_interface_template.c']]],
-  ['w25qxx_5finterface_5ft_224',['w25qxx_interface_t',['../group__w25qxx__basic__driver.html#gacbf327a42336baf10713a1796ff4f2fe',1,'driver_w25qxx.h']]],
-  ['w25qxx_5foctal_5fword_5fread_5fquad_5fio_225',['w25qxx_octal_word_read_quad_io',['../group__w25qxx__advance__driver.html#ga88a62ec42e86db821ff3f0d3ab541dbb',1,'w25qxx_octal_word_read_quad_io(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#ga88a62ec42e86db821ff3f0d3ab541dbb',1,'w25qxx_octal_word_read_quad_io(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5fonly_5fspi_5fread_226',['w25qxx_only_spi_read',['../group__w25qxx__basic__driver.html#ga1e9ebf198137d23558dbf6470213c472',1,'w25qxx_only_spi_read(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx.c'],['../group__w25qxx__basic__driver.html#ga1e9ebf198137d23558dbf6470213c472',1,'w25qxx_only_spi_read(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5fpage_5fprogram_227',['w25qxx_page_program',['../group__w25qxx__basic__driver.html#ga6280e7e4ab26306436e2c210617a28b3',1,'w25qxx_page_program(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint16_t len):&#160;driver_w25qxx.c'],['../group__w25qxx__basic__driver.html#ga6280e7e4ab26306436e2c210617a28b3',1,'w25qxx_page_program(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint16_t len):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5fpage_5fprogram_5fquad_5finput_228',['w25qxx_page_program_quad_input',['../group__w25qxx__advance__driver.html#ga1f80bbbaaa852eecfffb87737889363d',1,'w25qxx_page_program_quad_input(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint16_t len):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#ga1f80bbbaaa852eecfffb87737889363d',1,'w25qxx_page_program_quad_input(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint16_t len):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5fpower_5fdown_229',['w25qxx_power_down',['../group__w25qxx__basic__driver.html#gae4effce67e36120325e3c7b245b90142',1,'w25qxx_power_down(w25qxx_handle_t *handle):&#160;driver_w25qxx.c'],['../group__w25qxx__basic__driver.html#gae4effce67e36120325e3c7b245b90142',1,'w25qxx_power_down(w25qxx_handle_t *handle):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5fprogram_5fsecurity_5fregister_230',['w25qxx_program_security_register',['../group__w25qxx__advance__driver.html#ga4e9c059ff78866e478e835cb27a92899',1,'w25qxx_program_security_register(w25qxx_handle_t *handle, w25qxx_security_register_t num, uint8_t data[256]):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#ga4e9c059ff78866e478e835cb27a92899',1,'w25qxx_program_security_register(w25qxx_handle_t *handle, w25qxx_security_register_t num, uint8_t data[256]):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5fqspi_5fread_5fdummy_5f2_5f33mhz_231',['W25QXX_QSPI_READ_DUMMY_2_33MHZ',['../group__w25qxx__advance__driver.html#gga6ff284154302248f00db269146545443ad73634a0f4534c3ae35d4242b2bc8f13',1,'driver_w25qxx.h']]],
-  ['w25qxx_5fqspi_5fread_5fdummy_5f4_5f55mhz_232',['W25QXX_QSPI_READ_DUMMY_4_55MHZ',['../group__w25qxx__advance__driver.html#gga6ff284154302248f00db269146545443a6423b5606e72af6479fe31a6a9883aeb',1,'driver_w25qxx.h']]],
-  ['w25qxx_5fqspi_5fread_5fdummy_5f6_5f80mhz_233',['W25QXX_QSPI_READ_DUMMY_6_80MHZ',['../group__w25qxx__advance__driver.html#gga6ff284154302248f00db269146545443a78393debe12bbb3efb710e38e3c1d550',1,'driver_w25qxx.h']]],
-  ['w25qxx_5fqspi_5fread_5fdummy_5f8_5f80mhz_234',['W25QXX_QSPI_READ_DUMMY_8_80MHZ',['../group__w25qxx__advance__driver.html#gga6ff284154302248f00db269146545443ade1d3511f15c7d92de8c5d8967c471c3',1,'driver_w25qxx.h']]],
-  ['w25qxx_5fqspi_5fread_5fdummy_5ft_235',['w25qxx_qspi_read_dummy_t',['../group__w25qxx__advance__driver.html#ga6ff284154302248f00db269146545443',1,'driver_w25qxx.h']]],
-  ['w25qxx_5fqspi_5fread_5fwrap_5flength_5f16_5fbyte_236',['W25QXX_QSPI_READ_WRAP_LENGTH_16_BYTE',['../group__w25qxx__advance__driver.html#gga2fd3023819e1aebe089a4a72eb136da3ae6bc2fcd2d4fc3af63f22da56a3b393b',1,'driver_w25qxx.h']]],
-  ['w25qxx_5fqspi_5fread_5fwrap_5flength_5f32_5fbyte_237',['W25QXX_QSPI_READ_WRAP_LENGTH_32_BYTE',['../group__w25qxx__advance__driver.html#gga2fd3023819e1aebe089a4a72eb136da3aa5f2e6b5718a85ab9241125e84181216',1,'driver_w25qxx.h']]],
-  ['w25qxx_5fqspi_5fread_5fwrap_5flength_5f64_5fbyte_238',['W25QXX_QSPI_READ_WRAP_LENGTH_64_BYTE',['../group__w25qxx__advance__driver.html#gga2fd3023819e1aebe089a4a72eb136da3a736f25eeae36f6a0b62d4cb1666a689f',1,'driver_w25qxx.h']]],
-  ['w25qxx_5fqspi_5fread_5fwrap_5flength_5f8_5fbyte_239',['W25QXX_QSPI_READ_WRAP_LENGTH_8_BYTE',['../group__w25qxx__advance__driver.html#gga2fd3023819e1aebe089a4a72eb136da3a5b8fa1026c564fe83f3f0f0edb89d1dd',1,'driver_w25qxx.h']]],
-  ['w25qxx_5fqspi_5fread_5fwrap_5flength_5ft_240',['w25qxx_qspi_read_wrap_length_t',['../group__w25qxx__advance__driver.html#ga2fd3023819e1aebe089a4a72eb136da3',1,'driver_w25qxx.h']]],
-  ['w25qxx_5fread_241',['w25qxx_read',['../group__w25qxx__basic__driver.html#gae7479fc9ce911a52e3c5b6f1a615b879',1,'w25qxx_read(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx.c'],['../group__w25qxx__basic__driver.html#gae7479fc9ce911a52e3c5b6f1a615b879',1,'w25qxx_read(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5fread_5fblock_5flock_242',['w25qxx_read_block_lock',['../group__w25qxx__advance__driver.html#ga59e655ca78a175037ca810bbc8539a96',1,'w25qxx_read_block_lock(w25qxx_handle_t *handle, uint32_t addr, uint8_t *value):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#ga59e655ca78a175037ca810bbc8539a96',1,'w25qxx_read_block_lock(w25qxx_handle_t *handle, uint32_t addr, uint8_t *value):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5fread_5fsecurity_5fregister_243',['w25qxx_read_security_register',['../group__w25qxx__advance__driver.html#ga4c65debc4947bd9a61e0073105164b9c',1,'w25qxx_read_security_register(w25qxx_handle_t *handle, w25qxx_security_register_t num, uint8_t data[256]):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#ga4c65debc4947bd9a61e0073105164b9c',1,'w25qxx_read_security_register(w25qxx_handle_t *handle, w25qxx_security_register_t num, uint8_t data[256]):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5fread_5ftest_244',['w25qxx_read_test',['../group__w25qxx__test__driver.html#ga4ce42ca34d33cd64cb823040780999af',1,'w25qxx_read_test(w25qxx_type_t type, w25qxx_interface_t interface, w25qxx_bool_t dual_quad_spi_enable):&#160;driver_w25qxx_read_test.c'],['../group__w25qxx__test__driver.html#ga4ce42ca34d33cd64cb823040780999af',1,'w25qxx_read_test(w25qxx_type_t type, w25qxx_interface_t interface, w25qxx_bool_t dual_quad_spi_enable):&#160;driver_w25qxx_read_test.c']]],
-  ['w25qxx_5fregister_5ftest_245',['w25qxx_register_test',['../group__w25qxx__test__driver.html#ga05d07036254d102ebea0d0b1e83862c8',1,'w25qxx_register_test(w25qxx_type_t type, w25qxx_interface_t interface, w25qxx_bool_t dual_quad_spi_enable):&#160;driver_w25qxx_register_test.c'],['../group__w25qxx__test__driver.html#ga05d07036254d102ebea0d0b1e83862c8',1,'w25qxx_register_test(w25qxx_type_t type, w25qxx_interface_t interface, w25qxx_bool_t dual_quad_spi_enable):&#160;driver_w25qxx_register_test.c']]],
-  ['w25qxx_5frelease_5fpower_5fdown_246',['w25qxx_release_power_down',['../group__w25qxx__basic__driver.html#ga09c9b52877516a2ee4c080dc249e7331',1,'w25qxx_release_power_down(w25qxx_handle_t *handle):&#160;driver_w25qxx.c'],['../group__w25qxx__basic__driver.html#ga09c9b52877516a2ee4c080dc249e7331',1,'w25qxx_release_power_down(w25qxx_handle_t *handle):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5freset_5fdevice_247',['w25qxx_reset_device',['../group__w25qxx__advance__driver.html#ga2abebfe2a8d9377eb88448ffca73f222',1,'w25qxx_reset_device(w25qxx_handle_t *handle):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#ga2abebfe2a8d9377eb88448ffca73f222',1,'w25qxx_reset_device(w25qxx_handle_t *handle):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5fsector_5ferase_5f4k_248',['w25qxx_sector_erase_4k',['../group__w25qxx__basic__driver.html#ga9a03c51b4c84655350c15fbfce0a6b40',1,'w25qxx_sector_erase_4k(w25qxx_handle_t *handle, uint32_t addr):&#160;driver_w25qxx.c'],['../group__w25qxx__basic__driver.html#ga9a03c51b4c84655350c15fbfce0a6b40',1,'w25qxx_sector_erase_4k(w25qxx_handle_t *handle, uint32_t addr):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5fsecurity_5fregister_5f1_249',['W25QXX_SECURITY_REGISTER_1',['../group__w25qxx__advance__driver.html#gga81ddc7d4b9f4f124163beea19cc33c7eaaf27484a497c13915c8acb0161cf137d',1,'driver_w25qxx.h']]],
-  ['w25qxx_5fsecurity_5fregister_5f2_250',['W25QXX_SECURITY_REGISTER_2',['../group__w25qxx__advance__driver.html#gga81ddc7d4b9f4f124163beea19cc33c7ea3353a88090850174ca163d56e4d7089c',1,'driver_w25qxx.h']]],
-  ['w25qxx_5fsecurity_5fregister_5f3_251',['W25QXX_SECURITY_REGISTER_3',['../group__w25qxx__advance__driver.html#gga81ddc7d4b9f4f124163beea19cc33c7ea65b73162d921075bed8cb8d848948900',1,'driver_w25qxx.h']]],
-  ['w25qxx_5fsecurity_5fregister_5ft_252',['w25qxx_security_register_t',['../group__w25qxx__advance__driver.html#ga81ddc7d4b9f4f124163beea19cc33c7e',1,'driver_w25qxx.h']]],
-  ['w25qxx_5fset_5faddress_5fmode_253',['w25qxx_set_address_mode',['../group__w25qxx__basic__driver.html#gad0e125eff304ce66fb3956d2c8c80656',1,'w25qxx_set_address_mode(w25qxx_handle_t *handle, w25qxx_address_mode_t mode):&#160;driver_w25qxx.c'],['../group__w25qxx__basic__driver.html#gad0e125eff304ce66fb3956d2c8c80656',1,'w25qxx_set_address_mode(w25qxx_handle_t *handle, w25qxx_address_mode_t mode):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5fset_5fburst_5fwith_5fwrap_254',['w25qxx_set_burst_with_wrap',['../group__w25qxx__advance__driver.html#gac19c1d0f3fd48968ea2a93c1dbe3d75d',1,'w25qxx_set_burst_with_wrap(w25qxx_handle_t *handle, w25qxx_burst_wrap_t wrap):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#gac19c1d0f3fd48968ea2a93c1dbe3d75d',1,'w25qxx_set_burst_with_wrap(w25qxx_handle_t *handle, w25qxx_burst_wrap_t wrap):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5fset_5fdual_5fquad_5fspi_255',['w25qxx_set_dual_quad_spi',['../group__w25qxx__basic__driver.html#ga665139209b0abc386474a78d89cce6f2',1,'w25qxx_set_dual_quad_spi(w25qxx_handle_t *handle, w25qxx_bool_t enable):&#160;driver_w25qxx.c'],['../group__w25qxx__basic__driver.html#ga665139209b0abc386474a78d89cce6f2',1,'w25qxx_set_dual_quad_spi(w25qxx_handle_t *handle, w25qxx_bool_t enable):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5fset_5finterface_256',['w25qxx_set_interface',['../group__w25qxx__basic__driver.html#ga50a62003d566402d46ada2f272c41eb5',1,'w25qxx_set_interface(w25qxx_handle_t *handle, w25qxx_interface_t interface):&#160;driver_w25qxx.c'],['../group__w25qxx__basic__driver.html#ga50a62003d566402d46ada2f272c41eb5',1,'w25qxx_set_interface(w25qxx_handle_t *handle, w25qxx_interface_t interface):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5fset_5fread_5fparameters_257',['w25qxx_set_read_parameters',['../group__w25qxx__advance__driver.html#ga9ad10781d888b32b43b9eba45d049624',1,'w25qxx_set_read_parameters(w25qxx_handle_t *handle, w25qxx_qspi_read_dummy_t dummy, w25qxx_qspi_read_wrap_length_t length):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#ga9ad10781d888b32b43b9eba45d049624',1,'w25qxx_set_read_parameters(w25qxx_handle_t *handle, w25qxx_qspi_read_dummy_t dummy, w25qxx_qspi_read_wrap_length_t length):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5fset_5fstatus1_258',['w25qxx_set_status1',['../group__w25qxx__advance__driver.html#ga246e0bb07c8bbb39731f17906779c012',1,'w25qxx_set_status1(w25qxx_handle_t *handle, uint8_t status):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#ga246e0bb07c8bbb39731f17906779c012',1,'w25qxx_set_status1(w25qxx_handle_t *handle, uint8_t status):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5fset_5fstatus2_259',['w25qxx_set_status2',['../group__w25qxx__advance__driver.html#gaab5f28e8930d50dbc2178e39bc9fa456',1,'w25qxx_set_status2(w25qxx_handle_t *handle, uint8_t status):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#gaab5f28e8930d50dbc2178e39bc9fa456',1,'w25qxx_set_status2(w25qxx_handle_t *handle, uint8_t status):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5fset_5fstatus3_260',['w25qxx_set_status3',['../group__w25qxx__advance__driver.html#gada897a6c6d6acb99f4dd4ff9b65ad8ee',1,'w25qxx_set_status3(w25qxx_handle_t *handle, uint8_t status):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#gada897a6c6d6acb99f4dd4ff9b65ad8ee',1,'w25qxx_set_status3(w25qxx_handle_t *handle, uint8_t status):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5fset_5ftype_261',['w25qxx_set_type',['../group__w25qxx__basic__driver.html#gaa57189cd4170b73f8b1300ca15e27de6',1,'w25qxx_set_type(w25qxx_handle_t *handle, w25qxx_type_t type):&#160;driver_w25qxx.c'],['../group__w25qxx__basic__driver.html#gaa57189cd4170b73f8b1300ca15e27de6',1,'w25qxx_set_type(w25qxx_handle_t *handle, w25qxx_type_t type):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5fstatus1_5fblock_5fprotect_5f0_262',['W25QXX_STATUS1_BLOCK_PROTECT_0',['../group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a7b7e8922009c0d6a88bbfad76a812262',1,'driver_w25qxx.h']]],
-  ['w25qxx_5fstatus1_5fblock_5fprotect_5f1_263',['W25QXX_STATUS1_BLOCK_PROTECT_1',['../group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a3465f02625d38730630b60cd01e92085',1,'driver_w25qxx.h']]],
-  ['w25qxx_5fstatus1_5fblock_5fprotect_5f2_264',['W25QXX_STATUS1_BLOCK_PROTECT_2',['../group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a9a02180228dbb94e9d302b667fda884f',1,'driver_w25qxx.h']]],
-  ['w25qxx_5fstatus1_5ferase_5fwrite_5fprogress_265',['W25QXX_STATUS1_ERASE_WRITE_PROGRESS',['../group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595ae1ce566fc564776e98a5c7edefe8c5ea',1,'driver_w25qxx.h']]],
-  ['w25qxx_5fstatus1_5fsector_5fprotect_5for_5ftop_5fbottom_5fprotect_266',['W25QXX_STATUS1_SECTOR_PROTECT_OR_TOP_BOTTOM_PROTECT',['../group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a9522040a098337442eff127e1598776d',1,'driver_w25qxx.h']]],
-  ['w25qxx_5fstatus1_5fstatus_5fregister_5fprotect_5f0_267',['W25QXX_STATUS1_STATUS_REGISTER_PROTECT_0',['../group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a00d1d224963ec1f38ac97802480b2129',1,'driver_w25qxx.h']]],
-  ['w25qxx_5fstatus1_5ft_268',['w25qxx_status1_t',['../group__w25qxx__advance__driver.html#ga9e41a72d1e25d39d88ce7108a9b25595',1,'driver_w25qxx.h']]],
-  ['w25qxx_5fstatus1_5ftop_5fbottom_5fprotect_5for_5fblock_5fprotect_5f3_269',['W25QXX_STATUS1_TOP_BOTTOM_PROTECT_OR_BLOCK_PROTECT_3',['../group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a63bc45b7e0e19de7e58e3494eb4046c5',1,'driver_w25qxx.h']]],
-  ['w25qxx_5fstatus1_5fwrite_5fenable_5flatch_270',['W25QXX_STATUS1_WRITE_ENABLE_LATCH',['../group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a1438a76d1be1aa02e4f7450a045c02e3',1,'driver_w25qxx.h']]],
-  ['w25qxx_5fstatus2_5fcomplement_5fprotect_271',['W25QXX_STATUS2_COMPLEMENT_PROTECT',['../group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277a517e9e50ada30462f902d01e8d5579dc',1,'driver_w25qxx.h']]],
-  ['w25qxx_5fstatus2_5fquad_5fenable_272',['W25QXX_STATUS2_QUAD_ENABLE',['../group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277aa920a9c9a590fb8740419d8d2e4230f3',1,'driver_w25qxx.h']]],
-  ['w25qxx_5fstatus2_5fsecurity_5fregister_5f1_5flock_5fbits_273',['W25QXX_STATUS2_SECURITY_REGISTER_1_LOCK_BITS',['../group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277a7a631c1c153cc099a52883b40007079e',1,'driver_w25qxx.h']]],
-  ['w25qxx_5fstatus2_5fsecurity_5fregister_5f2_5flock_5fbits_274',['W25QXX_STATUS2_SECURITY_REGISTER_2_LOCK_BITS',['../group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277a24a99f1a97023ae103c1bec3027bbf26',1,'driver_w25qxx.h']]],
-  ['w25qxx_5fstatus2_5fsecurity_5fregister_5f3_5flock_5fbits_275',['W25QXX_STATUS2_SECURITY_REGISTER_3_LOCK_BITS',['../group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277a0f3e2b3059d56f974724a8284142e69a',1,'driver_w25qxx.h']]],
-  ['w25qxx_5fstatus2_5fstatus_5fregister_5fprotect_5f1_276',['W25QXX_STATUS2_STATUS_REGISTER_PROTECT_1',['../group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277a5a89a885ba2a59eccd0445443e3bbac6',1,'driver_w25qxx.h']]],
-  ['w25qxx_5fstatus2_5fsuspend_5fstatus_277',['W25QXX_STATUS2_SUSPEND_STATUS',['../group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277a3fdb54846709f77391e426c626a19152',1,'driver_w25qxx.h']]],
-  ['w25qxx_5fstatus2_5ft_278',['w25qxx_status2_t',['../group__w25qxx__advance__driver.html#ga0d28076f6fc7d3ae9dd7f8410069a277',1,'driver_w25qxx.h']]],
-  ['w25qxx_5fstatus3_5fcurrent_5faddress_5fmode_279',['W25QXX_STATUS3_CURRENT_ADDRESS_MODE',['../group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44aca3c822d6eacd9747ca2173607a09591ac',1,'driver_w25qxx.h']]],
-  ['w25qxx_5fstatus3_5fhold_5freset_5ffunction_280',['W25QXX_STATUS3_HOLD_RESET_FUNCTION',['../group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44aca9ab13d5388af0156c4e4de08765ec401',1,'driver_w25qxx.h']]],
-  ['w25qxx_5fstatus3_5foutput_5fdriver_5fstrength_5f100_5fpercentage_281',['W25QXX_STATUS3_OUTPUT_DRIVER_STRENGTH_100_PERCENTAGE',['../group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44acab5b1ce328b88d08f3d55ed776e01fedb',1,'driver_w25qxx.h']]],
-  ['w25qxx_5fstatus3_5foutput_5fdriver_5fstrength_5f25_5fpercentage_282',['W25QXX_STATUS3_OUTPUT_DRIVER_STRENGTH_25_PERCENTAGE',['../group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44acae645c265a6beb76a088352e2f4bfb4e1',1,'driver_w25qxx.h']]],
-  ['w25qxx_5fstatus3_5foutput_5fdriver_5fstrength_5f50_5fpercentage_283',['W25QXX_STATUS3_OUTPUT_DRIVER_STRENGTH_50_PERCENTAGE',['../group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44aca8abcd821f1f0d02b3d9179c7ab58d0e0',1,'driver_w25qxx.h']]],
-  ['w25qxx_5fstatus3_5foutput_5fdriver_5fstrength_5f75_5fpercentage_284',['W25QXX_STATUS3_OUTPUT_DRIVER_STRENGTH_75_PERCENTAGE',['../group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44aca7ab6ace72a02afc20f92f48e975b60b7',1,'driver_w25qxx.h']]],
-  ['w25qxx_5fstatus3_5fpower_5fup_5faddress_5fmode_285',['W25QXX_STATUS3_POWER_UP_ADDRESS_MODE',['../group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44acadc8d5949eaea0c6ce4e17c6e746f4f65',1,'driver_w25qxx.h']]],
-  ['w25qxx_5fstatus3_5ft_286',['w25qxx_status3_t',['../group__w25qxx__advance__driver.html#gace18ebb2eac49cbde44a2935916f44ac',1,'driver_w25qxx.h']]],
-  ['w25qxx_5fstatus3_5fwrite_5fprotect_5fselection_287',['W25QXX_STATUS3_WRITE_PROTECT_SELECTION',['../group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44aca7dc507c444fb395a4956bf50d78f1ee3',1,'driver_w25qxx.h']]],
-  ['w25qxx_5ftype_5ft_288',['w25qxx_type_t',['../group__w25qxx__basic__driver.html#ga6cb4e5164464df549201dd96cb7a58b1',1,'driver_w25qxx.h']]],
-  ['w25qxx_5fword_5fread_5fquad_5fio_289',['w25qxx_word_read_quad_io',['../group__w25qxx__advance__driver.html#gad97d7e410dd77c49334097a0fd332660',1,'w25qxx_word_read_quad_io(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#gad97d7e410dd77c49334097a0fd332660',1,'w25qxx_word_read_quad_io(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5fwrite_290',['w25qxx_write',['../group__w25qxx__basic__driver.html#gaaee8264d840e51460821cb6e609338ee',1,'w25qxx_write(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx.c'],['../group__w25qxx__basic__driver.html#gaaee8264d840e51460821cb6e609338ee',1,'w25qxx_write(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5fwrite_5fread_5freg_291',['w25qxx_write_read_reg',['../group__w25qxx__extern__driver.html#ga9623a3bec148b148498480518a66cb2b',1,'w25qxx_write_read_reg(w25qxx_handle_t *handle, uint8_t instruction, uint8_t instruction_line, uint32_t address, uint8_t address_line, uint8_t address_len, uint32_t alternate, uint8_t alternate_line, uint8_t alternate_len, uint8_t dummy, uint8_t *in_buf, uint32_t in_len, uint8_t *out_buf, uint32_t out_len, uint8_t data_line):&#160;driver_w25qxx.c'],['../group__w25qxx__extern__driver.html#ga9623a3bec148b148498480518a66cb2b',1,'w25qxx_write_read_reg(w25qxx_handle_t *handle, uint8_t instruction, uint8_t instruction_line, uint32_t address, uint8_t address_line, uint8_t address_len, uint32_t alternate, uint8_t alternate_line, uint8_t alternate_len, uint8_t dummy, uint8_t *in_buf, uint32_t in_len, uint8_t *out_buf, uint32_t out_len, uint8_t data_line):&#160;driver_w25qxx.c']]]
+  ['spi_5fqspi_0',['spi_qspi',['../structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70',1,'w25qxx_handle_s']]],
+  ['spi_5fqspi_5fdeinit_1',['spi_qspi_deinit',['../structw25qxx__handle__s.html#a4568e23228174b7d32678d9a96d2420c',1,'w25qxx_handle_s']]],
+  ['spi_5fqspi_5finit_2',['spi_qspi_init',['../structw25qxx__handle__s.html#aec834df46e5185868dfdcc6fcec2e801',1,'w25qxx_handle_s']]],
+  ['spi_5fqspi_5fwrite_5fread_3',['spi_qspi_write_read',['../structw25qxx__handle__s.html#a2d39cde883403779e3da9dd39c32bec5',1,'w25qxx_handle_s']]],
+  ['supply_5fvoltage_5fmax_4',['SUPPLY_VOLTAGE_MAX',['../driver__w25qxx_8c.html#a68eba8b601afe11f1b871d944976c035',1,'driver_w25qxx.c']]],
+  ['supply_5fvoltage_5fmax_5fv_5',['supply_voltage_max_v',['../structw25qxx__info__s.html#a3d2b12bcac7a85ea8646bff9debe8660',1,'w25qxx_info_s']]],
+  ['supply_5fvoltage_5fmin_6',['SUPPLY_VOLTAGE_MIN',['../driver__w25qxx_8c.html#aac8d8cbd899667d609787ef4cf37054d',1,'driver_w25qxx.c']]],
+  ['supply_5fvoltage_5fmin_5fv_7',['supply_voltage_min_v',['../structw25qxx__info__s.html#ad8bde6ddadaf43d951e62f3befb9d35a',1,'w25qxx_info_s']]]
 ];
diff --git a/doc/html/search/all_b.js b/doc/html/search/all_b.js
new file mode 100644
index 0000000..a0f969d
--- /dev/null
+++ b/doc/html/search/all_b.js
@@ -0,0 +1,7 @@
+var searchData=
+[
+  ['temperature_5fmax_0',['temperature_max',['../structw25qxx__info__s.html#a3366a5dce9b829e03c3d321c2b4df3f6',1,'w25qxx_info_s::temperature_max'],['../driver__w25qxx_8c.html#a90c0b20d54005712fcc8cb01281360e9',1,'TEMPERATURE_MAX:&#160;driver_w25qxx.c']]],
+  ['temperature_5fmin_1',['temperature_min',['../structw25qxx__info__s.html#a8f9dbe66ac0b66ebae0a36fcb4ba368e',1,'w25qxx_info_s::temperature_min'],['../driver__w25qxx_8c.html#aab353db5bf4eb787f86a2080f609a551',1,'TEMPERATURE_MIN:&#160;driver_w25qxx.c']]],
+  ['test_20driver_20function_2',['w25qxx test driver function',['../group__w25qxx__test__driver.html',1,'']]],
+  ['type_3',['type',['../structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679',1,'w25qxx_handle_s']]]
+];
diff --git a/doc/html/search/all_c.js b/doc/html/search/all_c.js
new file mode 100644
index 0000000..898665b
--- /dev/null
+++ b/doc/html/search/all_c.js
@@ -0,0 +1,243 @@
+var searchData=
+[
+  ['w25q128_0',['W25Q128',['../group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a75afcbe71906d3884f4fcc119c1cabd5',1,'driver_w25qxx.h']]],
+  ['w25q16_1',['W25Q16',['../group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a66acb81a2d520a7d92ce1d37210c6435',1,'driver_w25qxx.h']]],
+  ['w25q256_2',['W25Q256',['../group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca',1,'driver_w25qxx.h']]],
+  ['w25q32_3',['W25Q32',['../group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a4fdad551be6485441db5951f196db7cb',1,'driver_w25qxx.h']]],
+  ['w25q64_4',['W25Q64',['../group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a3ea98b2b3e06afa29441c51548bbb16e',1,'driver_w25qxx.h']]],
+  ['w25q80_5',['W25Q80',['../group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a1ad4f72437de5f26cb7b212d4d91e7c2',1,'driver_w25qxx.h']]],
+  ['w25qxx_6',['LibDriver W25QXX',['../index.html',1,'']]],
+  ['w25qxx_20advance_20driver_20function_7',['w25qxx advance driver function',['../group__w25qxx__advance__driver.html',1,'']]],
+  ['w25qxx_20basic_20driver_20function_8',['w25qxx basic driver function',['../group__w25qxx__basic__driver.html',1,'']]],
+  ['w25qxx_20driver_20function_9',['w25qxx driver function',['../group__w25qxx__driver.html',1,'']]],
+  ['w25qxx_20example_20driver_20function_10',['w25qxx example driver function',['../group__w25qxx__example__driver.html',1,'']]],
+  ['w25qxx_20extern_20driver_20function_11',['w25qxx extern driver function',['../group__w25qxx__extern__driver.html',1,'']]],
+  ['w25qxx_20interface_20driver_20function_12',['w25qxx interface driver function',['../group__w25qxx__interface__driver.html',1,'']]],
+  ['w25qxx_20link_20driver_20function_13',['w25qxx link driver function',['../group__w25qxx__link__driver.html',1,'']]],
+  ['w25qxx_20test_20driver_20function_14',['w25qxx test driver function',['../group__w25qxx__test__driver.html',1,'']]],
+  ['w25qxx_5faddress_5fmode_5f3_5fbyte_15',['W25QXX_ADDRESS_MODE_3_BYTE',['../group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503',1,'driver_w25qxx.h']]],
+  ['w25qxx_5faddress_5fmode_5f4_5fbyte_16',['W25QXX_ADDRESS_MODE_4_BYTE',['../group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe',1,'driver_w25qxx.h']]],
+  ['w25qxx_5faddress_5fmode_5ft_17',['w25qxx_address_mode_t',['../group__w25qxx__basic__driver.html#gaa4c45f146d1ade8a2da8e751818fa4a2',1,'driver_w25qxx.h']]],
+  ['w25qxx_5fadvance_5fblock_5ferase_5f32k_18',['w25qxx_advance_block_erase_32k',['../group__w25qxx__example__driver.html#gaee04edb9e97785e423dffe14a1cad780',1,'w25qxx_advance_block_erase_32k(uint32_t addr):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#gaee04edb9e97785e423dffe14a1cad780',1,'w25qxx_advance_block_erase_32k(uint32_t addr):&#160;driver_w25qxx_advance.c']]],
+  ['w25qxx_5fadvance_5fblock_5ferase_5f64k_19',['w25qxx_advance_block_erase_64k',['../group__w25qxx__example__driver.html#gae7cba4e0b22a1043fe304e46148fa13c',1,'w25qxx_advance_block_erase_64k(uint32_t addr):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#gae7cba4e0b22a1043fe304e46148fa13c',1,'w25qxx_advance_block_erase_64k(uint32_t addr):&#160;driver_w25qxx_advance.c']]],
+  ['w25qxx_5fadvance_5fchip_5ferase_20',['w25qxx_advance_chip_erase',['../group__w25qxx__example__driver.html#ga15cb243f227ef8d897ef3208b622bded',1,'w25qxx_advance_chip_erase(void):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#ga15cb243f227ef8d897ef3208b622bded',1,'w25qxx_advance_chip_erase(void):&#160;driver_w25qxx_advance.c']]],
+  ['w25qxx_5fadvance_5fdeinit_21',['w25qxx_advance_deinit',['../group__w25qxx__example__driver.html#gaf390bbb2c4140f49d25822d963ead722',1,'w25qxx_advance_deinit(void):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#gaf390bbb2c4140f49d25822d963ead722',1,'w25qxx_advance_deinit(void):&#160;driver_w25qxx_advance.c']]],
+  ['w25qxx_5fadvance_5ffast_5fread_22',['w25qxx_advance_fast_read',['../group__w25qxx__example__driver.html#ga7ade25a387b9d03ddecefd86fb328389',1,'w25qxx_advance_fast_read(uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#ga7ade25a387b9d03ddecefd86fb328389',1,'w25qxx_advance_fast_read(uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx_advance.c']]],
+  ['w25qxx_5fadvance_5fget_5fget_5fjedec_5fid_23',['w25qxx_advance_get_get_jedec_id',['../group__w25qxx__example__driver.html#gacc7435a39b61c44f0ce16690d5da896b',1,'w25qxx_advance_get_get_jedec_id(uint8_t *manufacturer, uint8_t device_id[2]):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#gacc7435a39b61c44f0ce16690d5da896b',1,'w25qxx_advance_get_get_jedec_id(uint8_t *manufacturer, uint8_t device_id[2]):&#160;driver_w25qxx_advance.c']]],
+  ['w25qxx_5fadvance_5fget_5fid_24',['w25qxx_advance_get_id',['../group__w25qxx__example__driver.html#ga0f49d960f8b6c6498ab293b369ffc389',1,'w25qxx_advance_get_id(uint8_t *manufacturer, uint8_t *device_id):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#ga0f49d960f8b6c6498ab293b369ffc389',1,'w25qxx_advance_get_id(uint8_t *manufacturer, uint8_t *device_id):&#160;driver_w25qxx_advance.c']]],
+  ['w25qxx_5fadvance_5fget_5fstatus1_25',['w25qxx_advance_get_status1',['../group__w25qxx__example__driver.html#ga4c1be6979b4dc878d07ec86b8624c9d2',1,'w25qxx_advance_get_status1(uint8_t *status):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#ga4c1be6979b4dc878d07ec86b8624c9d2',1,'w25qxx_advance_get_status1(uint8_t *status):&#160;driver_w25qxx_advance.c']]],
+  ['w25qxx_5fadvance_5fget_5fstatus2_26',['w25qxx_advance_get_status2',['../group__w25qxx__example__driver.html#gaf4736fff906c2f0c1dbed26b20847052',1,'w25qxx_advance_get_status2(uint8_t *status):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#gaf4736fff906c2f0c1dbed26b20847052',1,'w25qxx_advance_get_status2(uint8_t *status):&#160;driver_w25qxx_advance.c']]],
+  ['w25qxx_5fadvance_5fget_5fstatus3_27',['w25qxx_advance_get_status3',['../group__w25qxx__example__driver.html#ga31bcd3d2cc68d2fc589685b5087bd8b3',1,'w25qxx_advance_get_status3(uint8_t *status):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#ga31bcd3d2cc68d2fc589685b5087bd8b3',1,'w25qxx_advance_get_status3(uint8_t *status):&#160;driver_w25qxx_advance.c']]],
+  ['w25qxx_5fadvance_5fglobal_5fblock_5flock_28',['w25qxx_advance_global_block_lock',['../group__w25qxx__example__driver.html#ga2cbcc018dc11a870d2e0fc3a8946b1d8',1,'w25qxx_advance_global_block_lock(void):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#ga2cbcc018dc11a870d2e0fc3a8946b1d8',1,'w25qxx_advance_global_block_lock(void):&#160;driver_w25qxx_advance.c']]],
+  ['w25qxx_5fadvance_5fglobal_5fblock_5funlock_29',['w25qxx_advance_global_block_unlock',['../group__w25qxx__example__driver.html#ga67c70da103511d1cff9274e61a08ce56',1,'w25qxx_advance_global_block_unlock(void):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#ga67c70da103511d1cff9274e61a08ce56',1,'w25qxx_advance_global_block_unlock(void):&#160;driver_w25qxx_advance.c']]],
+  ['w25qxx_5fadvance_5findividual_5fblock_5flock_30',['w25qxx_advance_individual_block_lock',['../group__w25qxx__example__driver.html#gaa7af99e92b3e81f5b202575b55dc3a7c',1,'w25qxx_advance_individual_block_lock(uint32_t addr):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#gaa7af99e92b3e81f5b202575b55dc3a7c',1,'w25qxx_advance_individual_block_lock(uint32_t addr):&#160;driver_w25qxx_advance.c']]],
+  ['w25qxx_5fadvance_5findividual_5fblock_5funlock_31',['w25qxx_advance_individual_block_unlock',['../group__w25qxx__example__driver.html#ga66726fc451c7804e8fec6eb46a6a77d6',1,'w25qxx_advance_individual_block_unlock(uint32_t addr):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#ga66726fc451c7804e8fec6eb46a6a77d6',1,'w25qxx_advance_individual_block_unlock(uint32_t addr):&#160;driver_w25qxx_advance.c']]],
+  ['w25qxx_5fadvance_5finit_32',['w25qxx_advance_init',['../group__w25qxx__example__driver.html#ga413b420bc199d09ce5cafee4a4debb28',1,'w25qxx_advance_init(w25qxx_type_t type, w25qxx_interface_t interface, w25qxx_bool_t dual_quad_spi_enable):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#ga413b420bc199d09ce5cafee4a4debb28',1,'w25qxx_advance_init(w25qxx_type_t type, w25qxx_interface_t interface, w25qxx_bool_t dual_quad_spi_enable):&#160;driver_w25qxx_advance.c']]],
+  ['w25qxx_5fadvance_5fonly_5fqspi_5fset_5fread_5fparameters_33',['w25qxx_advance_only_qspi_set_read_parameters',['../group__w25qxx__example__driver.html#gace2a5b7acd9798cfcaa2b5eb2f18e1d1',1,'w25qxx_advance_only_qspi_set_read_parameters(w25qxx_qspi_read_dummy_t dummy, w25qxx_qspi_read_wrap_length_t length):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#gace2a5b7acd9798cfcaa2b5eb2f18e1d1',1,'w25qxx_advance_only_qspi_set_read_parameters(w25qxx_qspi_read_dummy_t dummy, w25qxx_qspi_read_wrap_length_t length):&#160;driver_w25qxx_advance.c']]],
+  ['w25qxx_5fadvance_5fonly_5fspi_5ffast_5fread_5fdual_5fio_34',['w25qxx_advance_only_spi_fast_read_dual_io',['../group__w25qxx__example__driver.html#ga4bbaf1a989fae25d16d07edb1e38ca4f',1,'w25qxx_advance_only_spi_fast_read_dual_io(uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#ga4bbaf1a989fae25d16d07edb1e38ca4f',1,'w25qxx_advance_only_spi_fast_read_dual_io(uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx_advance.c']]],
+  ['w25qxx_5fadvance_5fonly_5fspi_5ffast_5fread_5fdual_5foutput_35',['w25qxx_advance_only_spi_fast_read_dual_output',['../group__w25qxx__example__driver.html#ga364d891407cf323d3686d36ad6357604',1,'w25qxx_advance_only_spi_fast_read_dual_output(uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#ga364d891407cf323d3686d36ad6357604',1,'w25qxx_advance_only_spi_fast_read_dual_output(uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx_advance.c']]],
+  ['w25qxx_5fadvance_5fonly_5fspi_5ffast_5fread_5fquad_5fio_36',['w25qxx_advance_only_spi_fast_read_quad_io',['../group__w25qxx__example__driver.html#ga395add1fa33f4f70d0ba52b38842dbdb',1,'w25qxx_advance_only_spi_fast_read_quad_io(uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#ga395add1fa33f4f70d0ba52b38842dbdb',1,'w25qxx_advance_only_spi_fast_read_quad_io(uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx_advance.c']]],
+  ['w25qxx_5fadvance_5fonly_5fspi_5ffast_5fread_5fquad_5foutput_37',['w25qxx_advance_only_spi_fast_read_quad_output',['../group__w25qxx__example__driver.html#gaf5f978c432de7d6adaf41cd256724a01',1,'w25qxx_advance_only_spi_fast_read_quad_output(uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#gaf5f978c432de7d6adaf41cd256724a01',1,'w25qxx_advance_only_spi_fast_read_quad_output(uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx_advance.c']]],
+  ['w25qxx_5fadvance_5fonly_5fspi_5fget_5fmanufacturer_5fdevice_5fid_5fdual_5fio_38',['w25qxx_advance_only_spi_get_manufacturer_device_id_dual_io',['../group__w25qxx__example__driver.html#gac0d9e08a37ee37563c8dbb501608a668',1,'w25qxx_advance_only_spi_get_manufacturer_device_id_dual_io(uint8_t *manufacturer, uint8_t *device_id):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#gac0d9e08a37ee37563c8dbb501608a668',1,'w25qxx_advance_only_spi_get_manufacturer_device_id_dual_io(uint8_t *manufacturer, uint8_t *device_id):&#160;driver_w25qxx_advance.c']]],
+  ['w25qxx_5fadvance_5fonly_5fspi_5fget_5fmanufacturer_5fdevice_5fid_5fquad_5fio_39',['w25qxx_advance_only_spi_get_manufacturer_device_id_quad_io',['../group__w25qxx__example__driver.html#ga6142b5a1e8602e2990dec34015812615',1,'w25qxx_advance_only_spi_get_manufacturer_device_id_quad_io(uint8_t *manufacturer, uint8_t *device_id):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#ga6142b5a1e8602e2990dec34015812615',1,'w25qxx_advance_only_spi_get_manufacturer_device_id_quad_io(uint8_t *manufacturer, uint8_t *device_id):&#160;driver_w25qxx_advance.c']]],
+  ['w25qxx_5fadvance_5fonly_5fspi_5fget_5fsfdp_40',['w25qxx_advance_only_spi_get_sfdp',['../group__w25qxx__example__driver.html#ga9b1854e0ae52f57523bc2fa7cc0656df',1,'w25qxx_advance_only_spi_get_sfdp(uint8_t sfdp[256]):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#ga9b1854e0ae52f57523bc2fa7cc0656df',1,'w25qxx_advance_only_spi_get_sfdp(uint8_t sfdp[256]):&#160;driver_w25qxx_advance.c']]],
+  ['w25qxx_5fadvance_5fonly_5fspi_5fget_5funique_5fid_41',['w25qxx_advance_only_spi_get_unique_id',['../group__w25qxx__example__driver.html#ga374d35b73fa61d5f7464c3effdae1d57',1,'w25qxx_advance_only_spi_get_unique_id(uint8_t id[8]):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#ga374d35b73fa61d5f7464c3effdae1d57',1,'w25qxx_advance_only_spi_get_unique_id(uint8_t id[8]):&#160;driver_w25qxx_advance.c']]],
+  ['w25qxx_5fadvance_5fonly_5fspi_5foctal_5fword_5fread_5fquad_5fio_42',['w25qxx_advance_only_spi_octal_word_read_quad_io',['../group__w25qxx__example__driver.html#ga825a567c535236d7d18ffccf07df59e9',1,'w25qxx_advance_only_spi_octal_word_read_quad_io(uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#ga825a567c535236d7d18ffccf07df59e9',1,'w25qxx_advance_only_spi_octal_word_read_quad_io(uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx_advance.c']]],
+  ['w25qxx_5fadvance_5fonly_5fspi_5fpage_5fprogram_5fquad_5finput_43',['w25qxx_advance_only_spi_page_program_quad_input',['../group__w25qxx__example__driver.html#gad243655eb738e44c50e6079c983fd782',1,'w25qxx_advance_only_spi_page_program_quad_input(uint32_t addr, uint8_t *data, uint16_t len):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#gad243655eb738e44c50e6079c983fd782',1,'w25qxx_advance_only_spi_page_program_quad_input(uint32_t addr, uint8_t *data, uint16_t len):&#160;driver_w25qxx_advance.c']]],
+  ['w25qxx_5fadvance_5fonly_5fspi_5fread_44',['w25qxx_advance_only_spi_read',['../group__w25qxx__example__driver.html#gac1c7f320706dd6d6d937da75b8a4da93',1,'w25qxx_advance_only_spi_read(uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#gac1c7f320706dd6d6d937da75b8a4da93',1,'w25qxx_advance_only_spi_read(uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx_advance.c']]],
+  ['w25qxx_5fadvance_5fonly_5fspi_5fread_5fsecurity_5fregister_45',['w25qxx_advance_only_spi_read_security_register',['../group__w25qxx__example__driver.html#ga02652a58ee418b432cf77505809d7d42',1,'w25qxx_advance_only_spi_read_security_register(w25qxx_security_register_t num, uint8_t data[256]):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#ga02652a58ee418b432cf77505809d7d42',1,'w25qxx_advance_only_spi_read_security_register(w25qxx_security_register_t num, uint8_t data[256]):&#160;driver_w25qxx_advance.c']]],
+  ['w25qxx_5fadvance_5fonly_5fspi_5fset_5fburst_5fwith_5fwrap_46',['w25qxx_advance_only_spi_set_burst_with_wrap',['../group__w25qxx__example__driver.html#ga16411577fcb794f7485912f5db1bdde9',1,'w25qxx_advance_only_spi_set_burst_with_wrap(w25qxx_burst_wrap_t wrap):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#ga16411577fcb794f7485912f5db1bdde9',1,'w25qxx_advance_only_spi_set_burst_with_wrap(w25qxx_burst_wrap_t wrap):&#160;driver_w25qxx_advance.c']]],
+  ['w25qxx_5fadvance_5fonly_5fspi_5fword_5fread_5fquad_5fio_47',['w25qxx_advance_only_spi_word_read_quad_io',['../group__w25qxx__example__driver.html#gaca6b4c6ea32dd96a4ae8714e2862d67a',1,'w25qxx_advance_only_spi_word_read_quad_io(uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#gaca6b4c6ea32dd96a4ae8714e2862d67a',1,'w25qxx_advance_only_spi_word_read_quad_io(uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx_advance.c']]],
+  ['w25qxx_5fadvance_5fonly_5fspi_5fwrite_5fsecurity_5fregister_48',['w25qxx_advance_only_spi_write_security_register',['../group__w25qxx__example__driver.html#gaa6c5f97106e769ba071973cc2e782ad4',1,'w25qxx_advance_only_spi_write_security_register(w25qxx_security_register_t num, uint8_t data[256]):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#gaa6c5f97106e769ba071973cc2e782ad4',1,'w25qxx_advance_only_spi_write_security_register(w25qxx_security_register_t num, uint8_t data[256]):&#160;driver_w25qxx_advance.c']]],
+  ['w25qxx_5fadvance_5fpage_5fprogram_49',['w25qxx_advance_page_program',['../group__w25qxx__example__driver.html#ga39ff13988a3d451231cec3260c13a4cd',1,'w25qxx_advance_page_program(uint32_t addr, uint8_t *data, uint16_t len):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#ga39ff13988a3d451231cec3260c13a4cd',1,'w25qxx_advance_page_program(uint32_t addr, uint8_t *data, uint16_t len):&#160;driver_w25qxx_advance.c']]],
+  ['w25qxx_5fadvance_5fpower_5fdown_50',['w25qxx_advance_power_down',['../group__w25qxx__example__driver.html#ga5599de31797633ae75a63bcd5a8f4736',1,'w25qxx_advance_power_down(void):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#ga5599de31797633ae75a63bcd5a8f4736',1,'w25qxx_advance_power_down(void):&#160;driver_w25qxx_advance.c']]],
+  ['w25qxx_5fadvance_5fread_51',['w25qxx_advance_read',['../group__w25qxx__example__driver.html#ga013a389763200b54daaa345adf9329dc',1,'w25qxx_advance_read(uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#ga013a389763200b54daaa345adf9329dc',1,'w25qxx_advance_read(uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx_advance.c']]],
+  ['w25qxx_5fadvance_5fread_5fblock_5flock_52',['w25qxx_advance_read_block_lock',['../group__w25qxx__example__driver.html#gac1773fe914a01825ca28346205601036',1,'w25qxx_advance_read_block_lock(uint32_t addr, uint8_t *value):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#gac1773fe914a01825ca28346205601036',1,'w25qxx_advance_read_block_lock(uint32_t addr, uint8_t *value):&#160;driver_w25qxx_advance.c']]],
+  ['w25qxx_5fadvance_5freset_53',['w25qxx_advance_reset',['../group__w25qxx__example__driver.html#ga0f65053ad28443f19ed73dbc3412b5b2',1,'w25qxx_advance_reset(void):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#ga0f65053ad28443f19ed73dbc3412b5b2',1,'w25qxx_advance_reset(void):&#160;driver_w25qxx_advance.c']]],
+  ['w25qxx_5fadvance_5fsector_5ferase_5f4k_54',['w25qxx_advance_sector_erase_4k',['../group__w25qxx__example__driver.html#ga9325acc424c95624f15e11631082201d',1,'w25qxx_advance_sector_erase_4k(uint32_t addr):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#ga9325acc424c95624f15e11631082201d',1,'w25qxx_advance_sector_erase_4k(uint32_t addr):&#160;driver_w25qxx_advance.c']]],
+  ['w25qxx_5fadvance_5fset_5fstatus1_55',['w25qxx_advance_set_status1',['../group__w25qxx__example__driver.html#ga5e4938b4575c417ae22fa82079459b1a',1,'w25qxx_advance_set_status1(uint8_t status):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#ga5e4938b4575c417ae22fa82079459b1a',1,'w25qxx_advance_set_status1(uint8_t status):&#160;driver_w25qxx_advance.c']]],
+  ['w25qxx_5fadvance_5fset_5fstatus2_56',['w25qxx_advance_set_status2',['../group__w25qxx__example__driver.html#ga9bc0e696b700d66f15b3605e10d33718',1,'w25qxx_advance_set_status2(uint8_t status):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#ga9bc0e696b700d66f15b3605e10d33718',1,'w25qxx_advance_set_status2(uint8_t status):&#160;driver_w25qxx_advance.c']]],
+  ['w25qxx_5fadvance_5fset_5fstatus3_57',['w25qxx_advance_set_status3',['../group__w25qxx__example__driver.html#gab5c990ebd4874137b7d23f2b896d4601',1,'w25qxx_advance_set_status3(uint8_t status):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#gab5c990ebd4874137b7d23f2b896d4601',1,'w25qxx_advance_set_status3(uint8_t status):&#160;driver_w25qxx_advance.c']]],
+  ['w25qxx_5fadvance_5fwake_5fup_58',['w25qxx_advance_wake_up',['../group__w25qxx__example__driver.html#ga8a57e2d056d452abc14b0a08d4223251',1,'w25qxx_advance_wake_up(void):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#ga8a57e2d056d452abc14b0a08d4223251',1,'w25qxx_advance_wake_up(void):&#160;driver_w25qxx_advance.c']]],
+  ['w25qxx_5fadvance_5fwrite_59',['w25qxx_advance_write',['../group__w25qxx__example__driver.html#ga63f4e1dce2ef7c7de56461524fd22d04',1,'w25qxx_advance_write(uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#ga63f4e1dce2ef7c7de56461524fd22d04',1,'w25qxx_advance_write(uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx_advance.c']]],
+  ['w25qxx_5fbasic_5fchip_5ferase_60',['w25qxx_basic_chip_erase',['../group__w25qxx__example__driver.html#gaf78e9f136e29b826c1a2b337b8451d6d',1,'w25qxx_basic_chip_erase(void):&#160;driver_w25qxx_basic.c'],['../group__w25qxx__example__driver.html#gaf78e9f136e29b826c1a2b337b8451d6d',1,'w25qxx_basic_chip_erase(void):&#160;driver_w25qxx_basic.c']]],
+  ['w25qxx_5fbasic_5fdeinit_61',['w25qxx_basic_deinit',['../group__w25qxx__example__driver.html#gaeb167c2924a3490e9a8d11e0c57d2dc0',1,'w25qxx_basic_deinit(void):&#160;driver_w25qxx_basic.c'],['../group__w25qxx__example__driver.html#gaeb167c2924a3490e9a8d11e0c57d2dc0',1,'w25qxx_basic_deinit(void):&#160;driver_w25qxx_basic.c']]],
+  ['w25qxx_5fbasic_5fget_5fid_62',['w25qxx_basic_get_id',['../group__w25qxx__example__driver.html#gacdda3af55c024b55fc9939aa23650356',1,'w25qxx_basic_get_id(uint8_t *manufacturer, uint8_t *device_id):&#160;driver_w25qxx_basic.c'],['../group__w25qxx__example__driver.html#gacdda3af55c024b55fc9939aa23650356',1,'w25qxx_basic_get_id(uint8_t *manufacturer, uint8_t *device_id):&#160;driver_w25qxx_basic.c']]],
+  ['w25qxx_5fbasic_5finit_63',['w25qxx_basic_init',['../group__w25qxx__example__driver.html#ga1e20768311dfdf33c77b442fa874b61a',1,'w25qxx_basic_init(w25qxx_type_t type, w25qxx_interface_t interface, w25qxx_bool_t dual_quad_spi_enable):&#160;driver_w25qxx_basic.c'],['../group__w25qxx__example__driver.html#ga1e20768311dfdf33c77b442fa874b61a',1,'w25qxx_basic_init(w25qxx_type_t type, w25qxx_interface_t interface, w25qxx_bool_t dual_quad_spi_enable):&#160;driver_w25qxx_basic.c']]],
+  ['w25qxx_5fbasic_5fpower_5fdown_64',['w25qxx_basic_power_down',['../group__w25qxx__example__driver.html#ga572c9f7a0bf2e7ab43dc078121162ec3',1,'w25qxx_basic_power_down(void):&#160;driver_w25qxx_basic.c'],['../group__w25qxx__example__driver.html#ga572c9f7a0bf2e7ab43dc078121162ec3',1,'w25qxx_basic_power_down(void):&#160;driver_w25qxx_basic.c']]],
+  ['w25qxx_5fbasic_5fread_65',['w25qxx_basic_read',['../group__w25qxx__example__driver.html#ga143fa1f19a792142339f3d4e9ce078d0',1,'w25qxx_basic_read(uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx_basic.c'],['../group__w25qxx__example__driver.html#ga143fa1f19a792142339f3d4e9ce078d0',1,'w25qxx_basic_read(uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx_basic.c']]],
+  ['w25qxx_5fbasic_5fwake_5fup_66',['w25qxx_basic_wake_up',['../group__w25qxx__example__driver.html#ga02914409a9db38f35bc89d9fc4d96a17',1,'w25qxx_basic_wake_up(void):&#160;driver_w25qxx_basic.c'],['../group__w25qxx__example__driver.html#ga02914409a9db38f35bc89d9fc4d96a17',1,'w25qxx_basic_wake_up(void):&#160;driver_w25qxx_basic.c']]],
+  ['w25qxx_5fbasic_5fwrite_67',['w25qxx_basic_write',['../group__w25qxx__example__driver.html#ga5cf24fc78e1b45e845d02ec9133f46ab',1,'w25qxx_basic_write(uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx_basic.c'],['../group__w25qxx__example__driver.html#ga5cf24fc78e1b45e845d02ec9133f46ab',1,'w25qxx_basic_write(uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx_basic.c']]],
+  ['w25qxx_5fblock_5ferase_5f32k_68',['w25qxx_block_erase_32k',['../group__w25qxx__basic__driver.html#ga39c8fb382e8c3e4d57232dfa79af781c',1,'w25qxx_block_erase_32k(w25qxx_handle_t *handle, uint32_t addr):&#160;driver_w25qxx.c'],['../group__w25qxx__basic__driver.html#ga39c8fb382e8c3e4d57232dfa79af781c',1,'w25qxx_block_erase_32k(w25qxx_handle_t *handle, uint32_t addr):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5fblock_5ferase_5f64k_69',['w25qxx_block_erase_64k',['../group__w25qxx__basic__driver.html#gaf53bc5f6073482b9b74efd417ec7ac83',1,'w25qxx_block_erase_64k(w25qxx_handle_t *handle, uint32_t addr):&#160;driver_w25qxx.c'],['../group__w25qxx__basic__driver.html#gaf53bc5f6073482b9b74efd417ec7ac83',1,'w25qxx_block_erase_64k(w25qxx_handle_t *handle, uint32_t addr):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5fbool_5ffalse_70',['W25QXX_BOOL_FALSE',['../group__w25qxx__basic__driver.html#ggafb2690946f5baf4be6f3a63dde5491fba02afbdc2c6c3d761cd31ac39c857ee9a',1,'driver_w25qxx.h']]],
+  ['w25qxx_5fbool_5ft_71',['w25qxx_bool_t',['../group__w25qxx__basic__driver.html#gafb2690946f5baf4be6f3a63dde5491fb',1,'driver_w25qxx.h']]],
+  ['w25qxx_5fbool_5ftrue_72',['W25QXX_BOOL_TRUE',['../group__w25qxx__basic__driver.html#ggafb2690946f5baf4be6f3a63dde5491fbae2a935d12b0b1bc9fc321246ee0e0df8',1,'driver_w25qxx.h']]],
+  ['w25qxx_5fburst_5fwrap_5f16_5fbyte_73',['W25QXX_BURST_WRAP_16_BYTE',['../group__w25qxx__advance__driver.html#gga94bbae2bf8906903e8dc2a28c490723dafec1eb230b49fbda6ffcc1eeda64179a',1,'driver_w25qxx.h']]],
+  ['w25qxx_5fburst_5fwrap_5f32_5fbyte_74',['W25QXX_BURST_WRAP_32_BYTE',['../group__w25qxx__advance__driver.html#gga94bbae2bf8906903e8dc2a28c490723dae2ac810153f9515a145773c34409b995',1,'driver_w25qxx.h']]],
+  ['w25qxx_5fburst_5fwrap_5f64_5fbyte_75',['W25QXX_BURST_WRAP_64_BYTE',['../group__w25qxx__advance__driver.html#gga94bbae2bf8906903e8dc2a28c490723da2a3afd7924b00cf74abe83f5216c8915',1,'driver_w25qxx.h']]],
+  ['w25qxx_5fburst_5fwrap_5f8_5fbyte_76',['W25QXX_BURST_WRAP_8_BYTE',['../group__w25qxx__advance__driver.html#gga94bbae2bf8906903e8dc2a28c490723da35edf6c31d0fe1771ab79669d13b7af8',1,'driver_w25qxx.h']]],
+  ['w25qxx_5fburst_5fwrap_5fnone_77',['W25QXX_BURST_WRAP_NONE',['../group__w25qxx__advance__driver.html#gga94bbae2bf8906903e8dc2a28c490723dae39a7ea65512a56d40aad2990d55815d',1,'driver_w25qxx.h']]],
+  ['w25qxx_5fburst_5fwrap_5ft_78',['w25qxx_burst_wrap_t',['../group__w25qxx__advance__driver.html#ga94bbae2bf8906903e8dc2a28c490723d',1,'driver_w25qxx.h']]],
+  ['w25qxx_5fchip_5ferase_79',['w25qxx_chip_erase',['../group__w25qxx__basic__driver.html#ga0862833b36831f92684980b2e21f2e39',1,'w25qxx_chip_erase(w25qxx_handle_t *handle):&#160;driver_w25qxx.c'],['../group__w25qxx__basic__driver.html#ga0862833b36831f92684980b2e21f2e39',1,'w25qxx_chip_erase(w25qxx_handle_t *handle):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5fcommand_5fblock_5ferase_5f32k_80',['W25QXX_COMMAND_BLOCK_ERASE_32K',['../driver__w25qxx_8c.html#a8bfb4e869985f5fa21ea7d1d262f90ad',1,'driver_w25qxx.c']]],
+  ['w25qxx_5fcommand_5fblock_5ferase_5f64k_81',['W25QXX_COMMAND_BLOCK_ERASE_64K',['../driver__w25qxx_8c.html#a4c5a1ed46f4d662a61bc06573ab548a0',1,'driver_w25qxx.c']]],
+  ['w25qxx_5fcommand_5fchip_5ferase_82',['W25QXX_COMMAND_CHIP_ERASE',['../driver__w25qxx_8c.html#a63ec9ecd709fcb69107756f253616a6e',1,'driver_w25qxx.c']]],
+  ['w25qxx_5fcommand_5fdevice_5fid_5fdual_5fio_83',['W25QXX_COMMAND_DEVICE_ID_DUAL_IO',['../driver__w25qxx_8c.html#a374c09f79cc61a3e7ac374bca5122e25',1,'driver_w25qxx.c']]],
+  ['w25qxx_5fcommand_5fdevice_5fid_5fquad_5fio_84',['W25QXX_COMMAND_DEVICE_ID_QUAD_IO',['../driver__w25qxx_8c.html#a7573bc250d850078be3221c29521bc5c',1,'driver_w25qxx.c']]],
+  ['w25qxx_5fcommand_5fenable_5freset_85',['W25QXX_COMMAND_ENABLE_RESET',['../driver__w25qxx_8c.html#a6dae3a832abc19d1861fafb32f231d94',1,'driver_w25qxx.c']]],
+  ['w25qxx_5fcommand_5fenter_5fqspi_5fmode_86',['W25QXX_COMMAND_ENTER_QSPI_MODE',['../driver__w25qxx_8c.html#a052d5373086b473bf0d450ea1bd73828',1,'driver_w25qxx.c']]],
+  ['w25qxx_5fcommand_5ferase_5fprogram_5fresume_87',['W25QXX_COMMAND_ERASE_PROGRAM_RESUME',['../driver__w25qxx_8c.html#a0daeb46fb8b219a3d6b37d426c5c0e95',1,'driver_w25qxx.c']]],
+  ['w25qxx_5fcommand_5ferase_5fprogram_5fsuspend_88',['W25QXX_COMMAND_ERASE_PROGRAM_SUSPEND',['../driver__w25qxx_8c.html#a43f9a1e3c03d4a7d2a991e81f0e89f51',1,'driver_w25qxx.c']]],
+  ['w25qxx_5fcommand_5ferase_5fsecurity_5fregister_89',['W25QXX_COMMAND_ERASE_SECURITY_REGISTER',['../driver__w25qxx_8c.html#a842f8d646fc8f8ed72422fc1d789498c',1,'driver_w25qxx.c']]],
+  ['w25qxx_5fcommand_5ffast_5fread_90',['W25QXX_COMMAND_FAST_READ',['../driver__w25qxx_8c.html#ac957b31a68db8c14f88a196a98b0aa18',1,'driver_w25qxx.c']]],
+  ['w25qxx_5fcommand_5ffast_5fread_5fdual_5fio_91',['W25QXX_COMMAND_FAST_READ_DUAL_IO',['../driver__w25qxx_8c.html#a2232ada3558228c2902d654989ca65f1',1,'driver_w25qxx.c']]],
+  ['w25qxx_5fcommand_5ffast_5fread_5fdual_5foutput_92',['W25QXX_COMMAND_FAST_READ_DUAL_OUTPUT',['../driver__w25qxx_8c.html#a8d49efa8b978ae8fd3eb18d0e5ae73e8',1,'driver_w25qxx.c']]],
+  ['w25qxx_5fcommand_5ffast_5fread_5fquad_5fio_93',['W25QXX_COMMAND_FAST_READ_QUAD_IO',['../driver__w25qxx_8c.html#a80d19998d9d1218d0fa69e7d4d6b0ecb',1,'driver_w25qxx.c']]],
+  ['w25qxx_5fcommand_5ffast_5fread_5fquad_5foutput_94',['W25QXX_COMMAND_FAST_READ_QUAD_OUTPUT',['../driver__w25qxx_8c.html#a54ddb3d948c4bb95cc62199676c817b2',1,'driver_w25qxx.c']]],
+  ['w25qxx_5fcommand_5fglobal_5fblock_5fsector_5flock_95',['W25QXX_COMMAND_GLOBAL_BLOCK_SECTOR_LOCK',['../driver__w25qxx_8c.html#af81bc9ddfc8da8eb911435e835536ffb',1,'driver_w25qxx.c']]],
+  ['w25qxx_5fcommand_5fglobal_5fblock_5fsector_5funlock_96',['W25QXX_COMMAND_GLOBAL_BLOCK_SECTOR_UNLOCK',['../driver__w25qxx_8c.html#ab96d2ad8602a5a50c988b8c09d4bbbc5',1,'driver_w25qxx.c']]],
+  ['w25qxx_5fcommand_5findividual_5fblock_5flock_97',['W25QXX_COMMAND_INDIVIDUAL_BLOCK_LOCK',['../driver__w25qxx_8c.html#a328f6a9635b1ec6868410375de90b0df',1,'driver_w25qxx.c']]],
+  ['w25qxx_5fcommand_5findividual_5fblock_5funlock_98',['W25QXX_COMMAND_INDIVIDUAL_BLOCK_UNLOCK',['../driver__w25qxx_8c.html#a3cc8b61583b5eb9d7c1ecd6831689718',1,'driver_w25qxx.c']]],
+  ['w25qxx_5fcommand_5fjedec_5fid_99',['W25QXX_COMMAND_JEDEC_ID',['../driver__w25qxx_8c.html#a54f3ece548cd5eadc94642235442315a',1,'driver_w25qxx.c']]],
+  ['w25qxx_5fcommand_5foctal_5fword_5fread_5fquad_5fio_100',['W25QXX_COMMAND_OCTAL_WORD_READ_QUAD_IO',['../driver__w25qxx_8c.html#acb7f8599b26c29356651690ec9b25e66',1,'driver_w25qxx.c']]],
+  ['w25qxx_5fcommand_5fpage_5fprogram_101',['W25QXX_COMMAND_PAGE_PROGRAM',['../driver__w25qxx_8c.html#aebca01f1f7fd279523d29e579998574a',1,'driver_w25qxx.c']]],
+  ['w25qxx_5fcommand_5fpower_5fdown_102',['W25QXX_COMMAND_POWER_DOWN',['../driver__w25qxx_8c.html#a6fe4d603e33b7c8b8310a884e02a130b',1,'driver_w25qxx.c']]],
+  ['w25qxx_5fcommand_5fprogram_5fsecurity_5fregister_103',['W25QXX_COMMAND_PROGRAM_SECURITY_REGISTER',['../driver__w25qxx_8c.html#a915ab53f5f2d1cad6b954205e76cb4d5',1,'driver_w25qxx.c']]],
+  ['w25qxx_5fcommand_5fquad_5fpage_5fprogram_104',['W25QXX_COMMAND_QUAD_PAGE_PROGRAM',['../driver__w25qxx_8c.html#a8212fac3d1e43024621b6b560a8dddfe',1,'driver_w25qxx.c']]],
+  ['w25qxx_5fcommand_5fread_5fblock_5flock_105',['W25QXX_COMMAND_READ_BLOCK_LOCK',['../driver__w25qxx_8c.html#a19e055bec30de0ad30e7f8ab5feea6a8',1,'driver_w25qxx.c']]],
+  ['w25qxx_5fcommand_5fread_5fdata_106',['W25QXX_COMMAND_READ_DATA',['../driver__w25qxx_8c.html#a23fcd6d9b067580d534d626c43b7cff3',1,'driver_w25qxx.c']]],
+  ['w25qxx_5fcommand_5fread_5fmanufacturer_107',['W25QXX_COMMAND_READ_MANUFACTURER',['../driver__w25qxx_8c.html#af6d9a5bc0b57b041e22af80b85e53f56',1,'driver_w25qxx.c']]],
+  ['w25qxx_5fcommand_5fread_5fsecurity_5fregister_108',['W25QXX_COMMAND_READ_SECURITY_REGISTER',['../driver__w25qxx_8c.html#a4dc5fb2c3c15ef86df56b534b874a919',1,'driver_w25qxx.c']]],
+  ['w25qxx_5fcommand_5fread_5fsfdp_5fregister_109',['W25QXX_COMMAND_READ_SFDP_REGISTER',['../driver__w25qxx_8c.html#a63774c5ebbdf5445466d840fad567bf6',1,'driver_w25qxx.c']]],
+  ['w25qxx_5fcommand_5fread_5fstatus_5freg1_110',['W25QXX_COMMAND_READ_STATUS_REG1',['../driver__w25qxx_8c.html#adf682969c34f4b31a87dd92dd18ccea3',1,'driver_w25qxx.c']]],
+  ['w25qxx_5fcommand_5fread_5fstatus_5freg2_111',['W25QXX_COMMAND_READ_STATUS_REG2',['../driver__w25qxx_8c.html#a4a8cdc5b6ce75029df877263bdf35f2a',1,'driver_w25qxx.c']]],
+  ['w25qxx_5fcommand_5fread_5fstatus_5freg3_112',['W25QXX_COMMAND_READ_STATUS_REG3',['../driver__w25qxx_8c.html#a09798bdb3fabdf7bb4cfd8bce18100ce',1,'driver_w25qxx.c']]],
+  ['w25qxx_5fcommand_5fread_5funique_5fid_113',['W25QXX_COMMAND_READ_UNIQUE_ID',['../driver__w25qxx_8c.html#a6aeed0a651b31064f25ab2f57fdacf2f',1,'driver_w25qxx.c']]],
+  ['w25qxx_5fcommand_5frelease_5fpower_5fdown_114',['W25QXX_COMMAND_RELEASE_POWER_DOWN',['../driver__w25qxx_8c.html#ad344065461b2c71521017984f040b425',1,'driver_w25qxx.c']]],
+  ['w25qxx_5fcommand_5freset_5fdevice_115',['W25QXX_COMMAND_RESET_DEVICE',['../driver__w25qxx_8c.html#ab25182298c921c8f7f42216e0d5aa56b',1,'driver_w25qxx.c']]],
+  ['w25qxx_5fcommand_5fsector_5ferase_5f4k_116',['W25QXX_COMMAND_SECTOR_ERASE_4K',['../driver__w25qxx_8c.html#a6e7cd159f91e23930450725fd6910f9c',1,'driver_w25qxx.c']]],
+  ['w25qxx_5fcommand_5fset_5fburst_5fwith_5fwrap_117',['W25QXX_COMMAND_SET_BURST_WITH_WRAP',['../driver__w25qxx_8c.html#acfb19490258b26729fa83fdd60c4d822',1,'driver_w25qxx.c']]],
+  ['w25qxx_5fcommand_5fvolatile_5fsr_5fwrite_5fenable_118',['W25QXX_COMMAND_VOLATILE_SR_WRITE_ENABLE',['../driver__w25qxx_8c.html#a7c9e980e30f499dd97b02935c91f2c02',1,'driver_w25qxx.c']]],
+  ['w25qxx_5fcommand_5fword_5fread_5fquad_5fio_119',['W25QXX_COMMAND_WORD_READ_QUAD_IO',['../driver__w25qxx_8c.html#a947382a74ac06eb8a2ff8f5bcb1b744d',1,'driver_w25qxx.c']]],
+  ['w25qxx_5fcommand_5fwrite_5fdisable_120',['W25QXX_COMMAND_WRITE_DISABLE',['../driver__w25qxx_8c.html#a36dfb1951fe152d63e3715a161646713',1,'driver_w25qxx.c']]],
+  ['w25qxx_5fcommand_5fwrite_5fenable_121',['W25QXX_COMMAND_WRITE_ENABLE',['../driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5',1,'driver_w25qxx.c']]],
+  ['w25qxx_5fcommand_5fwrite_5fstatus_5freg1_122',['W25QXX_COMMAND_WRITE_STATUS_REG1',['../driver__w25qxx_8c.html#a932f54ff92de8bbab4602ab85ac6c155',1,'driver_w25qxx.c']]],
+  ['w25qxx_5fcommand_5fwrite_5fstatus_5freg2_123',['W25QXX_COMMAND_WRITE_STATUS_REG2',['../driver__w25qxx_8c.html#a4be10ed873d56bb183d9b1bde9105135',1,'driver_w25qxx.c']]],
+  ['w25qxx_5fcommand_5fwrite_5fstatus_5freg3_124',['W25QXX_COMMAND_WRITE_STATUS_REG3',['../driver__w25qxx_8c.html#a6d099dc6afb59cc950d3abe96b840158',1,'driver_w25qxx.c']]],
+  ['w25qxx_5fdeinit_125',['w25qxx_deinit',['../group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d',1,'w25qxx_deinit(w25qxx_handle_t *handle):&#160;driver_w25qxx.c'],['../group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d',1,'w25qxx_deinit(w25qxx_handle_t *handle):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5fdisable_5fwrite_126',['w25qxx_disable_write',['../group__w25qxx__advance__driver.html#gac16a31269277051baad6c28fe4254b4a',1,'w25qxx_disable_write(w25qxx_handle_t *handle):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#gac16a31269277051baad6c28fe4254b4a',1,'w25qxx_disable_write(w25qxx_handle_t *handle):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5fenable_5ferase_5fread_5ftest_127',['W25QXX_ENABLE_ERASE_READ_TEST',['../group__w25qxx__test__driver.html#ga8be86baae6f8448171125c70da1fbfa0',1,'driver_w25qxx_read_test.h']]],
+  ['w25qxx_5fenable_5freset_128',['w25qxx_enable_reset',['../group__w25qxx__advance__driver.html#gab55b4e071e20feb58584025287949438',1,'w25qxx_enable_reset(w25qxx_handle_t *handle):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#gab55b4e071e20feb58584025287949438',1,'w25qxx_enable_reset(w25qxx_handle_t *handle):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5fenable_5fvolatile_5fsr_5fwrite_129',['w25qxx_enable_volatile_sr_write',['../group__w25qxx__advance__driver.html#ga0f8889d6a25c32e150a2ab30753d461d',1,'w25qxx_enable_volatile_sr_write(w25qxx_handle_t *handle):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#ga0f8889d6a25c32e150a2ab30753d461d',1,'w25qxx_enable_volatile_sr_write(w25qxx_handle_t *handle):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5fenable_5fwrite_130',['w25qxx_enable_write',['../group__w25qxx__advance__driver.html#gaeb269123feec054eaaf70f2ffb5797a3',1,'w25qxx_enable_write(w25qxx_handle_t *handle):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#gaeb269123feec054eaaf70f2ffb5797a3',1,'w25qxx_enable_write(w25qxx_handle_t *handle):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5fenter_5fqspi_5fmode_131',['w25qxx_enter_qspi_mode',['../group__w25qxx__advance__driver.html#gaa5ab3548707a95ded115255432224c5a',1,'w25qxx_enter_qspi_mode(w25qxx_handle_t *handle):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#gaa5ab3548707a95ded115255432224c5a',1,'w25qxx_enter_qspi_mode(w25qxx_handle_t *handle):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5ferase_5fprogram_5fresume_132',['w25qxx_erase_program_resume',['../group__w25qxx__advance__driver.html#ga05c69ac66309544eba4ff38a69f24c00',1,'w25qxx_erase_program_resume(w25qxx_handle_t *handle):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#ga05c69ac66309544eba4ff38a69f24c00',1,'w25qxx_erase_program_resume(w25qxx_handle_t *handle):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5ferase_5fprogram_5fsuspend_133',['w25qxx_erase_program_suspend',['../group__w25qxx__advance__driver.html#gac7fbabc574c250eec100be861f5918ff',1,'w25qxx_erase_program_suspend(w25qxx_handle_t *handle):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#gac7fbabc574c250eec100be861f5918ff',1,'w25qxx_erase_program_suspend(w25qxx_handle_t *handle):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5ferase_5fsecurity_5fregister_134',['w25qxx_erase_security_register',['../group__w25qxx__advance__driver.html#gaf297e2c6877c64f8fd10a555f783ddaf',1,'w25qxx_erase_security_register(w25qxx_handle_t *handle, w25qxx_security_register_t num):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#gaf297e2c6877c64f8fd10a555f783ddaf',1,'w25qxx_erase_security_register(w25qxx_handle_t *handle, w25qxx_security_register_t num):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5fexit_5fqspi_5fmode_135',['w25qxx_exit_qspi_mode',['../group__w25qxx__advance__driver.html#ga6b9f75f7426a54ffdb1f5a057f8188f4',1,'w25qxx_exit_qspi_mode(w25qxx_handle_t *handle):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#ga6b9f75f7426a54ffdb1f5a057f8188f4',1,'w25qxx_exit_qspi_mode(w25qxx_handle_t *handle):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5ffast_5fread_136',['w25qxx_fast_read',['../group__w25qxx__basic__driver.html#gac345ba10af5ad355578fa97697487123',1,'w25qxx_fast_read(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx.c'],['../group__w25qxx__basic__driver.html#gac345ba10af5ad355578fa97697487123',1,'w25qxx_fast_read(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5ffast_5fread_5fdual_5fio_137',['w25qxx_fast_read_dual_io',['../group__w25qxx__advance__driver.html#gac894f4650905cba10dd3a31284de6d5e',1,'w25qxx_fast_read_dual_io(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#gac894f4650905cba10dd3a31284de6d5e',1,'w25qxx_fast_read_dual_io(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5ffast_5fread_5fdual_5foutput_138',['w25qxx_fast_read_dual_output',['../group__w25qxx__advance__driver.html#ga7a19230ca3916816ea8fb7421483d293',1,'w25qxx_fast_read_dual_output(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#ga7a19230ca3916816ea8fb7421483d293',1,'w25qxx_fast_read_dual_output(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5ffast_5fread_5fquad_5fio_139',['w25qxx_fast_read_quad_io',['../group__w25qxx__advance__driver.html#gab97a64bd3776874518f60381d921ae41',1,'w25qxx_fast_read_quad_io(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#gab97a64bd3776874518f60381d921ae41',1,'w25qxx_fast_read_quad_io(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5ffast_5fread_5fquad_5foutput_140',['w25qxx_fast_read_quad_output',['../group__w25qxx__advance__driver.html#gaf4bfafd1f80aa0316a4b1a15183dcd50',1,'w25qxx_fast_read_quad_output(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#gaf4bfafd1f80aa0316a4b1a15183dcd50',1,'w25qxx_fast_read_quad_output(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5fget_5faddress_5fmode_141',['w25qxx_get_address_mode',['../group__w25qxx__basic__driver.html#ga3a52036a97b12fcbe2280b0901a80b90',1,'w25qxx_get_address_mode(w25qxx_handle_t *handle, w25qxx_address_mode_t *mode):&#160;driver_w25qxx.c'],['../group__w25qxx__basic__driver.html#ga3a52036a97b12fcbe2280b0901a80b90',1,'w25qxx_get_address_mode(w25qxx_handle_t *handle, w25qxx_address_mode_t *mode):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5fget_5fdual_5fquad_5fspi_142',['w25qxx_get_dual_quad_spi',['../group__w25qxx__basic__driver.html#gad4c9b8b0a2d0916c13567f9d7e494cf8',1,'w25qxx_get_dual_quad_spi(w25qxx_handle_t *handle, w25qxx_bool_t *enable):&#160;driver_w25qxx.c'],['../group__w25qxx__basic__driver.html#gad4c9b8b0a2d0916c13567f9d7e494cf8',1,'w25qxx_get_dual_quad_spi(w25qxx_handle_t *handle, w25qxx_bool_t *enable):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5fget_5finterface_143',['w25qxx_get_interface',['../group__w25qxx__basic__driver.html#ga86ef839d475f3926a0be46bbc18d4b45',1,'w25qxx_get_interface(w25qxx_handle_t *handle, w25qxx_interface_t *interface):&#160;driver_w25qxx.c'],['../group__w25qxx__basic__driver.html#ga86ef839d475f3926a0be46bbc18d4b45',1,'w25qxx_get_interface(w25qxx_handle_t *handle, w25qxx_interface_t *interface):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5fget_5fjedec_5fid_144',['w25qxx_get_jedec_id',['../group__w25qxx__advance__driver.html#ga8a93ba14a032e10a27f1495fdcf56058',1,'w25qxx_get_jedec_id(w25qxx_handle_t *handle, uint8_t *manufacturer, uint8_t device_id[2]):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#ga8a93ba14a032e10a27f1495fdcf56058',1,'w25qxx_get_jedec_id(w25qxx_handle_t *handle, uint8_t *manufacturer, uint8_t device_id[2]):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5fget_5fmanufacturer_5fdevice_5fid_145',['w25qxx_get_manufacturer_device_id',['../group__w25qxx__basic__driver.html#ga921836a777b082ff4d0f322ccfda6b22',1,'w25qxx_get_manufacturer_device_id(w25qxx_handle_t *handle, uint8_t *manufacturer, uint8_t *device_id):&#160;driver_w25qxx.c'],['../group__w25qxx__basic__driver.html#ga921836a777b082ff4d0f322ccfda6b22',1,'w25qxx_get_manufacturer_device_id(w25qxx_handle_t *handle, uint8_t *manufacturer, uint8_t *device_id):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5fget_5fmanufacturer_5fdevice_5fid_5fdual_5fio_146',['w25qxx_get_manufacturer_device_id_dual_io',['../group__w25qxx__advance__driver.html#ga1cd3aec1bdeabbaed5f049fbf83ceeb4',1,'w25qxx_get_manufacturer_device_id_dual_io(w25qxx_handle_t *handle, uint8_t *manufacturer, uint8_t *device_id):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#ga1cd3aec1bdeabbaed5f049fbf83ceeb4',1,'w25qxx_get_manufacturer_device_id_dual_io(w25qxx_handle_t *handle, uint8_t *manufacturer, uint8_t *device_id):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5fget_5fmanufacturer_5fdevice_5fid_5fquad_5fio_147',['w25qxx_get_manufacturer_device_id_quad_io',['../group__w25qxx__advance__driver.html#ga61bd3ce40b76b6862c6a53e0e37a3455',1,'w25qxx_get_manufacturer_device_id_quad_io(w25qxx_handle_t *handle, uint8_t *manufacturer, uint8_t *device_id):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#ga61bd3ce40b76b6862c6a53e0e37a3455',1,'w25qxx_get_manufacturer_device_id_quad_io(w25qxx_handle_t *handle, uint8_t *manufacturer, uint8_t *device_id):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5fget_5fsfdp_148',['w25qxx_get_sfdp',['../group__w25qxx__advance__driver.html#ga244a91b9c0c32e899ca89e1943045624',1,'w25qxx_get_sfdp(w25qxx_handle_t *handle, uint8_t sfdp[256]):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#ga244a91b9c0c32e899ca89e1943045624',1,'w25qxx_get_sfdp(w25qxx_handle_t *handle, uint8_t sfdp[256]):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5fget_5fstatus1_149',['w25qxx_get_status1',['../group__w25qxx__advance__driver.html#gaa77d2b00b4fb9cf586f77ace827ea7c6',1,'w25qxx_get_status1(w25qxx_handle_t *handle, uint8_t *status):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#gaa77d2b00b4fb9cf586f77ace827ea7c6',1,'w25qxx_get_status1(w25qxx_handle_t *handle, uint8_t *status):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5fget_5fstatus2_150',['w25qxx_get_status2',['../group__w25qxx__advance__driver.html#gaa21237ecbd5951b8017799066e7db5d9',1,'w25qxx_get_status2(w25qxx_handle_t *handle, uint8_t *status):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#gaa21237ecbd5951b8017799066e7db5d9',1,'w25qxx_get_status2(w25qxx_handle_t *handle, uint8_t *status):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5fget_5fstatus3_151',['w25qxx_get_status3',['../group__w25qxx__advance__driver.html#ga99cf6a325a00921d4531004f0c1d75b1',1,'w25qxx_get_status3(w25qxx_handle_t *handle, uint8_t *status):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#ga99cf6a325a00921d4531004f0c1d75b1',1,'w25qxx_get_status3(w25qxx_handle_t *handle, uint8_t *status):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5fget_5ftype_152',['w25qxx_get_type',['../group__w25qxx__basic__driver.html#ga685379998dad173b6d9c0b0da270685c',1,'w25qxx_get_type(w25qxx_handle_t *handle, w25qxx_type_t *type):&#160;driver_w25qxx.c'],['../group__w25qxx__basic__driver.html#ga685379998dad173b6d9c0b0da270685c',1,'w25qxx_get_type(w25qxx_handle_t *handle, w25qxx_type_t *type):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5fget_5funique_5fid_153',['w25qxx_get_unique_id',['../group__w25qxx__advance__driver.html#ga11af244389478de68a6777076ee82d69',1,'w25qxx_get_unique_id(w25qxx_handle_t *handle, uint8_t id[8]):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#ga11af244389478de68a6777076ee82d69',1,'w25qxx_get_unique_id(w25qxx_handle_t *handle, uint8_t id[8]):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5fglobal_5fblock_5flock_154',['w25qxx_global_block_lock',['../group__w25qxx__advance__driver.html#gab5579bc42bc07a7657848140888a817c',1,'w25qxx_global_block_lock(w25qxx_handle_t *handle):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#gab5579bc42bc07a7657848140888a817c',1,'w25qxx_global_block_lock(w25qxx_handle_t *handle):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5fglobal_5fblock_5funlock_155',['w25qxx_global_block_unlock',['../group__w25qxx__advance__driver.html#ga6d62f7d14945cfde7cde7a0e9a4e3afb',1,'w25qxx_global_block_unlock(w25qxx_handle_t *handle):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#ga6d62f7d14945cfde7cde7a0e9a4e3afb',1,'w25qxx_global_block_unlock(w25qxx_handle_t *handle):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5fhandle_5fs_156',['w25qxx_handle_s',['../structw25qxx__handle__s.html',1,'']]],
+  ['w25qxx_5fhandle_5ft_157',['w25qxx_handle_t',['../group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be',1,'driver_w25qxx.h']]],
+  ['w25qxx_5findividual_5fblock_5flock_158',['w25qxx_individual_block_lock',['../group__w25qxx__advance__driver.html#ga4f00c2c169cb7c3084841c6cd795e76b',1,'w25qxx_individual_block_lock(w25qxx_handle_t *handle, uint32_t addr):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#ga4f00c2c169cb7c3084841c6cd795e76b',1,'w25qxx_individual_block_lock(w25qxx_handle_t *handle, uint32_t addr):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5findividual_5fblock_5funlock_159',['w25qxx_individual_block_unlock',['../group__w25qxx__advance__driver.html#ga7f88cedf7619071b3235ba094915b2a7',1,'w25qxx_individual_block_unlock(w25qxx_handle_t *handle, uint32_t addr):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#ga7f88cedf7619071b3235ba094915b2a7',1,'w25qxx_individual_block_unlock(w25qxx_handle_t *handle, uint32_t addr):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5finfo_160',['w25qxx_info',['../group__w25qxx__basic__driver.html#ga996e2d3009432e7f8c1a5175c4438a57',1,'w25qxx_info(w25qxx_info_t *info):&#160;driver_w25qxx.c'],['../group__w25qxx__basic__driver.html#ga996e2d3009432e7f8c1a5175c4438a57',1,'w25qxx_info(w25qxx_info_t *info):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5finfo_5fs_161',['w25qxx_info_s',['../structw25qxx__info__s.html',1,'']]],
+  ['w25qxx_5finfo_5ft_162',['w25qxx_info_t',['../group__w25qxx__basic__driver.html#ga601d841ddd0ff8ad3ab52e07c679ef19',1,'driver_w25qxx.h']]],
+  ['w25qxx_5finit_163',['w25qxx_init',['../group__w25qxx__basic__driver.html#ga8e7a163b3d255b8c7fc035d0d60f2491',1,'w25qxx_init(w25qxx_handle_t *handle):&#160;driver_w25qxx.c'],['../group__w25qxx__basic__driver.html#ga8e7a163b3d255b8c7fc035d0d60f2491',1,'w25qxx_init(w25qxx_handle_t *handle):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5finterface_5fdebug_5fprint_164',['w25qxx_interface_debug_print',['../group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e',1,'w25qxx_interface_debug_print(const char *const fmt,...):&#160;driver_w25qxx_interface_template.c'],['../group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e',1,'w25qxx_interface_debug_print(const char *const fmt,...):&#160;driver_w25qxx_interface_template.c']]],
+  ['w25qxx_5finterface_5fdelay_5fms_165',['w25qxx_interface_delay_ms',['../group__w25qxx__interface__driver.html#ga964fa232abf98737cb98458eebfff82c',1,'w25qxx_interface_delay_ms(uint32_t ms):&#160;driver_w25qxx_interface_template.c'],['../group__w25qxx__interface__driver.html#ga964fa232abf98737cb98458eebfff82c',1,'w25qxx_interface_delay_ms(uint32_t ms):&#160;driver_w25qxx_interface_template.c']]],
+  ['w25qxx_5finterface_5fdelay_5fus_166',['w25qxx_interface_delay_us',['../group__w25qxx__interface__driver.html#ga38e79039b913154c9dd1036ff52bb420',1,'w25qxx_interface_delay_us(uint32_t us):&#160;driver_w25qxx_interface_template.c'],['../group__w25qxx__interface__driver.html#ga38e79039b913154c9dd1036ff52bb420',1,'w25qxx_interface_delay_us(uint32_t us):&#160;driver_w25qxx_interface_template.c']]],
+  ['w25qxx_5finterface_5fqspi_167',['W25QXX_INTERFACE_QSPI',['../group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2fea895dcb5c91da89fad1c12161ffd2d5d4',1,'driver_w25qxx.h']]],
+  ['w25qxx_5finterface_5fspi_168',['W25QXX_INTERFACE_SPI',['../group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8',1,'driver_w25qxx.h']]],
+  ['w25qxx_5finterface_5fspi_5fqspi_5fdeinit_169',['w25qxx_interface_spi_qspi_deinit',['../group__w25qxx__interface__driver.html#ga091f3607fcdd47f9e5f94cf1397bd46a',1,'w25qxx_interface_spi_qspi_deinit(void):&#160;driver_w25qxx_interface_template.c'],['../group__w25qxx__interface__driver.html#ga091f3607fcdd47f9e5f94cf1397bd46a',1,'w25qxx_interface_spi_qspi_deinit(void):&#160;driver_w25qxx_interface_template.c']]],
+  ['w25qxx_5finterface_5fspi_5fqspi_5finit_170',['w25qxx_interface_spi_qspi_init',['../group__w25qxx__interface__driver.html#ga2bdc17a556f1c801a38656331f3bb7b6',1,'w25qxx_interface_spi_qspi_init(void):&#160;driver_w25qxx_interface_template.c'],['../group__w25qxx__interface__driver.html#ga2bdc17a556f1c801a38656331f3bb7b6',1,'w25qxx_interface_spi_qspi_init(void):&#160;driver_w25qxx_interface_template.c']]],
+  ['w25qxx_5finterface_5fspi_5fqspi_5fwrite_5fread_171',['w25qxx_interface_spi_qspi_write_read',['../group__w25qxx__interface__driver.html#ga3d76ea1f431978f6b55edfd0628c94cd',1,'w25qxx_interface_spi_qspi_write_read(uint8_t instruction, uint8_t instruction_line, uint32_t address, uint8_t address_line, uint8_t address_len, uint32_t alternate, uint8_t alternate_line, uint8_t alternate_len, uint8_t dummy, uint8_t *in_buf, uint32_t in_len, uint8_t *out_buf, uint32_t out_len, uint8_t data_line):&#160;driver_w25qxx_interface_template.c'],['../group__w25qxx__interface__driver.html#ga3d76ea1f431978f6b55edfd0628c94cd',1,'w25qxx_interface_spi_qspi_write_read(uint8_t instruction, uint8_t instruction_line, uint32_t address, uint8_t address_line, uint8_t address_len, uint32_t alternate, uint8_t alternate_line, uint8_t alternate_len, uint8_t dummy, uint8_t *in_buf, uint32_t in_len, uint8_t *out_buf, uint32_t out_len, uint8_t data_line):&#160;driver_w25qxx_interface_template.c']]],
+  ['w25qxx_5finterface_5ft_172',['w25qxx_interface_t',['../group__w25qxx__basic__driver.html#gacbf327a42336baf10713a1796ff4f2fe',1,'driver_w25qxx.h']]],
+  ['w25qxx_5foctal_5fword_5fread_5fquad_5fio_173',['w25qxx_octal_word_read_quad_io',['../group__w25qxx__advance__driver.html#ga88a62ec42e86db821ff3f0d3ab541dbb',1,'w25qxx_octal_word_read_quad_io(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#ga88a62ec42e86db821ff3f0d3ab541dbb',1,'w25qxx_octal_word_read_quad_io(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5fonly_5fspi_5fread_174',['w25qxx_only_spi_read',['../group__w25qxx__basic__driver.html#ga1e9ebf198137d23558dbf6470213c472',1,'w25qxx_only_spi_read(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx.c'],['../group__w25qxx__basic__driver.html#ga1e9ebf198137d23558dbf6470213c472',1,'w25qxx_only_spi_read(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5fpage_5fprogram_175',['w25qxx_page_program',['../group__w25qxx__basic__driver.html#ga6280e7e4ab26306436e2c210617a28b3',1,'w25qxx_page_program(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint16_t len):&#160;driver_w25qxx.c'],['../group__w25qxx__basic__driver.html#ga6280e7e4ab26306436e2c210617a28b3',1,'w25qxx_page_program(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint16_t len):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5fpage_5fprogram_5fquad_5finput_176',['w25qxx_page_program_quad_input',['../group__w25qxx__advance__driver.html#ga1f80bbbaaa852eecfffb87737889363d',1,'w25qxx_page_program_quad_input(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint16_t len):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#ga1f80bbbaaa852eecfffb87737889363d',1,'w25qxx_page_program_quad_input(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint16_t len):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5fpower_5fdown_177',['w25qxx_power_down',['../group__w25qxx__basic__driver.html#gae4effce67e36120325e3c7b245b90142',1,'w25qxx_power_down(w25qxx_handle_t *handle):&#160;driver_w25qxx.c'],['../group__w25qxx__basic__driver.html#gae4effce67e36120325e3c7b245b90142',1,'w25qxx_power_down(w25qxx_handle_t *handle):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5fprogram_5fsecurity_5fregister_178',['w25qxx_program_security_register',['../group__w25qxx__advance__driver.html#ga4e9c059ff78866e478e835cb27a92899',1,'w25qxx_program_security_register(w25qxx_handle_t *handle, w25qxx_security_register_t num, uint8_t data[256]):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#ga4e9c059ff78866e478e835cb27a92899',1,'w25qxx_program_security_register(w25qxx_handle_t *handle, w25qxx_security_register_t num, uint8_t data[256]):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5fqspi_5fread_5fdummy_5f2_5f33mhz_179',['W25QXX_QSPI_READ_DUMMY_2_33MHZ',['../group__w25qxx__advance__driver.html#gga6ff284154302248f00db269146545443ad73634a0f4534c3ae35d4242b2bc8f13',1,'driver_w25qxx.h']]],
+  ['w25qxx_5fqspi_5fread_5fdummy_5f4_5f55mhz_180',['W25QXX_QSPI_READ_DUMMY_4_55MHZ',['../group__w25qxx__advance__driver.html#gga6ff284154302248f00db269146545443a6423b5606e72af6479fe31a6a9883aeb',1,'driver_w25qxx.h']]],
+  ['w25qxx_5fqspi_5fread_5fdummy_5f6_5f80mhz_181',['W25QXX_QSPI_READ_DUMMY_6_80MHZ',['../group__w25qxx__advance__driver.html#gga6ff284154302248f00db269146545443a78393debe12bbb3efb710e38e3c1d550',1,'driver_w25qxx.h']]],
+  ['w25qxx_5fqspi_5fread_5fdummy_5f8_5f80mhz_182',['W25QXX_QSPI_READ_DUMMY_8_80MHZ',['../group__w25qxx__advance__driver.html#gga6ff284154302248f00db269146545443ade1d3511f15c7d92de8c5d8967c471c3',1,'driver_w25qxx.h']]],
+  ['w25qxx_5fqspi_5fread_5fdummy_5ft_183',['w25qxx_qspi_read_dummy_t',['../group__w25qxx__advance__driver.html#ga6ff284154302248f00db269146545443',1,'driver_w25qxx.h']]],
+  ['w25qxx_5fqspi_5fread_5fwrap_5flength_5f16_5fbyte_184',['W25QXX_QSPI_READ_WRAP_LENGTH_16_BYTE',['../group__w25qxx__advance__driver.html#gga2fd3023819e1aebe089a4a72eb136da3ae6bc2fcd2d4fc3af63f22da56a3b393b',1,'driver_w25qxx.h']]],
+  ['w25qxx_5fqspi_5fread_5fwrap_5flength_5f32_5fbyte_185',['W25QXX_QSPI_READ_WRAP_LENGTH_32_BYTE',['../group__w25qxx__advance__driver.html#gga2fd3023819e1aebe089a4a72eb136da3aa5f2e6b5718a85ab9241125e84181216',1,'driver_w25qxx.h']]],
+  ['w25qxx_5fqspi_5fread_5fwrap_5flength_5f64_5fbyte_186',['W25QXX_QSPI_READ_WRAP_LENGTH_64_BYTE',['../group__w25qxx__advance__driver.html#gga2fd3023819e1aebe089a4a72eb136da3a736f25eeae36f6a0b62d4cb1666a689f',1,'driver_w25qxx.h']]],
+  ['w25qxx_5fqspi_5fread_5fwrap_5flength_5f8_5fbyte_187',['W25QXX_QSPI_READ_WRAP_LENGTH_8_BYTE',['../group__w25qxx__advance__driver.html#gga2fd3023819e1aebe089a4a72eb136da3a5b8fa1026c564fe83f3f0f0edb89d1dd',1,'driver_w25qxx.h']]],
+  ['w25qxx_5fqspi_5fread_5fwrap_5flength_5ft_188',['w25qxx_qspi_read_wrap_length_t',['../group__w25qxx__advance__driver.html#ga2fd3023819e1aebe089a4a72eb136da3',1,'driver_w25qxx.h']]],
+  ['w25qxx_5fread_189',['w25qxx_read',['../group__w25qxx__basic__driver.html#gae7479fc9ce911a52e3c5b6f1a615b879',1,'w25qxx_read(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx.c'],['../group__w25qxx__basic__driver.html#gae7479fc9ce911a52e3c5b6f1a615b879',1,'w25qxx_read(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5fread_5fblock_5flock_190',['w25qxx_read_block_lock',['../group__w25qxx__advance__driver.html#ga59e655ca78a175037ca810bbc8539a96',1,'w25qxx_read_block_lock(w25qxx_handle_t *handle, uint32_t addr, uint8_t *value):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#ga59e655ca78a175037ca810bbc8539a96',1,'w25qxx_read_block_lock(w25qxx_handle_t *handle, uint32_t addr, uint8_t *value):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5fread_5fsecurity_5fregister_191',['w25qxx_read_security_register',['../group__w25qxx__advance__driver.html#ga4c65debc4947bd9a61e0073105164b9c',1,'w25qxx_read_security_register(w25qxx_handle_t *handle, w25qxx_security_register_t num, uint8_t data[256]):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#ga4c65debc4947bd9a61e0073105164b9c',1,'w25qxx_read_security_register(w25qxx_handle_t *handle, w25qxx_security_register_t num, uint8_t data[256]):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5fread_5ftest_192',['w25qxx_read_test',['../group__w25qxx__test__driver.html#ga4ce42ca34d33cd64cb823040780999af',1,'w25qxx_read_test(w25qxx_type_t type, w25qxx_interface_t interface, w25qxx_bool_t dual_quad_spi_enable):&#160;driver_w25qxx_read_test.c'],['../group__w25qxx__test__driver.html#ga4ce42ca34d33cd64cb823040780999af',1,'w25qxx_read_test(w25qxx_type_t type, w25qxx_interface_t interface, w25qxx_bool_t dual_quad_spi_enable):&#160;driver_w25qxx_read_test.c']]],
+  ['w25qxx_5fregister_5ftest_193',['w25qxx_register_test',['../group__w25qxx__test__driver.html#ga05d07036254d102ebea0d0b1e83862c8',1,'w25qxx_register_test(w25qxx_type_t type, w25qxx_interface_t interface, w25qxx_bool_t dual_quad_spi_enable):&#160;driver_w25qxx_register_test.c'],['../group__w25qxx__test__driver.html#ga05d07036254d102ebea0d0b1e83862c8',1,'w25qxx_register_test(w25qxx_type_t type, w25qxx_interface_t interface, w25qxx_bool_t dual_quad_spi_enable):&#160;driver_w25qxx_register_test.c']]],
+  ['w25qxx_5frelease_5fpower_5fdown_194',['w25qxx_release_power_down',['../group__w25qxx__basic__driver.html#ga09c9b52877516a2ee4c080dc249e7331',1,'w25qxx_release_power_down(w25qxx_handle_t *handle):&#160;driver_w25qxx.c'],['../group__w25qxx__basic__driver.html#ga09c9b52877516a2ee4c080dc249e7331',1,'w25qxx_release_power_down(w25qxx_handle_t *handle):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5freset_5fdevice_195',['w25qxx_reset_device',['../group__w25qxx__advance__driver.html#ga2abebfe2a8d9377eb88448ffca73f222',1,'w25qxx_reset_device(w25qxx_handle_t *handle):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#ga2abebfe2a8d9377eb88448ffca73f222',1,'w25qxx_reset_device(w25qxx_handle_t *handle):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5fsector_5ferase_5f4k_196',['w25qxx_sector_erase_4k',['../group__w25qxx__basic__driver.html#ga9a03c51b4c84655350c15fbfce0a6b40',1,'w25qxx_sector_erase_4k(w25qxx_handle_t *handle, uint32_t addr):&#160;driver_w25qxx.c'],['../group__w25qxx__basic__driver.html#ga9a03c51b4c84655350c15fbfce0a6b40',1,'w25qxx_sector_erase_4k(w25qxx_handle_t *handle, uint32_t addr):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5fsecurity_5fregister_5f1_197',['W25QXX_SECURITY_REGISTER_1',['../group__w25qxx__advance__driver.html#gga81ddc7d4b9f4f124163beea19cc33c7eaaf27484a497c13915c8acb0161cf137d',1,'driver_w25qxx.h']]],
+  ['w25qxx_5fsecurity_5fregister_5f2_198',['W25QXX_SECURITY_REGISTER_2',['../group__w25qxx__advance__driver.html#gga81ddc7d4b9f4f124163beea19cc33c7ea3353a88090850174ca163d56e4d7089c',1,'driver_w25qxx.h']]],
+  ['w25qxx_5fsecurity_5fregister_5f3_199',['W25QXX_SECURITY_REGISTER_3',['../group__w25qxx__advance__driver.html#gga81ddc7d4b9f4f124163beea19cc33c7ea65b73162d921075bed8cb8d848948900',1,'driver_w25qxx.h']]],
+  ['w25qxx_5fsecurity_5fregister_5ft_200',['w25qxx_security_register_t',['../group__w25qxx__advance__driver.html#ga81ddc7d4b9f4f124163beea19cc33c7e',1,'driver_w25qxx.h']]],
+  ['w25qxx_5fset_5faddress_5fmode_201',['w25qxx_set_address_mode',['../group__w25qxx__basic__driver.html#gad0e125eff304ce66fb3956d2c8c80656',1,'w25qxx_set_address_mode(w25qxx_handle_t *handle, w25qxx_address_mode_t mode):&#160;driver_w25qxx.c'],['../group__w25qxx__basic__driver.html#gad0e125eff304ce66fb3956d2c8c80656',1,'w25qxx_set_address_mode(w25qxx_handle_t *handle, w25qxx_address_mode_t mode):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5fset_5fburst_5fwith_5fwrap_202',['w25qxx_set_burst_with_wrap',['../group__w25qxx__advance__driver.html#gac19c1d0f3fd48968ea2a93c1dbe3d75d',1,'w25qxx_set_burst_with_wrap(w25qxx_handle_t *handle, w25qxx_burst_wrap_t wrap):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#gac19c1d0f3fd48968ea2a93c1dbe3d75d',1,'w25qxx_set_burst_with_wrap(w25qxx_handle_t *handle, w25qxx_burst_wrap_t wrap):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5fset_5fdual_5fquad_5fspi_203',['w25qxx_set_dual_quad_spi',['../group__w25qxx__basic__driver.html#ga665139209b0abc386474a78d89cce6f2',1,'w25qxx_set_dual_quad_spi(w25qxx_handle_t *handle, w25qxx_bool_t enable):&#160;driver_w25qxx.c'],['../group__w25qxx__basic__driver.html#ga665139209b0abc386474a78d89cce6f2',1,'w25qxx_set_dual_quad_spi(w25qxx_handle_t *handle, w25qxx_bool_t enable):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5fset_5finterface_204',['w25qxx_set_interface',['../group__w25qxx__basic__driver.html#ga50a62003d566402d46ada2f272c41eb5',1,'w25qxx_set_interface(w25qxx_handle_t *handle, w25qxx_interface_t interface):&#160;driver_w25qxx.c'],['../group__w25qxx__basic__driver.html#ga50a62003d566402d46ada2f272c41eb5',1,'w25qxx_set_interface(w25qxx_handle_t *handle, w25qxx_interface_t interface):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5fset_5fread_5fparameters_205',['w25qxx_set_read_parameters',['../group__w25qxx__advance__driver.html#ga9ad10781d888b32b43b9eba45d049624',1,'w25qxx_set_read_parameters(w25qxx_handle_t *handle, w25qxx_qspi_read_dummy_t dummy, w25qxx_qspi_read_wrap_length_t length):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#ga9ad10781d888b32b43b9eba45d049624',1,'w25qxx_set_read_parameters(w25qxx_handle_t *handle, w25qxx_qspi_read_dummy_t dummy, w25qxx_qspi_read_wrap_length_t length):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5fset_5fstatus1_206',['w25qxx_set_status1',['../group__w25qxx__advance__driver.html#ga246e0bb07c8bbb39731f17906779c012',1,'w25qxx_set_status1(w25qxx_handle_t *handle, uint8_t status):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#ga246e0bb07c8bbb39731f17906779c012',1,'w25qxx_set_status1(w25qxx_handle_t *handle, uint8_t status):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5fset_5fstatus2_207',['w25qxx_set_status2',['../group__w25qxx__advance__driver.html#gaab5f28e8930d50dbc2178e39bc9fa456',1,'w25qxx_set_status2(w25qxx_handle_t *handle, uint8_t status):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#gaab5f28e8930d50dbc2178e39bc9fa456',1,'w25qxx_set_status2(w25qxx_handle_t *handle, uint8_t status):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5fset_5fstatus3_208',['w25qxx_set_status3',['../group__w25qxx__advance__driver.html#gada897a6c6d6acb99f4dd4ff9b65ad8ee',1,'w25qxx_set_status3(w25qxx_handle_t *handle, uint8_t status):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#gada897a6c6d6acb99f4dd4ff9b65ad8ee',1,'w25qxx_set_status3(w25qxx_handle_t *handle, uint8_t status):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5fset_5ftype_209',['w25qxx_set_type',['../group__w25qxx__basic__driver.html#gaa57189cd4170b73f8b1300ca15e27de6',1,'w25qxx_set_type(w25qxx_handle_t *handle, w25qxx_type_t type):&#160;driver_w25qxx.c'],['../group__w25qxx__basic__driver.html#gaa57189cd4170b73f8b1300ca15e27de6',1,'w25qxx_set_type(w25qxx_handle_t *handle, w25qxx_type_t type):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5fstatus1_5fblock_5fprotect_5f0_210',['W25QXX_STATUS1_BLOCK_PROTECT_0',['../group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a7b7e8922009c0d6a88bbfad76a812262',1,'driver_w25qxx.h']]],
+  ['w25qxx_5fstatus1_5fblock_5fprotect_5f1_211',['W25QXX_STATUS1_BLOCK_PROTECT_1',['../group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a3465f02625d38730630b60cd01e92085',1,'driver_w25qxx.h']]],
+  ['w25qxx_5fstatus1_5fblock_5fprotect_5f2_212',['W25QXX_STATUS1_BLOCK_PROTECT_2',['../group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a9a02180228dbb94e9d302b667fda884f',1,'driver_w25qxx.h']]],
+  ['w25qxx_5fstatus1_5ferase_5fwrite_5fprogress_213',['W25QXX_STATUS1_ERASE_WRITE_PROGRESS',['../group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595ae1ce566fc564776e98a5c7edefe8c5ea',1,'driver_w25qxx.h']]],
+  ['w25qxx_5fstatus1_5fsector_5fprotect_5for_5ftop_5fbottom_5fprotect_214',['W25QXX_STATUS1_SECTOR_PROTECT_OR_TOP_BOTTOM_PROTECT',['../group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a9522040a098337442eff127e1598776d',1,'driver_w25qxx.h']]],
+  ['w25qxx_5fstatus1_5fstatus_5fregister_5fprotect_5f0_215',['W25QXX_STATUS1_STATUS_REGISTER_PROTECT_0',['../group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a00d1d224963ec1f38ac97802480b2129',1,'driver_w25qxx.h']]],
+  ['w25qxx_5fstatus1_5ft_216',['w25qxx_status1_t',['../group__w25qxx__advance__driver.html#ga9e41a72d1e25d39d88ce7108a9b25595',1,'driver_w25qxx.h']]],
+  ['w25qxx_5fstatus1_5ftop_5fbottom_5fprotect_5for_5fblock_5fprotect_5f3_217',['W25QXX_STATUS1_TOP_BOTTOM_PROTECT_OR_BLOCK_PROTECT_3',['../group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a63bc45b7e0e19de7e58e3494eb4046c5',1,'driver_w25qxx.h']]],
+  ['w25qxx_5fstatus1_5fwrite_5fenable_5flatch_218',['W25QXX_STATUS1_WRITE_ENABLE_LATCH',['../group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a1438a76d1be1aa02e4f7450a045c02e3',1,'driver_w25qxx.h']]],
+  ['w25qxx_5fstatus2_5fcomplement_5fprotect_219',['W25QXX_STATUS2_COMPLEMENT_PROTECT',['../group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277a517e9e50ada30462f902d01e8d5579dc',1,'driver_w25qxx.h']]],
+  ['w25qxx_5fstatus2_5fquad_5fenable_220',['W25QXX_STATUS2_QUAD_ENABLE',['../group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277aa920a9c9a590fb8740419d8d2e4230f3',1,'driver_w25qxx.h']]],
+  ['w25qxx_5fstatus2_5fsecurity_5fregister_5f1_5flock_5fbits_221',['W25QXX_STATUS2_SECURITY_REGISTER_1_LOCK_BITS',['../group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277a7a631c1c153cc099a52883b40007079e',1,'driver_w25qxx.h']]],
+  ['w25qxx_5fstatus2_5fsecurity_5fregister_5f2_5flock_5fbits_222',['W25QXX_STATUS2_SECURITY_REGISTER_2_LOCK_BITS',['../group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277a24a99f1a97023ae103c1bec3027bbf26',1,'driver_w25qxx.h']]],
+  ['w25qxx_5fstatus2_5fsecurity_5fregister_5f3_5flock_5fbits_223',['W25QXX_STATUS2_SECURITY_REGISTER_3_LOCK_BITS',['../group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277a0f3e2b3059d56f974724a8284142e69a',1,'driver_w25qxx.h']]],
+  ['w25qxx_5fstatus2_5fstatus_5fregister_5fprotect_5f1_224',['W25QXX_STATUS2_STATUS_REGISTER_PROTECT_1',['../group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277a5a89a885ba2a59eccd0445443e3bbac6',1,'driver_w25qxx.h']]],
+  ['w25qxx_5fstatus2_5fsuspend_5fstatus_225',['W25QXX_STATUS2_SUSPEND_STATUS',['../group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277a3fdb54846709f77391e426c626a19152',1,'driver_w25qxx.h']]],
+  ['w25qxx_5fstatus2_5ft_226',['w25qxx_status2_t',['../group__w25qxx__advance__driver.html#ga0d28076f6fc7d3ae9dd7f8410069a277',1,'driver_w25qxx.h']]],
+  ['w25qxx_5fstatus3_5fcurrent_5faddress_5fmode_227',['W25QXX_STATUS3_CURRENT_ADDRESS_MODE',['../group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44aca3c822d6eacd9747ca2173607a09591ac',1,'driver_w25qxx.h']]],
+  ['w25qxx_5fstatus3_5fhold_5freset_5ffunction_228',['W25QXX_STATUS3_HOLD_RESET_FUNCTION',['../group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44aca9ab13d5388af0156c4e4de08765ec401',1,'driver_w25qxx.h']]],
+  ['w25qxx_5fstatus3_5foutput_5fdriver_5fstrength_5f100_5fpercentage_229',['W25QXX_STATUS3_OUTPUT_DRIVER_STRENGTH_100_PERCENTAGE',['../group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44acab5b1ce328b88d08f3d55ed776e01fedb',1,'driver_w25qxx.h']]],
+  ['w25qxx_5fstatus3_5foutput_5fdriver_5fstrength_5f25_5fpercentage_230',['W25QXX_STATUS3_OUTPUT_DRIVER_STRENGTH_25_PERCENTAGE',['../group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44acae645c265a6beb76a088352e2f4bfb4e1',1,'driver_w25qxx.h']]],
+  ['w25qxx_5fstatus3_5foutput_5fdriver_5fstrength_5f50_5fpercentage_231',['W25QXX_STATUS3_OUTPUT_DRIVER_STRENGTH_50_PERCENTAGE',['../group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44aca8abcd821f1f0d02b3d9179c7ab58d0e0',1,'driver_w25qxx.h']]],
+  ['w25qxx_5fstatus3_5foutput_5fdriver_5fstrength_5f75_5fpercentage_232',['W25QXX_STATUS3_OUTPUT_DRIVER_STRENGTH_75_PERCENTAGE',['../group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44aca7ab6ace72a02afc20f92f48e975b60b7',1,'driver_w25qxx.h']]],
+  ['w25qxx_5fstatus3_5fpower_5fup_5faddress_5fmode_233',['W25QXX_STATUS3_POWER_UP_ADDRESS_MODE',['../group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44acadc8d5949eaea0c6ce4e17c6e746f4f65',1,'driver_w25qxx.h']]],
+  ['w25qxx_5fstatus3_5ft_234',['w25qxx_status3_t',['../group__w25qxx__advance__driver.html#gace18ebb2eac49cbde44a2935916f44ac',1,'driver_w25qxx.h']]],
+  ['w25qxx_5fstatus3_5fwrite_5fprotect_5fselection_235',['W25QXX_STATUS3_WRITE_PROTECT_SELECTION',['../group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44aca7dc507c444fb395a4956bf50d78f1ee3',1,'driver_w25qxx.h']]],
+  ['w25qxx_5ftype_5ft_236',['w25qxx_type_t',['../group__w25qxx__basic__driver.html#ga6cb4e5164464df549201dd96cb7a58b1',1,'driver_w25qxx.h']]],
+  ['w25qxx_5fword_5fread_5fquad_5fio_237',['w25qxx_word_read_quad_io',['../group__w25qxx__advance__driver.html#gad97d7e410dd77c49334097a0fd332660',1,'w25qxx_word_read_quad_io(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#gad97d7e410dd77c49334097a0fd332660',1,'w25qxx_word_read_quad_io(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5fwrite_238',['w25qxx_write',['../group__w25qxx__basic__driver.html#gaaee8264d840e51460821cb6e609338ee',1,'w25qxx_write(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx.c'],['../group__w25qxx__basic__driver.html#gaaee8264d840e51460821cb6e609338ee',1,'w25qxx_write(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5fwrite_5fread_5freg_239',['w25qxx_write_read_reg',['../group__w25qxx__extern__driver.html#ga9623a3bec148b148498480518a66cb2b',1,'w25qxx_write_read_reg(w25qxx_handle_t *handle, uint8_t instruction, uint8_t instruction_line, uint32_t address, uint8_t address_line, uint8_t address_len, uint32_t alternate, uint8_t alternate_line, uint8_t alternate_len, uint8_t dummy, uint8_t *in_buf, uint32_t in_len, uint8_t *out_buf, uint32_t out_len, uint8_t data_line):&#160;driver_w25qxx.c'],['../group__w25qxx__extern__driver.html#ga9623a3bec148b148498480518a66cb2b',1,'w25qxx_write_read_reg(w25qxx_handle_t *handle, uint8_t instruction, uint8_t instruction_line, uint32_t address, uint8_t address_line, uint8_t address_len, uint32_t alternate, uint8_t alternate_line, uint8_t alternate_len, uint8_t dummy, uint8_t *in_buf, uint32_t in_len, uint8_t *out_buf, uint32_t out_len, uint8_t data_line):&#160;driver_w25qxx.c']]]
+];
diff --git a/doc/html/search/classes_0.js b/doc/html/search/classes_0.js
index 61fb132..ba79abe 100644
--- a/doc/html/search/classes_0.js
+++ b/doc/html/search/classes_0.js
@@ -1,5 +1,5 @@
 var searchData=
 [
-  ['w25qxx_5fhandle_5fs_292',['w25qxx_handle_s',['../structw25qxx__handle__s.html',1,'']]],
-  ['w25qxx_5finfo_5fs_293',['w25qxx_info_s',['../structw25qxx__info__s.html',1,'']]]
+  ['w25qxx_5fhandle_5fs_0',['w25qxx_handle_s',['../structw25qxx__handle__s.html',1,'']]],
+  ['w25qxx_5finfo_5fs_1',['w25qxx_info_s',['../structw25qxx__info__s.html',1,'']]]
 ];
diff --git a/doc/html/search/close.svg b/doc/html/search/close.svg
index a933eea..337d6cc 100644
--- a/doc/html/search/close.svg
+++ b/doc/html/search/close.svg
@@ -1,27 +1,14 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "https://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
 <svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
    xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
    viewBox="0 0 11 11"
    height="11"
    width="11"
    id="svg2"
    version="1.1">
-  <metadata
-     id="metadata8">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
   <defs
      id="defs6" />
   <path
diff --git a/doc/html/search/defines_0.js b/doc/html/search/defines_0.js
index a5a49d5..40dcf36 100644
--- a/doc/html/search/defines_0.js
+++ b/doc/html/search/defines_0.js
@@ -1,4 +1,4 @@
 var searchData=
 [
-  ['chip_5fname_514',['CHIP_NAME',['../driver__w25qxx_8c.html#adc9da0a24824ca1239b593f6459b3954',1,'driver_w25qxx.c']]]
+  ['chip_5fname_0',['CHIP_NAME',['../driver__w25qxx_8c.html#adc9da0a24824ca1239b593f6459b3954',1,'driver_w25qxx.c']]]
 ];
diff --git a/doc/html/search/defines_1.js b/doc/html/search/defines_1.js
index a79f38e..3e19a8b 100644
--- a/doc/html/search/defines_1.js
+++ b/doc/html/search/defines_1.js
@@ -1,4 +1,4 @@
 var searchData=
 [
-  ['driver_5fversion_515',['DRIVER_VERSION',['../driver__w25qxx_8c.html#ae578001fe043b4cca7a0edd801cfe9c4',1,'driver_w25qxx.c']]]
+  ['driver_5fversion_0',['DRIVER_VERSION',['../driver__w25qxx_8c.html#ae578001fe043b4cca7a0edd801cfe9c4',1,'driver_w25qxx.c']]]
 ];
diff --git a/doc/html/search/defines_2.js b/doc/html/search/defines_2.js
index c6d53b9..f95a00b 100644
--- a/doc/html/search/defines_2.js
+++ b/doc/html/search/defines_2.js
@@ -1,5 +1,5 @@
 var searchData=
 [
-  ['manufacturer_5fname_516',['MANUFACTURER_NAME',['../driver__w25qxx_8c.html#aaa2b8f5b105c3019df0cb346f472e803',1,'driver_w25qxx.c']]],
-  ['max_5fcurrent_517',['MAX_CURRENT',['../driver__w25qxx_8c.html#a2989837a37d6d63b59c6dd541b785435',1,'driver_w25qxx.c']]]
+  ['manufacturer_5fname_0',['MANUFACTURER_NAME',['../driver__w25qxx_8c.html#aaa2b8f5b105c3019df0cb346f472e803',1,'driver_w25qxx.c']]],
+  ['max_5fcurrent_1',['MAX_CURRENT',['../driver__w25qxx_8c.html#a2989837a37d6d63b59c6dd541b785435',1,'driver_w25qxx.c']]]
 ];
diff --git a/doc/html/search/defines_3.js b/doc/html/search/defines_3.js
index fb5d40e..352068a 100644
--- a/doc/html/search/defines_3.js
+++ b/doc/html/search/defines_3.js
@@ -1,5 +1,5 @@
 var searchData=
 [
-  ['supply_5fvoltage_5fmax_518',['SUPPLY_VOLTAGE_MAX',['../driver__w25qxx_8c.html#a68eba8b601afe11f1b871d944976c035',1,'driver_w25qxx.c']]],
-  ['supply_5fvoltage_5fmin_519',['SUPPLY_VOLTAGE_MIN',['../driver__w25qxx_8c.html#aac8d8cbd899667d609787ef4cf37054d',1,'driver_w25qxx.c']]]
+  ['supply_5fvoltage_5fmax_0',['SUPPLY_VOLTAGE_MAX',['../driver__w25qxx_8c.html#a68eba8b601afe11f1b871d944976c035',1,'driver_w25qxx.c']]],
+  ['supply_5fvoltage_5fmin_1',['SUPPLY_VOLTAGE_MIN',['../driver__w25qxx_8c.html#aac8d8cbd899667d609787ef4cf37054d',1,'driver_w25qxx.c']]]
 ];
diff --git a/doc/html/search/defines_4.js b/doc/html/search/defines_4.js
index c3cf8d0..6075a95 100644
--- a/doc/html/search/defines_4.js
+++ b/doc/html/search/defines_4.js
@@ -1,5 +1,5 @@
 var searchData=
 [
-  ['temperature_5fmax_520',['TEMPERATURE_MAX',['../driver__w25qxx_8c.html#a90c0b20d54005712fcc8cb01281360e9',1,'driver_w25qxx.c']]],
-  ['temperature_5fmin_521',['TEMPERATURE_MIN',['../driver__w25qxx_8c.html#aab353db5bf4eb787f86a2080f609a551',1,'driver_w25qxx.c']]]
+  ['temperature_5fmax_0',['TEMPERATURE_MAX',['../driver__w25qxx_8c.html#a90c0b20d54005712fcc8cb01281360e9',1,'driver_w25qxx.c']]],
+  ['temperature_5fmin_1',['TEMPERATURE_MIN',['../driver__w25qxx_8c.html#aab353db5bf4eb787f86a2080f609a551',1,'driver_w25qxx.c']]]
 ];
diff --git a/doc/html/search/defines_5.js b/doc/html/search/defines_5.js
index c8e0be4..6b4153c 100644
--- a/doc/html/search/defines_5.js
+++ b/doc/html/search/defines_5.js
@@ -1,48 +1,48 @@
 var searchData=
 [
-  ['w25qxx_5fcommand_5fblock_5ferase_5f32k_522',['W25QXX_COMMAND_BLOCK_ERASE_32K',['../driver__w25qxx_8c.html#a8bfb4e869985f5fa21ea7d1d262f90ad',1,'driver_w25qxx.c']]],
-  ['w25qxx_5fcommand_5fblock_5ferase_5f64k_523',['W25QXX_COMMAND_BLOCK_ERASE_64K',['../driver__w25qxx_8c.html#a4c5a1ed46f4d662a61bc06573ab548a0',1,'driver_w25qxx.c']]],
-  ['w25qxx_5fcommand_5fchip_5ferase_524',['W25QXX_COMMAND_CHIP_ERASE',['../driver__w25qxx_8c.html#a63ec9ecd709fcb69107756f253616a6e',1,'driver_w25qxx.c']]],
-  ['w25qxx_5fcommand_5fdevice_5fid_5fdual_5fio_525',['W25QXX_COMMAND_DEVICE_ID_DUAL_IO',['../driver__w25qxx_8c.html#a374c09f79cc61a3e7ac374bca5122e25',1,'driver_w25qxx.c']]],
-  ['w25qxx_5fcommand_5fdevice_5fid_5fquad_5fio_526',['W25QXX_COMMAND_DEVICE_ID_QUAD_IO',['../driver__w25qxx_8c.html#a7573bc250d850078be3221c29521bc5c',1,'driver_w25qxx.c']]],
-  ['w25qxx_5fcommand_5fenable_5freset_527',['W25QXX_COMMAND_ENABLE_RESET',['../driver__w25qxx_8c.html#a6dae3a832abc19d1861fafb32f231d94',1,'driver_w25qxx.c']]],
-  ['w25qxx_5fcommand_5fenter_5fqspi_5fmode_528',['W25QXX_COMMAND_ENTER_QSPI_MODE',['../driver__w25qxx_8c.html#a052d5373086b473bf0d450ea1bd73828',1,'driver_w25qxx.c']]],
-  ['w25qxx_5fcommand_5ferase_5fprogram_5fresume_529',['W25QXX_COMMAND_ERASE_PROGRAM_RESUME',['../driver__w25qxx_8c.html#a0daeb46fb8b219a3d6b37d426c5c0e95',1,'driver_w25qxx.c']]],
-  ['w25qxx_5fcommand_5ferase_5fprogram_5fsuspend_530',['W25QXX_COMMAND_ERASE_PROGRAM_SUSPEND',['../driver__w25qxx_8c.html#a43f9a1e3c03d4a7d2a991e81f0e89f51',1,'driver_w25qxx.c']]],
-  ['w25qxx_5fcommand_5ferase_5fsecurity_5fregister_531',['W25QXX_COMMAND_ERASE_SECURITY_REGISTER',['../driver__w25qxx_8c.html#a842f8d646fc8f8ed72422fc1d789498c',1,'driver_w25qxx.c']]],
-  ['w25qxx_5fcommand_5ffast_5fread_532',['W25QXX_COMMAND_FAST_READ',['../driver__w25qxx_8c.html#ac957b31a68db8c14f88a196a98b0aa18',1,'driver_w25qxx.c']]],
-  ['w25qxx_5fcommand_5ffast_5fread_5fdual_5fio_533',['W25QXX_COMMAND_FAST_READ_DUAL_IO',['../driver__w25qxx_8c.html#a2232ada3558228c2902d654989ca65f1',1,'driver_w25qxx.c']]],
-  ['w25qxx_5fcommand_5ffast_5fread_5fdual_5foutput_534',['W25QXX_COMMAND_FAST_READ_DUAL_OUTPUT',['../driver__w25qxx_8c.html#a8d49efa8b978ae8fd3eb18d0e5ae73e8',1,'driver_w25qxx.c']]],
-  ['w25qxx_5fcommand_5ffast_5fread_5fquad_5fio_535',['W25QXX_COMMAND_FAST_READ_QUAD_IO',['../driver__w25qxx_8c.html#a80d19998d9d1218d0fa69e7d4d6b0ecb',1,'driver_w25qxx.c']]],
-  ['w25qxx_5fcommand_5ffast_5fread_5fquad_5foutput_536',['W25QXX_COMMAND_FAST_READ_QUAD_OUTPUT',['../driver__w25qxx_8c.html#a54ddb3d948c4bb95cc62199676c817b2',1,'driver_w25qxx.c']]],
-  ['w25qxx_5fcommand_5fglobal_5fblock_5fsector_5flock_537',['W25QXX_COMMAND_GLOBAL_BLOCK_SECTOR_LOCK',['../driver__w25qxx_8c.html#af81bc9ddfc8da8eb911435e835536ffb',1,'driver_w25qxx.c']]],
-  ['w25qxx_5fcommand_5fglobal_5fblock_5fsector_5funlock_538',['W25QXX_COMMAND_GLOBAL_BLOCK_SECTOR_UNLOCK',['../driver__w25qxx_8c.html#ab96d2ad8602a5a50c988b8c09d4bbbc5',1,'driver_w25qxx.c']]],
-  ['w25qxx_5fcommand_5findividual_5fblock_5flock_539',['W25QXX_COMMAND_INDIVIDUAL_BLOCK_LOCK',['../driver__w25qxx_8c.html#a328f6a9635b1ec6868410375de90b0df',1,'driver_w25qxx.c']]],
-  ['w25qxx_5fcommand_5findividual_5fblock_5funlock_540',['W25QXX_COMMAND_INDIVIDUAL_BLOCK_UNLOCK',['../driver__w25qxx_8c.html#a3cc8b61583b5eb9d7c1ecd6831689718',1,'driver_w25qxx.c']]],
-  ['w25qxx_5fcommand_5fjedec_5fid_541',['W25QXX_COMMAND_JEDEC_ID',['../driver__w25qxx_8c.html#a54f3ece548cd5eadc94642235442315a',1,'driver_w25qxx.c']]],
-  ['w25qxx_5fcommand_5foctal_5fword_5fread_5fquad_5fio_542',['W25QXX_COMMAND_OCTAL_WORD_READ_QUAD_IO',['../driver__w25qxx_8c.html#acb7f8599b26c29356651690ec9b25e66',1,'driver_w25qxx.c']]],
-  ['w25qxx_5fcommand_5fpage_5fprogram_543',['W25QXX_COMMAND_PAGE_PROGRAM',['../driver__w25qxx_8c.html#aebca01f1f7fd279523d29e579998574a',1,'driver_w25qxx.c']]],
-  ['w25qxx_5fcommand_5fpower_5fdown_544',['W25QXX_COMMAND_POWER_DOWN',['../driver__w25qxx_8c.html#a6fe4d603e33b7c8b8310a884e02a130b',1,'driver_w25qxx.c']]],
-  ['w25qxx_5fcommand_5fprogram_5fsecurity_5fregister_545',['W25QXX_COMMAND_PROGRAM_SECURITY_REGISTER',['../driver__w25qxx_8c.html#a915ab53f5f2d1cad6b954205e76cb4d5',1,'driver_w25qxx.c']]],
-  ['w25qxx_5fcommand_5fquad_5fpage_5fprogram_546',['W25QXX_COMMAND_QUAD_PAGE_PROGRAM',['../driver__w25qxx_8c.html#a8212fac3d1e43024621b6b560a8dddfe',1,'driver_w25qxx.c']]],
-  ['w25qxx_5fcommand_5fread_5fblock_5flock_547',['W25QXX_COMMAND_READ_BLOCK_LOCK',['../driver__w25qxx_8c.html#a19e055bec30de0ad30e7f8ab5feea6a8',1,'driver_w25qxx.c']]],
-  ['w25qxx_5fcommand_5fread_5fdata_548',['W25QXX_COMMAND_READ_DATA',['../driver__w25qxx_8c.html#a23fcd6d9b067580d534d626c43b7cff3',1,'driver_w25qxx.c']]],
-  ['w25qxx_5fcommand_5fread_5fmanufacturer_549',['W25QXX_COMMAND_READ_MANUFACTURER',['../driver__w25qxx_8c.html#af6d9a5bc0b57b041e22af80b85e53f56',1,'driver_w25qxx.c']]],
-  ['w25qxx_5fcommand_5fread_5fsecurity_5fregister_550',['W25QXX_COMMAND_READ_SECURITY_REGISTER',['../driver__w25qxx_8c.html#a4dc5fb2c3c15ef86df56b534b874a919',1,'driver_w25qxx.c']]],
-  ['w25qxx_5fcommand_5fread_5fsfdp_5fregister_551',['W25QXX_COMMAND_READ_SFDP_REGISTER',['../driver__w25qxx_8c.html#a63774c5ebbdf5445466d840fad567bf6',1,'driver_w25qxx.c']]],
-  ['w25qxx_5fcommand_5fread_5fstatus_5freg1_552',['W25QXX_COMMAND_READ_STATUS_REG1',['../driver__w25qxx_8c.html#adf682969c34f4b31a87dd92dd18ccea3',1,'driver_w25qxx.c']]],
-  ['w25qxx_5fcommand_5fread_5fstatus_5freg2_553',['W25QXX_COMMAND_READ_STATUS_REG2',['../driver__w25qxx_8c.html#a4a8cdc5b6ce75029df877263bdf35f2a',1,'driver_w25qxx.c']]],
-  ['w25qxx_5fcommand_5fread_5fstatus_5freg3_554',['W25QXX_COMMAND_READ_STATUS_REG3',['../driver__w25qxx_8c.html#a09798bdb3fabdf7bb4cfd8bce18100ce',1,'driver_w25qxx.c']]],
-  ['w25qxx_5fcommand_5fread_5funique_5fid_555',['W25QXX_COMMAND_READ_UNIQUE_ID',['../driver__w25qxx_8c.html#a6aeed0a651b31064f25ab2f57fdacf2f',1,'driver_w25qxx.c']]],
-  ['w25qxx_5fcommand_5frelease_5fpower_5fdown_556',['W25QXX_COMMAND_RELEASE_POWER_DOWN',['../driver__w25qxx_8c.html#ad344065461b2c71521017984f040b425',1,'driver_w25qxx.c']]],
-  ['w25qxx_5fcommand_5freset_5fdevice_557',['W25QXX_COMMAND_RESET_DEVICE',['../driver__w25qxx_8c.html#ab25182298c921c8f7f42216e0d5aa56b',1,'driver_w25qxx.c']]],
-  ['w25qxx_5fcommand_5fsector_5ferase_5f4k_558',['W25QXX_COMMAND_SECTOR_ERASE_4K',['../driver__w25qxx_8c.html#a6e7cd159f91e23930450725fd6910f9c',1,'driver_w25qxx.c']]],
-  ['w25qxx_5fcommand_5fset_5fburst_5fwith_5fwrap_559',['W25QXX_COMMAND_SET_BURST_WITH_WRAP',['../driver__w25qxx_8c.html#acfb19490258b26729fa83fdd60c4d822',1,'driver_w25qxx.c']]],
-  ['w25qxx_5fcommand_5fvolatile_5fsr_5fwrite_5fenable_560',['W25QXX_COMMAND_VOLATILE_SR_WRITE_ENABLE',['../driver__w25qxx_8c.html#a7c9e980e30f499dd97b02935c91f2c02',1,'driver_w25qxx.c']]],
-  ['w25qxx_5fcommand_5fword_5fread_5fquad_5fio_561',['W25QXX_COMMAND_WORD_READ_QUAD_IO',['../driver__w25qxx_8c.html#a947382a74ac06eb8a2ff8f5bcb1b744d',1,'driver_w25qxx.c']]],
-  ['w25qxx_5fcommand_5fwrite_5fdisable_562',['W25QXX_COMMAND_WRITE_DISABLE',['../driver__w25qxx_8c.html#a36dfb1951fe152d63e3715a161646713',1,'driver_w25qxx.c']]],
-  ['w25qxx_5fcommand_5fwrite_5fenable_563',['W25QXX_COMMAND_WRITE_ENABLE',['../driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5',1,'driver_w25qxx.c']]],
-  ['w25qxx_5fcommand_5fwrite_5fstatus_5freg1_564',['W25QXX_COMMAND_WRITE_STATUS_REG1',['../driver__w25qxx_8c.html#a932f54ff92de8bbab4602ab85ac6c155',1,'driver_w25qxx.c']]],
-  ['w25qxx_5fcommand_5fwrite_5fstatus_5freg2_565',['W25QXX_COMMAND_WRITE_STATUS_REG2',['../driver__w25qxx_8c.html#a4be10ed873d56bb183d9b1bde9105135',1,'driver_w25qxx.c']]],
-  ['w25qxx_5fcommand_5fwrite_5fstatus_5freg3_566',['W25QXX_COMMAND_WRITE_STATUS_REG3',['../driver__w25qxx_8c.html#a6d099dc6afb59cc950d3abe96b840158',1,'driver_w25qxx.c']]]
+  ['w25qxx_5fcommand_5fblock_5ferase_5f32k_0',['W25QXX_COMMAND_BLOCK_ERASE_32K',['../driver__w25qxx_8c.html#a8bfb4e869985f5fa21ea7d1d262f90ad',1,'driver_w25qxx.c']]],
+  ['w25qxx_5fcommand_5fblock_5ferase_5f64k_1',['W25QXX_COMMAND_BLOCK_ERASE_64K',['../driver__w25qxx_8c.html#a4c5a1ed46f4d662a61bc06573ab548a0',1,'driver_w25qxx.c']]],
+  ['w25qxx_5fcommand_5fchip_5ferase_2',['W25QXX_COMMAND_CHIP_ERASE',['../driver__w25qxx_8c.html#a63ec9ecd709fcb69107756f253616a6e',1,'driver_w25qxx.c']]],
+  ['w25qxx_5fcommand_5fdevice_5fid_5fdual_5fio_3',['W25QXX_COMMAND_DEVICE_ID_DUAL_IO',['../driver__w25qxx_8c.html#a374c09f79cc61a3e7ac374bca5122e25',1,'driver_w25qxx.c']]],
+  ['w25qxx_5fcommand_5fdevice_5fid_5fquad_5fio_4',['W25QXX_COMMAND_DEVICE_ID_QUAD_IO',['../driver__w25qxx_8c.html#a7573bc250d850078be3221c29521bc5c',1,'driver_w25qxx.c']]],
+  ['w25qxx_5fcommand_5fenable_5freset_5',['W25QXX_COMMAND_ENABLE_RESET',['../driver__w25qxx_8c.html#a6dae3a832abc19d1861fafb32f231d94',1,'driver_w25qxx.c']]],
+  ['w25qxx_5fcommand_5fenter_5fqspi_5fmode_6',['W25QXX_COMMAND_ENTER_QSPI_MODE',['../driver__w25qxx_8c.html#a052d5373086b473bf0d450ea1bd73828',1,'driver_w25qxx.c']]],
+  ['w25qxx_5fcommand_5ferase_5fprogram_5fresume_7',['W25QXX_COMMAND_ERASE_PROGRAM_RESUME',['../driver__w25qxx_8c.html#a0daeb46fb8b219a3d6b37d426c5c0e95',1,'driver_w25qxx.c']]],
+  ['w25qxx_5fcommand_5ferase_5fprogram_5fsuspend_8',['W25QXX_COMMAND_ERASE_PROGRAM_SUSPEND',['../driver__w25qxx_8c.html#a43f9a1e3c03d4a7d2a991e81f0e89f51',1,'driver_w25qxx.c']]],
+  ['w25qxx_5fcommand_5ferase_5fsecurity_5fregister_9',['W25QXX_COMMAND_ERASE_SECURITY_REGISTER',['../driver__w25qxx_8c.html#a842f8d646fc8f8ed72422fc1d789498c',1,'driver_w25qxx.c']]],
+  ['w25qxx_5fcommand_5ffast_5fread_10',['W25QXX_COMMAND_FAST_READ',['../driver__w25qxx_8c.html#ac957b31a68db8c14f88a196a98b0aa18',1,'driver_w25qxx.c']]],
+  ['w25qxx_5fcommand_5ffast_5fread_5fdual_5fio_11',['W25QXX_COMMAND_FAST_READ_DUAL_IO',['../driver__w25qxx_8c.html#a2232ada3558228c2902d654989ca65f1',1,'driver_w25qxx.c']]],
+  ['w25qxx_5fcommand_5ffast_5fread_5fdual_5foutput_12',['W25QXX_COMMAND_FAST_READ_DUAL_OUTPUT',['../driver__w25qxx_8c.html#a8d49efa8b978ae8fd3eb18d0e5ae73e8',1,'driver_w25qxx.c']]],
+  ['w25qxx_5fcommand_5ffast_5fread_5fquad_5fio_13',['W25QXX_COMMAND_FAST_READ_QUAD_IO',['../driver__w25qxx_8c.html#a80d19998d9d1218d0fa69e7d4d6b0ecb',1,'driver_w25qxx.c']]],
+  ['w25qxx_5fcommand_5ffast_5fread_5fquad_5foutput_14',['W25QXX_COMMAND_FAST_READ_QUAD_OUTPUT',['../driver__w25qxx_8c.html#a54ddb3d948c4bb95cc62199676c817b2',1,'driver_w25qxx.c']]],
+  ['w25qxx_5fcommand_5fglobal_5fblock_5fsector_5flock_15',['W25QXX_COMMAND_GLOBAL_BLOCK_SECTOR_LOCK',['../driver__w25qxx_8c.html#af81bc9ddfc8da8eb911435e835536ffb',1,'driver_w25qxx.c']]],
+  ['w25qxx_5fcommand_5fglobal_5fblock_5fsector_5funlock_16',['W25QXX_COMMAND_GLOBAL_BLOCK_SECTOR_UNLOCK',['../driver__w25qxx_8c.html#ab96d2ad8602a5a50c988b8c09d4bbbc5',1,'driver_w25qxx.c']]],
+  ['w25qxx_5fcommand_5findividual_5fblock_5flock_17',['W25QXX_COMMAND_INDIVIDUAL_BLOCK_LOCK',['../driver__w25qxx_8c.html#a328f6a9635b1ec6868410375de90b0df',1,'driver_w25qxx.c']]],
+  ['w25qxx_5fcommand_5findividual_5fblock_5funlock_18',['W25QXX_COMMAND_INDIVIDUAL_BLOCK_UNLOCK',['../driver__w25qxx_8c.html#a3cc8b61583b5eb9d7c1ecd6831689718',1,'driver_w25qxx.c']]],
+  ['w25qxx_5fcommand_5fjedec_5fid_19',['W25QXX_COMMAND_JEDEC_ID',['../driver__w25qxx_8c.html#a54f3ece548cd5eadc94642235442315a',1,'driver_w25qxx.c']]],
+  ['w25qxx_5fcommand_5foctal_5fword_5fread_5fquad_5fio_20',['W25QXX_COMMAND_OCTAL_WORD_READ_QUAD_IO',['../driver__w25qxx_8c.html#acb7f8599b26c29356651690ec9b25e66',1,'driver_w25qxx.c']]],
+  ['w25qxx_5fcommand_5fpage_5fprogram_21',['W25QXX_COMMAND_PAGE_PROGRAM',['../driver__w25qxx_8c.html#aebca01f1f7fd279523d29e579998574a',1,'driver_w25qxx.c']]],
+  ['w25qxx_5fcommand_5fpower_5fdown_22',['W25QXX_COMMAND_POWER_DOWN',['../driver__w25qxx_8c.html#a6fe4d603e33b7c8b8310a884e02a130b',1,'driver_w25qxx.c']]],
+  ['w25qxx_5fcommand_5fprogram_5fsecurity_5fregister_23',['W25QXX_COMMAND_PROGRAM_SECURITY_REGISTER',['../driver__w25qxx_8c.html#a915ab53f5f2d1cad6b954205e76cb4d5',1,'driver_w25qxx.c']]],
+  ['w25qxx_5fcommand_5fquad_5fpage_5fprogram_24',['W25QXX_COMMAND_QUAD_PAGE_PROGRAM',['../driver__w25qxx_8c.html#a8212fac3d1e43024621b6b560a8dddfe',1,'driver_w25qxx.c']]],
+  ['w25qxx_5fcommand_5fread_5fblock_5flock_25',['W25QXX_COMMAND_READ_BLOCK_LOCK',['../driver__w25qxx_8c.html#a19e055bec30de0ad30e7f8ab5feea6a8',1,'driver_w25qxx.c']]],
+  ['w25qxx_5fcommand_5fread_5fdata_26',['W25QXX_COMMAND_READ_DATA',['../driver__w25qxx_8c.html#a23fcd6d9b067580d534d626c43b7cff3',1,'driver_w25qxx.c']]],
+  ['w25qxx_5fcommand_5fread_5fmanufacturer_27',['W25QXX_COMMAND_READ_MANUFACTURER',['../driver__w25qxx_8c.html#af6d9a5bc0b57b041e22af80b85e53f56',1,'driver_w25qxx.c']]],
+  ['w25qxx_5fcommand_5fread_5fsecurity_5fregister_28',['W25QXX_COMMAND_READ_SECURITY_REGISTER',['../driver__w25qxx_8c.html#a4dc5fb2c3c15ef86df56b534b874a919',1,'driver_w25qxx.c']]],
+  ['w25qxx_5fcommand_5fread_5fsfdp_5fregister_29',['W25QXX_COMMAND_READ_SFDP_REGISTER',['../driver__w25qxx_8c.html#a63774c5ebbdf5445466d840fad567bf6',1,'driver_w25qxx.c']]],
+  ['w25qxx_5fcommand_5fread_5fstatus_5freg1_30',['W25QXX_COMMAND_READ_STATUS_REG1',['../driver__w25qxx_8c.html#adf682969c34f4b31a87dd92dd18ccea3',1,'driver_w25qxx.c']]],
+  ['w25qxx_5fcommand_5fread_5fstatus_5freg2_31',['W25QXX_COMMAND_READ_STATUS_REG2',['../driver__w25qxx_8c.html#a4a8cdc5b6ce75029df877263bdf35f2a',1,'driver_w25qxx.c']]],
+  ['w25qxx_5fcommand_5fread_5fstatus_5freg3_32',['W25QXX_COMMAND_READ_STATUS_REG3',['../driver__w25qxx_8c.html#a09798bdb3fabdf7bb4cfd8bce18100ce',1,'driver_w25qxx.c']]],
+  ['w25qxx_5fcommand_5fread_5funique_5fid_33',['W25QXX_COMMAND_READ_UNIQUE_ID',['../driver__w25qxx_8c.html#a6aeed0a651b31064f25ab2f57fdacf2f',1,'driver_w25qxx.c']]],
+  ['w25qxx_5fcommand_5frelease_5fpower_5fdown_34',['W25QXX_COMMAND_RELEASE_POWER_DOWN',['../driver__w25qxx_8c.html#ad344065461b2c71521017984f040b425',1,'driver_w25qxx.c']]],
+  ['w25qxx_5fcommand_5freset_5fdevice_35',['W25QXX_COMMAND_RESET_DEVICE',['../driver__w25qxx_8c.html#ab25182298c921c8f7f42216e0d5aa56b',1,'driver_w25qxx.c']]],
+  ['w25qxx_5fcommand_5fsector_5ferase_5f4k_36',['W25QXX_COMMAND_SECTOR_ERASE_4K',['../driver__w25qxx_8c.html#a6e7cd159f91e23930450725fd6910f9c',1,'driver_w25qxx.c']]],
+  ['w25qxx_5fcommand_5fset_5fburst_5fwith_5fwrap_37',['W25QXX_COMMAND_SET_BURST_WITH_WRAP',['../driver__w25qxx_8c.html#acfb19490258b26729fa83fdd60c4d822',1,'driver_w25qxx.c']]],
+  ['w25qxx_5fcommand_5fvolatile_5fsr_5fwrite_5fenable_38',['W25QXX_COMMAND_VOLATILE_SR_WRITE_ENABLE',['../driver__w25qxx_8c.html#a7c9e980e30f499dd97b02935c91f2c02',1,'driver_w25qxx.c']]],
+  ['w25qxx_5fcommand_5fword_5fread_5fquad_5fio_39',['W25QXX_COMMAND_WORD_READ_QUAD_IO',['../driver__w25qxx_8c.html#a947382a74ac06eb8a2ff8f5bcb1b744d',1,'driver_w25qxx.c']]],
+  ['w25qxx_5fcommand_5fwrite_5fdisable_40',['W25QXX_COMMAND_WRITE_DISABLE',['../driver__w25qxx_8c.html#a36dfb1951fe152d63e3715a161646713',1,'driver_w25qxx.c']]],
+  ['w25qxx_5fcommand_5fwrite_5fenable_41',['W25QXX_COMMAND_WRITE_ENABLE',['../driver__w25qxx_8c.html#af0708c46377cfee2dff1ff429d8675d5',1,'driver_w25qxx.c']]],
+  ['w25qxx_5fcommand_5fwrite_5fstatus_5freg1_42',['W25QXX_COMMAND_WRITE_STATUS_REG1',['../driver__w25qxx_8c.html#a932f54ff92de8bbab4602ab85ac6c155',1,'driver_w25qxx.c']]],
+  ['w25qxx_5fcommand_5fwrite_5fstatus_5freg2_43',['W25QXX_COMMAND_WRITE_STATUS_REG2',['../driver__w25qxx_8c.html#a4be10ed873d56bb183d9b1bde9105135',1,'driver_w25qxx.c']]],
+  ['w25qxx_5fcommand_5fwrite_5fstatus_5freg3_44',['W25QXX_COMMAND_WRITE_STATUS_REG3',['../driver__w25qxx_8c.html#a6d099dc6afb59cc950d3abe96b840158',1,'driver_w25qxx.c']]]
 ];
diff --git a/doc/html/search/enums_0.js b/doc/html/search/enums_0.js
index f4e7824..039fe0b 100644
--- a/doc/html/search/enums_0.js
+++ b/doc/html/search/enums_0.js
@@ -1,14 +1,14 @@
 var searchData=
 [
-  ['w25qxx_5faddress_5fmode_5ft_452',['w25qxx_address_mode_t',['../group__w25qxx__basic__driver.html#gaa4c45f146d1ade8a2da8e751818fa4a2',1,'driver_w25qxx.h']]],
-  ['w25qxx_5fbool_5ft_453',['w25qxx_bool_t',['../group__w25qxx__basic__driver.html#gafb2690946f5baf4be6f3a63dde5491fb',1,'driver_w25qxx.h']]],
-  ['w25qxx_5fburst_5fwrap_5ft_454',['w25qxx_burst_wrap_t',['../group__w25qxx__advance__driver.html#ga94bbae2bf8906903e8dc2a28c490723d',1,'driver_w25qxx.h']]],
-  ['w25qxx_5finterface_5ft_455',['w25qxx_interface_t',['../group__w25qxx__basic__driver.html#gacbf327a42336baf10713a1796ff4f2fe',1,'driver_w25qxx.h']]],
-  ['w25qxx_5fqspi_5fread_5fdummy_5ft_456',['w25qxx_qspi_read_dummy_t',['../group__w25qxx__advance__driver.html#ga6ff284154302248f00db269146545443',1,'driver_w25qxx.h']]],
-  ['w25qxx_5fqspi_5fread_5fwrap_5flength_5ft_457',['w25qxx_qspi_read_wrap_length_t',['../group__w25qxx__advance__driver.html#ga2fd3023819e1aebe089a4a72eb136da3',1,'driver_w25qxx.h']]],
-  ['w25qxx_5fsecurity_5fregister_5ft_458',['w25qxx_security_register_t',['../group__w25qxx__advance__driver.html#ga81ddc7d4b9f4f124163beea19cc33c7e',1,'driver_w25qxx.h']]],
-  ['w25qxx_5fstatus1_5ft_459',['w25qxx_status1_t',['../group__w25qxx__advance__driver.html#ga9e41a72d1e25d39d88ce7108a9b25595',1,'driver_w25qxx.h']]],
-  ['w25qxx_5fstatus2_5ft_460',['w25qxx_status2_t',['../group__w25qxx__advance__driver.html#ga0d28076f6fc7d3ae9dd7f8410069a277',1,'driver_w25qxx.h']]],
-  ['w25qxx_5fstatus3_5ft_461',['w25qxx_status3_t',['../group__w25qxx__advance__driver.html#gace18ebb2eac49cbde44a2935916f44ac',1,'driver_w25qxx.h']]],
-  ['w25qxx_5ftype_5ft_462',['w25qxx_type_t',['../group__w25qxx__basic__driver.html#ga6cb4e5164464df549201dd96cb7a58b1',1,'driver_w25qxx.h']]]
+  ['w25qxx_5faddress_5fmode_5ft_0',['w25qxx_address_mode_t',['../group__w25qxx__basic__driver.html#gaa4c45f146d1ade8a2da8e751818fa4a2',1,'driver_w25qxx.h']]],
+  ['w25qxx_5fbool_5ft_1',['w25qxx_bool_t',['../group__w25qxx__basic__driver.html#gafb2690946f5baf4be6f3a63dde5491fb',1,'driver_w25qxx.h']]],
+  ['w25qxx_5fburst_5fwrap_5ft_2',['w25qxx_burst_wrap_t',['../group__w25qxx__advance__driver.html#ga94bbae2bf8906903e8dc2a28c490723d',1,'driver_w25qxx.h']]],
+  ['w25qxx_5finterface_5ft_3',['w25qxx_interface_t',['../group__w25qxx__basic__driver.html#gacbf327a42336baf10713a1796ff4f2fe',1,'driver_w25qxx.h']]],
+  ['w25qxx_5fqspi_5fread_5fdummy_5ft_4',['w25qxx_qspi_read_dummy_t',['../group__w25qxx__advance__driver.html#ga6ff284154302248f00db269146545443',1,'driver_w25qxx.h']]],
+  ['w25qxx_5fqspi_5fread_5fwrap_5flength_5ft_5',['w25qxx_qspi_read_wrap_length_t',['../group__w25qxx__advance__driver.html#ga2fd3023819e1aebe089a4a72eb136da3',1,'driver_w25qxx.h']]],
+  ['w25qxx_5fsecurity_5fregister_5ft_6',['w25qxx_security_register_t',['../group__w25qxx__advance__driver.html#ga81ddc7d4b9f4f124163beea19cc33c7e',1,'driver_w25qxx.h']]],
+  ['w25qxx_5fstatus1_5ft_7',['w25qxx_status1_t',['../group__w25qxx__advance__driver.html#ga9e41a72d1e25d39d88ce7108a9b25595',1,'driver_w25qxx.h']]],
+  ['w25qxx_5fstatus2_5ft_8',['w25qxx_status2_t',['../group__w25qxx__advance__driver.html#ga0d28076f6fc7d3ae9dd7f8410069a277',1,'driver_w25qxx.h']]],
+  ['w25qxx_5fstatus3_5ft_9',['w25qxx_status3_t',['../group__w25qxx__advance__driver.html#gace18ebb2eac49cbde44a2935916f44ac',1,'driver_w25qxx.h']]],
+  ['w25qxx_5ftype_5ft_10',['w25qxx_type_t',['../group__w25qxx__basic__driver.html#ga6cb4e5164464df549201dd96cb7a58b1',1,'driver_w25qxx.h']]]
 ];
diff --git a/doc/html/search/enumvalues_0.js b/doc/html/search/enumvalues_0.js
index 8c1baff..9d3daa0 100644
--- a/doc/html/search/enumvalues_0.js
+++ b/doc/html/search/enumvalues_0.js
@@ -1,54 +1,54 @@
 var searchData=
 [
-  ['w25q128_463',['W25Q128',['../group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a75afcbe71906d3884f4fcc119c1cabd5',1,'driver_w25qxx.h']]],
-  ['w25q16_464',['W25Q16',['../group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a66acb81a2d520a7d92ce1d37210c6435',1,'driver_w25qxx.h']]],
-  ['w25q256_465',['W25Q256',['../group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca',1,'driver_w25qxx.h']]],
-  ['w25q32_466',['W25Q32',['../group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a4fdad551be6485441db5951f196db7cb',1,'driver_w25qxx.h']]],
-  ['w25q64_467',['W25Q64',['../group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a3ea98b2b3e06afa29441c51548bbb16e',1,'driver_w25qxx.h']]],
-  ['w25q80_468',['W25Q80',['../group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a1ad4f72437de5f26cb7b212d4d91e7c2',1,'driver_w25qxx.h']]],
-  ['w25qxx_5faddress_5fmode_5f3_5fbyte_469',['W25QXX_ADDRESS_MODE_3_BYTE',['../group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503',1,'driver_w25qxx.h']]],
-  ['w25qxx_5faddress_5fmode_5f4_5fbyte_470',['W25QXX_ADDRESS_MODE_4_BYTE',['../group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe',1,'driver_w25qxx.h']]],
-  ['w25qxx_5fbool_5ffalse_471',['W25QXX_BOOL_FALSE',['../group__w25qxx__basic__driver.html#ggafb2690946f5baf4be6f3a63dde5491fba02afbdc2c6c3d761cd31ac39c857ee9a',1,'driver_w25qxx.h']]],
-  ['w25qxx_5fbool_5ftrue_472',['W25QXX_BOOL_TRUE',['../group__w25qxx__basic__driver.html#ggafb2690946f5baf4be6f3a63dde5491fbae2a935d12b0b1bc9fc321246ee0e0df8',1,'driver_w25qxx.h']]],
-  ['w25qxx_5fburst_5fwrap_5f16_5fbyte_473',['W25QXX_BURST_WRAP_16_BYTE',['../group__w25qxx__advance__driver.html#gga94bbae2bf8906903e8dc2a28c490723dafec1eb230b49fbda6ffcc1eeda64179a',1,'driver_w25qxx.h']]],
-  ['w25qxx_5fburst_5fwrap_5f32_5fbyte_474',['W25QXX_BURST_WRAP_32_BYTE',['../group__w25qxx__advance__driver.html#gga94bbae2bf8906903e8dc2a28c490723dae2ac810153f9515a145773c34409b995',1,'driver_w25qxx.h']]],
-  ['w25qxx_5fburst_5fwrap_5f64_5fbyte_475',['W25QXX_BURST_WRAP_64_BYTE',['../group__w25qxx__advance__driver.html#gga94bbae2bf8906903e8dc2a28c490723da2a3afd7924b00cf74abe83f5216c8915',1,'driver_w25qxx.h']]],
-  ['w25qxx_5fburst_5fwrap_5f8_5fbyte_476',['W25QXX_BURST_WRAP_8_BYTE',['../group__w25qxx__advance__driver.html#gga94bbae2bf8906903e8dc2a28c490723da35edf6c31d0fe1771ab79669d13b7af8',1,'driver_w25qxx.h']]],
-  ['w25qxx_5fburst_5fwrap_5fnone_477',['W25QXX_BURST_WRAP_NONE',['../group__w25qxx__advance__driver.html#gga94bbae2bf8906903e8dc2a28c490723dae39a7ea65512a56d40aad2990d55815d',1,'driver_w25qxx.h']]],
-  ['w25qxx_5finterface_5fqspi_478',['W25QXX_INTERFACE_QSPI',['../group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2fea895dcb5c91da89fad1c12161ffd2d5d4',1,'driver_w25qxx.h']]],
-  ['w25qxx_5finterface_5fspi_479',['W25QXX_INTERFACE_SPI',['../group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8',1,'driver_w25qxx.h']]],
-  ['w25qxx_5fqspi_5fread_5fdummy_5f2_5f33mhz_480',['W25QXX_QSPI_READ_DUMMY_2_33MHZ',['../group__w25qxx__advance__driver.html#gga6ff284154302248f00db269146545443ad73634a0f4534c3ae35d4242b2bc8f13',1,'driver_w25qxx.h']]],
-  ['w25qxx_5fqspi_5fread_5fdummy_5f4_5f55mhz_481',['W25QXX_QSPI_READ_DUMMY_4_55MHZ',['../group__w25qxx__advance__driver.html#gga6ff284154302248f00db269146545443a6423b5606e72af6479fe31a6a9883aeb',1,'driver_w25qxx.h']]],
-  ['w25qxx_5fqspi_5fread_5fdummy_5f6_5f80mhz_482',['W25QXX_QSPI_READ_DUMMY_6_80MHZ',['../group__w25qxx__advance__driver.html#gga6ff284154302248f00db269146545443a78393debe12bbb3efb710e38e3c1d550',1,'driver_w25qxx.h']]],
-  ['w25qxx_5fqspi_5fread_5fdummy_5f8_5f80mhz_483',['W25QXX_QSPI_READ_DUMMY_8_80MHZ',['../group__w25qxx__advance__driver.html#gga6ff284154302248f00db269146545443ade1d3511f15c7d92de8c5d8967c471c3',1,'driver_w25qxx.h']]],
-  ['w25qxx_5fqspi_5fread_5fwrap_5flength_5f16_5fbyte_484',['W25QXX_QSPI_READ_WRAP_LENGTH_16_BYTE',['../group__w25qxx__advance__driver.html#gga2fd3023819e1aebe089a4a72eb136da3ae6bc2fcd2d4fc3af63f22da56a3b393b',1,'driver_w25qxx.h']]],
-  ['w25qxx_5fqspi_5fread_5fwrap_5flength_5f32_5fbyte_485',['W25QXX_QSPI_READ_WRAP_LENGTH_32_BYTE',['../group__w25qxx__advance__driver.html#gga2fd3023819e1aebe089a4a72eb136da3aa5f2e6b5718a85ab9241125e84181216',1,'driver_w25qxx.h']]],
-  ['w25qxx_5fqspi_5fread_5fwrap_5flength_5f64_5fbyte_486',['W25QXX_QSPI_READ_WRAP_LENGTH_64_BYTE',['../group__w25qxx__advance__driver.html#gga2fd3023819e1aebe089a4a72eb136da3a736f25eeae36f6a0b62d4cb1666a689f',1,'driver_w25qxx.h']]],
-  ['w25qxx_5fqspi_5fread_5fwrap_5flength_5f8_5fbyte_487',['W25QXX_QSPI_READ_WRAP_LENGTH_8_BYTE',['../group__w25qxx__advance__driver.html#gga2fd3023819e1aebe089a4a72eb136da3a5b8fa1026c564fe83f3f0f0edb89d1dd',1,'driver_w25qxx.h']]],
-  ['w25qxx_5fsecurity_5fregister_5f1_488',['W25QXX_SECURITY_REGISTER_1',['../group__w25qxx__advance__driver.html#gga81ddc7d4b9f4f124163beea19cc33c7eaaf27484a497c13915c8acb0161cf137d',1,'driver_w25qxx.h']]],
-  ['w25qxx_5fsecurity_5fregister_5f2_489',['W25QXX_SECURITY_REGISTER_2',['../group__w25qxx__advance__driver.html#gga81ddc7d4b9f4f124163beea19cc33c7ea3353a88090850174ca163d56e4d7089c',1,'driver_w25qxx.h']]],
-  ['w25qxx_5fsecurity_5fregister_5f3_490',['W25QXX_SECURITY_REGISTER_3',['../group__w25qxx__advance__driver.html#gga81ddc7d4b9f4f124163beea19cc33c7ea65b73162d921075bed8cb8d848948900',1,'driver_w25qxx.h']]],
-  ['w25qxx_5fstatus1_5fblock_5fprotect_5f0_491',['W25QXX_STATUS1_BLOCK_PROTECT_0',['../group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a7b7e8922009c0d6a88bbfad76a812262',1,'driver_w25qxx.h']]],
-  ['w25qxx_5fstatus1_5fblock_5fprotect_5f1_492',['W25QXX_STATUS1_BLOCK_PROTECT_1',['../group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a3465f02625d38730630b60cd01e92085',1,'driver_w25qxx.h']]],
-  ['w25qxx_5fstatus1_5fblock_5fprotect_5f2_493',['W25QXX_STATUS1_BLOCK_PROTECT_2',['../group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a9a02180228dbb94e9d302b667fda884f',1,'driver_w25qxx.h']]],
-  ['w25qxx_5fstatus1_5ferase_5fwrite_5fprogress_494',['W25QXX_STATUS1_ERASE_WRITE_PROGRESS',['../group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595ae1ce566fc564776e98a5c7edefe8c5ea',1,'driver_w25qxx.h']]],
-  ['w25qxx_5fstatus1_5fsector_5fprotect_5for_5ftop_5fbottom_5fprotect_495',['W25QXX_STATUS1_SECTOR_PROTECT_OR_TOP_BOTTOM_PROTECT',['../group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a9522040a098337442eff127e1598776d',1,'driver_w25qxx.h']]],
-  ['w25qxx_5fstatus1_5fstatus_5fregister_5fprotect_5f0_496',['W25QXX_STATUS1_STATUS_REGISTER_PROTECT_0',['../group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a00d1d224963ec1f38ac97802480b2129',1,'driver_w25qxx.h']]],
-  ['w25qxx_5fstatus1_5ftop_5fbottom_5fprotect_5for_5fblock_5fprotect_5f3_497',['W25QXX_STATUS1_TOP_BOTTOM_PROTECT_OR_BLOCK_PROTECT_3',['../group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a63bc45b7e0e19de7e58e3494eb4046c5',1,'driver_w25qxx.h']]],
-  ['w25qxx_5fstatus1_5fwrite_5fenable_5flatch_498',['W25QXX_STATUS1_WRITE_ENABLE_LATCH',['../group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a1438a76d1be1aa02e4f7450a045c02e3',1,'driver_w25qxx.h']]],
-  ['w25qxx_5fstatus2_5fcomplement_5fprotect_499',['W25QXX_STATUS2_COMPLEMENT_PROTECT',['../group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277a517e9e50ada30462f902d01e8d5579dc',1,'driver_w25qxx.h']]],
-  ['w25qxx_5fstatus2_5fquad_5fenable_500',['W25QXX_STATUS2_QUAD_ENABLE',['../group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277aa920a9c9a590fb8740419d8d2e4230f3',1,'driver_w25qxx.h']]],
-  ['w25qxx_5fstatus2_5fsecurity_5fregister_5f1_5flock_5fbits_501',['W25QXX_STATUS2_SECURITY_REGISTER_1_LOCK_BITS',['../group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277a7a631c1c153cc099a52883b40007079e',1,'driver_w25qxx.h']]],
-  ['w25qxx_5fstatus2_5fsecurity_5fregister_5f2_5flock_5fbits_502',['W25QXX_STATUS2_SECURITY_REGISTER_2_LOCK_BITS',['../group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277a24a99f1a97023ae103c1bec3027bbf26',1,'driver_w25qxx.h']]],
-  ['w25qxx_5fstatus2_5fsecurity_5fregister_5f3_5flock_5fbits_503',['W25QXX_STATUS2_SECURITY_REGISTER_3_LOCK_BITS',['../group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277a0f3e2b3059d56f974724a8284142e69a',1,'driver_w25qxx.h']]],
-  ['w25qxx_5fstatus2_5fstatus_5fregister_5fprotect_5f1_504',['W25QXX_STATUS2_STATUS_REGISTER_PROTECT_1',['../group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277a5a89a885ba2a59eccd0445443e3bbac6',1,'driver_w25qxx.h']]],
-  ['w25qxx_5fstatus2_5fsuspend_5fstatus_505',['W25QXX_STATUS2_SUSPEND_STATUS',['../group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277a3fdb54846709f77391e426c626a19152',1,'driver_w25qxx.h']]],
-  ['w25qxx_5fstatus3_5fcurrent_5faddress_5fmode_506',['W25QXX_STATUS3_CURRENT_ADDRESS_MODE',['../group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44aca3c822d6eacd9747ca2173607a09591ac',1,'driver_w25qxx.h']]],
-  ['w25qxx_5fstatus3_5fhold_5freset_5ffunction_507',['W25QXX_STATUS3_HOLD_RESET_FUNCTION',['../group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44aca9ab13d5388af0156c4e4de08765ec401',1,'driver_w25qxx.h']]],
-  ['w25qxx_5fstatus3_5foutput_5fdriver_5fstrength_5f100_5fpercentage_508',['W25QXX_STATUS3_OUTPUT_DRIVER_STRENGTH_100_PERCENTAGE',['../group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44acab5b1ce328b88d08f3d55ed776e01fedb',1,'driver_w25qxx.h']]],
-  ['w25qxx_5fstatus3_5foutput_5fdriver_5fstrength_5f25_5fpercentage_509',['W25QXX_STATUS3_OUTPUT_DRIVER_STRENGTH_25_PERCENTAGE',['../group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44acae645c265a6beb76a088352e2f4bfb4e1',1,'driver_w25qxx.h']]],
-  ['w25qxx_5fstatus3_5foutput_5fdriver_5fstrength_5f50_5fpercentage_510',['W25QXX_STATUS3_OUTPUT_DRIVER_STRENGTH_50_PERCENTAGE',['../group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44aca8abcd821f1f0d02b3d9179c7ab58d0e0',1,'driver_w25qxx.h']]],
-  ['w25qxx_5fstatus3_5foutput_5fdriver_5fstrength_5f75_5fpercentage_511',['W25QXX_STATUS3_OUTPUT_DRIVER_STRENGTH_75_PERCENTAGE',['../group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44aca7ab6ace72a02afc20f92f48e975b60b7',1,'driver_w25qxx.h']]],
-  ['w25qxx_5fstatus3_5fpower_5fup_5faddress_5fmode_512',['W25QXX_STATUS3_POWER_UP_ADDRESS_MODE',['../group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44acadc8d5949eaea0c6ce4e17c6e746f4f65',1,'driver_w25qxx.h']]],
-  ['w25qxx_5fstatus3_5fwrite_5fprotect_5fselection_513',['W25QXX_STATUS3_WRITE_PROTECT_SELECTION',['../group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44aca7dc507c444fb395a4956bf50d78f1ee3',1,'driver_w25qxx.h']]]
+  ['w25q128_0',['W25Q128',['../group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a75afcbe71906d3884f4fcc119c1cabd5',1,'driver_w25qxx.h']]],
+  ['w25q16_1',['W25Q16',['../group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a66acb81a2d520a7d92ce1d37210c6435',1,'driver_w25qxx.h']]],
+  ['w25q256_2',['W25Q256',['../group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca',1,'driver_w25qxx.h']]],
+  ['w25q32_3',['W25Q32',['../group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a4fdad551be6485441db5951f196db7cb',1,'driver_w25qxx.h']]],
+  ['w25q64_4',['W25Q64',['../group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a3ea98b2b3e06afa29441c51548bbb16e',1,'driver_w25qxx.h']]],
+  ['w25q80_5',['W25Q80',['../group__w25qxx__basic__driver.html#gga6cb4e5164464df549201dd96cb7a58b1a1ad4f72437de5f26cb7b212d4d91e7c2',1,'driver_w25qxx.h']]],
+  ['w25qxx_5faddress_5fmode_5f3_5fbyte_6',['W25QXX_ADDRESS_MODE_3_BYTE',['../group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503',1,'driver_w25qxx.h']]],
+  ['w25qxx_5faddress_5fmode_5f4_5fbyte_7',['W25QXX_ADDRESS_MODE_4_BYTE',['../group__w25qxx__basic__driver.html#ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe',1,'driver_w25qxx.h']]],
+  ['w25qxx_5fbool_5ffalse_8',['W25QXX_BOOL_FALSE',['../group__w25qxx__basic__driver.html#ggafb2690946f5baf4be6f3a63dde5491fba02afbdc2c6c3d761cd31ac39c857ee9a',1,'driver_w25qxx.h']]],
+  ['w25qxx_5fbool_5ftrue_9',['W25QXX_BOOL_TRUE',['../group__w25qxx__basic__driver.html#ggafb2690946f5baf4be6f3a63dde5491fbae2a935d12b0b1bc9fc321246ee0e0df8',1,'driver_w25qxx.h']]],
+  ['w25qxx_5fburst_5fwrap_5f16_5fbyte_10',['W25QXX_BURST_WRAP_16_BYTE',['../group__w25qxx__advance__driver.html#gga94bbae2bf8906903e8dc2a28c490723dafec1eb230b49fbda6ffcc1eeda64179a',1,'driver_w25qxx.h']]],
+  ['w25qxx_5fburst_5fwrap_5f32_5fbyte_11',['W25QXX_BURST_WRAP_32_BYTE',['../group__w25qxx__advance__driver.html#gga94bbae2bf8906903e8dc2a28c490723dae2ac810153f9515a145773c34409b995',1,'driver_w25qxx.h']]],
+  ['w25qxx_5fburst_5fwrap_5f64_5fbyte_12',['W25QXX_BURST_WRAP_64_BYTE',['../group__w25qxx__advance__driver.html#gga94bbae2bf8906903e8dc2a28c490723da2a3afd7924b00cf74abe83f5216c8915',1,'driver_w25qxx.h']]],
+  ['w25qxx_5fburst_5fwrap_5f8_5fbyte_13',['W25QXX_BURST_WRAP_8_BYTE',['../group__w25qxx__advance__driver.html#gga94bbae2bf8906903e8dc2a28c490723da35edf6c31d0fe1771ab79669d13b7af8',1,'driver_w25qxx.h']]],
+  ['w25qxx_5fburst_5fwrap_5fnone_14',['W25QXX_BURST_WRAP_NONE',['../group__w25qxx__advance__driver.html#gga94bbae2bf8906903e8dc2a28c490723dae39a7ea65512a56d40aad2990d55815d',1,'driver_w25qxx.h']]],
+  ['w25qxx_5finterface_5fqspi_15',['W25QXX_INTERFACE_QSPI',['../group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2fea895dcb5c91da89fad1c12161ffd2d5d4',1,'driver_w25qxx.h']]],
+  ['w25qxx_5finterface_5fspi_16',['W25QXX_INTERFACE_SPI',['../group__w25qxx__basic__driver.html#ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8',1,'driver_w25qxx.h']]],
+  ['w25qxx_5fqspi_5fread_5fdummy_5f2_5f33mhz_17',['W25QXX_QSPI_READ_DUMMY_2_33MHZ',['../group__w25qxx__advance__driver.html#gga6ff284154302248f00db269146545443ad73634a0f4534c3ae35d4242b2bc8f13',1,'driver_w25qxx.h']]],
+  ['w25qxx_5fqspi_5fread_5fdummy_5f4_5f55mhz_18',['W25QXX_QSPI_READ_DUMMY_4_55MHZ',['../group__w25qxx__advance__driver.html#gga6ff284154302248f00db269146545443a6423b5606e72af6479fe31a6a9883aeb',1,'driver_w25qxx.h']]],
+  ['w25qxx_5fqspi_5fread_5fdummy_5f6_5f80mhz_19',['W25QXX_QSPI_READ_DUMMY_6_80MHZ',['../group__w25qxx__advance__driver.html#gga6ff284154302248f00db269146545443a78393debe12bbb3efb710e38e3c1d550',1,'driver_w25qxx.h']]],
+  ['w25qxx_5fqspi_5fread_5fdummy_5f8_5f80mhz_20',['W25QXX_QSPI_READ_DUMMY_8_80MHZ',['../group__w25qxx__advance__driver.html#gga6ff284154302248f00db269146545443ade1d3511f15c7d92de8c5d8967c471c3',1,'driver_w25qxx.h']]],
+  ['w25qxx_5fqspi_5fread_5fwrap_5flength_5f16_5fbyte_21',['W25QXX_QSPI_READ_WRAP_LENGTH_16_BYTE',['../group__w25qxx__advance__driver.html#gga2fd3023819e1aebe089a4a72eb136da3ae6bc2fcd2d4fc3af63f22da56a3b393b',1,'driver_w25qxx.h']]],
+  ['w25qxx_5fqspi_5fread_5fwrap_5flength_5f32_5fbyte_22',['W25QXX_QSPI_READ_WRAP_LENGTH_32_BYTE',['../group__w25qxx__advance__driver.html#gga2fd3023819e1aebe089a4a72eb136da3aa5f2e6b5718a85ab9241125e84181216',1,'driver_w25qxx.h']]],
+  ['w25qxx_5fqspi_5fread_5fwrap_5flength_5f64_5fbyte_23',['W25QXX_QSPI_READ_WRAP_LENGTH_64_BYTE',['../group__w25qxx__advance__driver.html#gga2fd3023819e1aebe089a4a72eb136da3a736f25eeae36f6a0b62d4cb1666a689f',1,'driver_w25qxx.h']]],
+  ['w25qxx_5fqspi_5fread_5fwrap_5flength_5f8_5fbyte_24',['W25QXX_QSPI_READ_WRAP_LENGTH_8_BYTE',['../group__w25qxx__advance__driver.html#gga2fd3023819e1aebe089a4a72eb136da3a5b8fa1026c564fe83f3f0f0edb89d1dd',1,'driver_w25qxx.h']]],
+  ['w25qxx_5fsecurity_5fregister_5f1_25',['W25QXX_SECURITY_REGISTER_1',['../group__w25qxx__advance__driver.html#gga81ddc7d4b9f4f124163beea19cc33c7eaaf27484a497c13915c8acb0161cf137d',1,'driver_w25qxx.h']]],
+  ['w25qxx_5fsecurity_5fregister_5f2_26',['W25QXX_SECURITY_REGISTER_2',['../group__w25qxx__advance__driver.html#gga81ddc7d4b9f4f124163beea19cc33c7ea3353a88090850174ca163d56e4d7089c',1,'driver_w25qxx.h']]],
+  ['w25qxx_5fsecurity_5fregister_5f3_27',['W25QXX_SECURITY_REGISTER_3',['../group__w25qxx__advance__driver.html#gga81ddc7d4b9f4f124163beea19cc33c7ea65b73162d921075bed8cb8d848948900',1,'driver_w25qxx.h']]],
+  ['w25qxx_5fstatus1_5fblock_5fprotect_5f0_28',['W25QXX_STATUS1_BLOCK_PROTECT_0',['../group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a7b7e8922009c0d6a88bbfad76a812262',1,'driver_w25qxx.h']]],
+  ['w25qxx_5fstatus1_5fblock_5fprotect_5f1_29',['W25QXX_STATUS1_BLOCK_PROTECT_1',['../group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a3465f02625d38730630b60cd01e92085',1,'driver_w25qxx.h']]],
+  ['w25qxx_5fstatus1_5fblock_5fprotect_5f2_30',['W25QXX_STATUS1_BLOCK_PROTECT_2',['../group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a9a02180228dbb94e9d302b667fda884f',1,'driver_w25qxx.h']]],
+  ['w25qxx_5fstatus1_5ferase_5fwrite_5fprogress_31',['W25QXX_STATUS1_ERASE_WRITE_PROGRESS',['../group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595ae1ce566fc564776e98a5c7edefe8c5ea',1,'driver_w25qxx.h']]],
+  ['w25qxx_5fstatus1_5fsector_5fprotect_5for_5ftop_5fbottom_5fprotect_32',['W25QXX_STATUS1_SECTOR_PROTECT_OR_TOP_BOTTOM_PROTECT',['../group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a9522040a098337442eff127e1598776d',1,'driver_w25qxx.h']]],
+  ['w25qxx_5fstatus1_5fstatus_5fregister_5fprotect_5f0_33',['W25QXX_STATUS1_STATUS_REGISTER_PROTECT_0',['../group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a00d1d224963ec1f38ac97802480b2129',1,'driver_w25qxx.h']]],
+  ['w25qxx_5fstatus1_5ftop_5fbottom_5fprotect_5for_5fblock_5fprotect_5f3_34',['W25QXX_STATUS1_TOP_BOTTOM_PROTECT_OR_BLOCK_PROTECT_3',['../group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a63bc45b7e0e19de7e58e3494eb4046c5',1,'driver_w25qxx.h']]],
+  ['w25qxx_5fstatus1_5fwrite_5fenable_5flatch_35',['W25QXX_STATUS1_WRITE_ENABLE_LATCH',['../group__w25qxx__advance__driver.html#gga9e41a72d1e25d39d88ce7108a9b25595a1438a76d1be1aa02e4f7450a045c02e3',1,'driver_w25qxx.h']]],
+  ['w25qxx_5fstatus2_5fcomplement_5fprotect_36',['W25QXX_STATUS2_COMPLEMENT_PROTECT',['../group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277a517e9e50ada30462f902d01e8d5579dc',1,'driver_w25qxx.h']]],
+  ['w25qxx_5fstatus2_5fquad_5fenable_37',['W25QXX_STATUS2_QUAD_ENABLE',['../group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277aa920a9c9a590fb8740419d8d2e4230f3',1,'driver_w25qxx.h']]],
+  ['w25qxx_5fstatus2_5fsecurity_5fregister_5f1_5flock_5fbits_38',['W25QXX_STATUS2_SECURITY_REGISTER_1_LOCK_BITS',['../group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277a7a631c1c153cc099a52883b40007079e',1,'driver_w25qxx.h']]],
+  ['w25qxx_5fstatus2_5fsecurity_5fregister_5f2_5flock_5fbits_39',['W25QXX_STATUS2_SECURITY_REGISTER_2_LOCK_BITS',['../group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277a24a99f1a97023ae103c1bec3027bbf26',1,'driver_w25qxx.h']]],
+  ['w25qxx_5fstatus2_5fsecurity_5fregister_5f3_5flock_5fbits_40',['W25QXX_STATUS2_SECURITY_REGISTER_3_LOCK_BITS',['../group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277a0f3e2b3059d56f974724a8284142e69a',1,'driver_w25qxx.h']]],
+  ['w25qxx_5fstatus2_5fstatus_5fregister_5fprotect_5f1_41',['W25QXX_STATUS2_STATUS_REGISTER_PROTECT_1',['../group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277a5a89a885ba2a59eccd0445443e3bbac6',1,'driver_w25qxx.h']]],
+  ['w25qxx_5fstatus2_5fsuspend_5fstatus_42',['W25QXX_STATUS2_SUSPEND_STATUS',['../group__w25qxx__advance__driver.html#gga0d28076f6fc7d3ae9dd7f8410069a277a3fdb54846709f77391e426c626a19152',1,'driver_w25qxx.h']]],
+  ['w25qxx_5fstatus3_5fcurrent_5faddress_5fmode_43',['W25QXX_STATUS3_CURRENT_ADDRESS_MODE',['../group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44aca3c822d6eacd9747ca2173607a09591ac',1,'driver_w25qxx.h']]],
+  ['w25qxx_5fstatus3_5fhold_5freset_5ffunction_44',['W25QXX_STATUS3_HOLD_RESET_FUNCTION',['../group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44aca9ab13d5388af0156c4e4de08765ec401',1,'driver_w25qxx.h']]],
+  ['w25qxx_5fstatus3_5foutput_5fdriver_5fstrength_5f100_5fpercentage_45',['W25QXX_STATUS3_OUTPUT_DRIVER_STRENGTH_100_PERCENTAGE',['../group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44acab5b1ce328b88d08f3d55ed776e01fedb',1,'driver_w25qxx.h']]],
+  ['w25qxx_5fstatus3_5foutput_5fdriver_5fstrength_5f25_5fpercentage_46',['W25QXX_STATUS3_OUTPUT_DRIVER_STRENGTH_25_PERCENTAGE',['../group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44acae645c265a6beb76a088352e2f4bfb4e1',1,'driver_w25qxx.h']]],
+  ['w25qxx_5fstatus3_5foutput_5fdriver_5fstrength_5f50_5fpercentage_47',['W25QXX_STATUS3_OUTPUT_DRIVER_STRENGTH_50_PERCENTAGE',['../group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44aca8abcd821f1f0d02b3d9179c7ab58d0e0',1,'driver_w25qxx.h']]],
+  ['w25qxx_5fstatus3_5foutput_5fdriver_5fstrength_5f75_5fpercentage_48',['W25QXX_STATUS3_OUTPUT_DRIVER_STRENGTH_75_PERCENTAGE',['../group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44aca7ab6ace72a02afc20f92f48e975b60b7',1,'driver_w25qxx.h']]],
+  ['w25qxx_5fstatus3_5fpower_5fup_5faddress_5fmode_49',['W25QXX_STATUS3_POWER_UP_ADDRESS_MODE',['../group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44acadc8d5949eaea0c6ce4e17c6e746f4f65',1,'driver_w25qxx.h']]],
+  ['w25qxx_5fstatus3_5fwrite_5fprotect_5fselection_50',['W25QXX_STATUS3_WRITE_PROTECT_SELECTION',['../group__w25qxx__advance__driver.html#ggace18ebb2eac49cbde44a2935916f44aca7dc507c444fb395a4956bf50d78f1ee3',1,'driver_w25qxx.h']]]
 ];
diff --git a/doc/html/search/files_0.js b/doc/html/search/files_0.js
index b93c8c1..17ae97c 100644
--- a/doc/html/search/files_0.js
+++ b/doc/html/search/files_0.js
@@ -1,15 +1,15 @@
 var searchData=
 [
-  ['driver_5fw25qxx_2ec_294',['driver_w25qxx.c',['../driver__w25qxx_8c.html',1,'']]],
-  ['driver_5fw25qxx_2eh_295',['driver_w25qxx.h',['../driver__w25qxx_8h.html',1,'']]],
-  ['driver_5fw25qxx_5fadvance_2ec_296',['driver_w25qxx_advance.c',['../driver__w25qxx__advance_8c.html',1,'']]],
-  ['driver_5fw25qxx_5fadvance_2eh_297',['driver_w25qxx_advance.h',['../driver__w25qxx__advance_8h.html',1,'']]],
-  ['driver_5fw25qxx_5fbasic_2ec_298',['driver_w25qxx_basic.c',['../driver__w25qxx__basic_8c.html',1,'']]],
-  ['driver_5fw25qxx_5fbasic_2eh_299',['driver_w25qxx_basic.h',['../driver__w25qxx__basic_8h.html',1,'']]],
-  ['driver_5fw25qxx_5finterface_2eh_300',['driver_w25qxx_interface.h',['../driver__w25qxx__interface_8h.html',1,'']]],
-  ['driver_5fw25qxx_5finterface_5ftemplate_2ec_301',['driver_w25qxx_interface_template.c',['../driver__w25qxx__interface__template_8c.html',1,'']]],
-  ['driver_5fw25qxx_5fread_5ftest_2ec_302',['driver_w25qxx_read_test.c',['../driver__w25qxx__read__test_8c.html',1,'']]],
-  ['driver_5fw25qxx_5fread_5ftest_2eh_303',['driver_w25qxx_read_test.h',['../driver__w25qxx__read__test_8h.html',1,'']]],
-  ['driver_5fw25qxx_5fregister_5ftest_2ec_304',['driver_w25qxx_register_test.c',['../driver__w25qxx__register__test_8c.html',1,'']]],
-  ['driver_5fw25qxx_5fregister_5ftest_2eh_305',['driver_w25qxx_register_test.h',['../driver__w25qxx__register__test_8h.html',1,'']]]
+  ['driver_5fw25qxx_2ec_0',['driver_w25qxx.c',['../driver__w25qxx_8c.html',1,'']]],
+  ['driver_5fw25qxx_2eh_1',['driver_w25qxx.h',['../driver__w25qxx_8h.html',1,'']]],
+  ['driver_5fw25qxx_5fadvance_2ec_2',['driver_w25qxx_advance.c',['../driver__w25qxx__advance_8c.html',1,'']]],
+  ['driver_5fw25qxx_5fadvance_2eh_3',['driver_w25qxx_advance.h',['../driver__w25qxx__advance_8h.html',1,'']]],
+  ['driver_5fw25qxx_5fbasic_2ec_4',['driver_w25qxx_basic.c',['../driver__w25qxx__basic_8c.html',1,'']]],
+  ['driver_5fw25qxx_5fbasic_2eh_5',['driver_w25qxx_basic.h',['../driver__w25qxx__basic_8h.html',1,'']]],
+  ['driver_5fw25qxx_5finterface_2eh_6',['driver_w25qxx_interface.h',['../driver__w25qxx__interface_8h.html',1,'']]],
+  ['driver_5fw25qxx_5finterface_5ftemplate_2ec_7',['driver_w25qxx_interface_template.c',['../driver__w25qxx__interface__template_8c.html',1,'']]],
+  ['driver_5fw25qxx_5fread_5ftest_2ec_8',['driver_w25qxx_read_test.c',['../driver__w25qxx__read__test_8c.html',1,'']]],
+  ['driver_5fw25qxx_5fread_5ftest_2eh_9',['driver_w25qxx_read_test.h',['../driver__w25qxx__read__test_8h.html',1,'']]],
+  ['driver_5fw25qxx_5fregister_5ftest_2ec_10',['driver_w25qxx_register_test.c',['../driver__w25qxx__register__test_8c.html',1,'']]],
+  ['driver_5fw25qxx_5fregister_5ftest_2eh_11',['driver_w25qxx_register_test.h',['../driver__w25qxx__register__test_8h.html',1,'']]]
 ];
diff --git a/doc/html/search/files_1.js b/doc/html/search/files_1.js
index d607419..a4e5a82 100644
--- a/doc/html/search/files_1.js
+++ b/doc/html/search/files_1.js
@@ -1,4 +1,4 @@
 var searchData=
 [
-  ['mainpage_2eh_306',['mainpage.h',['../mainpage_8h.html',1,'']]]
+  ['mainpage_2eh_0',['mainpage.h',['../mainpage_8h.html',1,'']]]
 ];
diff --git a/doc/html/search/functions_0.js b/doc/html/search/functions_0.js
index 13d6cd2..c4410a6 100644
--- a/doc/html/search/functions_0.js
+++ b/doc/html/search/functions_0.js
@@ -1,122 +1,122 @@
 var searchData=
 [
-  ['w25qxx_5fadvance_5fblock_5ferase_5f32k_307',['w25qxx_advance_block_erase_32k',['../group__w25qxx__example__driver.html#gaee04edb9e97785e423dffe14a1cad780',1,'w25qxx_advance_block_erase_32k(uint32_t addr):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#gaee04edb9e97785e423dffe14a1cad780',1,'w25qxx_advance_block_erase_32k(uint32_t addr):&#160;driver_w25qxx_advance.c']]],
-  ['w25qxx_5fadvance_5fblock_5ferase_5f64k_308',['w25qxx_advance_block_erase_64k',['../group__w25qxx__example__driver.html#gae7cba4e0b22a1043fe304e46148fa13c',1,'w25qxx_advance_block_erase_64k(uint32_t addr):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#gae7cba4e0b22a1043fe304e46148fa13c',1,'w25qxx_advance_block_erase_64k(uint32_t addr):&#160;driver_w25qxx_advance.c']]],
-  ['w25qxx_5fadvance_5fchip_5ferase_309',['w25qxx_advance_chip_erase',['../group__w25qxx__example__driver.html#ga15cb243f227ef8d897ef3208b622bded',1,'w25qxx_advance_chip_erase(void):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#ga15cb243f227ef8d897ef3208b622bded',1,'w25qxx_advance_chip_erase(void):&#160;driver_w25qxx_advance.c']]],
-  ['w25qxx_5fadvance_5fdeinit_310',['w25qxx_advance_deinit',['../group__w25qxx__example__driver.html#gaf390bbb2c4140f49d25822d963ead722',1,'w25qxx_advance_deinit(void):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#gaf390bbb2c4140f49d25822d963ead722',1,'w25qxx_advance_deinit(void):&#160;driver_w25qxx_advance.c']]],
-  ['w25qxx_5fadvance_5ffast_5fread_311',['w25qxx_advance_fast_read',['../group__w25qxx__example__driver.html#ga7ade25a387b9d03ddecefd86fb328389',1,'w25qxx_advance_fast_read(uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#ga7ade25a387b9d03ddecefd86fb328389',1,'w25qxx_advance_fast_read(uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx_advance.c']]],
-  ['w25qxx_5fadvance_5fget_5fget_5fjedec_5fid_312',['w25qxx_advance_get_get_jedec_id',['../group__w25qxx__example__driver.html#gacc7435a39b61c44f0ce16690d5da896b',1,'w25qxx_advance_get_get_jedec_id(uint8_t *manufacturer, uint8_t device_id[2]):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#gacc7435a39b61c44f0ce16690d5da896b',1,'w25qxx_advance_get_get_jedec_id(uint8_t *manufacturer, uint8_t device_id[2]):&#160;driver_w25qxx_advance.c']]],
-  ['w25qxx_5fadvance_5fget_5fid_313',['w25qxx_advance_get_id',['../group__w25qxx__example__driver.html#ga0f49d960f8b6c6498ab293b369ffc389',1,'w25qxx_advance_get_id(uint8_t *manufacturer, uint8_t *device_id):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#ga0f49d960f8b6c6498ab293b369ffc389',1,'w25qxx_advance_get_id(uint8_t *manufacturer, uint8_t *device_id):&#160;driver_w25qxx_advance.c']]],
-  ['w25qxx_5fadvance_5fget_5fstatus1_314',['w25qxx_advance_get_status1',['../group__w25qxx__example__driver.html#ga4c1be6979b4dc878d07ec86b8624c9d2',1,'w25qxx_advance_get_status1(uint8_t *status):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#ga4c1be6979b4dc878d07ec86b8624c9d2',1,'w25qxx_advance_get_status1(uint8_t *status):&#160;driver_w25qxx_advance.c']]],
-  ['w25qxx_5fadvance_5fget_5fstatus2_315',['w25qxx_advance_get_status2',['../group__w25qxx__example__driver.html#gaf4736fff906c2f0c1dbed26b20847052',1,'w25qxx_advance_get_status2(uint8_t *status):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#gaf4736fff906c2f0c1dbed26b20847052',1,'w25qxx_advance_get_status2(uint8_t *status):&#160;driver_w25qxx_advance.c']]],
-  ['w25qxx_5fadvance_5fget_5fstatus3_316',['w25qxx_advance_get_status3',['../group__w25qxx__example__driver.html#ga31bcd3d2cc68d2fc589685b5087bd8b3',1,'w25qxx_advance_get_status3(uint8_t *status):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#ga31bcd3d2cc68d2fc589685b5087bd8b3',1,'w25qxx_advance_get_status3(uint8_t *status):&#160;driver_w25qxx_advance.c']]],
-  ['w25qxx_5fadvance_5fglobal_5fblock_5flock_317',['w25qxx_advance_global_block_lock',['../group__w25qxx__example__driver.html#ga2cbcc018dc11a870d2e0fc3a8946b1d8',1,'w25qxx_advance_global_block_lock(void):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#ga2cbcc018dc11a870d2e0fc3a8946b1d8',1,'w25qxx_advance_global_block_lock(void):&#160;driver_w25qxx_advance.c']]],
-  ['w25qxx_5fadvance_5fglobal_5fblock_5funlock_318',['w25qxx_advance_global_block_unlock',['../group__w25qxx__example__driver.html#ga67c70da103511d1cff9274e61a08ce56',1,'w25qxx_advance_global_block_unlock(void):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#ga67c70da103511d1cff9274e61a08ce56',1,'w25qxx_advance_global_block_unlock(void):&#160;driver_w25qxx_advance.c']]],
-  ['w25qxx_5fadvance_5findividual_5fblock_5flock_319',['w25qxx_advance_individual_block_lock',['../group__w25qxx__example__driver.html#gaa7af99e92b3e81f5b202575b55dc3a7c',1,'w25qxx_advance_individual_block_lock(uint32_t addr):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#gaa7af99e92b3e81f5b202575b55dc3a7c',1,'w25qxx_advance_individual_block_lock(uint32_t addr):&#160;driver_w25qxx_advance.c']]],
-  ['w25qxx_5fadvance_5findividual_5fblock_5funlock_320',['w25qxx_advance_individual_block_unlock',['../group__w25qxx__example__driver.html#ga66726fc451c7804e8fec6eb46a6a77d6',1,'w25qxx_advance_individual_block_unlock(uint32_t addr):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#ga66726fc451c7804e8fec6eb46a6a77d6',1,'w25qxx_advance_individual_block_unlock(uint32_t addr):&#160;driver_w25qxx_advance.c']]],
-  ['w25qxx_5fadvance_5finit_321',['w25qxx_advance_init',['../group__w25qxx__example__driver.html#ga413b420bc199d09ce5cafee4a4debb28',1,'w25qxx_advance_init(w25qxx_type_t type, w25qxx_interface_t interface, w25qxx_bool_t dual_quad_spi_enable):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#ga413b420bc199d09ce5cafee4a4debb28',1,'w25qxx_advance_init(w25qxx_type_t type, w25qxx_interface_t interface, w25qxx_bool_t dual_quad_spi_enable):&#160;driver_w25qxx_advance.c']]],
-  ['w25qxx_5fadvance_5fonly_5fqspi_5fset_5fread_5fparameters_322',['w25qxx_advance_only_qspi_set_read_parameters',['../group__w25qxx__example__driver.html#gace2a5b7acd9798cfcaa2b5eb2f18e1d1',1,'w25qxx_advance_only_qspi_set_read_parameters(w25qxx_qspi_read_dummy_t dummy, w25qxx_qspi_read_wrap_length_t length):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#gace2a5b7acd9798cfcaa2b5eb2f18e1d1',1,'w25qxx_advance_only_qspi_set_read_parameters(w25qxx_qspi_read_dummy_t dummy, w25qxx_qspi_read_wrap_length_t length):&#160;driver_w25qxx_advance.c']]],
-  ['w25qxx_5fadvance_5fonly_5fspi_5ffast_5fread_5fdual_5fio_323',['w25qxx_advance_only_spi_fast_read_dual_io',['../group__w25qxx__example__driver.html#ga4bbaf1a989fae25d16d07edb1e38ca4f',1,'w25qxx_advance_only_spi_fast_read_dual_io(uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#ga4bbaf1a989fae25d16d07edb1e38ca4f',1,'w25qxx_advance_only_spi_fast_read_dual_io(uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx_advance.c']]],
-  ['w25qxx_5fadvance_5fonly_5fspi_5ffast_5fread_5fdual_5foutput_324',['w25qxx_advance_only_spi_fast_read_dual_output',['../group__w25qxx__example__driver.html#ga364d891407cf323d3686d36ad6357604',1,'w25qxx_advance_only_spi_fast_read_dual_output(uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#ga364d891407cf323d3686d36ad6357604',1,'w25qxx_advance_only_spi_fast_read_dual_output(uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx_advance.c']]],
-  ['w25qxx_5fadvance_5fonly_5fspi_5ffast_5fread_5fquad_5fio_325',['w25qxx_advance_only_spi_fast_read_quad_io',['../group__w25qxx__example__driver.html#ga395add1fa33f4f70d0ba52b38842dbdb',1,'w25qxx_advance_only_spi_fast_read_quad_io(uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#ga395add1fa33f4f70d0ba52b38842dbdb',1,'w25qxx_advance_only_spi_fast_read_quad_io(uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx_advance.c']]],
-  ['w25qxx_5fadvance_5fonly_5fspi_5ffast_5fread_5fquad_5foutput_326',['w25qxx_advance_only_spi_fast_read_quad_output',['../group__w25qxx__example__driver.html#gaf5f978c432de7d6adaf41cd256724a01',1,'w25qxx_advance_only_spi_fast_read_quad_output(uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#gaf5f978c432de7d6adaf41cd256724a01',1,'w25qxx_advance_only_spi_fast_read_quad_output(uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx_advance.c']]],
-  ['w25qxx_5fadvance_5fonly_5fspi_5fget_5fmanufacturer_5fdevice_5fid_5fdual_5fio_327',['w25qxx_advance_only_spi_get_manufacturer_device_id_dual_io',['../group__w25qxx__example__driver.html#gac0d9e08a37ee37563c8dbb501608a668',1,'w25qxx_advance_only_spi_get_manufacturer_device_id_dual_io(uint8_t *manufacturer, uint8_t *device_id):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#gac0d9e08a37ee37563c8dbb501608a668',1,'w25qxx_advance_only_spi_get_manufacturer_device_id_dual_io(uint8_t *manufacturer, uint8_t *device_id):&#160;driver_w25qxx_advance.c']]],
-  ['w25qxx_5fadvance_5fonly_5fspi_5fget_5fmanufacturer_5fdevice_5fid_5fquad_5fio_328',['w25qxx_advance_only_spi_get_manufacturer_device_id_quad_io',['../group__w25qxx__example__driver.html#ga6142b5a1e8602e2990dec34015812615',1,'w25qxx_advance_only_spi_get_manufacturer_device_id_quad_io(uint8_t *manufacturer, uint8_t *device_id):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#ga6142b5a1e8602e2990dec34015812615',1,'w25qxx_advance_only_spi_get_manufacturer_device_id_quad_io(uint8_t *manufacturer, uint8_t *device_id):&#160;driver_w25qxx_advance.c']]],
-  ['w25qxx_5fadvance_5fonly_5fspi_5fget_5fsfdp_329',['w25qxx_advance_only_spi_get_sfdp',['../group__w25qxx__example__driver.html#ga9b1854e0ae52f57523bc2fa7cc0656df',1,'w25qxx_advance_only_spi_get_sfdp(uint8_t sfdp[256]):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#ga9b1854e0ae52f57523bc2fa7cc0656df',1,'w25qxx_advance_only_spi_get_sfdp(uint8_t sfdp[256]):&#160;driver_w25qxx_advance.c']]],
-  ['w25qxx_5fadvance_5fonly_5fspi_5fget_5funique_5fid_330',['w25qxx_advance_only_spi_get_unique_id',['../group__w25qxx__example__driver.html#ga374d35b73fa61d5f7464c3effdae1d57',1,'w25qxx_advance_only_spi_get_unique_id(uint8_t id[8]):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#ga374d35b73fa61d5f7464c3effdae1d57',1,'w25qxx_advance_only_spi_get_unique_id(uint8_t id[8]):&#160;driver_w25qxx_advance.c']]],
-  ['w25qxx_5fadvance_5fonly_5fspi_5foctal_5fword_5fread_5fquad_5fio_331',['w25qxx_advance_only_spi_octal_word_read_quad_io',['../group__w25qxx__example__driver.html#ga825a567c535236d7d18ffccf07df59e9',1,'w25qxx_advance_only_spi_octal_word_read_quad_io(uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#ga825a567c535236d7d18ffccf07df59e9',1,'w25qxx_advance_only_spi_octal_word_read_quad_io(uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx_advance.c']]],
-  ['w25qxx_5fadvance_5fonly_5fspi_5fpage_5fprogram_5fquad_5finput_332',['w25qxx_advance_only_spi_page_program_quad_input',['../group__w25qxx__example__driver.html#gad243655eb738e44c50e6079c983fd782',1,'w25qxx_advance_only_spi_page_program_quad_input(uint32_t addr, uint8_t *data, uint16_t len):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#gad243655eb738e44c50e6079c983fd782',1,'w25qxx_advance_only_spi_page_program_quad_input(uint32_t addr, uint8_t *data, uint16_t len):&#160;driver_w25qxx_advance.c']]],
-  ['w25qxx_5fadvance_5fonly_5fspi_5fread_333',['w25qxx_advance_only_spi_read',['../group__w25qxx__example__driver.html#gac1c7f320706dd6d6d937da75b8a4da93',1,'w25qxx_advance_only_spi_read(uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#gac1c7f320706dd6d6d937da75b8a4da93',1,'w25qxx_advance_only_spi_read(uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx_advance.c']]],
-  ['w25qxx_5fadvance_5fonly_5fspi_5fread_5fsecurity_5fregister_334',['w25qxx_advance_only_spi_read_security_register',['../group__w25qxx__example__driver.html#ga02652a58ee418b432cf77505809d7d42',1,'w25qxx_advance_only_spi_read_security_register(w25qxx_security_register_t num, uint8_t data[256]):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#ga02652a58ee418b432cf77505809d7d42',1,'w25qxx_advance_only_spi_read_security_register(w25qxx_security_register_t num, uint8_t data[256]):&#160;driver_w25qxx_advance.c']]],
-  ['w25qxx_5fadvance_5fonly_5fspi_5fset_5fburst_5fwith_5fwrap_335',['w25qxx_advance_only_spi_set_burst_with_wrap',['../group__w25qxx__example__driver.html#ga16411577fcb794f7485912f5db1bdde9',1,'w25qxx_advance_only_spi_set_burst_with_wrap(w25qxx_burst_wrap_t wrap):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#ga16411577fcb794f7485912f5db1bdde9',1,'w25qxx_advance_only_spi_set_burst_with_wrap(w25qxx_burst_wrap_t wrap):&#160;driver_w25qxx_advance.c']]],
-  ['w25qxx_5fadvance_5fonly_5fspi_5fword_5fread_5fquad_5fio_336',['w25qxx_advance_only_spi_word_read_quad_io',['../group__w25qxx__example__driver.html#gaca6b4c6ea32dd96a4ae8714e2862d67a',1,'w25qxx_advance_only_spi_word_read_quad_io(uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#gaca6b4c6ea32dd96a4ae8714e2862d67a',1,'w25qxx_advance_only_spi_word_read_quad_io(uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx_advance.c']]],
-  ['w25qxx_5fadvance_5fonly_5fspi_5fwrite_5fsecurity_5fregister_337',['w25qxx_advance_only_spi_write_security_register',['../group__w25qxx__example__driver.html#gaa6c5f97106e769ba071973cc2e782ad4',1,'w25qxx_advance_only_spi_write_security_register(w25qxx_security_register_t num, uint8_t data[256]):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#gaa6c5f97106e769ba071973cc2e782ad4',1,'w25qxx_advance_only_spi_write_security_register(w25qxx_security_register_t num, uint8_t data[256]):&#160;driver_w25qxx_advance.c']]],
-  ['w25qxx_5fadvance_5fpage_5fprogram_338',['w25qxx_advance_page_program',['../group__w25qxx__example__driver.html#ga39ff13988a3d451231cec3260c13a4cd',1,'w25qxx_advance_page_program(uint32_t addr, uint8_t *data, uint16_t len):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#ga39ff13988a3d451231cec3260c13a4cd',1,'w25qxx_advance_page_program(uint32_t addr, uint8_t *data, uint16_t len):&#160;driver_w25qxx_advance.c']]],
-  ['w25qxx_5fadvance_5fpower_5fdown_339',['w25qxx_advance_power_down',['../group__w25qxx__example__driver.html#ga5599de31797633ae75a63bcd5a8f4736',1,'w25qxx_advance_power_down(void):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#ga5599de31797633ae75a63bcd5a8f4736',1,'w25qxx_advance_power_down(void):&#160;driver_w25qxx_advance.c']]],
-  ['w25qxx_5fadvance_5fread_340',['w25qxx_advance_read',['../group__w25qxx__example__driver.html#ga013a389763200b54daaa345adf9329dc',1,'w25qxx_advance_read(uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#ga013a389763200b54daaa345adf9329dc',1,'w25qxx_advance_read(uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx_advance.c']]],
-  ['w25qxx_5fadvance_5fread_5fblock_5flock_341',['w25qxx_advance_read_block_lock',['../group__w25qxx__example__driver.html#gac1773fe914a01825ca28346205601036',1,'w25qxx_advance_read_block_lock(uint32_t addr, uint8_t *value):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#gac1773fe914a01825ca28346205601036',1,'w25qxx_advance_read_block_lock(uint32_t addr, uint8_t *value):&#160;driver_w25qxx_advance.c']]],
-  ['w25qxx_5fadvance_5freset_342',['w25qxx_advance_reset',['../group__w25qxx__example__driver.html#ga0f65053ad28443f19ed73dbc3412b5b2',1,'w25qxx_advance_reset(void):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#ga0f65053ad28443f19ed73dbc3412b5b2',1,'w25qxx_advance_reset(void):&#160;driver_w25qxx_advance.c']]],
-  ['w25qxx_5fadvance_5fsector_5ferase_5f4k_343',['w25qxx_advance_sector_erase_4k',['../group__w25qxx__example__driver.html#ga9325acc424c95624f15e11631082201d',1,'w25qxx_advance_sector_erase_4k(uint32_t addr):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#ga9325acc424c95624f15e11631082201d',1,'w25qxx_advance_sector_erase_4k(uint32_t addr):&#160;driver_w25qxx_advance.c']]],
-  ['w25qxx_5fadvance_5fset_5fstatus1_344',['w25qxx_advance_set_status1',['../group__w25qxx__example__driver.html#ga5e4938b4575c417ae22fa82079459b1a',1,'w25qxx_advance_set_status1(uint8_t status):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#ga5e4938b4575c417ae22fa82079459b1a',1,'w25qxx_advance_set_status1(uint8_t status):&#160;driver_w25qxx_advance.c']]],
-  ['w25qxx_5fadvance_5fset_5fstatus2_345',['w25qxx_advance_set_status2',['../group__w25qxx__example__driver.html#ga9bc0e696b700d66f15b3605e10d33718',1,'w25qxx_advance_set_status2(uint8_t status):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#ga9bc0e696b700d66f15b3605e10d33718',1,'w25qxx_advance_set_status2(uint8_t status):&#160;driver_w25qxx_advance.c']]],
-  ['w25qxx_5fadvance_5fset_5fstatus3_346',['w25qxx_advance_set_status3',['../group__w25qxx__example__driver.html#gab5c990ebd4874137b7d23f2b896d4601',1,'w25qxx_advance_set_status3(uint8_t status):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#gab5c990ebd4874137b7d23f2b896d4601',1,'w25qxx_advance_set_status3(uint8_t status):&#160;driver_w25qxx_advance.c']]],
-  ['w25qxx_5fadvance_5fwake_5fup_347',['w25qxx_advance_wake_up',['../group__w25qxx__example__driver.html#ga8a57e2d056d452abc14b0a08d4223251',1,'w25qxx_advance_wake_up(void):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#ga8a57e2d056d452abc14b0a08d4223251',1,'w25qxx_advance_wake_up(void):&#160;driver_w25qxx_advance.c']]],
-  ['w25qxx_5fadvance_5fwrite_348',['w25qxx_advance_write',['../group__w25qxx__example__driver.html#ga63f4e1dce2ef7c7de56461524fd22d04',1,'w25qxx_advance_write(uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#ga63f4e1dce2ef7c7de56461524fd22d04',1,'w25qxx_advance_write(uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx_advance.c']]],
-  ['w25qxx_5fbasic_5fchip_5ferase_349',['w25qxx_basic_chip_erase',['../group__w25qxx__example__driver.html#gaf78e9f136e29b826c1a2b337b8451d6d',1,'w25qxx_basic_chip_erase(void):&#160;driver_w25qxx_basic.c'],['../group__w25qxx__example__driver.html#gaf78e9f136e29b826c1a2b337b8451d6d',1,'w25qxx_basic_chip_erase(void):&#160;driver_w25qxx_basic.c']]],
-  ['w25qxx_5fbasic_5fdeinit_350',['w25qxx_basic_deinit',['../group__w25qxx__example__driver.html#gaeb167c2924a3490e9a8d11e0c57d2dc0',1,'w25qxx_basic_deinit(void):&#160;driver_w25qxx_basic.c'],['../group__w25qxx__example__driver.html#gaeb167c2924a3490e9a8d11e0c57d2dc0',1,'w25qxx_basic_deinit(void):&#160;driver_w25qxx_basic.c']]],
-  ['w25qxx_5fbasic_5fget_5fid_351',['w25qxx_basic_get_id',['../group__w25qxx__example__driver.html#gacdda3af55c024b55fc9939aa23650356',1,'w25qxx_basic_get_id(uint8_t *manufacturer, uint8_t *device_id):&#160;driver_w25qxx_basic.c'],['../group__w25qxx__example__driver.html#gacdda3af55c024b55fc9939aa23650356',1,'w25qxx_basic_get_id(uint8_t *manufacturer, uint8_t *device_id):&#160;driver_w25qxx_basic.c']]],
-  ['w25qxx_5fbasic_5finit_352',['w25qxx_basic_init',['../group__w25qxx__example__driver.html#ga1e20768311dfdf33c77b442fa874b61a',1,'w25qxx_basic_init(w25qxx_type_t type, w25qxx_interface_t interface, w25qxx_bool_t dual_quad_spi_enable):&#160;driver_w25qxx_basic.c'],['../group__w25qxx__example__driver.html#ga1e20768311dfdf33c77b442fa874b61a',1,'w25qxx_basic_init(w25qxx_type_t type, w25qxx_interface_t interface, w25qxx_bool_t dual_quad_spi_enable):&#160;driver_w25qxx_basic.c']]],
-  ['w25qxx_5fbasic_5fpower_5fdown_353',['w25qxx_basic_power_down',['../group__w25qxx__example__driver.html#ga572c9f7a0bf2e7ab43dc078121162ec3',1,'w25qxx_basic_power_down(void):&#160;driver_w25qxx_basic.c'],['../group__w25qxx__example__driver.html#ga572c9f7a0bf2e7ab43dc078121162ec3',1,'w25qxx_basic_power_down(void):&#160;driver_w25qxx_basic.c']]],
-  ['w25qxx_5fbasic_5fread_354',['w25qxx_basic_read',['../group__w25qxx__example__driver.html#ga143fa1f19a792142339f3d4e9ce078d0',1,'w25qxx_basic_read(uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx_basic.c'],['../group__w25qxx__example__driver.html#ga143fa1f19a792142339f3d4e9ce078d0',1,'w25qxx_basic_read(uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx_basic.c']]],
-  ['w25qxx_5fbasic_5fwake_5fup_355',['w25qxx_basic_wake_up',['../group__w25qxx__example__driver.html#ga02914409a9db38f35bc89d9fc4d96a17',1,'w25qxx_basic_wake_up(void):&#160;driver_w25qxx_basic.c'],['../group__w25qxx__example__driver.html#ga02914409a9db38f35bc89d9fc4d96a17',1,'w25qxx_basic_wake_up(void):&#160;driver_w25qxx_basic.c']]],
-  ['w25qxx_5fbasic_5fwrite_356',['w25qxx_basic_write',['../group__w25qxx__example__driver.html#ga5cf24fc78e1b45e845d02ec9133f46ab',1,'w25qxx_basic_write(uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx_basic.c'],['../group__w25qxx__example__driver.html#ga5cf24fc78e1b45e845d02ec9133f46ab',1,'w25qxx_basic_write(uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx_basic.c']]],
-  ['w25qxx_5fblock_5ferase_5f32k_357',['w25qxx_block_erase_32k',['../group__w25qxx__basic__driver.html#ga39c8fb382e8c3e4d57232dfa79af781c',1,'w25qxx_block_erase_32k(w25qxx_handle_t *handle, uint32_t addr):&#160;driver_w25qxx.c'],['../group__w25qxx__basic__driver.html#ga39c8fb382e8c3e4d57232dfa79af781c',1,'w25qxx_block_erase_32k(w25qxx_handle_t *handle, uint32_t addr):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5fblock_5ferase_5f64k_358',['w25qxx_block_erase_64k',['../group__w25qxx__basic__driver.html#gaf53bc5f6073482b9b74efd417ec7ac83',1,'w25qxx_block_erase_64k(w25qxx_handle_t *handle, uint32_t addr):&#160;driver_w25qxx.c'],['../group__w25qxx__basic__driver.html#gaf53bc5f6073482b9b74efd417ec7ac83',1,'w25qxx_block_erase_64k(w25qxx_handle_t *handle, uint32_t addr):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5fchip_5ferase_359',['w25qxx_chip_erase',['../group__w25qxx__basic__driver.html#ga0862833b36831f92684980b2e21f2e39',1,'w25qxx_chip_erase(w25qxx_handle_t *handle):&#160;driver_w25qxx.c'],['../group__w25qxx__basic__driver.html#ga0862833b36831f92684980b2e21f2e39',1,'w25qxx_chip_erase(w25qxx_handle_t *handle):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5fdeinit_360',['w25qxx_deinit',['../group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d',1,'w25qxx_deinit(w25qxx_handle_t *handle):&#160;driver_w25qxx.c'],['../group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d',1,'w25qxx_deinit(w25qxx_handle_t *handle):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5fdisable_5fwrite_361',['w25qxx_disable_write',['../group__w25qxx__advance__driver.html#gac16a31269277051baad6c28fe4254b4a',1,'w25qxx_disable_write(w25qxx_handle_t *handle):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#gac16a31269277051baad6c28fe4254b4a',1,'w25qxx_disable_write(w25qxx_handle_t *handle):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5fenable_5freset_362',['w25qxx_enable_reset',['../group__w25qxx__advance__driver.html#gab55b4e071e20feb58584025287949438',1,'w25qxx_enable_reset(w25qxx_handle_t *handle):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#gab55b4e071e20feb58584025287949438',1,'w25qxx_enable_reset(w25qxx_handle_t *handle):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5fenable_5fvolatile_5fsr_5fwrite_363',['w25qxx_enable_volatile_sr_write',['../group__w25qxx__advance__driver.html#ga0f8889d6a25c32e150a2ab30753d461d',1,'w25qxx_enable_volatile_sr_write(w25qxx_handle_t *handle):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#ga0f8889d6a25c32e150a2ab30753d461d',1,'w25qxx_enable_volatile_sr_write(w25qxx_handle_t *handle):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5fenable_5fwrite_364',['w25qxx_enable_write',['../group__w25qxx__advance__driver.html#gaeb269123feec054eaaf70f2ffb5797a3',1,'w25qxx_enable_write(w25qxx_handle_t *handle):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#gaeb269123feec054eaaf70f2ffb5797a3',1,'w25qxx_enable_write(w25qxx_handle_t *handle):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5fenter_5fqspi_5fmode_365',['w25qxx_enter_qspi_mode',['../group__w25qxx__advance__driver.html#gaa5ab3548707a95ded115255432224c5a',1,'w25qxx_enter_qspi_mode(w25qxx_handle_t *handle):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#gaa5ab3548707a95ded115255432224c5a',1,'w25qxx_enter_qspi_mode(w25qxx_handle_t *handle):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5ferase_5fprogram_5fresume_366',['w25qxx_erase_program_resume',['../group__w25qxx__advance__driver.html#ga05c69ac66309544eba4ff38a69f24c00',1,'w25qxx_erase_program_resume(w25qxx_handle_t *handle):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#ga05c69ac66309544eba4ff38a69f24c00',1,'w25qxx_erase_program_resume(w25qxx_handle_t *handle):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5ferase_5fprogram_5fsuspend_367',['w25qxx_erase_program_suspend',['../group__w25qxx__advance__driver.html#gac7fbabc574c250eec100be861f5918ff',1,'w25qxx_erase_program_suspend(w25qxx_handle_t *handle):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#gac7fbabc574c250eec100be861f5918ff',1,'w25qxx_erase_program_suspend(w25qxx_handle_t *handle):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5ferase_5fsecurity_5fregister_368',['w25qxx_erase_security_register',['../group__w25qxx__advance__driver.html#gaf297e2c6877c64f8fd10a555f783ddaf',1,'w25qxx_erase_security_register(w25qxx_handle_t *handle, w25qxx_security_register_t num):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#gaf297e2c6877c64f8fd10a555f783ddaf',1,'w25qxx_erase_security_register(w25qxx_handle_t *handle, w25qxx_security_register_t num):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5fexit_5fqspi_5fmode_369',['w25qxx_exit_qspi_mode',['../group__w25qxx__advance__driver.html#ga6b9f75f7426a54ffdb1f5a057f8188f4',1,'w25qxx_exit_qspi_mode(w25qxx_handle_t *handle):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#ga6b9f75f7426a54ffdb1f5a057f8188f4',1,'w25qxx_exit_qspi_mode(w25qxx_handle_t *handle):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5ffast_5fread_370',['w25qxx_fast_read',['../group__w25qxx__basic__driver.html#gac345ba10af5ad355578fa97697487123',1,'w25qxx_fast_read(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx.c'],['../group__w25qxx__basic__driver.html#gac345ba10af5ad355578fa97697487123',1,'w25qxx_fast_read(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5ffast_5fread_5fdual_5fio_371',['w25qxx_fast_read_dual_io',['../group__w25qxx__advance__driver.html#gac894f4650905cba10dd3a31284de6d5e',1,'w25qxx_fast_read_dual_io(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#gac894f4650905cba10dd3a31284de6d5e',1,'w25qxx_fast_read_dual_io(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5ffast_5fread_5fdual_5foutput_372',['w25qxx_fast_read_dual_output',['../group__w25qxx__advance__driver.html#ga7a19230ca3916816ea8fb7421483d293',1,'w25qxx_fast_read_dual_output(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#ga7a19230ca3916816ea8fb7421483d293',1,'w25qxx_fast_read_dual_output(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5ffast_5fread_5fquad_5fio_373',['w25qxx_fast_read_quad_io',['../group__w25qxx__advance__driver.html#gab97a64bd3776874518f60381d921ae41',1,'w25qxx_fast_read_quad_io(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#gab97a64bd3776874518f60381d921ae41',1,'w25qxx_fast_read_quad_io(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5ffast_5fread_5fquad_5foutput_374',['w25qxx_fast_read_quad_output',['../group__w25qxx__advance__driver.html#gaf4bfafd1f80aa0316a4b1a15183dcd50',1,'w25qxx_fast_read_quad_output(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#gaf4bfafd1f80aa0316a4b1a15183dcd50',1,'w25qxx_fast_read_quad_output(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5fget_5faddress_5fmode_375',['w25qxx_get_address_mode',['../group__w25qxx__basic__driver.html#ga3a52036a97b12fcbe2280b0901a80b90',1,'w25qxx_get_address_mode(w25qxx_handle_t *handle, w25qxx_address_mode_t *mode):&#160;driver_w25qxx.c'],['../group__w25qxx__basic__driver.html#ga3a52036a97b12fcbe2280b0901a80b90',1,'w25qxx_get_address_mode(w25qxx_handle_t *handle, w25qxx_address_mode_t *mode):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5fget_5fdual_5fquad_5fspi_376',['w25qxx_get_dual_quad_spi',['../group__w25qxx__basic__driver.html#gad4c9b8b0a2d0916c13567f9d7e494cf8',1,'w25qxx_get_dual_quad_spi(w25qxx_handle_t *handle, w25qxx_bool_t *enable):&#160;driver_w25qxx.c'],['../group__w25qxx__basic__driver.html#gad4c9b8b0a2d0916c13567f9d7e494cf8',1,'w25qxx_get_dual_quad_spi(w25qxx_handle_t *handle, w25qxx_bool_t *enable):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5fget_5finterface_377',['w25qxx_get_interface',['../group__w25qxx__basic__driver.html#ga86ef839d475f3926a0be46bbc18d4b45',1,'w25qxx_get_interface(w25qxx_handle_t *handle, w25qxx_interface_t *interface):&#160;driver_w25qxx.c'],['../group__w25qxx__basic__driver.html#ga86ef839d475f3926a0be46bbc18d4b45',1,'w25qxx_get_interface(w25qxx_handle_t *handle, w25qxx_interface_t *interface):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5fget_5fjedec_5fid_378',['w25qxx_get_jedec_id',['../group__w25qxx__advance__driver.html#ga8a93ba14a032e10a27f1495fdcf56058',1,'w25qxx_get_jedec_id(w25qxx_handle_t *handle, uint8_t *manufacturer, uint8_t device_id[2]):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#ga8a93ba14a032e10a27f1495fdcf56058',1,'w25qxx_get_jedec_id(w25qxx_handle_t *handle, uint8_t *manufacturer, uint8_t device_id[2]):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5fget_5fmanufacturer_5fdevice_5fid_379',['w25qxx_get_manufacturer_device_id',['../group__w25qxx__basic__driver.html#ga921836a777b082ff4d0f322ccfda6b22',1,'w25qxx_get_manufacturer_device_id(w25qxx_handle_t *handle, uint8_t *manufacturer, uint8_t *device_id):&#160;driver_w25qxx.c'],['../group__w25qxx__basic__driver.html#ga921836a777b082ff4d0f322ccfda6b22',1,'w25qxx_get_manufacturer_device_id(w25qxx_handle_t *handle, uint8_t *manufacturer, uint8_t *device_id):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5fget_5fmanufacturer_5fdevice_5fid_5fdual_5fio_380',['w25qxx_get_manufacturer_device_id_dual_io',['../group__w25qxx__advance__driver.html#ga1cd3aec1bdeabbaed5f049fbf83ceeb4',1,'w25qxx_get_manufacturer_device_id_dual_io(w25qxx_handle_t *handle, uint8_t *manufacturer, uint8_t *device_id):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#ga1cd3aec1bdeabbaed5f049fbf83ceeb4',1,'w25qxx_get_manufacturer_device_id_dual_io(w25qxx_handle_t *handle, uint8_t *manufacturer, uint8_t *device_id):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5fget_5fmanufacturer_5fdevice_5fid_5fquad_5fio_381',['w25qxx_get_manufacturer_device_id_quad_io',['../group__w25qxx__advance__driver.html#ga61bd3ce40b76b6862c6a53e0e37a3455',1,'w25qxx_get_manufacturer_device_id_quad_io(w25qxx_handle_t *handle, uint8_t *manufacturer, uint8_t *device_id):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#ga61bd3ce40b76b6862c6a53e0e37a3455',1,'w25qxx_get_manufacturer_device_id_quad_io(w25qxx_handle_t *handle, uint8_t *manufacturer, uint8_t *device_id):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5fget_5fsfdp_382',['w25qxx_get_sfdp',['../group__w25qxx__advance__driver.html#ga244a91b9c0c32e899ca89e1943045624',1,'w25qxx_get_sfdp(w25qxx_handle_t *handle, uint8_t sfdp[256]):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#ga244a91b9c0c32e899ca89e1943045624',1,'w25qxx_get_sfdp(w25qxx_handle_t *handle, uint8_t sfdp[256]):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5fget_5fstatus1_383',['w25qxx_get_status1',['../group__w25qxx__advance__driver.html#gaa77d2b00b4fb9cf586f77ace827ea7c6',1,'w25qxx_get_status1(w25qxx_handle_t *handle, uint8_t *status):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#gaa77d2b00b4fb9cf586f77ace827ea7c6',1,'w25qxx_get_status1(w25qxx_handle_t *handle, uint8_t *status):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5fget_5fstatus2_384',['w25qxx_get_status2',['../group__w25qxx__advance__driver.html#gaa21237ecbd5951b8017799066e7db5d9',1,'w25qxx_get_status2(w25qxx_handle_t *handle, uint8_t *status):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#gaa21237ecbd5951b8017799066e7db5d9',1,'w25qxx_get_status2(w25qxx_handle_t *handle, uint8_t *status):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5fget_5fstatus3_385',['w25qxx_get_status3',['../group__w25qxx__advance__driver.html#ga99cf6a325a00921d4531004f0c1d75b1',1,'w25qxx_get_status3(w25qxx_handle_t *handle, uint8_t *status):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#ga99cf6a325a00921d4531004f0c1d75b1',1,'w25qxx_get_status3(w25qxx_handle_t *handle, uint8_t *status):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5fget_5ftype_386',['w25qxx_get_type',['../group__w25qxx__basic__driver.html#ga685379998dad173b6d9c0b0da270685c',1,'w25qxx_get_type(w25qxx_handle_t *handle, w25qxx_type_t *type):&#160;driver_w25qxx.c'],['../group__w25qxx__basic__driver.html#ga685379998dad173b6d9c0b0da270685c',1,'w25qxx_get_type(w25qxx_handle_t *handle, w25qxx_type_t *type):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5fget_5funique_5fid_387',['w25qxx_get_unique_id',['../group__w25qxx__advance__driver.html#ga11af244389478de68a6777076ee82d69',1,'w25qxx_get_unique_id(w25qxx_handle_t *handle, uint8_t id[8]):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#ga11af244389478de68a6777076ee82d69',1,'w25qxx_get_unique_id(w25qxx_handle_t *handle, uint8_t id[8]):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5fglobal_5fblock_5flock_388',['w25qxx_global_block_lock',['../group__w25qxx__advance__driver.html#gab5579bc42bc07a7657848140888a817c',1,'w25qxx_global_block_lock(w25qxx_handle_t *handle):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#gab5579bc42bc07a7657848140888a817c',1,'w25qxx_global_block_lock(w25qxx_handle_t *handle):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5fglobal_5fblock_5funlock_389',['w25qxx_global_block_unlock',['../group__w25qxx__advance__driver.html#ga6d62f7d14945cfde7cde7a0e9a4e3afb',1,'w25qxx_global_block_unlock(w25qxx_handle_t *handle):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#ga6d62f7d14945cfde7cde7a0e9a4e3afb',1,'w25qxx_global_block_unlock(w25qxx_handle_t *handle):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5findividual_5fblock_5flock_390',['w25qxx_individual_block_lock',['../group__w25qxx__advance__driver.html#ga4f00c2c169cb7c3084841c6cd795e76b',1,'w25qxx_individual_block_lock(w25qxx_handle_t *handle, uint32_t addr):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#ga4f00c2c169cb7c3084841c6cd795e76b',1,'w25qxx_individual_block_lock(w25qxx_handle_t *handle, uint32_t addr):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5findividual_5fblock_5funlock_391',['w25qxx_individual_block_unlock',['../group__w25qxx__advance__driver.html#ga7f88cedf7619071b3235ba094915b2a7',1,'w25qxx_individual_block_unlock(w25qxx_handle_t *handle, uint32_t addr):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#ga7f88cedf7619071b3235ba094915b2a7',1,'w25qxx_individual_block_unlock(w25qxx_handle_t *handle, uint32_t addr):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5finfo_392',['w25qxx_info',['../group__w25qxx__basic__driver.html#ga996e2d3009432e7f8c1a5175c4438a57',1,'w25qxx_info(w25qxx_info_t *info):&#160;driver_w25qxx.c'],['../group__w25qxx__basic__driver.html#ga996e2d3009432e7f8c1a5175c4438a57',1,'w25qxx_info(w25qxx_info_t *info):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5finit_393',['w25qxx_init',['../group__w25qxx__basic__driver.html#ga8e7a163b3d255b8c7fc035d0d60f2491',1,'w25qxx_init(w25qxx_handle_t *handle):&#160;driver_w25qxx.c'],['../group__w25qxx__basic__driver.html#ga8e7a163b3d255b8c7fc035d0d60f2491',1,'w25qxx_init(w25qxx_handle_t *handle):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5finterface_5fdebug_5fprint_394',['w25qxx_interface_debug_print',['../group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e',1,'w25qxx_interface_debug_print(const char *const fmt,...):&#160;driver_w25qxx_interface_template.c'],['../group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e',1,'w25qxx_interface_debug_print(const char *const fmt,...):&#160;driver_w25qxx_interface_template.c']]],
-  ['w25qxx_5finterface_5fdelay_5fms_395',['w25qxx_interface_delay_ms',['../group__w25qxx__interface__driver.html#ga964fa232abf98737cb98458eebfff82c',1,'w25qxx_interface_delay_ms(uint32_t ms):&#160;driver_w25qxx_interface_template.c'],['../group__w25qxx__interface__driver.html#ga964fa232abf98737cb98458eebfff82c',1,'w25qxx_interface_delay_ms(uint32_t ms):&#160;driver_w25qxx_interface_template.c']]],
-  ['w25qxx_5finterface_5fdelay_5fus_396',['w25qxx_interface_delay_us',['../group__w25qxx__interface__driver.html#ga38e79039b913154c9dd1036ff52bb420',1,'w25qxx_interface_delay_us(uint32_t us):&#160;driver_w25qxx_interface_template.c'],['../group__w25qxx__interface__driver.html#ga38e79039b913154c9dd1036ff52bb420',1,'w25qxx_interface_delay_us(uint32_t us):&#160;driver_w25qxx_interface_template.c']]],
-  ['w25qxx_5finterface_5fspi_5fqspi_5fdeinit_397',['w25qxx_interface_spi_qspi_deinit',['../group__w25qxx__interface__driver.html#ga091f3607fcdd47f9e5f94cf1397bd46a',1,'w25qxx_interface_spi_qspi_deinit(void):&#160;driver_w25qxx_interface_template.c'],['../group__w25qxx__interface__driver.html#ga091f3607fcdd47f9e5f94cf1397bd46a',1,'w25qxx_interface_spi_qspi_deinit(void):&#160;driver_w25qxx_interface_template.c']]],
-  ['w25qxx_5finterface_5fspi_5fqspi_5finit_398',['w25qxx_interface_spi_qspi_init',['../group__w25qxx__interface__driver.html#ga2bdc17a556f1c801a38656331f3bb7b6',1,'w25qxx_interface_spi_qspi_init(void):&#160;driver_w25qxx_interface_template.c'],['../group__w25qxx__interface__driver.html#ga2bdc17a556f1c801a38656331f3bb7b6',1,'w25qxx_interface_spi_qspi_init(void):&#160;driver_w25qxx_interface_template.c']]],
-  ['w25qxx_5finterface_5fspi_5fqspi_5fwrite_5fread_399',['w25qxx_interface_spi_qspi_write_read',['../group__w25qxx__interface__driver.html#ga3d76ea1f431978f6b55edfd0628c94cd',1,'w25qxx_interface_spi_qspi_write_read(uint8_t instruction, uint8_t instruction_line, uint32_t address, uint8_t address_line, uint8_t address_len, uint32_t alternate, uint8_t alternate_line, uint8_t alternate_len, uint8_t dummy, uint8_t *in_buf, uint32_t in_len, uint8_t *out_buf, uint32_t out_len, uint8_t data_line):&#160;driver_w25qxx_interface_template.c'],['../group__w25qxx__interface__driver.html#ga3d76ea1f431978f6b55edfd0628c94cd',1,'w25qxx_interface_spi_qspi_write_read(uint8_t instruction, uint8_t instruction_line, uint32_t address, uint8_t address_line, uint8_t address_len, uint32_t alternate, uint8_t alternate_line, uint8_t alternate_len, uint8_t dummy, uint8_t *in_buf, uint32_t in_len, uint8_t *out_buf, uint32_t out_len, uint8_t data_line):&#160;driver_w25qxx_interface_template.c']]],
-  ['w25qxx_5foctal_5fword_5fread_5fquad_5fio_400',['w25qxx_octal_word_read_quad_io',['../group__w25qxx__advance__driver.html#ga88a62ec42e86db821ff3f0d3ab541dbb',1,'w25qxx_octal_word_read_quad_io(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#ga88a62ec42e86db821ff3f0d3ab541dbb',1,'w25qxx_octal_word_read_quad_io(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5fonly_5fspi_5fread_401',['w25qxx_only_spi_read',['../group__w25qxx__basic__driver.html#ga1e9ebf198137d23558dbf6470213c472',1,'w25qxx_only_spi_read(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx.c'],['../group__w25qxx__basic__driver.html#ga1e9ebf198137d23558dbf6470213c472',1,'w25qxx_only_spi_read(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5fpage_5fprogram_402',['w25qxx_page_program',['../group__w25qxx__basic__driver.html#ga6280e7e4ab26306436e2c210617a28b3',1,'w25qxx_page_program(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint16_t len):&#160;driver_w25qxx.c'],['../group__w25qxx__basic__driver.html#ga6280e7e4ab26306436e2c210617a28b3',1,'w25qxx_page_program(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint16_t len):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5fpage_5fprogram_5fquad_5finput_403',['w25qxx_page_program_quad_input',['../group__w25qxx__advance__driver.html#ga1f80bbbaaa852eecfffb87737889363d',1,'w25qxx_page_program_quad_input(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint16_t len):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#ga1f80bbbaaa852eecfffb87737889363d',1,'w25qxx_page_program_quad_input(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint16_t len):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5fpower_5fdown_404',['w25qxx_power_down',['../group__w25qxx__basic__driver.html#gae4effce67e36120325e3c7b245b90142',1,'w25qxx_power_down(w25qxx_handle_t *handle):&#160;driver_w25qxx.c'],['../group__w25qxx__basic__driver.html#gae4effce67e36120325e3c7b245b90142',1,'w25qxx_power_down(w25qxx_handle_t *handle):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5fprogram_5fsecurity_5fregister_405',['w25qxx_program_security_register',['../group__w25qxx__advance__driver.html#ga4e9c059ff78866e478e835cb27a92899',1,'w25qxx_program_security_register(w25qxx_handle_t *handle, w25qxx_security_register_t num, uint8_t data[256]):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#ga4e9c059ff78866e478e835cb27a92899',1,'w25qxx_program_security_register(w25qxx_handle_t *handle, w25qxx_security_register_t num, uint8_t data[256]):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5fread_406',['w25qxx_read',['../group__w25qxx__basic__driver.html#gae7479fc9ce911a52e3c5b6f1a615b879',1,'w25qxx_read(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx.c'],['../group__w25qxx__basic__driver.html#gae7479fc9ce911a52e3c5b6f1a615b879',1,'w25qxx_read(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5fread_5fblock_5flock_407',['w25qxx_read_block_lock',['../group__w25qxx__advance__driver.html#ga59e655ca78a175037ca810bbc8539a96',1,'w25qxx_read_block_lock(w25qxx_handle_t *handle, uint32_t addr, uint8_t *value):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#ga59e655ca78a175037ca810bbc8539a96',1,'w25qxx_read_block_lock(w25qxx_handle_t *handle, uint32_t addr, uint8_t *value):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5fread_5fsecurity_5fregister_408',['w25qxx_read_security_register',['../group__w25qxx__advance__driver.html#ga4c65debc4947bd9a61e0073105164b9c',1,'w25qxx_read_security_register(w25qxx_handle_t *handle, w25qxx_security_register_t num, uint8_t data[256]):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#ga4c65debc4947bd9a61e0073105164b9c',1,'w25qxx_read_security_register(w25qxx_handle_t *handle, w25qxx_security_register_t num, uint8_t data[256]):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5fread_5ftest_409',['w25qxx_read_test',['../group__w25qxx__test__driver.html#ga4ce42ca34d33cd64cb823040780999af',1,'w25qxx_read_test(w25qxx_type_t type, w25qxx_interface_t interface, w25qxx_bool_t dual_quad_spi_enable):&#160;driver_w25qxx_read_test.c'],['../group__w25qxx__test__driver.html#ga4ce42ca34d33cd64cb823040780999af',1,'w25qxx_read_test(w25qxx_type_t type, w25qxx_interface_t interface, w25qxx_bool_t dual_quad_spi_enable):&#160;driver_w25qxx_read_test.c']]],
-  ['w25qxx_5fregister_5ftest_410',['w25qxx_register_test',['../group__w25qxx__test__driver.html#ga05d07036254d102ebea0d0b1e83862c8',1,'w25qxx_register_test(w25qxx_type_t type, w25qxx_interface_t interface, w25qxx_bool_t dual_quad_spi_enable):&#160;driver_w25qxx_register_test.c'],['../group__w25qxx__test__driver.html#ga05d07036254d102ebea0d0b1e83862c8',1,'w25qxx_register_test(w25qxx_type_t type, w25qxx_interface_t interface, w25qxx_bool_t dual_quad_spi_enable):&#160;driver_w25qxx_register_test.c']]],
-  ['w25qxx_5frelease_5fpower_5fdown_411',['w25qxx_release_power_down',['../group__w25qxx__basic__driver.html#ga09c9b52877516a2ee4c080dc249e7331',1,'w25qxx_release_power_down(w25qxx_handle_t *handle):&#160;driver_w25qxx.c'],['../group__w25qxx__basic__driver.html#ga09c9b52877516a2ee4c080dc249e7331',1,'w25qxx_release_power_down(w25qxx_handle_t *handle):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5freset_5fdevice_412',['w25qxx_reset_device',['../group__w25qxx__advance__driver.html#ga2abebfe2a8d9377eb88448ffca73f222',1,'w25qxx_reset_device(w25qxx_handle_t *handle):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#ga2abebfe2a8d9377eb88448ffca73f222',1,'w25qxx_reset_device(w25qxx_handle_t *handle):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5fsector_5ferase_5f4k_413',['w25qxx_sector_erase_4k',['../group__w25qxx__basic__driver.html#ga9a03c51b4c84655350c15fbfce0a6b40',1,'w25qxx_sector_erase_4k(w25qxx_handle_t *handle, uint32_t addr):&#160;driver_w25qxx.c'],['../group__w25qxx__basic__driver.html#ga9a03c51b4c84655350c15fbfce0a6b40',1,'w25qxx_sector_erase_4k(w25qxx_handle_t *handle, uint32_t addr):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5fset_5faddress_5fmode_414',['w25qxx_set_address_mode',['../group__w25qxx__basic__driver.html#gad0e125eff304ce66fb3956d2c8c80656',1,'w25qxx_set_address_mode(w25qxx_handle_t *handle, w25qxx_address_mode_t mode):&#160;driver_w25qxx.c'],['../group__w25qxx__basic__driver.html#gad0e125eff304ce66fb3956d2c8c80656',1,'w25qxx_set_address_mode(w25qxx_handle_t *handle, w25qxx_address_mode_t mode):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5fset_5fburst_5fwith_5fwrap_415',['w25qxx_set_burst_with_wrap',['../group__w25qxx__advance__driver.html#gac19c1d0f3fd48968ea2a93c1dbe3d75d',1,'w25qxx_set_burst_with_wrap(w25qxx_handle_t *handle, w25qxx_burst_wrap_t wrap):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#gac19c1d0f3fd48968ea2a93c1dbe3d75d',1,'w25qxx_set_burst_with_wrap(w25qxx_handle_t *handle, w25qxx_burst_wrap_t wrap):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5fset_5fdual_5fquad_5fspi_416',['w25qxx_set_dual_quad_spi',['../group__w25qxx__basic__driver.html#ga665139209b0abc386474a78d89cce6f2',1,'w25qxx_set_dual_quad_spi(w25qxx_handle_t *handle, w25qxx_bool_t enable):&#160;driver_w25qxx.c'],['../group__w25qxx__basic__driver.html#ga665139209b0abc386474a78d89cce6f2',1,'w25qxx_set_dual_quad_spi(w25qxx_handle_t *handle, w25qxx_bool_t enable):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5fset_5finterface_417',['w25qxx_set_interface',['../group__w25qxx__basic__driver.html#ga50a62003d566402d46ada2f272c41eb5',1,'w25qxx_set_interface(w25qxx_handle_t *handle, w25qxx_interface_t interface):&#160;driver_w25qxx.c'],['../group__w25qxx__basic__driver.html#ga50a62003d566402d46ada2f272c41eb5',1,'w25qxx_set_interface(w25qxx_handle_t *handle, w25qxx_interface_t interface):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5fset_5fread_5fparameters_418',['w25qxx_set_read_parameters',['../group__w25qxx__advance__driver.html#ga9ad10781d888b32b43b9eba45d049624',1,'w25qxx_set_read_parameters(w25qxx_handle_t *handle, w25qxx_qspi_read_dummy_t dummy, w25qxx_qspi_read_wrap_length_t length):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#ga9ad10781d888b32b43b9eba45d049624',1,'w25qxx_set_read_parameters(w25qxx_handle_t *handle, w25qxx_qspi_read_dummy_t dummy, w25qxx_qspi_read_wrap_length_t length):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5fset_5fstatus1_419',['w25qxx_set_status1',['../group__w25qxx__advance__driver.html#ga246e0bb07c8bbb39731f17906779c012',1,'w25qxx_set_status1(w25qxx_handle_t *handle, uint8_t status):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#ga246e0bb07c8bbb39731f17906779c012',1,'w25qxx_set_status1(w25qxx_handle_t *handle, uint8_t status):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5fset_5fstatus2_420',['w25qxx_set_status2',['../group__w25qxx__advance__driver.html#gaab5f28e8930d50dbc2178e39bc9fa456',1,'w25qxx_set_status2(w25qxx_handle_t *handle, uint8_t status):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#gaab5f28e8930d50dbc2178e39bc9fa456',1,'w25qxx_set_status2(w25qxx_handle_t *handle, uint8_t status):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5fset_5fstatus3_421',['w25qxx_set_status3',['../group__w25qxx__advance__driver.html#gada897a6c6d6acb99f4dd4ff9b65ad8ee',1,'w25qxx_set_status3(w25qxx_handle_t *handle, uint8_t status):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#gada897a6c6d6acb99f4dd4ff9b65ad8ee',1,'w25qxx_set_status3(w25qxx_handle_t *handle, uint8_t status):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5fset_5ftype_422',['w25qxx_set_type',['../group__w25qxx__basic__driver.html#gaa57189cd4170b73f8b1300ca15e27de6',1,'w25qxx_set_type(w25qxx_handle_t *handle, w25qxx_type_t type):&#160;driver_w25qxx.c'],['../group__w25qxx__basic__driver.html#gaa57189cd4170b73f8b1300ca15e27de6',1,'w25qxx_set_type(w25qxx_handle_t *handle, w25qxx_type_t type):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5fword_5fread_5fquad_5fio_423',['w25qxx_word_read_quad_io',['../group__w25qxx__advance__driver.html#gad97d7e410dd77c49334097a0fd332660',1,'w25qxx_word_read_quad_io(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#gad97d7e410dd77c49334097a0fd332660',1,'w25qxx_word_read_quad_io(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5fwrite_424',['w25qxx_write',['../group__w25qxx__basic__driver.html#gaaee8264d840e51460821cb6e609338ee',1,'w25qxx_write(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx.c'],['../group__w25qxx__basic__driver.html#gaaee8264d840e51460821cb6e609338ee',1,'w25qxx_write(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx.c']]],
-  ['w25qxx_5fwrite_5fread_5freg_425',['w25qxx_write_read_reg',['../group__w25qxx__extern__driver.html#ga9623a3bec148b148498480518a66cb2b',1,'w25qxx_write_read_reg(w25qxx_handle_t *handle, uint8_t instruction, uint8_t instruction_line, uint32_t address, uint8_t address_line, uint8_t address_len, uint32_t alternate, uint8_t alternate_line, uint8_t alternate_len, uint8_t dummy, uint8_t *in_buf, uint32_t in_len, uint8_t *out_buf, uint32_t out_len, uint8_t data_line):&#160;driver_w25qxx.c'],['../group__w25qxx__extern__driver.html#ga9623a3bec148b148498480518a66cb2b',1,'w25qxx_write_read_reg(w25qxx_handle_t *handle, uint8_t instruction, uint8_t instruction_line, uint32_t address, uint8_t address_line, uint8_t address_len, uint32_t alternate, uint8_t alternate_line, uint8_t alternate_len, uint8_t dummy, uint8_t *in_buf, uint32_t in_len, uint8_t *out_buf, uint32_t out_len, uint8_t data_line):&#160;driver_w25qxx.c']]]
+  ['w25qxx_5fadvance_5fblock_5ferase_5f32k_0',['w25qxx_advance_block_erase_32k',['../group__w25qxx__example__driver.html#gaee04edb9e97785e423dffe14a1cad780',1,'w25qxx_advance_block_erase_32k(uint32_t addr):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#gaee04edb9e97785e423dffe14a1cad780',1,'w25qxx_advance_block_erase_32k(uint32_t addr):&#160;driver_w25qxx_advance.c']]],
+  ['w25qxx_5fadvance_5fblock_5ferase_5f64k_1',['w25qxx_advance_block_erase_64k',['../group__w25qxx__example__driver.html#gae7cba4e0b22a1043fe304e46148fa13c',1,'w25qxx_advance_block_erase_64k(uint32_t addr):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#gae7cba4e0b22a1043fe304e46148fa13c',1,'w25qxx_advance_block_erase_64k(uint32_t addr):&#160;driver_w25qxx_advance.c']]],
+  ['w25qxx_5fadvance_5fchip_5ferase_2',['w25qxx_advance_chip_erase',['../group__w25qxx__example__driver.html#ga15cb243f227ef8d897ef3208b622bded',1,'w25qxx_advance_chip_erase(void):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#ga15cb243f227ef8d897ef3208b622bded',1,'w25qxx_advance_chip_erase(void):&#160;driver_w25qxx_advance.c']]],
+  ['w25qxx_5fadvance_5fdeinit_3',['w25qxx_advance_deinit',['../group__w25qxx__example__driver.html#gaf390bbb2c4140f49d25822d963ead722',1,'w25qxx_advance_deinit(void):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#gaf390bbb2c4140f49d25822d963ead722',1,'w25qxx_advance_deinit(void):&#160;driver_w25qxx_advance.c']]],
+  ['w25qxx_5fadvance_5ffast_5fread_4',['w25qxx_advance_fast_read',['../group__w25qxx__example__driver.html#ga7ade25a387b9d03ddecefd86fb328389',1,'w25qxx_advance_fast_read(uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#ga7ade25a387b9d03ddecefd86fb328389',1,'w25qxx_advance_fast_read(uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx_advance.c']]],
+  ['w25qxx_5fadvance_5fget_5fget_5fjedec_5fid_5',['w25qxx_advance_get_get_jedec_id',['../group__w25qxx__example__driver.html#gacc7435a39b61c44f0ce16690d5da896b',1,'w25qxx_advance_get_get_jedec_id(uint8_t *manufacturer, uint8_t device_id[2]):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#gacc7435a39b61c44f0ce16690d5da896b',1,'w25qxx_advance_get_get_jedec_id(uint8_t *manufacturer, uint8_t device_id[2]):&#160;driver_w25qxx_advance.c']]],
+  ['w25qxx_5fadvance_5fget_5fid_6',['w25qxx_advance_get_id',['../group__w25qxx__example__driver.html#ga0f49d960f8b6c6498ab293b369ffc389',1,'w25qxx_advance_get_id(uint8_t *manufacturer, uint8_t *device_id):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#ga0f49d960f8b6c6498ab293b369ffc389',1,'w25qxx_advance_get_id(uint8_t *manufacturer, uint8_t *device_id):&#160;driver_w25qxx_advance.c']]],
+  ['w25qxx_5fadvance_5fget_5fstatus1_7',['w25qxx_advance_get_status1',['../group__w25qxx__example__driver.html#ga4c1be6979b4dc878d07ec86b8624c9d2',1,'w25qxx_advance_get_status1(uint8_t *status):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#ga4c1be6979b4dc878d07ec86b8624c9d2',1,'w25qxx_advance_get_status1(uint8_t *status):&#160;driver_w25qxx_advance.c']]],
+  ['w25qxx_5fadvance_5fget_5fstatus2_8',['w25qxx_advance_get_status2',['../group__w25qxx__example__driver.html#gaf4736fff906c2f0c1dbed26b20847052',1,'w25qxx_advance_get_status2(uint8_t *status):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#gaf4736fff906c2f0c1dbed26b20847052',1,'w25qxx_advance_get_status2(uint8_t *status):&#160;driver_w25qxx_advance.c']]],
+  ['w25qxx_5fadvance_5fget_5fstatus3_9',['w25qxx_advance_get_status3',['../group__w25qxx__example__driver.html#ga31bcd3d2cc68d2fc589685b5087bd8b3',1,'w25qxx_advance_get_status3(uint8_t *status):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#ga31bcd3d2cc68d2fc589685b5087bd8b3',1,'w25qxx_advance_get_status3(uint8_t *status):&#160;driver_w25qxx_advance.c']]],
+  ['w25qxx_5fadvance_5fglobal_5fblock_5flock_10',['w25qxx_advance_global_block_lock',['../group__w25qxx__example__driver.html#ga2cbcc018dc11a870d2e0fc3a8946b1d8',1,'w25qxx_advance_global_block_lock(void):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#ga2cbcc018dc11a870d2e0fc3a8946b1d8',1,'w25qxx_advance_global_block_lock(void):&#160;driver_w25qxx_advance.c']]],
+  ['w25qxx_5fadvance_5fglobal_5fblock_5funlock_11',['w25qxx_advance_global_block_unlock',['../group__w25qxx__example__driver.html#ga67c70da103511d1cff9274e61a08ce56',1,'w25qxx_advance_global_block_unlock(void):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#ga67c70da103511d1cff9274e61a08ce56',1,'w25qxx_advance_global_block_unlock(void):&#160;driver_w25qxx_advance.c']]],
+  ['w25qxx_5fadvance_5findividual_5fblock_5flock_12',['w25qxx_advance_individual_block_lock',['../group__w25qxx__example__driver.html#gaa7af99e92b3e81f5b202575b55dc3a7c',1,'w25qxx_advance_individual_block_lock(uint32_t addr):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#gaa7af99e92b3e81f5b202575b55dc3a7c',1,'w25qxx_advance_individual_block_lock(uint32_t addr):&#160;driver_w25qxx_advance.c']]],
+  ['w25qxx_5fadvance_5findividual_5fblock_5funlock_13',['w25qxx_advance_individual_block_unlock',['../group__w25qxx__example__driver.html#ga66726fc451c7804e8fec6eb46a6a77d6',1,'w25qxx_advance_individual_block_unlock(uint32_t addr):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#ga66726fc451c7804e8fec6eb46a6a77d6',1,'w25qxx_advance_individual_block_unlock(uint32_t addr):&#160;driver_w25qxx_advance.c']]],
+  ['w25qxx_5fadvance_5finit_14',['w25qxx_advance_init',['../group__w25qxx__example__driver.html#ga413b420bc199d09ce5cafee4a4debb28',1,'w25qxx_advance_init(w25qxx_type_t type, w25qxx_interface_t interface, w25qxx_bool_t dual_quad_spi_enable):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#ga413b420bc199d09ce5cafee4a4debb28',1,'w25qxx_advance_init(w25qxx_type_t type, w25qxx_interface_t interface, w25qxx_bool_t dual_quad_spi_enable):&#160;driver_w25qxx_advance.c']]],
+  ['w25qxx_5fadvance_5fonly_5fqspi_5fset_5fread_5fparameters_15',['w25qxx_advance_only_qspi_set_read_parameters',['../group__w25qxx__example__driver.html#gace2a5b7acd9798cfcaa2b5eb2f18e1d1',1,'w25qxx_advance_only_qspi_set_read_parameters(w25qxx_qspi_read_dummy_t dummy, w25qxx_qspi_read_wrap_length_t length):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#gace2a5b7acd9798cfcaa2b5eb2f18e1d1',1,'w25qxx_advance_only_qspi_set_read_parameters(w25qxx_qspi_read_dummy_t dummy, w25qxx_qspi_read_wrap_length_t length):&#160;driver_w25qxx_advance.c']]],
+  ['w25qxx_5fadvance_5fonly_5fspi_5ffast_5fread_5fdual_5fio_16',['w25qxx_advance_only_spi_fast_read_dual_io',['../group__w25qxx__example__driver.html#ga4bbaf1a989fae25d16d07edb1e38ca4f',1,'w25qxx_advance_only_spi_fast_read_dual_io(uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#ga4bbaf1a989fae25d16d07edb1e38ca4f',1,'w25qxx_advance_only_spi_fast_read_dual_io(uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx_advance.c']]],
+  ['w25qxx_5fadvance_5fonly_5fspi_5ffast_5fread_5fdual_5foutput_17',['w25qxx_advance_only_spi_fast_read_dual_output',['../group__w25qxx__example__driver.html#ga364d891407cf323d3686d36ad6357604',1,'w25qxx_advance_only_spi_fast_read_dual_output(uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#ga364d891407cf323d3686d36ad6357604',1,'w25qxx_advance_only_spi_fast_read_dual_output(uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx_advance.c']]],
+  ['w25qxx_5fadvance_5fonly_5fspi_5ffast_5fread_5fquad_5fio_18',['w25qxx_advance_only_spi_fast_read_quad_io',['../group__w25qxx__example__driver.html#ga395add1fa33f4f70d0ba52b38842dbdb',1,'w25qxx_advance_only_spi_fast_read_quad_io(uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#ga395add1fa33f4f70d0ba52b38842dbdb',1,'w25qxx_advance_only_spi_fast_read_quad_io(uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx_advance.c']]],
+  ['w25qxx_5fadvance_5fonly_5fspi_5ffast_5fread_5fquad_5foutput_19',['w25qxx_advance_only_spi_fast_read_quad_output',['../group__w25qxx__example__driver.html#gaf5f978c432de7d6adaf41cd256724a01',1,'w25qxx_advance_only_spi_fast_read_quad_output(uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#gaf5f978c432de7d6adaf41cd256724a01',1,'w25qxx_advance_only_spi_fast_read_quad_output(uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx_advance.c']]],
+  ['w25qxx_5fadvance_5fonly_5fspi_5fget_5fmanufacturer_5fdevice_5fid_5fdual_5fio_20',['w25qxx_advance_only_spi_get_manufacturer_device_id_dual_io',['../group__w25qxx__example__driver.html#gac0d9e08a37ee37563c8dbb501608a668',1,'w25qxx_advance_only_spi_get_manufacturer_device_id_dual_io(uint8_t *manufacturer, uint8_t *device_id):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#gac0d9e08a37ee37563c8dbb501608a668',1,'w25qxx_advance_only_spi_get_manufacturer_device_id_dual_io(uint8_t *manufacturer, uint8_t *device_id):&#160;driver_w25qxx_advance.c']]],
+  ['w25qxx_5fadvance_5fonly_5fspi_5fget_5fmanufacturer_5fdevice_5fid_5fquad_5fio_21',['w25qxx_advance_only_spi_get_manufacturer_device_id_quad_io',['../group__w25qxx__example__driver.html#ga6142b5a1e8602e2990dec34015812615',1,'w25qxx_advance_only_spi_get_manufacturer_device_id_quad_io(uint8_t *manufacturer, uint8_t *device_id):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#ga6142b5a1e8602e2990dec34015812615',1,'w25qxx_advance_only_spi_get_manufacturer_device_id_quad_io(uint8_t *manufacturer, uint8_t *device_id):&#160;driver_w25qxx_advance.c']]],
+  ['w25qxx_5fadvance_5fonly_5fspi_5fget_5fsfdp_22',['w25qxx_advance_only_spi_get_sfdp',['../group__w25qxx__example__driver.html#ga9b1854e0ae52f57523bc2fa7cc0656df',1,'w25qxx_advance_only_spi_get_sfdp(uint8_t sfdp[256]):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#ga9b1854e0ae52f57523bc2fa7cc0656df',1,'w25qxx_advance_only_spi_get_sfdp(uint8_t sfdp[256]):&#160;driver_w25qxx_advance.c']]],
+  ['w25qxx_5fadvance_5fonly_5fspi_5fget_5funique_5fid_23',['w25qxx_advance_only_spi_get_unique_id',['../group__w25qxx__example__driver.html#ga374d35b73fa61d5f7464c3effdae1d57',1,'w25qxx_advance_only_spi_get_unique_id(uint8_t id[8]):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#ga374d35b73fa61d5f7464c3effdae1d57',1,'w25qxx_advance_only_spi_get_unique_id(uint8_t id[8]):&#160;driver_w25qxx_advance.c']]],
+  ['w25qxx_5fadvance_5fonly_5fspi_5foctal_5fword_5fread_5fquad_5fio_24',['w25qxx_advance_only_spi_octal_word_read_quad_io',['../group__w25qxx__example__driver.html#ga825a567c535236d7d18ffccf07df59e9',1,'w25qxx_advance_only_spi_octal_word_read_quad_io(uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#ga825a567c535236d7d18ffccf07df59e9',1,'w25qxx_advance_only_spi_octal_word_read_quad_io(uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx_advance.c']]],
+  ['w25qxx_5fadvance_5fonly_5fspi_5fpage_5fprogram_5fquad_5finput_25',['w25qxx_advance_only_spi_page_program_quad_input',['../group__w25qxx__example__driver.html#gad243655eb738e44c50e6079c983fd782',1,'w25qxx_advance_only_spi_page_program_quad_input(uint32_t addr, uint8_t *data, uint16_t len):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#gad243655eb738e44c50e6079c983fd782',1,'w25qxx_advance_only_spi_page_program_quad_input(uint32_t addr, uint8_t *data, uint16_t len):&#160;driver_w25qxx_advance.c']]],
+  ['w25qxx_5fadvance_5fonly_5fspi_5fread_26',['w25qxx_advance_only_spi_read',['../group__w25qxx__example__driver.html#gac1c7f320706dd6d6d937da75b8a4da93',1,'w25qxx_advance_only_spi_read(uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#gac1c7f320706dd6d6d937da75b8a4da93',1,'w25qxx_advance_only_spi_read(uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx_advance.c']]],
+  ['w25qxx_5fadvance_5fonly_5fspi_5fread_5fsecurity_5fregister_27',['w25qxx_advance_only_spi_read_security_register',['../group__w25qxx__example__driver.html#ga02652a58ee418b432cf77505809d7d42',1,'w25qxx_advance_only_spi_read_security_register(w25qxx_security_register_t num, uint8_t data[256]):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#ga02652a58ee418b432cf77505809d7d42',1,'w25qxx_advance_only_spi_read_security_register(w25qxx_security_register_t num, uint8_t data[256]):&#160;driver_w25qxx_advance.c']]],
+  ['w25qxx_5fadvance_5fonly_5fspi_5fset_5fburst_5fwith_5fwrap_28',['w25qxx_advance_only_spi_set_burst_with_wrap',['../group__w25qxx__example__driver.html#ga16411577fcb794f7485912f5db1bdde9',1,'w25qxx_advance_only_spi_set_burst_with_wrap(w25qxx_burst_wrap_t wrap):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#ga16411577fcb794f7485912f5db1bdde9',1,'w25qxx_advance_only_spi_set_burst_with_wrap(w25qxx_burst_wrap_t wrap):&#160;driver_w25qxx_advance.c']]],
+  ['w25qxx_5fadvance_5fonly_5fspi_5fword_5fread_5fquad_5fio_29',['w25qxx_advance_only_spi_word_read_quad_io',['../group__w25qxx__example__driver.html#gaca6b4c6ea32dd96a4ae8714e2862d67a',1,'w25qxx_advance_only_spi_word_read_quad_io(uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#gaca6b4c6ea32dd96a4ae8714e2862d67a',1,'w25qxx_advance_only_spi_word_read_quad_io(uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx_advance.c']]],
+  ['w25qxx_5fadvance_5fonly_5fspi_5fwrite_5fsecurity_5fregister_30',['w25qxx_advance_only_spi_write_security_register',['../group__w25qxx__example__driver.html#gaa6c5f97106e769ba071973cc2e782ad4',1,'w25qxx_advance_only_spi_write_security_register(w25qxx_security_register_t num, uint8_t data[256]):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#gaa6c5f97106e769ba071973cc2e782ad4',1,'w25qxx_advance_only_spi_write_security_register(w25qxx_security_register_t num, uint8_t data[256]):&#160;driver_w25qxx_advance.c']]],
+  ['w25qxx_5fadvance_5fpage_5fprogram_31',['w25qxx_advance_page_program',['../group__w25qxx__example__driver.html#ga39ff13988a3d451231cec3260c13a4cd',1,'w25qxx_advance_page_program(uint32_t addr, uint8_t *data, uint16_t len):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#ga39ff13988a3d451231cec3260c13a4cd',1,'w25qxx_advance_page_program(uint32_t addr, uint8_t *data, uint16_t len):&#160;driver_w25qxx_advance.c']]],
+  ['w25qxx_5fadvance_5fpower_5fdown_32',['w25qxx_advance_power_down',['../group__w25qxx__example__driver.html#ga5599de31797633ae75a63bcd5a8f4736',1,'w25qxx_advance_power_down(void):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#ga5599de31797633ae75a63bcd5a8f4736',1,'w25qxx_advance_power_down(void):&#160;driver_w25qxx_advance.c']]],
+  ['w25qxx_5fadvance_5fread_33',['w25qxx_advance_read',['../group__w25qxx__example__driver.html#ga013a389763200b54daaa345adf9329dc',1,'w25qxx_advance_read(uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#ga013a389763200b54daaa345adf9329dc',1,'w25qxx_advance_read(uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx_advance.c']]],
+  ['w25qxx_5fadvance_5fread_5fblock_5flock_34',['w25qxx_advance_read_block_lock',['../group__w25qxx__example__driver.html#gac1773fe914a01825ca28346205601036',1,'w25qxx_advance_read_block_lock(uint32_t addr, uint8_t *value):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#gac1773fe914a01825ca28346205601036',1,'w25qxx_advance_read_block_lock(uint32_t addr, uint8_t *value):&#160;driver_w25qxx_advance.c']]],
+  ['w25qxx_5fadvance_5freset_35',['w25qxx_advance_reset',['../group__w25qxx__example__driver.html#ga0f65053ad28443f19ed73dbc3412b5b2',1,'w25qxx_advance_reset(void):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#ga0f65053ad28443f19ed73dbc3412b5b2',1,'w25qxx_advance_reset(void):&#160;driver_w25qxx_advance.c']]],
+  ['w25qxx_5fadvance_5fsector_5ferase_5f4k_36',['w25qxx_advance_sector_erase_4k',['../group__w25qxx__example__driver.html#ga9325acc424c95624f15e11631082201d',1,'w25qxx_advance_sector_erase_4k(uint32_t addr):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#ga9325acc424c95624f15e11631082201d',1,'w25qxx_advance_sector_erase_4k(uint32_t addr):&#160;driver_w25qxx_advance.c']]],
+  ['w25qxx_5fadvance_5fset_5fstatus1_37',['w25qxx_advance_set_status1',['../group__w25qxx__example__driver.html#ga5e4938b4575c417ae22fa82079459b1a',1,'w25qxx_advance_set_status1(uint8_t status):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#ga5e4938b4575c417ae22fa82079459b1a',1,'w25qxx_advance_set_status1(uint8_t status):&#160;driver_w25qxx_advance.c']]],
+  ['w25qxx_5fadvance_5fset_5fstatus2_38',['w25qxx_advance_set_status2',['../group__w25qxx__example__driver.html#ga9bc0e696b700d66f15b3605e10d33718',1,'w25qxx_advance_set_status2(uint8_t status):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#ga9bc0e696b700d66f15b3605e10d33718',1,'w25qxx_advance_set_status2(uint8_t status):&#160;driver_w25qxx_advance.c']]],
+  ['w25qxx_5fadvance_5fset_5fstatus3_39',['w25qxx_advance_set_status3',['../group__w25qxx__example__driver.html#gab5c990ebd4874137b7d23f2b896d4601',1,'w25qxx_advance_set_status3(uint8_t status):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#gab5c990ebd4874137b7d23f2b896d4601',1,'w25qxx_advance_set_status3(uint8_t status):&#160;driver_w25qxx_advance.c']]],
+  ['w25qxx_5fadvance_5fwake_5fup_40',['w25qxx_advance_wake_up',['../group__w25qxx__example__driver.html#ga8a57e2d056d452abc14b0a08d4223251',1,'w25qxx_advance_wake_up(void):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#ga8a57e2d056d452abc14b0a08d4223251',1,'w25qxx_advance_wake_up(void):&#160;driver_w25qxx_advance.c']]],
+  ['w25qxx_5fadvance_5fwrite_41',['w25qxx_advance_write',['../group__w25qxx__example__driver.html#ga63f4e1dce2ef7c7de56461524fd22d04',1,'w25qxx_advance_write(uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx_advance.c'],['../group__w25qxx__example__driver.html#ga63f4e1dce2ef7c7de56461524fd22d04',1,'w25qxx_advance_write(uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx_advance.c']]],
+  ['w25qxx_5fbasic_5fchip_5ferase_42',['w25qxx_basic_chip_erase',['../group__w25qxx__example__driver.html#gaf78e9f136e29b826c1a2b337b8451d6d',1,'w25qxx_basic_chip_erase(void):&#160;driver_w25qxx_basic.c'],['../group__w25qxx__example__driver.html#gaf78e9f136e29b826c1a2b337b8451d6d',1,'w25qxx_basic_chip_erase(void):&#160;driver_w25qxx_basic.c']]],
+  ['w25qxx_5fbasic_5fdeinit_43',['w25qxx_basic_deinit',['../group__w25qxx__example__driver.html#gaeb167c2924a3490e9a8d11e0c57d2dc0',1,'w25qxx_basic_deinit(void):&#160;driver_w25qxx_basic.c'],['../group__w25qxx__example__driver.html#gaeb167c2924a3490e9a8d11e0c57d2dc0',1,'w25qxx_basic_deinit(void):&#160;driver_w25qxx_basic.c']]],
+  ['w25qxx_5fbasic_5fget_5fid_44',['w25qxx_basic_get_id',['../group__w25qxx__example__driver.html#gacdda3af55c024b55fc9939aa23650356',1,'w25qxx_basic_get_id(uint8_t *manufacturer, uint8_t *device_id):&#160;driver_w25qxx_basic.c'],['../group__w25qxx__example__driver.html#gacdda3af55c024b55fc9939aa23650356',1,'w25qxx_basic_get_id(uint8_t *manufacturer, uint8_t *device_id):&#160;driver_w25qxx_basic.c']]],
+  ['w25qxx_5fbasic_5finit_45',['w25qxx_basic_init',['../group__w25qxx__example__driver.html#ga1e20768311dfdf33c77b442fa874b61a',1,'w25qxx_basic_init(w25qxx_type_t type, w25qxx_interface_t interface, w25qxx_bool_t dual_quad_spi_enable):&#160;driver_w25qxx_basic.c'],['../group__w25qxx__example__driver.html#ga1e20768311dfdf33c77b442fa874b61a',1,'w25qxx_basic_init(w25qxx_type_t type, w25qxx_interface_t interface, w25qxx_bool_t dual_quad_spi_enable):&#160;driver_w25qxx_basic.c']]],
+  ['w25qxx_5fbasic_5fpower_5fdown_46',['w25qxx_basic_power_down',['../group__w25qxx__example__driver.html#ga572c9f7a0bf2e7ab43dc078121162ec3',1,'w25qxx_basic_power_down(void):&#160;driver_w25qxx_basic.c'],['../group__w25qxx__example__driver.html#ga572c9f7a0bf2e7ab43dc078121162ec3',1,'w25qxx_basic_power_down(void):&#160;driver_w25qxx_basic.c']]],
+  ['w25qxx_5fbasic_5fread_47',['w25qxx_basic_read',['../group__w25qxx__example__driver.html#ga143fa1f19a792142339f3d4e9ce078d0',1,'w25qxx_basic_read(uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx_basic.c'],['../group__w25qxx__example__driver.html#ga143fa1f19a792142339f3d4e9ce078d0',1,'w25qxx_basic_read(uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx_basic.c']]],
+  ['w25qxx_5fbasic_5fwake_5fup_48',['w25qxx_basic_wake_up',['../group__w25qxx__example__driver.html#ga02914409a9db38f35bc89d9fc4d96a17',1,'w25qxx_basic_wake_up(void):&#160;driver_w25qxx_basic.c'],['../group__w25qxx__example__driver.html#ga02914409a9db38f35bc89d9fc4d96a17',1,'w25qxx_basic_wake_up(void):&#160;driver_w25qxx_basic.c']]],
+  ['w25qxx_5fbasic_5fwrite_49',['w25qxx_basic_write',['../group__w25qxx__example__driver.html#ga5cf24fc78e1b45e845d02ec9133f46ab',1,'w25qxx_basic_write(uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx_basic.c'],['../group__w25qxx__example__driver.html#ga5cf24fc78e1b45e845d02ec9133f46ab',1,'w25qxx_basic_write(uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx_basic.c']]],
+  ['w25qxx_5fblock_5ferase_5f32k_50',['w25qxx_block_erase_32k',['../group__w25qxx__basic__driver.html#ga39c8fb382e8c3e4d57232dfa79af781c',1,'w25qxx_block_erase_32k(w25qxx_handle_t *handle, uint32_t addr):&#160;driver_w25qxx.c'],['../group__w25qxx__basic__driver.html#ga39c8fb382e8c3e4d57232dfa79af781c',1,'w25qxx_block_erase_32k(w25qxx_handle_t *handle, uint32_t addr):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5fblock_5ferase_5f64k_51',['w25qxx_block_erase_64k',['../group__w25qxx__basic__driver.html#gaf53bc5f6073482b9b74efd417ec7ac83',1,'w25qxx_block_erase_64k(w25qxx_handle_t *handle, uint32_t addr):&#160;driver_w25qxx.c'],['../group__w25qxx__basic__driver.html#gaf53bc5f6073482b9b74efd417ec7ac83',1,'w25qxx_block_erase_64k(w25qxx_handle_t *handle, uint32_t addr):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5fchip_5ferase_52',['w25qxx_chip_erase',['../group__w25qxx__basic__driver.html#ga0862833b36831f92684980b2e21f2e39',1,'w25qxx_chip_erase(w25qxx_handle_t *handle):&#160;driver_w25qxx.c'],['../group__w25qxx__basic__driver.html#ga0862833b36831f92684980b2e21f2e39',1,'w25qxx_chip_erase(w25qxx_handle_t *handle):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5fdeinit_53',['w25qxx_deinit',['../group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d',1,'w25qxx_deinit(w25qxx_handle_t *handle):&#160;driver_w25qxx.c'],['../group__w25qxx__basic__driver.html#gaa293c3a46c4010a3af597a83e646de0d',1,'w25qxx_deinit(w25qxx_handle_t *handle):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5fdisable_5fwrite_54',['w25qxx_disable_write',['../group__w25qxx__advance__driver.html#gac16a31269277051baad6c28fe4254b4a',1,'w25qxx_disable_write(w25qxx_handle_t *handle):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#gac16a31269277051baad6c28fe4254b4a',1,'w25qxx_disable_write(w25qxx_handle_t *handle):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5fenable_5freset_55',['w25qxx_enable_reset',['../group__w25qxx__advance__driver.html#gab55b4e071e20feb58584025287949438',1,'w25qxx_enable_reset(w25qxx_handle_t *handle):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#gab55b4e071e20feb58584025287949438',1,'w25qxx_enable_reset(w25qxx_handle_t *handle):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5fenable_5fvolatile_5fsr_5fwrite_56',['w25qxx_enable_volatile_sr_write',['../group__w25qxx__advance__driver.html#ga0f8889d6a25c32e150a2ab30753d461d',1,'w25qxx_enable_volatile_sr_write(w25qxx_handle_t *handle):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#ga0f8889d6a25c32e150a2ab30753d461d',1,'w25qxx_enable_volatile_sr_write(w25qxx_handle_t *handle):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5fenable_5fwrite_57',['w25qxx_enable_write',['../group__w25qxx__advance__driver.html#gaeb269123feec054eaaf70f2ffb5797a3',1,'w25qxx_enable_write(w25qxx_handle_t *handle):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#gaeb269123feec054eaaf70f2ffb5797a3',1,'w25qxx_enable_write(w25qxx_handle_t *handle):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5fenter_5fqspi_5fmode_58',['w25qxx_enter_qspi_mode',['../group__w25qxx__advance__driver.html#gaa5ab3548707a95ded115255432224c5a',1,'w25qxx_enter_qspi_mode(w25qxx_handle_t *handle):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#gaa5ab3548707a95ded115255432224c5a',1,'w25qxx_enter_qspi_mode(w25qxx_handle_t *handle):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5ferase_5fprogram_5fresume_59',['w25qxx_erase_program_resume',['../group__w25qxx__advance__driver.html#ga05c69ac66309544eba4ff38a69f24c00',1,'w25qxx_erase_program_resume(w25qxx_handle_t *handle):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#ga05c69ac66309544eba4ff38a69f24c00',1,'w25qxx_erase_program_resume(w25qxx_handle_t *handle):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5ferase_5fprogram_5fsuspend_60',['w25qxx_erase_program_suspend',['../group__w25qxx__advance__driver.html#gac7fbabc574c250eec100be861f5918ff',1,'w25qxx_erase_program_suspend(w25qxx_handle_t *handle):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#gac7fbabc574c250eec100be861f5918ff',1,'w25qxx_erase_program_suspend(w25qxx_handle_t *handle):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5ferase_5fsecurity_5fregister_61',['w25qxx_erase_security_register',['../group__w25qxx__advance__driver.html#gaf297e2c6877c64f8fd10a555f783ddaf',1,'w25qxx_erase_security_register(w25qxx_handle_t *handle, w25qxx_security_register_t num):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#gaf297e2c6877c64f8fd10a555f783ddaf',1,'w25qxx_erase_security_register(w25qxx_handle_t *handle, w25qxx_security_register_t num):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5fexit_5fqspi_5fmode_62',['w25qxx_exit_qspi_mode',['../group__w25qxx__advance__driver.html#ga6b9f75f7426a54ffdb1f5a057f8188f4',1,'w25qxx_exit_qspi_mode(w25qxx_handle_t *handle):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#ga6b9f75f7426a54ffdb1f5a057f8188f4',1,'w25qxx_exit_qspi_mode(w25qxx_handle_t *handle):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5ffast_5fread_63',['w25qxx_fast_read',['../group__w25qxx__basic__driver.html#gac345ba10af5ad355578fa97697487123',1,'w25qxx_fast_read(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx.c'],['../group__w25qxx__basic__driver.html#gac345ba10af5ad355578fa97697487123',1,'w25qxx_fast_read(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5ffast_5fread_5fdual_5fio_64',['w25qxx_fast_read_dual_io',['../group__w25qxx__advance__driver.html#gac894f4650905cba10dd3a31284de6d5e',1,'w25qxx_fast_read_dual_io(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#gac894f4650905cba10dd3a31284de6d5e',1,'w25qxx_fast_read_dual_io(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5ffast_5fread_5fdual_5foutput_65',['w25qxx_fast_read_dual_output',['../group__w25qxx__advance__driver.html#ga7a19230ca3916816ea8fb7421483d293',1,'w25qxx_fast_read_dual_output(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#ga7a19230ca3916816ea8fb7421483d293',1,'w25qxx_fast_read_dual_output(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5ffast_5fread_5fquad_5fio_66',['w25qxx_fast_read_quad_io',['../group__w25qxx__advance__driver.html#gab97a64bd3776874518f60381d921ae41',1,'w25qxx_fast_read_quad_io(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#gab97a64bd3776874518f60381d921ae41',1,'w25qxx_fast_read_quad_io(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5ffast_5fread_5fquad_5foutput_67',['w25qxx_fast_read_quad_output',['../group__w25qxx__advance__driver.html#gaf4bfafd1f80aa0316a4b1a15183dcd50',1,'w25qxx_fast_read_quad_output(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#gaf4bfafd1f80aa0316a4b1a15183dcd50',1,'w25qxx_fast_read_quad_output(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5fget_5faddress_5fmode_68',['w25qxx_get_address_mode',['../group__w25qxx__basic__driver.html#ga3a52036a97b12fcbe2280b0901a80b90',1,'w25qxx_get_address_mode(w25qxx_handle_t *handle, w25qxx_address_mode_t *mode):&#160;driver_w25qxx.c'],['../group__w25qxx__basic__driver.html#ga3a52036a97b12fcbe2280b0901a80b90',1,'w25qxx_get_address_mode(w25qxx_handle_t *handle, w25qxx_address_mode_t *mode):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5fget_5fdual_5fquad_5fspi_69',['w25qxx_get_dual_quad_spi',['../group__w25qxx__basic__driver.html#gad4c9b8b0a2d0916c13567f9d7e494cf8',1,'w25qxx_get_dual_quad_spi(w25qxx_handle_t *handle, w25qxx_bool_t *enable):&#160;driver_w25qxx.c'],['../group__w25qxx__basic__driver.html#gad4c9b8b0a2d0916c13567f9d7e494cf8',1,'w25qxx_get_dual_quad_spi(w25qxx_handle_t *handle, w25qxx_bool_t *enable):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5fget_5finterface_70',['w25qxx_get_interface',['../group__w25qxx__basic__driver.html#ga86ef839d475f3926a0be46bbc18d4b45',1,'w25qxx_get_interface(w25qxx_handle_t *handle, w25qxx_interface_t *interface):&#160;driver_w25qxx.c'],['../group__w25qxx__basic__driver.html#ga86ef839d475f3926a0be46bbc18d4b45',1,'w25qxx_get_interface(w25qxx_handle_t *handle, w25qxx_interface_t *interface):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5fget_5fjedec_5fid_71',['w25qxx_get_jedec_id',['../group__w25qxx__advance__driver.html#ga8a93ba14a032e10a27f1495fdcf56058',1,'w25qxx_get_jedec_id(w25qxx_handle_t *handle, uint8_t *manufacturer, uint8_t device_id[2]):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#ga8a93ba14a032e10a27f1495fdcf56058',1,'w25qxx_get_jedec_id(w25qxx_handle_t *handle, uint8_t *manufacturer, uint8_t device_id[2]):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5fget_5fmanufacturer_5fdevice_5fid_72',['w25qxx_get_manufacturer_device_id',['../group__w25qxx__basic__driver.html#ga921836a777b082ff4d0f322ccfda6b22',1,'w25qxx_get_manufacturer_device_id(w25qxx_handle_t *handle, uint8_t *manufacturer, uint8_t *device_id):&#160;driver_w25qxx.c'],['../group__w25qxx__basic__driver.html#ga921836a777b082ff4d0f322ccfda6b22',1,'w25qxx_get_manufacturer_device_id(w25qxx_handle_t *handle, uint8_t *manufacturer, uint8_t *device_id):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5fget_5fmanufacturer_5fdevice_5fid_5fdual_5fio_73',['w25qxx_get_manufacturer_device_id_dual_io',['../group__w25qxx__advance__driver.html#ga1cd3aec1bdeabbaed5f049fbf83ceeb4',1,'w25qxx_get_manufacturer_device_id_dual_io(w25qxx_handle_t *handle, uint8_t *manufacturer, uint8_t *device_id):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#ga1cd3aec1bdeabbaed5f049fbf83ceeb4',1,'w25qxx_get_manufacturer_device_id_dual_io(w25qxx_handle_t *handle, uint8_t *manufacturer, uint8_t *device_id):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5fget_5fmanufacturer_5fdevice_5fid_5fquad_5fio_74',['w25qxx_get_manufacturer_device_id_quad_io',['../group__w25qxx__advance__driver.html#ga61bd3ce40b76b6862c6a53e0e37a3455',1,'w25qxx_get_manufacturer_device_id_quad_io(w25qxx_handle_t *handle, uint8_t *manufacturer, uint8_t *device_id):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#ga61bd3ce40b76b6862c6a53e0e37a3455',1,'w25qxx_get_manufacturer_device_id_quad_io(w25qxx_handle_t *handle, uint8_t *manufacturer, uint8_t *device_id):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5fget_5fsfdp_75',['w25qxx_get_sfdp',['../group__w25qxx__advance__driver.html#ga244a91b9c0c32e899ca89e1943045624',1,'w25qxx_get_sfdp(w25qxx_handle_t *handle, uint8_t sfdp[256]):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#ga244a91b9c0c32e899ca89e1943045624',1,'w25qxx_get_sfdp(w25qxx_handle_t *handle, uint8_t sfdp[256]):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5fget_5fstatus1_76',['w25qxx_get_status1',['../group__w25qxx__advance__driver.html#gaa77d2b00b4fb9cf586f77ace827ea7c6',1,'w25qxx_get_status1(w25qxx_handle_t *handle, uint8_t *status):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#gaa77d2b00b4fb9cf586f77ace827ea7c6',1,'w25qxx_get_status1(w25qxx_handle_t *handle, uint8_t *status):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5fget_5fstatus2_77',['w25qxx_get_status2',['../group__w25qxx__advance__driver.html#gaa21237ecbd5951b8017799066e7db5d9',1,'w25qxx_get_status2(w25qxx_handle_t *handle, uint8_t *status):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#gaa21237ecbd5951b8017799066e7db5d9',1,'w25qxx_get_status2(w25qxx_handle_t *handle, uint8_t *status):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5fget_5fstatus3_78',['w25qxx_get_status3',['../group__w25qxx__advance__driver.html#ga99cf6a325a00921d4531004f0c1d75b1',1,'w25qxx_get_status3(w25qxx_handle_t *handle, uint8_t *status):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#ga99cf6a325a00921d4531004f0c1d75b1',1,'w25qxx_get_status3(w25qxx_handle_t *handle, uint8_t *status):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5fget_5ftype_79',['w25qxx_get_type',['../group__w25qxx__basic__driver.html#ga685379998dad173b6d9c0b0da270685c',1,'w25qxx_get_type(w25qxx_handle_t *handle, w25qxx_type_t *type):&#160;driver_w25qxx.c'],['../group__w25qxx__basic__driver.html#ga685379998dad173b6d9c0b0da270685c',1,'w25qxx_get_type(w25qxx_handle_t *handle, w25qxx_type_t *type):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5fget_5funique_5fid_80',['w25qxx_get_unique_id',['../group__w25qxx__advance__driver.html#ga11af244389478de68a6777076ee82d69',1,'w25qxx_get_unique_id(w25qxx_handle_t *handle, uint8_t id[8]):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#ga11af244389478de68a6777076ee82d69',1,'w25qxx_get_unique_id(w25qxx_handle_t *handle, uint8_t id[8]):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5fglobal_5fblock_5flock_81',['w25qxx_global_block_lock',['../group__w25qxx__advance__driver.html#gab5579bc42bc07a7657848140888a817c',1,'w25qxx_global_block_lock(w25qxx_handle_t *handle):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#gab5579bc42bc07a7657848140888a817c',1,'w25qxx_global_block_lock(w25qxx_handle_t *handle):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5fglobal_5fblock_5funlock_82',['w25qxx_global_block_unlock',['../group__w25qxx__advance__driver.html#ga6d62f7d14945cfde7cde7a0e9a4e3afb',1,'w25qxx_global_block_unlock(w25qxx_handle_t *handle):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#ga6d62f7d14945cfde7cde7a0e9a4e3afb',1,'w25qxx_global_block_unlock(w25qxx_handle_t *handle):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5findividual_5fblock_5flock_83',['w25qxx_individual_block_lock',['../group__w25qxx__advance__driver.html#ga4f00c2c169cb7c3084841c6cd795e76b',1,'w25qxx_individual_block_lock(w25qxx_handle_t *handle, uint32_t addr):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#ga4f00c2c169cb7c3084841c6cd795e76b',1,'w25qxx_individual_block_lock(w25qxx_handle_t *handle, uint32_t addr):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5findividual_5fblock_5funlock_84',['w25qxx_individual_block_unlock',['../group__w25qxx__advance__driver.html#ga7f88cedf7619071b3235ba094915b2a7',1,'w25qxx_individual_block_unlock(w25qxx_handle_t *handle, uint32_t addr):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#ga7f88cedf7619071b3235ba094915b2a7',1,'w25qxx_individual_block_unlock(w25qxx_handle_t *handle, uint32_t addr):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5finfo_85',['w25qxx_info',['../group__w25qxx__basic__driver.html#ga996e2d3009432e7f8c1a5175c4438a57',1,'w25qxx_info(w25qxx_info_t *info):&#160;driver_w25qxx.c'],['../group__w25qxx__basic__driver.html#ga996e2d3009432e7f8c1a5175c4438a57',1,'w25qxx_info(w25qxx_info_t *info):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5finit_86',['w25qxx_init',['../group__w25qxx__basic__driver.html#ga8e7a163b3d255b8c7fc035d0d60f2491',1,'w25qxx_init(w25qxx_handle_t *handle):&#160;driver_w25qxx.c'],['../group__w25qxx__basic__driver.html#ga8e7a163b3d255b8c7fc035d0d60f2491',1,'w25qxx_init(w25qxx_handle_t *handle):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5finterface_5fdebug_5fprint_87',['w25qxx_interface_debug_print',['../group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e',1,'w25qxx_interface_debug_print(const char *const fmt,...):&#160;driver_w25qxx_interface_template.c'],['../group__w25qxx__interface__driver.html#ga5325474fa17f6833744e631613fd2a0e',1,'w25qxx_interface_debug_print(const char *const fmt,...):&#160;driver_w25qxx_interface_template.c']]],
+  ['w25qxx_5finterface_5fdelay_5fms_88',['w25qxx_interface_delay_ms',['../group__w25qxx__interface__driver.html#ga964fa232abf98737cb98458eebfff82c',1,'w25qxx_interface_delay_ms(uint32_t ms):&#160;driver_w25qxx_interface_template.c'],['../group__w25qxx__interface__driver.html#ga964fa232abf98737cb98458eebfff82c',1,'w25qxx_interface_delay_ms(uint32_t ms):&#160;driver_w25qxx_interface_template.c']]],
+  ['w25qxx_5finterface_5fdelay_5fus_89',['w25qxx_interface_delay_us',['../group__w25qxx__interface__driver.html#ga38e79039b913154c9dd1036ff52bb420',1,'w25qxx_interface_delay_us(uint32_t us):&#160;driver_w25qxx_interface_template.c'],['../group__w25qxx__interface__driver.html#ga38e79039b913154c9dd1036ff52bb420',1,'w25qxx_interface_delay_us(uint32_t us):&#160;driver_w25qxx_interface_template.c']]],
+  ['w25qxx_5finterface_5fspi_5fqspi_5fdeinit_90',['w25qxx_interface_spi_qspi_deinit',['../group__w25qxx__interface__driver.html#ga091f3607fcdd47f9e5f94cf1397bd46a',1,'w25qxx_interface_spi_qspi_deinit(void):&#160;driver_w25qxx_interface_template.c'],['../group__w25qxx__interface__driver.html#ga091f3607fcdd47f9e5f94cf1397bd46a',1,'w25qxx_interface_spi_qspi_deinit(void):&#160;driver_w25qxx_interface_template.c']]],
+  ['w25qxx_5finterface_5fspi_5fqspi_5finit_91',['w25qxx_interface_spi_qspi_init',['../group__w25qxx__interface__driver.html#ga2bdc17a556f1c801a38656331f3bb7b6',1,'w25qxx_interface_spi_qspi_init(void):&#160;driver_w25qxx_interface_template.c'],['../group__w25qxx__interface__driver.html#ga2bdc17a556f1c801a38656331f3bb7b6',1,'w25qxx_interface_spi_qspi_init(void):&#160;driver_w25qxx_interface_template.c']]],
+  ['w25qxx_5finterface_5fspi_5fqspi_5fwrite_5fread_92',['w25qxx_interface_spi_qspi_write_read',['../group__w25qxx__interface__driver.html#ga3d76ea1f431978f6b55edfd0628c94cd',1,'w25qxx_interface_spi_qspi_write_read(uint8_t instruction, uint8_t instruction_line, uint32_t address, uint8_t address_line, uint8_t address_len, uint32_t alternate, uint8_t alternate_line, uint8_t alternate_len, uint8_t dummy, uint8_t *in_buf, uint32_t in_len, uint8_t *out_buf, uint32_t out_len, uint8_t data_line):&#160;driver_w25qxx_interface_template.c'],['../group__w25qxx__interface__driver.html#ga3d76ea1f431978f6b55edfd0628c94cd',1,'w25qxx_interface_spi_qspi_write_read(uint8_t instruction, uint8_t instruction_line, uint32_t address, uint8_t address_line, uint8_t address_len, uint32_t alternate, uint8_t alternate_line, uint8_t alternate_len, uint8_t dummy, uint8_t *in_buf, uint32_t in_len, uint8_t *out_buf, uint32_t out_len, uint8_t data_line):&#160;driver_w25qxx_interface_template.c']]],
+  ['w25qxx_5foctal_5fword_5fread_5fquad_5fio_93',['w25qxx_octal_word_read_quad_io',['../group__w25qxx__advance__driver.html#ga88a62ec42e86db821ff3f0d3ab541dbb',1,'w25qxx_octal_word_read_quad_io(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#ga88a62ec42e86db821ff3f0d3ab541dbb',1,'w25qxx_octal_word_read_quad_io(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5fonly_5fspi_5fread_94',['w25qxx_only_spi_read',['../group__w25qxx__basic__driver.html#ga1e9ebf198137d23558dbf6470213c472',1,'w25qxx_only_spi_read(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx.c'],['../group__w25qxx__basic__driver.html#ga1e9ebf198137d23558dbf6470213c472',1,'w25qxx_only_spi_read(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5fpage_5fprogram_95',['w25qxx_page_program',['../group__w25qxx__basic__driver.html#ga6280e7e4ab26306436e2c210617a28b3',1,'w25qxx_page_program(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint16_t len):&#160;driver_w25qxx.c'],['../group__w25qxx__basic__driver.html#ga6280e7e4ab26306436e2c210617a28b3',1,'w25qxx_page_program(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint16_t len):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5fpage_5fprogram_5fquad_5finput_96',['w25qxx_page_program_quad_input',['../group__w25qxx__advance__driver.html#ga1f80bbbaaa852eecfffb87737889363d',1,'w25qxx_page_program_quad_input(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint16_t len):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#ga1f80bbbaaa852eecfffb87737889363d',1,'w25qxx_page_program_quad_input(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint16_t len):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5fpower_5fdown_97',['w25qxx_power_down',['../group__w25qxx__basic__driver.html#gae4effce67e36120325e3c7b245b90142',1,'w25qxx_power_down(w25qxx_handle_t *handle):&#160;driver_w25qxx.c'],['../group__w25qxx__basic__driver.html#gae4effce67e36120325e3c7b245b90142',1,'w25qxx_power_down(w25qxx_handle_t *handle):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5fprogram_5fsecurity_5fregister_98',['w25qxx_program_security_register',['../group__w25qxx__advance__driver.html#ga4e9c059ff78866e478e835cb27a92899',1,'w25qxx_program_security_register(w25qxx_handle_t *handle, w25qxx_security_register_t num, uint8_t data[256]):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#ga4e9c059ff78866e478e835cb27a92899',1,'w25qxx_program_security_register(w25qxx_handle_t *handle, w25qxx_security_register_t num, uint8_t data[256]):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5fread_99',['w25qxx_read',['../group__w25qxx__basic__driver.html#gae7479fc9ce911a52e3c5b6f1a615b879',1,'w25qxx_read(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx.c'],['../group__w25qxx__basic__driver.html#gae7479fc9ce911a52e3c5b6f1a615b879',1,'w25qxx_read(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5fread_5fblock_5flock_100',['w25qxx_read_block_lock',['../group__w25qxx__advance__driver.html#ga59e655ca78a175037ca810bbc8539a96',1,'w25qxx_read_block_lock(w25qxx_handle_t *handle, uint32_t addr, uint8_t *value):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#ga59e655ca78a175037ca810bbc8539a96',1,'w25qxx_read_block_lock(w25qxx_handle_t *handle, uint32_t addr, uint8_t *value):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5fread_5fsecurity_5fregister_101',['w25qxx_read_security_register',['../group__w25qxx__advance__driver.html#ga4c65debc4947bd9a61e0073105164b9c',1,'w25qxx_read_security_register(w25qxx_handle_t *handle, w25qxx_security_register_t num, uint8_t data[256]):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#ga4c65debc4947bd9a61e0073105164b9c',1,'w25qxx_read_security_register(w25qxx_handle_t *handle, w25qxx_security_register_t num, uint8_t data[256]):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5fread_5ftest_102',['w25qxx_read_test',['../group__w25qxx__test__driver.html#ga4ce42ca34d33cd64cb823040780999af',1,'w25qxx_read_test(w25qxx_type_t type, w25qxx_interface_t interface, w25qxx_bool_t dual_quad_spi_enable):&#160;driver_w25qxx_read_test.c'],['../group__w25qxx__test__driver.html#ga4ce42ca34d33cd64cb823040780999af',1,'w25qxx_read_test(w25qxx_type_t type, w25qxx_interface_t interface, w25qxx_bool_t dual_quad_spi_enable):&#160;driver_w25qxx_read_test.c']]],
+  ['w25qxx_5fregister_5ftest_103',['w25qxx_register_test',['../group__w25qxx__test__driver.html#ga05d07036254d102ebea0d0b1e83862c8',1,'w25qxx_register_test(w25qxx_type_t type, w25qxx_interface_t interface, w25qxx_bool_t dual_quad_spi_enable):&#160;driver_w25qxx_register_test.c'],['../group__w25qxx__test__driver.html#ga05d07036254d102ebea0d0b1e83862c8',1,'w25qxx_register_test(w25qxx_type_t type, w25qxx_interface_t interface, w25qxx_bool_t dual_quad_spi_enable):&#160;driver_w25qxx_register_test.c']]],
+  ['w25qxx_5frelease_5fpower_5fdown_104',['w25qxx_release_power_down',['../group__w25qxx__basic__driver.html#ga09c9b52877516a2ee4c080dc249e7331',1,'w25qxx_release_power_down(w25qxx_handle_t *handle):&#160;driver_w25qxx.c'],['../group__w25qxx__basic__driver.html#ga09c9b52877516a2ee4c080dc249e7331',1,'w25qxx_release_power_down(w25qxx_handle_t *handle):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5freset_5fdevice_105',['w25qxx_reset_device',['../group__w25qxx__advance__driver.html#ga2abebfe2a8d9377eb88448ffca73f222',1,'w25qxx_reset_device(w25qxx_handle_t *handle):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#ga2abebfe2a8d9377eb88448ffca73f222',1,'w25qxx_reset_device(w25qxx_handle_t *handle):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5fsector_5ferase_5f4k_106',['w25qxx_sector_erase_4k',['../group__w25qxx__basic__driver.html#ga9a03c51b4c84655350c15fbfce0a6b40',1,'w25qxx_sector_erase_4k(w25qxx_handle_t *handle, uint32_t addr):&#160;driver_w25qxx.c'],['../group__w25qxx__basic__driver.html#ga9a03c51b4c84655350c15fbfce0a6b40',1,'w25qxx_sector_erase_4k(w25qxx_handle_t *handle, uint32_t addr):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5fset_5faddress_5fmode_107',['w25qxx_set_address_mode',['../group__w25qxx__basic__driver.html#gad0e125eff304ce66fb3956d2c8c80656',1,'w25qxx_set_address_mode(w25qxx_handle_t *handle, w25qxx_address_mode_t mode):&#160;driver_w25qxx.c'],['../group__w25qxx__basic__driver.html#gad0e125eff304ce66fb3956d2c8c80656',1,'w25qxx_set_address_mode(w25qxx_handle_t *handle, w25qxx_address_mode_t mode):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5fset_5fburst_5fwith_5fwrap_108',['w25qxx_set_burst_with_wrap',['../group__w25qxx__advance__driver.html#gac19c1d0f3fd48968ea2a93c1dbe3d75d',1,'w25qxx_set_burst_with_wrap(w25qxx_handle_t *handle, w25qxx_burst_wrap_t wrap):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#gac19c1d0f3fd48968ea2a93c1dbe3d75d',1,'w25qxx_set_burst_with_wrap(w25qxx_handle_t *handle, w25qxx_burst_wrap_t wrap):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5fset_5fdual_5fquad_5fspi_109',['w25qxx_set_dual_quad_spi',['../group__w25qxx__basic__driver.html#ga665139209b0abc386474a78d89cce6f2',1,'w25qxx_set_dual_quad_spi(w25qxx_handle_t *handle, w25qxx_bool_t enable):&#160;driver_w25qxx.c'],['../group__w25qxx__basic__driver.html#ga665139209b0abc386474a78d89cce6f2',1,'w25qxx_set_dual_quad_spi(w25qxx_handle_t *handle, w25qxx_bool_t enable):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5fset_5finterface_110',['w25qxx_set_interface',['../group__w25qxx__basic__driver.html#ga50a62003d566402d46ada2f272c41eb5',1,'w25qxx_set_interface(w25qxx_handle_t *handle, w25qxx_interface_t interface):&#160;driver_w25qxx.c'],['../group__w25qxx__basic__driver.html#ga50a62003d566402d46ada2f272c41eb5',1,'w25qxx_set_interface(w25qxx_handle_t *handle, w25qxx_interface_t interface):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5fset_5fread_5fparameters_111',['w25qxx_set_read_parameters',['../group__w25qxx__advance__driver.html#ga9ad10781d888b32b43b9eba45d049624',1,'w25qxx_set_read_parameters(w25qxx_handle_t *handle, w25qxx_qspi_read_dummy_t dummy, w25qxx_qspi_read_wrap_length_t length):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#ga9ad10781d888b32b43b9eba45d049624',1,'w25qxx_set_read_parameters(w25qxx_handle_t *handle, w25qxx_qspi_read_dummy_t dummy, w25qxx_qspi_read_wrap_length_t length):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5fset_5fstatus1_112',['w25qxx_set_status1',['../group__w25qxx__advance__driver.html#ga246e0bb07c8bbb39731f17906779c012',1,'w25qxx_set_status1(w25qxx_handle_t *handle, uint8_t status):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#ga246e0bb07c8bbb39731f17906779c012',1,'w25qxx_set_status1(w25qxx_handle_t *handle, uint8_t status):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5fset_5fstatus2_113',['w25qxx_set_status2',['../group__w25qxx__advance__driver.html#gaab5f28e8930d50dbc2178e39bc9fa456',1,'w25qxx_set_status2(w25qxx_handle_t *handle, uint8_t status):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#gaab5f28e8930d50dbc2178e39bc9fa456',1,'w25qxx_set_status2(w25qxx_handle_t *handle, uint8_t status):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5fset_5fstatus3_114',['w25qxx_set_status3',['../group__w25qxx__advance__driver.html#gada897a6c6d6acb99f4dd4ff9b65ad8ee',1,'w25qxx_set_status3(w25qxx_handle_t *handle, uint8_t status):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#gada897a6c6d6acb99f4dd4ff9b65ad8ee',1,'w25qxx_set_status3(w25qxx_handle_t *handle, uint8_t status):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5fset_5ftype_115',['w25qxx_set_type',['../group__w25qxx__basic__driver.html#gaa57189cd4170b73f8b1300ca15e27de6',1,'w25qxx_set_type(w25qxx_handle_t *handle, w25qxx_type_t type):&#160;driver_w25qxx.c'],['../group__w25qxx__basic__driver.html#gaa57189cd4170b73f8b1300ca15e27de6',1,'w25qxx_set_type(w25qxx_handle_t *handle, w25qxx_type_t type):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5fword_5fread_5fquad_5fio_116',['w25qxx_word_read_quad_io',['../group__w25qxx__advance__driver.html#gad97d7e410dd77c49334097a0fd332660',1,'w25qxx_word_read_quad_io(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx.c'],['../group__w25qxx__advance__driver.html#gad97d7e410dd77c49334097a0fd332660',1,'w25qxx_word_read_quad_io(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5fwrite_117',['w25qxx_write',['../group__w25qxx__basic__driver.html#gaaee8264d840e51460821cb6e609338ee',1,'w25qxx_write(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx.c'],['../group__w25qxx__basic__driver.html#gaaee8264d840e51460821cb6e609338ee',1,'w25qxx_write(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len):&#160;driver_w25qxx.c']]],
+  ['w25qxx_5fwrite_5fread_5freg_118',['w25qxx_write_read_reg',['../group__w25qxx__extern__driver.html#ga9623a3bec148b148498480518a66cb2b',1,'w25qxx_write_read_reg(w25qxx_handle_t *handle, uint8_t instruction, uint8_t instruction_line, uint32_t address, uint8_t address_line, uint8_t address_len, uint32_t alternate, uint8_t alternate_line, uint8_t alternate_len, uint8_t dummy, uint8_t *in_buf, uint32_t in_len, uint8_t *out_buf, uint32_t out_len, uint8_t data_line):&#160;driver_w25qxx.c'],['../group__w25qxx__extern__driver.html#ga9623a3bec148b148498480518a66cb2b',1,'w25qxx_write_read_reg(w25qxx_handle_t *handle, uint8_t instruction, uint8_t instruction_line, uint32_t address, uint8_t address_line, uint8_t address_len, uint32_t alternate, uint8_t alternate_line, uint8_t alternate_len, uint8_t dummy, uint8_t *in_buf, uint32_t in_len, uint8_t *out_buf, uint32_t out_len, uint8_t data_line):&#160;driver_w25qxx.c']]]
 ];
diff --git a/doc/html/search/groups_0.js b/doc/html/search/groups_0.js
index 55d7aa0..0f4723a 100644
--- a/doc/html/search/groups_0.js
+++ b/doc/html/search/groups_0.js
@@ -1,11 +1,4 @@
 var searchData=
 [
-  ['w25qxx_20advance_20driver_20function_567',['w25qxx advance driver function',['../group__w25qxx__advance__driver.html',1,'']]],
-  ['w25qxx_20basic_20driver_20function_568',['w25qxx basic driver function',['../group__w25qxx__basic__driver.html',1,'']]],
-  ['w25qxx_20driver_20function_569',['w25qxx driver function',['../group__w25qxx__driver.html',1,'']]],
-  ['w25qxx_20example_20driver_20function_570',['w25qxx example driver function',['../group__w25qxx__example__driver.html',1,'']]],
-  ['w25qxx_20extern_20driver_20function_571',['w25qxx extern driver function',['../group__w25qxx__extern__driver.html',1,'']]],
-  ['w25qxx_20interface_20driver_20function_572',['w25qxx interface driver function',['../group__w25qxx__interface__driver.html',1,'']]],
-  ['w25qxx_20link_20driver_20function_573',['w25qxx link driver function',['../group__w25qxx__link__driver.html',1,'']]],
-  ['w25qxx_20test_20driver_20function_574',['w25qxx test driver function',['../group__w25qxx__test__driver.html',1,'']]]
+  ['advance_20driver_20function_0',['w25qxx advance driver function',['../group__w25qxx__advance__driver.html',1,'']]]
 ];
diff --git a/doc/html/search/groups_1.js b/doc/html/search/groups_1.js
new file mode 100644
index 0000000..33a0baf
--- /dev/null
+++ b/doc/html/search/groups_1.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['basic_20driver_20function_0',['w25qxx basic driver function',['../group__w25qxx__basic__driver.html',1,'']]]
+];
diff --git a/doc/html/search/groups_2.js b/doc/html/search/groups_2.js
new file mode 100644
index 0000000..2a7f428
--- /dev/null
+++ b/doc/html/search/groups_2.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['driver_20function_0',['driver function',['../group__w25qxx__advance__driver.html',1,'w25qxx advance driver function'],['../group__w25qxx__basic__driver.html',1,'w25qxx basic driver function'],['../group__w25qxx__driver.html',1,'w25qxx driver function'],['../group__w25qxx__example__driver.html',1,'w25qxx example driver function'],['../group__w25qxx__extern__driver.html',1,'w25qxx extern driver function'],['../group__w25qxx__interface__driver.html',1,'w25qxx interface driver function'],['../group__w25qxx__link__driver.html',1,'w25qxx link driver function'],['../group__w25qxx__test__driver.html',1,'w25qxx test driver function']]]
+];
diff --git a/doc/html/search/groups_3.js b/doc/html/search/groups_3.js
new file mode 100644
index 0000000..04e1c05
--- /dev/null
+++ b/doc/html/search/groups_3.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+  ['example_20driver_20function_0',['w25qxx example driver function',['../group__w25qxx__example__driver.html',1,'']]],
+  ['extern_20driver_20function_1',['w25qxx extern driver function',['../group__w25qxx__extern__driver.html',1,'']]]
+];
diff --git a/doc/html/search/groups_4.js b/doc/html/search/groups_4.js
new file mode 100644
index 0000000..41e369b
--- /dev/null
+++ b/doc/html/search/groups_4.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['function_0',['function',['../group__w25qxx__advance__driver.html',1,'w25qxx advance driver function'],['../group__w25qxx__basic__driver.html',1,'w25qxx basic driver function'],['../group__w25qxx__driver.html',1,'w25qxx driver function'],['../group__w25qxx__example__driver.html',1,'w25qxx example driver function'],['../group__w25qxx__extern__driver.html',1,'w25qxx extern driver function'],['../group__w25qxx__interface__driver.html',1,'w25qxx interface driver function'],['../group__w25qxx__link__driver.html',1,'w25qxx link driver function'],['../group__w25qxx__test__driver.html',1,'w25qxx test driver function']]]
+];
diff --git a/doc/html/search/groups_5.js b/doc/html/search/groups_5.js
new file mode 100644
index 0000000..955850d
--- /dev/null
+++ b/doc/html/search/groups_5.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['interface_20driver_20function_0',['w25qxx interface driver function',['../group__w25qxx__interface__driver.html',1,'']]]
+];
diff --git a/doc/html/search/groups_6.js b/doc/html/search/groups_6.js
new file mode 100644
index 0000000..3c1f610
--- /dev/null
+++ b/doc/html/search/groups_6.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['link_20driver_20function_0',['w25qxx link driver function',['../group__w25qxx__link__driver.html',1,'']]]
+];
diff --git a/doc/html/search/groups_7.js b/doc/html/search/groups_7.js
new file mode 100644
index 0000000..a26dd97
--- /dev/null
+++ b/doc/html/search/groups_7.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['test_20driver_20function_0',['w25qxx test driver function',['../group__w25qxx__test__driver.html',1,'']]]
+];
diff --git a/doc/html/search/groups_8.js b/doc/html/search/groups_8.js
new file mode 100644
index 0000000..39105ef
--- /dev/null
+++ b/doc/html/search/groups_8.js
@@ -0,0 +1,11 @@
+var searchData=
+[
+  ['w25qxx_20advance_20driver_20function_0',['w25qxx advance driver function',['../group__w25qxx__advance__driver.html',1,'']]],
+  ['w25qxx_20basic_20driver_20function_1',['w25qxx basic driver function',['../group__w25qxx__basic__driver.html',1,'']]],
+  ['w25qxx_20driver_20function_2',['w25qxx driver function',['../group__w25qxx__driver.html',1,'']]],
+  ['w25qxx_20example_20driver_20function_3',['w25qxx example driver function',['../group__w25qxx__example__driver.html',1,'']]],
+  ['w25qxx_20extern_20driver_20function_4',['w25qxx extern driver function',['../group__w25qxx__extern__driver.html',1,'']]],
+  ['w25qxx_20interface_20driver_20function_5',['w25qxx interface driver function',['../group__w25qxx__interface__driver.html',1,'']]],
+  ['w25qxx_20link_20driver_20function_6',['w25qxx link driver function',['../group__w25qxx__link__driver.html',1,'']]],
+  ['w25qxx_20test_20driver_20function_7',['w25qxx test driver function',['../group__w25qxx__test__driver.html',1,'']]]
+];
diff --git a/doc/html/search/mag.svg b/doc/html/search/mag.svg
new file mode 100644
index 0000000..ffb6cf0
--- /dev/null
+++ b/doc/html/search/mag.svg
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "https://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   viewBox="0 0 20 19"
+   height="19"
+   width="20"
+   id="svg2"
+   version="1.1">
+  <defs
+     id="defs6" />
+  <circle
+     r="3.5"
+     cy="8.5"
+     cx="5.5"
+     id="path4611"
+     style="fill:#000000;fill-opacity:0;stroke:#656565;stroke-width:1.4;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none" />
+  <path
+     id="path4630"
+     d="m 8.1085854,11.109059 2.7823556,2.782356"
+     style="fill:none;stroke:#656565;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+</svg>
diff --git a/doc/html/search/mag_d.svg b/doc/html/search/mag_d.svg
new file mode 100644
index 0000000..4122773
--- /dev/null
+++ b/doc/html/search/mag_d.svg
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "https://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   viewBox="0 0 20 19"
+   height="19"
+   width="20"
+   id="svg2"
+   version="1.1">
+  <defs
+     id="defs6" />
+  <circle
+     r="3.5"
+     cy="8.5"
+     cx="5.5"
+     id="path4611"
+     style="fill:#000000;fill-opacity:0;stroke:#C5C5C5;stroke-width:1.4;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none" />
+  <path
+     id="path4630"
+     d="m 8.1085854,11.109059 2.7823556,2.782356"
+     style="fill:none;stroke:#C5C5C5;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+</svg>
diff --git a/doc/html/search/mag_sel.svg b/doc/html/search/mag_sel.svg
index 03626f6..553dba8 100644
--- a/doc/html/search/mag_sel.svg
+++ b/doc/html/search/mag_sel.svg
@@ -1,59 +1,17 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <!-- Created with Inkscape (http://www.inkscape.org/) -->
-
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "https://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
 <svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
    xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
    version="1.1"
    id="svg2"
    width="20"
    height="19"
    viewBox="0 0 20 19"
-   sodipodi:docname="mag_sel.svg"
-   inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)">
-  <metadata
-     id="metadata8">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
+  >
   <defs
      id="defs6" />
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="1920"
-     inkscape:window-height="2096"
-     id="namedview4"
-     showgrid="false"
-     fit-margin-top="0"
-     fit-margin-left="0"
-     fit-margin-right="0"
-     fit-margin-bottom="0"
-     inkscape:zoom="32"
-     inkscape:cx="5.9792688"
-     inkscape:cy="1.1436277"
-     inkscape:window-x="1920"
-     inkscape:window-y="27"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg2" />
   <circle
      style="fill:#000000;fill-opacity:0;stroke:#656565;stroke-width:1.4;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
      id="path4611"
@@ -64,11 +22,10 @@
      style="fill:#656565;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
      d="M 11,7 13.5,10 16,7 Z"
      id="path4609"
-     inkscape:connector-curvature="0"
-     sodipodi:nodetypes="cccc" />
+     />
   <path
      style="fill:none;stroke:#656565;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
      d="m 8.1085854,11.109059 2.7823556,2.782356"
      id="path4630"
-     inkscape:connector-curvature="0" />
+     />
 </svg>
diff --git a/doc/html/search/mag_seld.svg b/doc/html/search/mag_seld.svg
new file mode 100644
index 0000000..c906f84
--- /dev/null
+++ b/doc/html/search/mag_seld.svg
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "https://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.1"
+   id="svg2"
+   width="20"
+   height="19"
+   viewBox="0 0 20 19"
+  >
+  <defs
+     id="defs6" />
+  <circle
+     style="fill:#000000;fill-opacity:0;stroke:#c5C5C5;stroke-width:1.4;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
+     id="path4611"
+     cx="5.5"
+     cy="8.5"
+     r="3.5" />
+  <path
+     style="fill:#c5C5C5;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+     d="M 11,7 13.5,10 16,7 Z"
+     id="path4609"
+     />
+  <path
+     style="fill:none;stroke:#c5C5C5;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+     d="m 8.1085854,11.109059 2.7823556,2.782356"
+     id="path4630"
+     />
+</svg>
diff --git a/doc/html/search/pages_0.js b/doc/html/search/pages_0.js
index 67579df..5dd9040 100644
--- a/doc/html/search/pages_0.js
+++ b/doc/html/search/pages_0.js
@@ -1,4 +1,4 @@
 var searchData=
 [
-  ['libdriver_20w25qxx_575',['LibDriver W25QXX',['../index.html',1,'']]]
+  ['libdriver_20w25qxx_0',['LibDriver W25QXX',['../index.html',1,'']]]
 ];
diff --git a/doc/html/search/pages_1.js b/doc/html/search/pages_1.js
new file mode 100644
index 0000000..5412124
--- /dev/null
+++ b/doc/html/search/pages_1.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['w25qxx_0',['LibDriver W25QXX',['../index.html',1,'']]]
+];
diff --git a/doc/html/search/search.css b/doc/html/search/search.css
index 9074198..19f76f9 100644
--- a/doc/html/search/search.css
+++ b/doc/html/search/search.css
@@ -1,10 +1,33 @@
-/*---------------- Search Box */
+/*---------------- Search Box positioning */
+
+#main-menu > li:last-child {
+    /* This <li> object is the parent of the search bar */
+    display: flex;
+    justify-content: center;
+    align-items: center;
+    height: 36px;
+    margin-right: 1em;
+}
+
+/*---------------- Search box styling */
+
+.SRPage * {
+    font-weight: normal;
+    line-height: normal;
+}
+
+dark-mode-toggle {
+    margin-left: 5px;
+    display: flex;
+    float: right;
+}
 
 #MSearchBox {
+    display: inline-block;
     white-space : nowrap;
-    background: white;
+    background: var(--search-background-color);
     border-radius: 0.65em;
-    box-shadow: inset 0.5px 0.5px 3px 0px #555;
+    box-shadow: var(--search-box-shadow);
     z-index: 102;
 }
 
@@ -17,28 +40,47 @@
 #MSearchSelect {
     display: inline-block;
     vertical-align: middle;
-    height: 1.4em;
-    padding: 0 0 0 0.3em;
-    margin: 0;
+    width: 20px;
+    height: 19px;
+    background-image: var(--search-magnification-select-image);
+    margin: 0 0 0 0.3em;
+    padding: 0;
+}
+
+#MSearchSelectExt {
+    display: inline-block;
+    vertical-align: middle;
+    width: 10px;
+    height: 19px;
+    background-image: var(--search-magnification-image);
+    margin: 0 0 0 0.5em;
+    padding: 0;
 }
 
+
 #MSearchField {
     display: inline-block;
     vertical-align: middle;
     width: 7.5em;
-    height: 1.1em;
+    height: 19px;
     margin: 0 0.15em;
     padding: 0;
     line-height: 1em;
     border:none;
-    color: #909090;
+    color: var(--search-foreground-color);
     outline: none;
-    font-family: Arial, Verdana, sans-serif;
+    font-family: var(--font-family-search);
     -webkit-border-radius: 0px;
     border-radius: 0px;
     background: none;
 }
 
+@media(hover: none) {
+    /* to avoid zooming on iOS */
+    #MSearchField {
+        font-size: 16px;
+    }
+}
 
 #MSearchBox .right {
     display: inline-block;
@@ -59,23 +101,15 @@
 }
 
 #MSearchCloseImg {
-    height: 1.4em;
     padding: 0.3em;
     margin: 0;
 }
 
 .MSearchBoxActive #MSearchField {
-    color: #000000;
+    color: var(--search-active-color);
 }
 
-#main-menu > li:last-child {
-    /* This <li> object is the parent of the search bar */
-    display: flex;
-    justify-content: center;
-    align-items: center;
-    height: 36px;
-    margin-right: 1em;
-}
+
 
 /*---------------- Search filter selection */
 
@@ -83,8 +117,8 @@
     display: none;
     position: absolute;
     left: 0; top: 0;
-    border: 1px solid #90A5CE;
-    background-color: #F9FAFC;
+    border: 1px solid var(--search-filter-border-color);
+    background-color: var(--search-filter-background-color);
     z-index: 10001;
     padding-top: 4px;
     padding-bottom: 4px;
@@ -97,7 +131,7 @@
 }
 
 .SelectItem {
-    font: 8pt Arial, Verdana, sans-serif;
+    font: 8pt var(--font-family-search);
     padding-left:  2px;
     padding-right: 12px;
     border: 0px;
@@ -105,7 +139,7 @@
 
 span.SelectionMark {
     margin-right: 4px;
-    font-family: monospace;
+    font-family: var(--font-family-monospace);
     outline-style: none;
     text-decoration: none;
 }
@@ -113,7 +147,7 @@ span.SelectionMark {
 a.SelectItem {
     display: block;
     outline-style: none;
-    color: #000000; 
+    color: var(--search-filter-foreground-color);
     text-decoration: none;
     padding-left:   6px;
     padding-right: 12px;
@@ -121,14 +155,14 @@ a.SelectItem {
 
 a.SelectItem:focus,
 a.SelectItem:active {
-    color: #000000; 
+    color: var(--search-filter-foreground-color);
     outline-style: none;
     text-decoration: none;
 }
 
 a.SelectItem:hover {
-    color: #FFFFFF;
-    background-color: #3D578C;
+    color: var(--search-filter-highlight-text-color);
+    background-color: var(--search-filter-highlight-bg-color);
     outline-style: none;
     text-decoration: none;
     cursor: pointer;
@@ -138,7 +172,7 @@ a.SelectItem:hover {
 /*---------------- Search results window */
 
 iframe#MSearchResults {
-    width: 60ex;
+    /*width: 60ex;*/
     height: 15em;
 }
 
@@ -146,9 +180,12 @@ iframe#MSearchResults {
     display: none;
     position: absolute;
     left: 0; top: 0;
-    border: 1px solid #000;
-    background-color: #EEF1F7;
+    border: 1px solid var(--search-results-border-color);
+    background-color: var(--search-results-background-color);
     z-index:10000;
+    width: 300px;
+    height: 400px;
+    overflow: auto;
 }
 
 /* ----------------------------------- */
@@ -156,7 +193,6 @@ iframe#MSearchResults {
 
 #SRIndex {
     clear:both; 
-    padding-bottom: 15px;
 }
 
 .SREntry {
@@ -169,8 +205,9 @@ iframe#MSearchResults {
     padding: 1px 5px;
 }
 
-body.SRPage {
+div.SRPage {
     margin: 5px 2px;
+    background-color: var(--search-results-background-color);
 }
 
 .SRChildren {
@@ -182,17 +219,18 @@ body.SRPage {
 }
 
 .SRSymbol {
-    font-weight: bold; 
-    color: #425E97;
-    font-family: Arial, Verdana, sans-serif;
+    font-weight: bold;
+    color: var(--search-results-foreground-color);
+    font-family: var(--font-family-search);
     text-decoration: none;
     outline: none;
 }
 
 a.SRScope {
     display: block;
-    color: #425E97; 
-    font-family: Arial, Verdana, sans-serif;
+    color: var(--search-results-foreground-color);
+    font-family: var(--font-family-search);
+    font-size: 8pt;
     text-decoration: none;
     outline: none;
 }
@@ -204,14 +242,14 @@ a.SRScope:focus, a.SRScope:active {
 
 span.SRScope {
     padding-left: 4px;
-    font-family: Arial, Verdana, sans-serif;
+    font-family: var(--font-family-search);
 }
 
 .SRPage .SRStatus {
     padding: 2px 5px;
     font-size: 8pt;
     font-style: italic;
-    font-family: Arial, Verdana, sans-serif;
+    font-family: var(--font-family-search);
 }
 
 .SRResult {
@@ -225,14 +263,10 @@ div.searchresults {
 
 /*---------------- External search page results */
 
-.searchresult {
-    background-color: #F0F3F8;
-}
-
 .pages b {
    color: white;
    padding: 5px 5px 3px 5px;
-   background-image: url("../tab_a.png");
+   background-image: var(--nav-gradient-active-image-parent);
    background-repeat: repeat-x;
    text-shadow: 0 1px 1px #000000;
 }
diff --git a/doc/html/search/search.js b/doc/html/search/search.js
index fb226f7..6fd40c6 100644
--- a/doc/html/search/search.js
+++ b/doc/html/search/search.js
@@ -73,6 +73,8 @@ function getYPos(item)
   return y;
 }
 
+var searchResults = new SearchResults("searchResults");
+
 /* A class handling everything associated with the search panel.
 
    Parameters:
@@ -80,7 +82,7 @@ function getYPos(item)
           storing this instance.  Is needed to be able to set timeouts.
    resultPath - path to use for external files
 */
-function SearchBox(name, resultsPath, inFrame, label, extension)
+function SearchBox(name, resultsPath, extension)
 {
   if (!name || !resultsPath) {  alert("Missing parameters to SearchBox."); }
   if (!extension || extension == "") { extension = ".html"; }
@@ -96,8 +98,6 @@ function SearchBox(name, resultsPath, inFrame, label, extension)
   this.hideTimeout           = 0;
   this.searchIndex           = 0;
   this.searchActive          = false;
-  this.insideFrame           = inFrame;
-  this.searchLabel           = label;
   this.extension             = extension;
 
   // ----------- DOM Elements
@@ -136,30 +136,14 @@ function SearchBox(name, resultsPath, inFrame, label, extension)
     var searchSelectWindow = this.DOMSearchSelectWindow();
     var searchField        = this.DOMSearchSelect();
 
-    if (this.insideFrame)
-    {
-      var left = getXPos(searchField);
-      var top  = getYPos(searchField);
-      left += searchField.offsetWidth + 6;
-      top += searchField.offsetHeight;
-
-      // show search selection popup
-      searchSelectWindow.style.display='block';
-      left -= searchSelectWindow.offsetWidth;
-      searchSelectWindow.style.left =  left + 'px';
-      searchSelectWindow.style.top  =  top  + 'px';
-    }
-    else
-    {
-      var left = getXPos(searchField);
-      var top  = getYPos(searchField);
-      top += searchField.offsetHeight;
+    var left = getXPos(searchField);
+    var top  = getYPos(searchField);
+    top += searchField.offsetHeight;
 
-      // show search selection popup
-      searchSelectWindow.style.display='block';
-      searchSelectWindow.style.left =  left + 'px';
-      searchSelectWindow.style.top  =  top  + 'px';
-    }
+    // show search selection popup
+    searchSelectWindow.style.display='block';
+    searchSelectWindow.style.left =  left + 'px';
+    searchSelectWindow.style.top  =  top  + 'px';
 
     // stop selection hide timer
     if (this.hideTimeout)
@@ -172,7 +156,7 @@ function SearchBox(name, resultsPath, inFrame, label, extension)
 
   this.OnSearchSelectHide = function()
   {
-    this.hideTimeout = setTimeout(this.name +".CloseSelectionWindow()",
+    this.hideTimeout = setTimeout(this.CloseSelectionWindow.bind(this),
                                   this.closeSelectionTimeout);
   }
 
@@ -205,11 +189,13 @@ function SearchBox(name, resultsPath, inFrame, label, extension)
       }
       else
       {
-        window.frames.MSearchResults.postMessage("take_focus", "*");
+        var elem = searchResults.NavNext(0);
+        if (elem) elem.focus();
       }
     }
     else if (e.keyCode==27) // Escape out of the search field
     {
+      e.stopPropagation();
       this.DOMSearchField().blur();
       this.DOMPopupSearchResultsWindow().style.display = 'none';
       this.DOMSearchClose().style.display = 'none';
@@ -226,7 +212,7 @@ function SearchBox(name, resultsPath, inFrame, label, extension)
       if (searchValue != "") // non-empty search
       {
         // set timer for search update
-        this.keyTimeout = setTimeout(this.name + '.Search()',
+        this.keyTimeout = setTimeout(this.Search.bind(this),
                                      this.keyTimeoutLength);
       }
       else // empty search field
@@ -304,6 +290,7 @@ function SearchBox(name, resultsPath, inFrame, label, extension)
     }
     else if (e.keyCode==13 || e.keyCode==27)
     {
+      e.stopPropagation();
       this.OnSelectItem(this.searchIndex);
       this.CloseSelectionWindow();
       this.DOMSearchField().focus();
@@ -341,55 +328,70 @@ function SearchBox(name, resultsPath, inFrame, label, extension)
       idxChar = searchValue.substr(0, 2);
     }
 
-    var resultsPage;
-    var resultsPageWithSearch;
-    var hasResultsPage;
+    var jsFile;
 
     var idx = indexSectionsWithContent[this.searchIndex].indexOf(idxChar);
     if (idx!=-1)
     {
        var hexCode=idx.toString(16);
-       resultsPage = this.resultsPath + '/' + indexSectionNames[this.searchIndex] + '_' + hexCode + this.extension;
-       resultsPageWithSearch = resultsPage+'?'+escape(searchValue);
-       hasResultsPage = true;
+       jsFile = this.resultsPath + indexSectionNames[this.searchIndex] + '_' + hexCode + '.js';
     }
-    else // nothing available for this search term
-    {
-       resultsPage = this.resultsPath + '/nomatches' + this.extension;
-       resultsPageWithSearch = resultsPage;
-       hasResultsPage = false;
+
+    var loadJS = function(url, impl, loc){
+      var scriptTag = document.createElement('script');
+      scriptTag.src = url;
+      scriptTag.onload = impl;
+      scriptTag.onreadystatechange = impl;
+      loc.appendChild(scriptTag);
     }
 
-    window.frames.MSearchResults.location = resultsPageWithSearch;
     var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow();
+    var domSearchBox = this.DOMSearchBox();
+    var domPopupSearchResults = this.DOMPopupSearchResults();
+    var domSearchClose = this.DOMSearchClose();
+    var resultsPath = this.resultsPath;
+
+    var handleResults = function() {
+      document.getElementById("Loading").style.display="none";
+      if (typeof searchData !== 'undefined') {
+        createResults(resultsPath);
+        document.getElementById("NoMatches").style.display="none";
+      }
+ 
+      if (idx!=-1) {
+        searchResults.Search(searchValue);
+      } else { // no file with search results => force empty search results
+        searchResults.Search('====');
+      }
 
-    if (domPopupSearchResultsWindow.style.display!='block')
-    {
-       var domSearchBox = this.DOMSearchBox();
-       this.DOMSearchClose().style.display = 'inline-block';
-       if (this.insideFrame)
-       {
-         var domPopupSearchResults = this.DOMPopupSearchResults();
-         domPopupSearchResultsWindow.style.position = 'relative';
-         domPopupSearchResultsWindow.style.display  = 'block';
-         var width = document.body.clientWidth - 8; // the -8 is for IE :-(
-         domPopupSearchResultsWindow.style.width    = width + 'px';
-         domPopupSearchResults.style.width          = width + 'px';
-       }
-       else
-       {
-         var domPopupSearchResults = this.DOMPopupSearchResults();
-         var left = getXPos(domSearchBox) + 150; // domSearchBox.offsetWidth;
-         var top  = getYPos(domSearchBox) + 20;  // domSearchBox.offsetHeight + 1;
-         domPopupSearchResultsWindow.style.display = 'block';
-         left -= domPopupSearchResults.offsetWidth;
-         domPopupSearchResultsWindow.style.top     = top  + 'px';
-         domPopupSearchResultsWindow.style.left    = left + 'px';
-       }
+      if (domPopupSearchResultsWindow.style.display!='block')
+      {
+        domSearchClose.style.display = 'inline-block';
+        var left = getXPos(domSearchBox) + 150;
+        var top  = getYPos(domSearchBox) + 20;
+        domPopupSearchResultsWindow.style.display = 'block';
+        left -= domPopupSearchResults.offsetWidth;
+        var maxWidth  = document.body.clientWidth;
+        var maxHeight = document.body.clientHeight;
+        var width = 300;
+        if (left<10) left=10;
+        if (width+left+8>maxWidth) width=maxWidth-left-8;
+        var height = 400;
+        if (height+top+8>maxHeight) height=maxHeight-top-8;
+        domPopupSearchResultsWindow.style.top     = top  + 'px';
+        domPopupSearchResultsWindow.style.left    = left + 'px';
+        domPopupSearchResultsWindow.style.width   = width + 'px';
+        domPopupSearchResultsWindow.style.height  = height + 'px';
+      }
+    }
+
+    if (jsFile) {
+      loadJS(jsFile, handleResults, this.DOMPopupSearchResultsWindow());
+    } else {
+      handleResults();
     }
 
     this.lastSearchValue = searchValue;
-    this.lastResultsPage = resultsPage;
   }
 
   // -------- Activation Functions
@@ -403,22 +405,15 @@ function SearchBox(name, resultsPath, inFrame, label, extension)
        )
     {
       this.DOMSearchBox().className = 'MSearchBoxActive';
-
-      var searchField = this.DOMSearchField();
-
-      if (searchField.value == this.searchLabel) // clear "Search" term upon entry
-      {
-        searchField.value = '';
-        this.searchActive = true;
-      }
+      this.searchActive = true;
     }
     else if (!isActive) // directly remove the panel
     {
       this.DOMSearchBox().className = 'MSearchBoxInactive';
-      this.DOMSearchField().value   = this.searchLabel;
       this.searchActive             = false;
       this.lastSearchValue          = ''
       this.lastResultsPage          = '';
+      this.DOMSearchField().value   = '';
     }
   }
 }
@@ -647,7 +642,7 @@ function SearchResults(name)
         }
         else // return focus to search field
         {
-           parent.document.getElementById("MSearchField").focus();
+           document.getElementById("MSearchField").focus();
         }
       }
       else if (this.lastKey==40) // Down
@@ -677,8 +672,9 @@ function SearchResults(name)
       }
       else if (this.lastKey==27) // Escape
       {
-        parent.searchBox.CloseResultsWindow();
-        parent.document.getElementById("MSearchField").focus();
+        e.stopPropagation();
+        searchBox.CloseResultsWindow();
+        document.getElementById("MSearchField").focus();
       }
       else if (this.lastKey==13) // Enter
       {
@@ -720,8 +716,9 @@ function SearchResults(name)
       }
       else if (this.lastKey==27) // Escape
       {
-        parent.searchBox.CloseResultsWindow();
-        parent.document.getElementById("MSearchField").focus();
+        e.stopPropagation();
+        searchBox.CloseResultsWindow();
+        document.getElementById("MSearchField").focus();
       }
       else if (this.lastKey==13) // Enter
       {
@@ -744,9 +741,10 @@ function setClassAttr(elem,attr)
   elem.setAttribute('className',attr);
 }
 
-function createResults()
+function createResults(resultsPath)
 {
   var results = document.getElementById("SRResults");
+  results.innerHTML = '';
   for (var e=0; e<searchData.length; e++)
   {
     var id = searchData[e][0];
@@ -763,11 +761,16 @@ function createResults()
     srEntry.appendChild(srLink);
     if (searchData[e][1].length==2) // single result
     {
-      srLink.setAttribute('href',searchData[e][1][1][0]);
+      srLink.setAttribute('href',resultsPath+searchData[e][1][1][0]);
+      srLink.setAttribute('onclick','searchBox.CloseResultsWindow()');
       if (searchData[e][1][1][1])
       {
        srLink.setAttribute('target','_parent');
       }
+      else
+      {
+       srLink.setAttribute('target','_blank');
+      }
       var srScope = document.createElement('span');
       setClassAttr(srScope,'SRScope');
       srScope.innerHTML = searchData[e][1][1][2];
@@ -784,11 +787,16 @@ function createResults()
         srChild.setAttribute('id','Item'+e+'_c'+c);
         setKeyActions(srChild,'return searchResults.NavChild(event,'+e+','+c+')');
         setClassAttr(srChild,'SRScope');
-        srChild.setAttribute('href',searchData[e][1][c+1][0]);
+        srChild.setAttribute('href',resultsPath+searchData[e][1][c+1][0]);
+        srChild.setAttribute('onclick','searchBox.CloseResultsWindow()');
         if (searchData[e][1][c+1][1])
         {
          srChild.setAttribute('target','_parent');
         }
+        else
+        {
+         srChild.setAttribute('target','_blank');
+        }
         srChild.innerHTML = searchData[e][1][c+1][2];
         srChildren.appendChild(srChild);
       }
@@ -802,6 +810,7 @@ function createResults()
 function init_search()
 {
   var results = document.getElementById("MSearchSelectWindow");
+  results.tabIndex=0;
   for (var key in indexSectionLabels)
   {
     var link = document.createElement('a');
@@ -812,5 +821,20 @@ function init_search()
     results.appendChild(link);
   }
   searchBox.OnSelectItem(0);
+
+  var input = document.getElementById("MSearchSelect");
+  var searchSelectWindow = document.getElementById("MSearchSelectWindow");
+  input.tabIndex=0;
+  input.addEventListener("keydown", function(event) {
+    if (event.keyCode==13 || event.keyCode==40) {
+      event.preventDefault();
+      if (searchSelectWindow.style.display == 'block') {
+        searchBox.CloseSelectionWindow();
+      } else {
+        searchBox.OnSearchSelectShow();
+        searchBox.DOMSearchSelectWindow().focus();
+      }
+    }
+  });
 }
 /* @license-end */
diff --git a/doc/html/search/searchdata.js b/doc/html/search/searchdata.js
index 3cf0e64..37a7ab5 100644
--- a/doc/html/search/searchdata.js
+++ b/doc/html/search/searchdata.js
@@ -1,6 +1,6 @@
 var indexSectionsWithContent =
 {
-  0: "abcdilmpstw",
+  0: "abcdefilmpstw",
   1: "w",
   2: "dm",
   3: "w",
@@ -9,8 +9,8 @@ var indexSectionsWithContent =
   6: "w",
   7: "w",
   8: "cdmstw",
-  9: "w",
-  10: "l"
+  9: "abdefiltw",
+  10: "lw"
 };
 
 var indexSectionNames =
diff --git a/doc/html/search/typedefs_0.js b/doc/html/search/typedefs_0.js
index 9ef0d7a..bf83893 100644
--- a/doc/html/search/typedefs_0.js
+++ b/doc/html/search/typedefs_0.js
@@ -1,5 +1,5 @@
 var searchData=
 [
-  ['w25qxx_5fhandle_5ft_450',['w25qxx_handle_t',['../group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be',1,'driver_w25qxx.h']]],
-  ['w25qxx_5finfo_5ft_451',['w25qxx_info_t',['../group__w25qxx__basic__driver.html#ga601d841ddd0ff8ad3ab52e07c679ef19',1,'driver_w25qxx.h']]]
+  ['w25qxx_5fhandle_5ft_0',['w25qxx_handle_t',['../group__w25qxx__basic__driver.html#ga56d8a7b5f8b7eaed8df0b6dc90c266be',1,'driver_w25qxx.h']]],
+  ['w25qxx_5finfo_5ft_1',['w25qxx_info_t',['../group__w25qxx__basic__driver.html#ga601d841ddd0ff8ad3ab52e07c679ef19',1,'driver_w25qxx.h']]]
 ];
diff --git a/doc/html/search/variables_0.js b/doc/html/search/variables_0.js
index e104fa3..ed42faa 100644
--- a/doc/html/search/variables_0.js
+++ b/doc/html/search/variables_0.js
@@ -1,4 +1,4 @@
 var searchData=
 [
-  ['address_5fmode_426',['address_mode',['../structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729',1,'w25qxx_handle_s']]]
+  ['address_5fmode_0',['address_mode',['../structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729',1,'w25qxx_handle_s']]]
 ];
diff --git a/doc/html/search/variables_1.js b/doc/html/search/variables_1.js
index cc480be..920fcbf 100644
--- a/doc/html/search/variables_1.js
+++ b/doc/html/search/variables_1.js
@@ -1,5 +1,5 @@
 var searchData=
 [
-  ['buf_427',['buf',['../structw25qxx__handle__s.html#a2121914a1858618e9216fa2daf0a42a2',1,'w25qxx_handle_s']]],
-  ['buf_5f4k_428',['buf_4k',['../structw25qxx__handle__s.html#ac80aa2927adf500634749513e88c474b',1,'w25qxx_handle_s']]]
+  ['buf_0',['buf',['../structw25qxx__handle__s.html#a2121914a1858618e9216fa2daf0a42a2',1,'w25qxx_handle_s']]],
+  ['buf_5f4k_1',['buf_4k',['../structw25qxx__handle__s.html#ac80aa2927adf500634749513e88c474b',1,'w25qxx_handle_s']]]
 ];
diff --git a/doc/html/search/variables_2.js b/doc/html/search/variables_2.js
index df64999..b39a48a 100644
--- a/doc/html/search/variables_2.js
+++ b/doc/html/search/variables_2.js
@@ -1,4 +1,4 @@
 var searchData=
 [
-  ['chip_5fname_429',['chip_name',['../structw25qxx__info__s.html#af890958c72bd715cc6454a10dc846ae6',1,'w25qxx_info_s']]]
+  ['chip_5fname_0',['chip_name',['../structw25qxx__info__s.html#af890958c72bd715cc6454a10dc846ae6',1,'w25qxx_info_s']]]
 ];
diff --git a/doc/html/search/variables_3.js b/doc/html/search/variables_3.js
index 39a8eed..16d7caa 100644
--- a/doc/html/search/variables_3.js
+++ b/doc/html/search/variables_3.js
@@ -1,9 +1,9 @@
 var searchData=
 [
-  ['debug_5fprint_430',['debug_print',['../structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b',1,'w25qxx_handle_s']]],
-  ['delay_5fms_431',['delay_ms',['../structw25qxx__handle__s.html#a406c9433252b7366de417b7a60915c81',1,'w25qxx_handle_s']]],
-  ['delay_5fus_432',['delay_us',['../structw25qxx__handle__s.html#a97ffc4fce945527bd6ab25a3596caef7',1,'w25qxx_handle_s']]],
-  ['driver_5fversion_433',['driver_version',['../structw25qxx__info__s.html#a41b0bd442708b70d252c50b92c75265a',1,'w25qxx_info_s']]],
-  ['dual_5fquad_5fspi_5fenable_434',['dual_quad_spi_enable',['../structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7',1,'w25qxx_handle_s']]],
-  ['dummy_435',['dummy',['../structw25qxx__handle__s.html#aff7b59f569ec689a7580bd6911daafd5',1,'w25qxx_handle_s']]]
+  ['debug_5fprint_0',['debug_print',['../structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b',1,'w25qxx_handle_s']]],
+  ['delay_5fms_1',['delay_ms',['../structw25qxx__handle__s.html#a406c9433252b7366de417b7a60915c81',1,'w25qxx_handle_s']]],
+  ['delay_5fus_2',['delay_us',['../structw25qxx__handle__s.html#a97ffc4fce945527bd6ab25a3596caef7',1,'w25qxx_handle_s']]],
+  ['driver_5fversion_3',['driver_version',['../structw25qxx__info__s.html#a41b0bd442708b70d252c50b92c75265a',1,'w25qxx_info_s']]],
+  ['dual_5fquad_5fspi_5fenable_4',['dual_quad_spi_enable',['../structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7',1,'w25qxx_handle_s']]],
+  ['dummy_5',['dummy',['../structw25qxx__handle__s.html#aff7b59f569ec689a7580bd6911daafd5',1,'w25qxx_handle_s']]]
 ];
diff --git a/doc/html/search/variables_4.js b/doc/html/search/variables_4.js
index f386269..dd9eb5b 100644
--- a/doc/html/search/variables_4.js
+++ b/doc/html/search/variables_4.js
@@ -1,5 +1,5 @@
 var searchData=
 [
-  ['inited_436',['inited',['../structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f',1,'w25qxx_handle_s']]],
-  ['interface_437',['interface',['../structw25qxx__info__s.html#a5778305279cae46b2ecf862e97f73600',1,'w25qxx_info_s']]]
+  ['inited_0',['inited',['../structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f',1,'w25qxx_handle_s']]],
+  ['interface_1',['interface',['../structw25qxx__info__s.html#a5778305279cae46b2ecf862e97f73600',1,'w25qxx_info_s']]]
 ];
diff --git a/doc/html/search/variables_5.js b/doc/html/search/variables_5.js
index 32f973f..a79b588 100644
--- a/doc/html/search/variables_5.js
+++ b/doc/html/search/variables_5.js
@@ -1,5 +1,5 @@
 var searchData=
 [
-  ['manufacturer_5fname_438',['manufacturer_name',['../structw25qxx__info__s.html#ad25285dbf810c90f8eaf3fcef6f2b2ea',1,'w25qxx_info_s']]],
-  ['max_5fcurrent_5fma_439',['max_current_ma',['../structw25qxx__info__s.html#a9db82802561bf22d799b03a345f1d1dc',1,'w25qxx_info_s']]]
+  ['manufacturer_5fname_0',['manufacturer_name',['../structw25qxx__info__s.html#ad25285dbf810c90f8eaf3fcef6f2b2ea',1,'w25qxx_info_s']]],
+  ['max_5fcurrent_5fma_1',['max_current_ma',['../structw25qxx__info__s.html#a9db82802561bf22d799b03a345f1d1dc',1,'w25qxx_info_s']]]
 ];
diff --git a/doc/html/search/variables_6.js b/doc/html/search/variables_6.js
index 23639eb..22d1b3e 100644
--- a/doc/html/search/variables_6.js
+++ b/doc/html/search/variables_6.js
@@ -1,4 +1,4 @@
 var searchData=
 [
-  ['param_440',['param',['../structw25qxx__handle__s.html#a3d28993689552e18d554dc0644efcf16',1,'w25qxx_handle_s']]]
+  ['param_0',['param',['../structw25qxx__handle__s.html#a3d28993689552e18d554dc0644efcf16',1,'w25qxx_handle_s']]]
 ];
diff --git a/doc/html/search/variables_7.js b/doc/html/search/variables_7.js
index bddb241..d1a451b 100644
--- a/doc/html/search/variables_7.js
+++ b/doc/html/search/variables_7.js
@@ -1,9 +1,9 @@
 var searchData=
 [
-  ['spi_5fqspi_441',['spi_qspi',['../structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70',1,'w25qxx_handle_s']]],
-  ['spi_5fqspi_5fdeinit_442',['spi_qspi_deinit',['../structw25qxx__handle__s.html#a4568e23228174b7d32678d9a96d2420c',1,'w25qxx_handle_s']]],
-  ['spi_5fqspi_5finit_443',['spi_qspi_init',['../structw25qxx__handle__s.html#aec834df46e5185868dfdcc6fcec2e801',1,'w25qxx_handle_s']]],
-  ['spi_5fqspi_5fwrite_5fread_444',['spi_qspi_write_read',['../structw25qxx__handle__s.html#a2d39cde883403779e3da9dd39c32bec5',1,'w25qxx_handle_s']]],
-  ['supply_5fvoltage_5fmax_5fv_445',['supply_voltage_max_v',['../structw25qxx__info__s.html#a3d2b12bcac7a85ea8646bff9debe8660',1,'w25qxx_info_s']]],
-  ['supply_5fvoltage_5fmin_5fv_446',['supply_voltage_min_v',['../structw25qxx__info__s.html#ad8bde6ddadaf43d951e62f3befb9d35a',1,'w25qxx_info_s']]]
+  ['spi_5fqspi_0',['spi_qspi',['../structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70',1,'w25qxx_handle_s']]],
+  ['spi_5fqspi_5fdeinit_1',['spi_qspi_deinit',['../structw25qxx__handle__s.html#a4568e23228174b7d32678d9a96d2420c',1,'w25qxx_handle_s']]],
+  ['spi_5fqspi_5finit_2',['spi_qspi_init',['../structw25qxx__handle__s.html#aec834df46e5185868dfdcc6fcec2e801',1,'w25qxx_handle_s']]],
+  ['spi_5fqspi_5fwrite_5fread_3',['spi_qspi_write_read',['../structw25qxx__handle__s.html#a2d39cde883403779e3da9dd39c32bec5',1,'w25qxx_handle_s']]],
+  ['supply_5fvoltage_5fmax_5fv_4',['supply_voltage_max_v',['../structw25qxx__info__s.html#a3d2b12bcac7a85ea8646bff9debe8660',1,'w25qxx_info_s']]],
+  ['supply_5fvoltage_5fmin_5fv_5',['supply_voltage_min_v',['../structw25qxx__info__s.html#ad8bde6ddadaf43d951e62f3befb9d35a',1,'w25qxx_info_s']]]
 ];
diff --git a/doc/html/search/variables_8.js b/doc/html/search/variables_8.js
index 27e98da..b74cc34 100644
--- a/doc/html/search/variables_8.js
+++ b/doc/html/search/variables_8.js
@@ -1,6 +1,6 @@
 var searchData=
 [
-  ['temperature_5fmax_447',['temperature_max',['../structw25qxx__info__s.html#a3366a5dce9b829e03c3d321c2b4df3f6',1,'w25qxx_info_s']]],
-  ['temperature_5fmin_448',['temperature_min',['../structw25qxx__info__s.html#a8f9dbe66ac0b66ebae0a36fcb4ba368e',1,'w25qxx_info_s']]],
-  ['type_449',['type',['../structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679',1,'w25qxx_handle_s']]]
+  ['temperature_5fmax_0',['temperature_max',['../structw25qxx__info__s.html#a3366a5dce9b829e03c3d321c2b4df3f6',1,'w25qxx_info_s']]],
+  ['temperature_5fmin_1',['temperature_min',['../structw25qxx__info__s.html#a8f9dbe66ac0b66ebae0a36fcb4ba368e',1,'w25qxx_info_s']]],
+  ['type_2',['type',['../structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679',1,'w25qxx_handle_s']]]
 ];
diff --git a/doc/html/splitbard.png b/doc/html/splitbard.png
new file mode 100644
index 0000000..8367416
Binary files /dev/null and b/doc/html/splitbard.png differ
diff --git a/doc/html/structw25qxx__handle__s.html b/doc/html/structw25qxx__handle__s.html
index 0303ffe..9db14b2 100644
--- a/doc/html/structw25qxx__handle__s.html
+++ b/doc/html/structw25qxx__handle__s.html
@@ -1,9 +1,9 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.8"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>LibDriver W25QXX: w25qxx_handle_s Struct Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -23,11 +23,10 @@
 <div id="titlearea">
 <table cellspacing="0" cellpadding="0">
  <tbody>
- <tr style="height: 56px;">
+ <tr id="projectrow">
   <td id="projectlogo"><img alt="Logo" src="doxygen.png"/></td>
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">LibDriver W25QXX
-   &#160;<span id="projectnumber">1.0.0</span>
+  <td id="projectalign">
+   <div id="projectname">LibDriver W25QXX<span id="projectnumber">&#160;1.0.0</span>
    </div>
    <div id="projectbrief">W25QXX full function driver</div>
   </td>
@@ -36,21 +35,22 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.8 -->
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search/",'.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
 <script type="text/javascript" src="menu.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(function() {
   initMenu('',true,false,'search.php','Search');
   $(document).ready(function() { init_search(); });
 });
-/* @license-end */</script>
+/* @license-end */
+</script>
 <div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
@@ -64,7 +64,7 @@
   </div>
 </div>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(document).ready(function(){initNavTree('structw25qxx__handle__s.html',''); initResizable(); });
 /* @license-end */
 </script>
@@ -78,16 +78,22 @@
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
 </div>
 
 <div class="header">
   <div class="summary">
 <a href="#pub-attribs">Data Fields</a>  </div>
-  <div class="headertitle">
-<div class="title">w25qxx_handle_s Struct Reference<div class="ingroups"><a class="el" href="group__w25qxx__driver.html">w25qxx driver function</a> &raquo; <a class="el" href="group__w25qxx__basic__driver.html">w25qxx basic driver function</a></div></div>  </div>
+  <div class="headertitle"><div class="title">w25qxx_handle_s Struct Reference<div class="ingroups"><a class="el" href="group__w25qxx__driver.html">w25qxx driver function</a> &raquo; <a class="el" href="group__w25qxx__basic__driver.html">w25qxx basic driver function</a></div></div></div>
 </div><!--header-->
 <div class="contents">
 
@@ -96,37 +102,37 @@
 
 <p><code>#include &lt;<a class="el" href="driver__w25qxx_8h_source.html">driver_w25qxx.h</a>&gt;</code></p>
 <table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-attribs" name="pub-attribs"></a>
 Data Fields</h2></td></tr>
-<tr class="memitem:aec834df46e5185868dfdcc6fcec2e801"><td class="memItemLeft" align="right" valign="top">uint8_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structw25qxx__handle__s.html#aec834df46e5185868dfdcc6fcec2e801">spi_qspi_init</a> )(void)</td></tr>
+<tr class="memitem:aec834df46e5185868dfdcc6fcec2e801" id="r_aec834df46e5185868dfdcc6fcec2e801"><td class="memItemLeft" align="right" valign="top">uint8_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structw25qxx__handle__s.html#aec834df46e5185868dfdcc6fcec2e801">spi_qspi_init</a> )(void)</td></tr>
 <tr class="separator:aec834df46e5185868dfdcc6fcec2e801"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a4568e23228174b7d32678d9a96d2420c"><td class="memItemLeft" align="right" valign="top">uint8_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structw25qxx__handle__s.html#a4568e23228174b7d32678d9a96d2420c">spi_qspi_deinit</a> )(void)</td></tr>
+<tr class="memitem:a4568e23228174b7d32678d9a96d2420c" id="r_a4568e23228174b7d32678d9a96d2420c"><td class="memItemLeft" align="right" valign="top">uint8_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structw25qxx__handle__s.html#a4568e23228174b7d32678d9a96d2420c">spi_qspi_deinit</a> )(void)</td></tr>
 <tr class="separator:a4568e23228174b7d32678d9a96d2420c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a2d39cde883403779e3da9dd39c32bec5"><td class="memItemLeft" align="right" valign="top">uint8_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structw25qxx__handle__s.html#a2d39cde883403779e3da9dd39c32bec5">spi_qspi_write_read</a> )(uint8_t instruction, uint8_t instruction_line, uint32_t address, uint8_t address_line, uint8_t address_len, uint32_t alternate, uint8_t alternate_line, uint8_t alternate_len, uint8_t <a class="el" href="structw25qxx__handle__s.html#aff7b59f569ec689a7580bd6911daafd5">dummy</a>, uint8_t *in_buf, uint32_t in_len, uint8_t *out_buf, uint32_t out_len, uint8_t data_line)</td></tr>
+<tr class="memitem:a2d39cde883403779e3da9dd39c32bec5" id="r_a2d39cde883403779e3da9dd39c32bec5"><td class="memItemLeft" align="right" valign="top">uint8_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structw25qxx__handle__s.html#a2d39cde883403779e3da9dd39c32bec5">spi_qspi_write_read</a> )(uint8_t instruction, uint8_t instruction_line, uint32_t address, uint8_t address_line, uint8_t address_len, uint32_t alternate, uint8_t alternate_line, uint8_t alternate_len, uint8_t <a class="el" href="structw25qxx__handle__s.html#aff7b59f569ec689a7580bd6911daafd5">dummy</a>, uint8_t *in_buf, uint32_t in_len, uint8_t *out_buf, uint32_t out_len, uint8_t data_line)</td></tr>
 <tr class="separator:a2d39cde883403779e3da9dd39c32bec5"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a406c9433252b7366de417b7a60915c81"><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structw25qxx__handle__s.html#a406c9433252b7366de417b7a60915c81">delay_ms</a> )(uint32_t ms)</td></tr>
+<tr class="memitem:a406c9433252b7366de417b7a60915c81" id="r_a406c9433252b7366de417b7a60915c81"><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structw25qxx__handle__s.html#a406c9433252b7366de417b7a60915c81">delay_ms</a> )(uint32_t ms)</td></tr>
 <tr class="separator:a406c9433252b7366de417b7a60915c81"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a97ffc4fce945527bd6ab25a3596caef7"><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structw25qxx__handle__s.html#a97ffc4fce945527bd6ab25a3596caef7">delay_us</a> )(uint32_t us)</td></tr>
+<tr class="memitem:a97ffc4fce945527bd6ab25a3596caef7" id="r_a97ffc4fce945527bd6ab25a3596caef7"><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structw25qxx__handle__s.html#a97ffc4fce945527bd6ab25a3596caef7">delay_us</a> )(uint32_t us)</td></tr>
 <tr class="separator:a97ffc4fce945527bd6ab25a3596caef7"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a769d5b3a6c14790a0e126e8fe70b384b"><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a> )(const char *const fmt,...)</td></tr>
+<tr class="memitem:a769d5b3a6c14790a0e126e8fe70b384b" id="r_a769d5b3a6c14790a0e126e8fe70b384b"><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structw25qxx__handle__s.html#a769d5b3a6c14790a0e126e8fe70b384b">debug_print</a> )(const char *const fmt,...)</td></tr>
 <tr class="separator:a769d5b3a6c14790a0e126e8fe70b384b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a19bedf28d2b9748f6a62d9ae93f4e68f"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">inited</a></td></tr>
+<tr class="memitem:a19bedf28d2b9748f6a62d9ae93f4e68f" id="r_a19bedf28d2b9748f6a62d9ae93f4e68f"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structw25qxx__handle__s.html#a19bedf28d2b9748f6a62d9ae93f4e68f">inited</a></td></tr>
 <tr class="separator:a19bedf28d2b9748f6a62d9ae93f4e68f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:acb5cfd209ba75c853d03f701e7f91679"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a></td></tr>
+<tr class="memitem:acb5cfd209ba75c853d03f701e7f91679" id="r_acb5cfd209ba75c853d03f701e7f91679"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structw25qxx__handle__s.html#acb5cfd209ba75c853d03f701e7f91679">type</a></td></tr>
 <tr class="separator:acb5cfd209ba75c853d03f701e7f91679"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a5aafa09a37ea9bdb7d3788ff5d39c729"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a></td></tr>
+<tr class="memitem:a5aafa09a37ea9bdb7d3788ff5d39c729" id="r_a5aafa09a37ea9bdb7d3788ff5d39c729"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structw25qxx__handle__s.html#a5aafa09a37ea9bdb7d3788ff5d39c729">address_mode</a></td></tr>
 <tr class="separator:a5aafa09a37ea9bdb7d3788ff5d39c729"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a3d28993689552e18d554dc0644efcf16"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structw25qxx__handle__s.html#a3d28993689552e18d554dc0644efcf16">param</a></td></tr>
+<tr class="memitem:a3d28993689552e18d554dc0644efcf16" id="r_a3d28993689552e18d554dc0644efcf16"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structw25qxx__handle__s.html#a3d28993689552e18d554dc0644efcf16">param</a></td></tr>
 <tr class="separator:a3d28993689552e18d554dc0644efcf16"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aff7b59f569ec689a7580bd6911daafd5"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structw25qxx__handle__s.html#aff7b59f569ec689a7580bd6911daafd5">dummy</a></td></tr>
+<tr class="memitem:aff7b59f569ec689a7580bd6911daafd5" id="r_aff7b59f569ec689a7580bd6911daafd5"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structw25qxx__handle__s.html#aff7b59f569ec689a7580bd6911daafd5">dummy</a></td></tr>
 <tr class="separator:aff7b59f569ec689a7580bd6911daafd5"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ac2bd5f4f7f52f548fd421c9eedbce1c7"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">dual_quad_spi_enable</a></td></tr>
+<tr class="memitem:ac2bd5f4f7f52f548fd421c9eedbce1c7" id="r_ac2bd5f4f7f52f548fd421c9eedbce1c7"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structw25qxx__handle__s.html#ac2bd5f4f7f52f548fd421c9eedbce1c7">dual_quad_spi_enable</a></td></tr>
 <tr class="separator:ac2bd5f4f7f52f548fd421c9eedbce1c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a9bdb5522ed967c80572351dd53dafe70"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a></td></tr>
+<tr class="memitem:a9bdb5522ed967c80572351dd53dafe70" id="r_a9bdb5522ed967c80572351dd53dafe70"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structw25qxx__handle__s.html#a9bdb5522ed967c80572351dd53dafe70">spi_qspi</a></td></tr>
 <tr class="separator:a9bdb5522ed967c80572351dd53dafe70"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a2121914a1858618e9216fa2daf0a42a2"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structw25qxx__handle__s.html#a2121914a1858618e9216fa2daf0a42a2">buf</a> [256+6]</td></tr>
+<tr class="memitem:a2121914a1858618e9216fa2daf0a42a2" id="r_a2121914a1858618e9216fa2daf0a42a2"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structw25qxx__handle__s.html#a2121914a1858618e9216fa2daf0a42a2">buf</a> [256+6]</td></tr>
 <tr class="separator:a2121914a1858618e9216fa2daf0a42a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ac80aa2927adf500634749513e88c474b"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structw25qxx__handle__s.html#ac80aa2927adf500634749513e88c474b">buf_4k</a> [4096+1]</td></tr>
+<tr class="memitem:ac80aa2927adf500634749513e88c474b" id="r_ac80aa2927adf500634749513e88c474b"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structw25qxx__handle__s.html#ac80aa2927adf500634749513e88c474b">buf_4k</a> [4096+1]</td></tr>
 <tr class="separator:ac80aa2927adf500634749513e88c474b"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
@@ -134,8 +140,8 @@
 
 <p class="definition">Definition at line <a class="el" href="driver__w25qxx_8h_source.html#l00209">209</a> of file <a class="el" href="driver__w25qxx_8h_source.html">driver_w25qxx.h</a>.</p>
 </div><h2 class="groupheader">Field Documentation</h2>
-<a id="a5aafa09a37ea9bdb7d3788ff5d39c729"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a5aafa09a37ea9bdb7d3788ff5d39c729">&#9670;&nbsp;</a></span>address_mode</h2>
+<a id="a5aafa09a37ea9bdb7d3788ff5d39c729" name="a5aafa09a37ea9bdb7d3788ff5d39c729"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a5aafa09a37ea9bdb7d3788ff5d39c729">&#9670;&#160;</a></span>address_mode</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -151,8 +157,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#a5aafa09a37ea9bdb7d3788ff
 
 </div>
 </div>
-<a id="a2121914a1858618e9216fa2daf0a42a2"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a2121914a1858618e9216fa2daf0a42a2">&#9670;&nbsp;</a></span>buf</h2>
+<a id="a2121914a1858618e9216fa2daf0a42a2" name="a2121914a1858618e9216fa2daf0a42a2"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a2121914a1858618e9216fa2daf0a42a2">&#9670;&#160;</a></span>buf</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -168,8 +174,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#a2121914a1858618e9216fa2d
 
 </div>
 </div>
-<a id="ac80aa2927adf500634749513e88c474b"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ac80aa2927adf500634749513e88c474b">&#9670;&nbsp;</a></span>buf_4k</h2>
+<a id="ac80aa2927adf500634749513e88c474b" name="ac80aa2927adf500634749513e88c474b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ac80aa2927adf500634749513e88c474b">&#9670;&#160;</a></span>buf_4k</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -185,8 +191,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#ac80aa2927adf500634749513
 
 </div>
 </div>
-<a id="a769d5b3a6c14790a0e126e8fe70b384b"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a769d5b3a6c14790a0e126e8fe70b384b">&#9670;&nbsp;</a></span>debug_print</h2>
+<a id="a769d5b3a6c14790a0e126e8fe70b384b" name="a769d5b3a6c14790a0e126e8fe70b384b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a769d5b3a6c14790a0e126e8fe70b384b">&#9670;&#160;</a></span>debug_print</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -202,8 +208,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#a769d5b3a6c14790a0e126e8f
 
 </div>
 </div>
-<a id="a406c9433252b7366de417b7a60915c81"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a406c9433252b7366de417b7a60915c81">&#9670;&nbsp;</a></span>delay_ms</h2>
+<a id="a406c9433252b7366de417b7a60915c81" name="a406c9433252b7366de417b7a60915c81"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a406c9433252b7366de417b7a60915c81">&#9670;&#160;</a></span>delay_ms</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -219,8 +225,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#a406c9433252b7366de417b7a
 
 </div>
 </div>
-<a id="a97ffc4fce945527bd6ab25a3596caef7"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a97ffc4fce945527bd6ab25a3596caef7">&#9670;&nbsp;</a></span>delay_us</h2>
+<a id="a97ffc4fce945527bd6ab25a3596caef7" name="a97ffc4fce945527bd6ab25a3596caef7"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a97ffc4fce945527bd6ab25a3596caef7">&#9670;&#160;</a></span>delay_us</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -236,8 +242,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#a97ffc4fce945527bd6ab25a3
 
 </div>
 </div>
-<a id="ac2bd5f4f7f52f548fd421c9eedbce1c7"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ac2bd5f4f7f52f548fd421c9eedbce1c7">&#9670;&nbsp;</a></span>dual_quad_spi_enable</h2>
+<a id="ac2bd5f4f7f52f548fd421c9eedbce1c7" name="ac2bd5f4f7f52f548fd421c9eedbce1c7"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ac2bd5f4f7f52f548fd421c9eedbce1c7">&#9670;&#160;</a></span>dual_quad_spi_enable</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -253,8 +259,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#ac2bd5f4f7f52f548fd421c9e
 
 </div>
 </div>
-<a id="aff7b59f569ec689a7580bd6911daafd5"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#aff7b59f569ec689a7580bd6911daafd5">&#9670;&nbsp;</a></span>dummy</h2>
+<a id="aff7b59f569ec689a7580bd6911daafd5" name="aff7b59f569ec689a7580bd6911daafd5"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aff7b59f569ec689a7580bd6911daafd5">&#9670;&#160;</a></span>dummy</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -270,8 +276,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#aff7b59f569ec689a7580bd69
 
 </div>
 </div>
-<a id="a19bedf28d2b9748f6a62d9ae93f4e68f"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a19bedf28d2b9748f6a62d9ae93f4e68f">&#9670;&nbsp;</a></span>inited</h2>
+<a id="a19bedf28d2b9748f6a62d9ae93f4e68f" name="a19bedf28d2b9748f6a62d9ae93f4e68f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a19bedf28d2b9748f6a62d9ae93f4e68f">&#9670;&#160;</a></span>inited</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -287,8 +293,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#a19bedf28d2b9748f6a62d9ae
 
 </div>
 </div>
-<a id="a3d28993689552e18d554dc0644efcf16"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a3d28993689552e18d554dc0644efcf16">&#9670;&nbsp;</a></span>param</h2>
+<a id="a3d28993689552e18d554dc0644efcf16" name="a3d28993689552e18d554dc0644efcf16"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a3d28993689552e18d554dc0644efcf16">&#9670;&#160;</a></span>param</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -304,8 +310,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#a3d28993689552e18d554dc06
 
 </div>
 </div>
-<a id="a9bdb5522ed967c80572351dd53dafe70"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a9bdb5522ed967c80572351dd53dafe70">&#9670;&nbsp;</a></span>spi_qspi</h2>
+<a id="a9bdb5522ed967c80572351dd53dafe70" name="a9bdb5522ed967c80572351dd53dafe70"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a9bdb5522ed967c80572351dd53dafe70">&#9670;&#160;</a></span>spi_qspi</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -321,8 +327,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#a9bdb5522ed967c80572351dd
 
 </div>
 </div>
-<a id="a4568e23228174b7d32678d9a96d2420c"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a4568e23228174b7d32678d9a96d2420c">&#9670;&nbsp;</a></span>spi_qspi_deinit</h2>
+<a id="a4568e23228174b7d32678d9a96d2420c" name="a4568e23228174b7d32678d9a96d2420c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a4568e23228174b7d32678d9a96d2420c">&#9670;&#160;</a></span>spi_qspi_deinit</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -338,8 +344,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#a4568e23228174b7d32678d9a
 
 </div>
 </div>
-<a id="aec834df46e5185868dfdcc6fcec2e801"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#aec834df46e5185868dfdcc6fcec2e801">&#9670;&nbsp;</a></span>spi_qspi_init</h2>
+<a id="aec834df46e5185868dfdcc6fcec2e801" name="aec834df46e5185868dfdcc6fcec2e801"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aec834df46e5185868dfdcc6fcec2e801">&#9670;&#160;</a></span>spi_qspi_init</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -355,8 +361,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#aec834df46e5185868dfdcc6f
 
 </div>
 </div>
-<a id="a2d39cde883403779e3da9dd39c32bec5"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a2d39cde883403779e3da9dd39c32bec5">&#9670;&nbsp;</a></span>spi_qspi_write_read</h2>
+<a id="a2d39cde883403779e3da9dd39c32bec5" name="a2d39cde883403779e3da9dd39c32bec5"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a2d39cde883403779e3da9dd39c32bec5">&#9670;&#160;</a></span>spi_qspi_write_read</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -372,8 +378,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#a2d39cde883403779e3da9dd3
 
 </div>
 </div>
-<a id="acb5cfd209ba75c853d03f701e7f91679"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#acb5cfd209ba75c853d03f701e7f91679">&#9670;&nbsp;</a></span>type</h2>
+<a id="acb5cfd209ba75c853d03f701e7f91679" name="acb5cfd209ba75c853d03f701e7f91679"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#acb5cfd209ba75c853d03f701e7f91679">&#9670;&#160;</a></span>type</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -398,7 +404,7 @@ <h2 class="memtitle"><span class="permalink"><a href="#acb5cfd209ba75c853d03f701
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
     <li class="navelem"><a class="el" href="structw25qxx__handle__s.html">w25qxx_handle_s</a></li>
-    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
+    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/structw25qxx__info__s.html b/doc/html/structw25qxx__info__s.html
index d703927..4efaf67 100644
--- a/doc/html/structw25qxx__info__s.html
+++ b/doc/html/structw25qxx__info__s.html
@@ -1,9 +1,9 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.9.1"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.8"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>LibDriver W25QXX: w25qxx_info_s Struct Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -23,11 +23,10 @@
 <div id="titlearea">
 <table cellspacing="0" cellpadding="0">
  <tbody>
- <tr style="height: 56px;">
+ <tr id="projectrow">
   <td id="projectlogo"><img alt="Logo" src="doxygen.png"/></td>
-  <td id="projectalign" style="padding-left: 0.5em;">
-   <div id="projectname">LibDriver W25QXX
-   &#160;<span id="projectnumber">1.0.0</span>
+  <td id="projectalign">
+   <div id="projectname">LibDriver W25QXX<span id="projectnumber">&#160;1.0.0</span>
    </div>
    <div id="projectbrief">W25QXX full function driver</div>
   </td>
@@ -36,21 +35,22 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.9.1 -->
+<!-- Generated by Doxygen 1.9.8 -->
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search/",'.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
 <script type="text/javascript" src="menu.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(function() {
   initMenu('',true,false,'search.php','Search');
   $(document).ready(function() { init_search(); });
 });
-/* @license-end */</script>
+/* @license-end */
+</script>
 <div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
@@ -64,7 +64,7 @@
   </div>
 </div>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(document).ready(function(){initNavTree('structw25qxx__info__s.html',''); initResizable(); });
 /* @license-end */
 </script>
@@ -78,16 +78,22 @@
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
 </div>
 
 <div class="header">
   <div class="summary">
 <a href="#pub-attribs">Data Fields</a>  </div>
-  <div class="headertitle">
-<div class="title">w25qxx_info_s Struct Reference<div class="ingroups"><a class="el" href="group__w25qxx__driver.html">w25qxx driver function</a> &raquo; <a class="el" href="group__w25qxx__basic__driver.html">w25qxx basic driver function</a></div></div>  </div>
+  <div class="headertitle"><div class="title">w25qxx_info_s Struct Reference<div class="ingroups"><a class="el" href="group__w25qxx__driver.html">w25qxx driver function</a> &raquo; <a class="el" href="group__w25qxx__basic__driver.html">w25qxx basic driver function</a></div></div></div>
 </div><!--header-->
 <div class="contents">
 
@@ -96,25 +102,25 @@
 
 <p><code>#include &lt;<a class="el" href="driver__w25qxx_8h_source.html">driver_w25qxx.h</a>&gt;</code></p>
 <table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-attribs" name="pub-attribs"></a>
 Data Fields</h2></td></tr>
-<tr class="memitem:af890958c72bd715cc6454a10dc846ae6"><td class="memItemLeft" align="right" valign="top">char&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structw25qxx__info__s.html#af890958c72bd715cc6454a10dc846ae6">chip_name</a> [32]</td></tr>
+<tr class="memitem:af890958c72bd715cc6454a10dc846ae6" id="r_af890958c72bd715cc6454a10dc846ae6"><td class="memItemLeft" align="right" valign="top">char&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structw25qxx__info__s.html#af890958c72bd715cc6454a10dc846ae6">chip_name</a> [32]</td></tr>
 <tr class="separator:af890958c72bd715cc6454a10dc846ae6"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ad25285dbf810c90f8eaf3fcef6f2b2ea"><td class="memItemLeft" align="right" valign="top">char&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structw25qxx__info__s.html#ad25285dbf810c90f8eaf3fcef6f2b2ea">manufacturer_name</a> [32]</td></tr>
+<tr class="memitem:ad25285dbf810c90f8eaf3fcef6f2b2ea" id="r_ad25285dbf810c90f8eaf3fcef6f2b2ea"><td class="memItemLeft" align="right" valign="top">char&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structw25qxx__info__s.html#ad25285dbf810c90f8eaf3fcef6f2b2ea">manufacturer_name</a> [32]</td></tr>
 <tr class="separator:ad25285dbf810c90f8eaf3fcef6f2b2ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a5778305279cae46b2ecf862e97f73600"><td class="memItemLeft" align="right" valign="top">char&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structw25qxx__info__s.html#a5778305279cae46b2ecf862e97f73600">interface</a> [16]</td></tr>
+<tr class="memitem:a5778305279cae46b2ecf862e97f73600" id="r_a5778305279cae46b2ecf862e97f73600"><td class="memItemLeft" align="right" valign="top">char&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structw25qxx__info__s.html#a5778305279cae46b2ecf862e97f73600">interface</a> [16]</td></tr>
 <tr class="separator:a5778305279cae46b2ecf862e97f73600"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ad8bde6ddadaf43d951e62f3befb9d35a"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structw25qxx__info__s.html#ad8bde6ddadaf43d951e62f3befb9d35a">supply_voltage_min_v</a></td></tr>
+<tr class="memitem:ad8bde6ddadaf43d951e62f3befb9d35a" id="r_ad8bde6ddadaf43d951e62f3befb9d35a"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structw25qxx__info__s.html#ad8bde6ddadaf43d951e62f3befb9d35a">supply_voltage_min_v</a></td></tr>
 <tr class="separator:ad8bde6ddadaf43d951e62f3befb9d35a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a3d2b12bcac7a85ea8646bff9debe8660"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structw25qxx__info__s.html#a3d2b12bcac7a85ea8646bff9debe8660">supply_voltage_max_v</a></td></tr>
+<tr class="memitem:a3d2b12bcac7a85ea8646bff9debe8660" id="r_a3d2b12bcac7a85ea8646bff9debe8660"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structw25qxx__info__s.html#a3d2b12bcac7a85ea8646bff9debe8660">supply_voltage_max_v</a></td></tr>
 <tr class="separator:a3d2b12bcac7a85ea8646bff9debe8660"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a9db82802561bf22d799b03a345f1d1dc"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structw25qxx__info__s.html#a9db82802561bf22d799b03a345f1d1dc">max_current_ma</a></td></tr>
+<tr class="memitem:a9db82802561bf22d799b03a345f1d1dc" id="r_a9db82802561bf22d799b03a345f1d1dc"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structw25qxx__info__s.html#a9db82802561bf22d799b03a345f1d1dc">max_current_ma</a></td></tr>
 <tr class="separator:a9db82802561bf22d799b03a345f1d1dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a8f9dbe66ac0b66ebae0a36fcb4ba368e"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structw25qxx__info__s.html#a8f9dbe66ac0b66ebae0a36fcb4ba368e">temperature_min</a></td></tr>
+<tr class="memitem:a8f9dbe66ac0b66ebae0a36fcb4ba368e" id="r_a8f9dbe66ac0b66ebae0a36fcb4ba368e"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structw25qxx__info__s.html#a8f9dbe66ac0b66ebae0a36fcb4ba368e">temperature_min</a></td></tr>
 <tr class="separator:a8f9dbe66ac0b66ebae0a36fcb4ba368e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a3366a5dce9b829e03c3d321c2b4df3f6"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structw25qxx__info__s.html#a3366a5dce9b829e03c3d321c2b4df3f6">temperature_max</a></td></tr>
+<tr class="memitem:a3366a5dce9b829e03c3d321c2b4df3f6" id="r_a3366a5dce9b829e03c3d321c2b4df3f6"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structw25qxx__info__s.html#a3366a5dce9b829e03c3d321c2b4df3f6">temperature_max</a></td></tr>
 <tr class="separator:a3366a5dce9b829e03c3d321c2b4df3f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a41b0bd442708b70d252c50b92c75265a"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structw25qxx__info__s.html#a41b0bd442708b70d252c50b92c75265a">driver_version</a></td></tr>
+<tr class="memitem:a41b0bd442708b70d252c50b92c75265a" id="r_a41b0bd442708b70d252c50b92c75265a"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structw25qxx__info__s.html#a41b0bd442708b70d252c50b92c75265a">driver_version</a></td></tr>
 <tr class="separator:a41b0bd442708b70d252c50b92c75265a"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
@@ -122,8 +128,8 @@
 
 <p class="definition">Definition at line <a class="el" href="driver__w25qxx_8h_source.html#l00235">235</a> of file <a class="el" href="driver__w25qxx_8h_source.html">driver_w25qxx.h</a>.</p>
 </div><h2 class="groupheader">Field Documentation</h2>
-<a id="af890958c72bd715cc6454a10dc846ae6"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#af890958c72bd715cc6454a10dc846ae6">&#9670;&nbsp;</a></span>chip_name</h2>
+<a id="af890958c72bd715cc6454a10dc846ae6" name="af890958c72bd715cc6454a10dc846ae6"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af890958c72bd715cc6454a10dc846ae6">&#9670;&#160;</a></span>chip_name</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -139,8 +145,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#af890958c72bd715cc6454a10
 
 </div>
 </div>
-<a id="a41b0bd442708b70d252c50b92c75265a"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a41b0bd442708b70d252c50b92c75265a">&#9670;&nbsp;</a></span>driver_version</h2>
+<a id="a41b0bd442708b70d252c50b92c75265a" name="a41b0bd442708b70d252c50b92c75265a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a41b0bd442708b70d252c50b92c75265a">&#9670;&#160;</a></span>driver_version</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -156,8 +162,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#a41b0bd442708b70d252c50b9
 
 </div>
 </div>
-<a id="a5778305279cae46b2ecf862e97f73600"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a5778305279cae46b2ecf862e97f73600">&#9670;&nbsp;</a></span>interface</h2>
+<a id="a5778305279cae46b2ecf862e97f73600" name="a5778305279cae46b2ecf862e97f73600"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a5778305279cae46b2ecf862e97f73600">&#9670;&#160;</a></span>interface</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -173,8 +179,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#a5778305279cae46b2ecf862e
 
 </div>
 </div>
-<a id="ad25285dbf810c90f8eaf3fcef6f2b2ea"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ad25285dbf810c90f8eaf3fcef6f2b2ea">&#9670;&nbsp;</a></span>manufacturer_name</h2>
+<a id="ad25285dbf810c90f8eaf3fcef6f2b2ea" name="ad25285dbf810c90f8eaf3fcef6f2b2ea"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ad25285dbf810c90f8eaf3fcef6f2b2ea">&#9670;&#160;</a></span>manufacturer_name</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -190,8 +196,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#ad25285dbf810c90f8eaf3fce
 
 </div>
 </div>
-<a id="a9db82802561bf22d799b03a345f1d1dc"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a9db82802561bf22d799b03a345f1d1dc">&#9670;&nbsp;</a></span>max_current_ma</h2>
+<a id="a9db82802561bf22d799b03a345f1d1dc" name="a9db82802561bf22d799b03a345f1d1dc"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a9db82802561bf22d799b03a345f1d1dc">&#9670;&#160;</a></span>max_current_ma</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -207,8 +213,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#a9db82802561bf22d799b03a3
 
 </div>
 </div>
-<a id="a3d2b12bcac7a85ea8646bff9debe8660"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a3d2b12bcac7a85ea8646bff9debe8660">&#9670;&nbsp;</a></span>supply_voltage_max_v</h2>
+<a id="a3d2b12bcac7a85ea8646bff9debe8660" name="a3d2b12bcac7a85ea8646bff9debe8660"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a3d2b12bcac7a85ea8646bff9debe8660">&#9670;&#160;</a></span>supply_voltage_max_v</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -224,8 +230,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#a3d2b12bcac7a85ea8646bff9
 
 </div>
 </div>
-<a id="ad8bde6ddadaf43d951e62f3befb9d35a"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ad8bde6ddadaf43d951e62f3befb9d35a">&#9670;&nbsp;</a></span>supply_voltage_min_v</h2>
+<a id="ad8bde6ddadaf43d951e62f3befb9d35a" name="ad8bde6ddadaf43d951e62f3befb9d35a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ad8bde6ddadaf43d951e62f3befb9d35a">&#9670;&#160;</a></span>supply_voltage_min_v</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -241,8 +247,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#ad8bde6ddadaf43d951e62f3b
 
 </div>
 </div>
-<a id="a3366a5dce9b829e03c3d321c2b4df3f6"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a3366a5dce9b829e03c3d321c2b4df3f6">&#9670;&nbsp;</a></span>temperature_max</h2>
+<a id="a3366a5dce9b829e03c3d321c2b4df3f6" name="a3366a5dce9b829e03c3d321c2b4df3f6"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a3366a5dce9b829e03c3d321c2b4df3f6">&#9670;&#160;</a></span>temperature_max</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -258,8 +264,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#a3366a5dce9b829e03c3d321c
 
 </div>
 </div>
-<a id="a8f9dbe66ac0b66ebae0a36fcb4ba368e"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a8f9dbe66ac0b66ebae0a36fcb4ba368e">&#9670;&nbsp;</a></span>temperature_min</h2>
+<a id="a8f9dbe66ac0b66ebae0a36fcb4ba368e" name="a8f9dbe66ac0b66ebae0a36fcb4ba368e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a8f9dbe66ac0b66ebae0a36fcb4ba368e">&#9670;&#160;</a></span>temperature_min</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -284,7 +290,7 @@ <h2 class="memtitle"><span class="permalink"><a href="#a8f9dbe66ac0b66ebae0a36fc
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
     <li class="navelem"><a class="el" href="structw25qxx__info__s.html">w25qxx_info_s</a></li>
-    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
+    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/tab_ad.png b/doc/html/tab_ad.png
new file mode 100644
index 0000000..e34850a
Binary files /dev/null and b/doc/html/tab_ad.png differ
diff --git a/doc/html/tab_bd.png b/doc/html/tab_bd.png
new file mode 100644
index 0000000..91c2524
Binary files /dev/null and b/doc/html/tab_bd.png differ
diff --git a/doc/html/tab_hd.png b/doc/html/tab_hd.png
new file mode 100644
index 0000000..2489273
Binary files /dev/null and b/doc/html/tab_hd.png differ
diff --git a/doc/html/tab_sd.png b/doc/html/tab_sd.png
new file mode 100644
index 0000000..757a565
Binary files /dev/null and b/doc/html/tab_sd.png differ
diff --git a/doc/html/tabs.css b/doc/html/tabs.css
index 85a0cd5..71c8a47 100644
--- a/doc/html/tabs.css
+++ b/doc/html/tabs.css
@@ -1 +1 @@
-.sm{position:relative;z-index:9999}.sm,.sm ul,.sm li{display:block;list-style:none;margin:0;padding:0;line-height:normal;direction:ltr;text-align:left;-webkit-tap-highlight-color:rgba(0,0,0,0)}.sm-rtl,.sm-rtl ul,.sm-rtl li{direction:rtl;text-align:right}.sm>li>h1,.sm>li>h2,.sm>li>h3,.sm>li>h4,.sm>li>h5,.sm>li>h6{margin:0;padding:0}.sm ul{display:none}.sm li,.sm a{position:relative}.sm a{display:block}.sm a.disabled{cursor:not-allowed}.sm:after{content:"\00a0";display:block;height:0;font:0/0 serif;clear:both;visibility:hidden;overflow:hidden}.sm,.sm *,.sm *:before,.sm *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.sm-dox{background-image:url("tab_b.png")}.sm-dox a,.sm-dox a:focus,.sm-dox a:hover,.sm-dox a:active{padding:0 12px;padding-right:43px;font-family:"Lucida Grande","Geneva","Helvetica",Arial,sans-serif;font-size:13px;font-weight:bold;line-height:36px;text-decoration:none;text-shadow:0 1px 1px rgba(255,255,255,0.9);color:#283a5d;outline:0}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a.current{color:#d23600}.sm-dox a.disabled{color:#bbb}.sm-dox a span.sub-arrow{position:absolute;top:50%;margin-top:-14px;left:auto;right:3px;width:28px;height:28px;overflow:hidden;font:bold 12px/28px monospace!important;text-align:center;text-shadow:none;background:rgba(255,255,255,0.5);-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox a.highlighted span.sub-arrow:before{display:block;content:'-'}.sm-dox>li:first-child>a,.sm-dox>li:first-child>:not(ul) a{-moz-border-radius:5px 5px 0 0;-webkit-border-radius:5px;border-radius:5px 5px 0 0}.sm-dox>li:last-child>a,.sm-dox>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul{-moz-border-radius:0 0 5px 5px;-webkit-border-radius:0;border-radius:0 0 5px 5px}.sm-dox>li:last-child>a.highlighted,.sm-dox>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox ul{background:rgba(162,162,162,0.1)}.sm-dox ul a,.sm-dox ul a:focus,.sm-dox ul a:hover,.sm-dox ul a:active{font-size:12px;border-left:8px solid transparent;line-height:36px;text-shadow:none;background-color:white;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul ul a,.sm-dox ul ul a:hover,.sm-dox ul ul a:focus,.sm-dox ul ul a:active{border-left:16px solid transparent}.sm-dox ul ul ul a,.sm-dox ul ul ul a:hover,.sm-dox ul ul ul a:focus,.sm-dox ul ul ul a:active{border-left:24px solid transparent}.sm-dox ul ul ul ul a,.sm-dox ul ul ul ul a:hover,.sm-dox ul ul ul ul a:focus,.sm-dox ul ul ul ul a:active{border-left:32px solid transparent}.sm-dox ul ul ul ul ul a,.sm-dox ul ul ul ul ul a:hover,.sm-dox ul ul ul ul ul a:focus,.sm-dox ul ul ul ul ul a:active{border-left:40px solid transparent}@media(min-width:768px){.sm-dox ul{position:absolute;width:12em}.sm-dox li{float:left}.sm-dox.sm-rtl li{float:right}.sm-dox ul li,.sm-dox.sm-rtl ul li,.sm-dox.sm-vertical li{float:none}.sm-dox a{white-space:nowrap}.sm-dox ul a,.sm-dox.sm-vertical a{white-space:normal}.sm-dox .sm-nowrap>li>a,.sm-dox .sm-nowrap>li>:not(ul) a{white-space:nowrap}.sm-dox{padding:0 10px;background-image:url("tab_b.png");line-height:36px}.sm-dox a span.sub-arrow{top:50%;margin-top:-2px;right:12px;width:0;height:0;border-width:4px;border-style:solid dashed dashed dashed;border-color:#283a5d transparent transparent transparent;background:transparent;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox a,.sm-dox a:focus,.sm-dox a:active,.sm-dox a:hover,.sm-dox a.highlighted{padding:0 12px;background-image:url("tab_s.png");background-repeat:no-repeat;background-position:right;-moz-border-radius:0!important;-webkit-border-radius:0;border-radius:0!important}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a:hover span.sub-arrow{border-color:white transparent transparent transparent}.sm-dox a.has-submenu{padding-right:24px}.sm-dox li{border-top:0}.sm-dox>li>ul:before,.sm-dox>li>ul:after{content:'';position:absolute;top:-18px;left:30px;width:0;height:0;overflow:hidden;border-width:9px;border-style:dashed dashed solid dashed;border-color:transparent transparent #bbb transparent}.sm-dox>li>ul:after{top:-16px;left:31px;border-width:8px;border-color:transparent transparent #fff transparent}.sm-dox ul{border:1px solid #bbb;padding:5px 0;background:#fff;-moz-border-radius:5px!important;-webkit-border-radius:5px;border-radius:5px!important;-moz-box-shadow:0 5px 9px rgba(0,0,0,0.2);-webkit-box-shadow:0 5px 9px rgba(0,0,0,0.2);box-shadow:0 5px 9px rgba(0,0,0,0.2)}.sm-dox ul a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent #555;border-style:dashed dashed dashed solid}.sm-dox ul a,.sm-dox ul a:hover,.sm-dox ul a:focus,.sm-dox ul a:active,.sm-dox ul a.highlighted{color:#555;background-image:none;border:0!important;color:#555;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul a:hover span.sub-arrow{border-color:transparent transparent transparent white}.sm-dox span.scroll-up,.sm-dox span.scroll-down{position:absolute;display:none;visibility:hidden;overflow:hidden;background:#fff;height:36px}.sm-dox span.scroll-up:hover,.sm-dox span.scroll-down:hover{background:#eee}.sm-dox span.scroll-up:hover span.scroll-up-arrow,.sm-dox span.scroll-up:hover span.scroll-down-arrow{border-color:transparent transparent #d23600 transparent}.sm-dox span.scroll-down:hover span.scroll-down-arrow{border-color:#d23600 transparent transparent transparent}.sm-dox span.scroll-up-arrow,.sm-dox span.scroll-down-arrow{position:absolute;top:0;left:50%;margin-left:-6px;width:0;height:0;overflow:hidden;border-width:6px;border-style:dashed dashed solid dashed;border-color:transparent transparent #555 transparent}.sm-dox span.scroll-down-arrow{top:8px;border-style:solid dashed dashed dashed;border-color:#555 transparent transparent transparent}.sm-dox.sm-rtl a.has-submenu{padding-right:12px;padding-left:24px}.sm-dox.sm-rtl a span.sub-arrow{right:auto;left:12px}.sm-dox.sm-rtl.sm-vertical a.has-submenu{padding:10px 20px}.sm-dox.sm-rtl.sm-vertical a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-rtl>li>ul:before{left:auto;right:30px}.sm-dox.sm-rtl>li>ul:after{left:auto;right:31px}.sm-dox.sm-rtl ul a.has-submenu{padding:10px 20px!important}.sm-dox.sm-rtl ul a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-vertical{padding:10px 0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox.sm-vertical a{padding:10px 20px}.sm-dox.sm-vertical a:hover,.sm-dox.sm-vertical a:focus,.sm-dox.sm-vertical a:active,.sm-dox.sm-vertical a.highlighted{background:#fff}.sm-dox.sm-vertical a.disabled{background-image:url("tab_b.png")}.sm-dox.sm-vertical a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-style:dashed dashed dashed solid;border-color:transparent transparent transparent #555}.sm-dox.sm-vertical>li>ul:before,.sm-dox.sm-vertical>li>ul:after{display:none}.sm-dox.sm-vertical ul a{padding:10px 20px}.sm-dox.sm-vertical ul a:hover,.sm-dox.sm-vertical ul a:focus,.sm-dox.sm-vertical ul a:active,.sm-dox.sm-vertical ul a.highlighted{background:#eee}.sm-dox.sm-vertical ul a.disabled{background:#fff}}
\ No newline at end of file
+.sm{position:relative;z-index:9999}.sm,.sm ul,.sm li{display:block;list-style:none;margin:0;padding:0;line-height:normal;direction:ltr;text-align:left;-webkit-tap-highlight-color:rgba(0,0,0,0)}.sm-rtl,.sm-rtl ul,.sm-rtl li{direction:rtl;text-align:right}.sm>li>h1,.sm>li>h2,.sm>li>h3,.sm>li>h4,.sm>li>h5,.sm>li>h6{margin:0;padding:0}.sm ul{display:none}.sm li,.sm a{position:relative}.sm a{display:block}.sm a.disabled{cursor:not-allowed}.sm:after{content:"\00a0";display:block;height:0;font:0/0 serif;clear:both;visibility:hidden;overflow:hidden}.sm,.sm *,.sm *:before,.sm *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.main-menu-btn{position:relative;display:inline-block;width:36px;height:36px;text-indent:36px;margin-left:8px;white-space:nowrap;overflow:hidden;cursor:pointer;-webkit-tap-highlight-color:rgba(0,0,0,0)}.main-menu-btn-icon,.main-menu-btn-icon:before,.main-menu-btn-icon:after{position:absolute;top:50%;left:2px;height:2px;width:24px;background:var(--nav-menu-button-color);-webkit-transition:all .25s;transition:all .25s}.main-menu-btn-icon:before{content:'';top:-7px;left:0}.main-menu-btn-icon:after{content:'';top:7px;left:0}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon{height:0}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon:before{top:0;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon:after{top:0;-webkit-transform:rotate(45deg);transform:rotate(45deg)}#main-menu-state{position:absolute;width:1px;height:1px;margin:-1px;border:0;padding:0;overflow:hidden;clip:rect(1px,1px,1px,1px)}#main-menu-state:not(:checked) ~ #main-menu{display:none}#main-menu-state:checked ~ #main-menu{display:block}@media(min-width:768px){.main-menu-btn{position:absolute;top:-99999px}#main-menu-state:not(:checked) ~ #main-menu{display:block}}.sm-dox{background-image:var(--nav-gradient-image)}.sm-dox a,.sm-dox a:focus,.sm-dox a:hover,.sm-dox a:active{padding:0 12px;padding-right:43px;font-family:var(--font-family-nav);font-size:13px;font-weight:bold;line-height:36px;text-decoration:none;text-shadow:var(--nav-text-normal-shadow);color:var(--nav-text-normal-color);outline:0}.sm-dox a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:var(--nav-text-hover-shadow)}.sm-dox a.current{color:#d23600}.sm-dox a.disabled{color:#bbb}.sm-dox a span.sub-arrow{position:absolute;top:50%;margin-top:-14px;left:auto;right:3px;width:28px;height:28px;overflow:hidden;font:bold 12px/28px monospace !important;text-align:center;text-shadow:none;background:var(--nav-menu-toggle-color);-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox a span.sub-arrow:before{display:block;content:'+'}.sm-dox a.highlighted span.sub-arrow:before{display:block;content:'-'}.sm-dox>li:first-child>a,.sm-dox>li:first-child>:not(ul) a{-moz-border-radius:5px 5px 0 0;-webkit-border-radius:5px;border-radius:5px 5px 0 0}.sm-dox>li:last-child>a,.sm-dox>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul{-moz-border-radius:0 0 5px 5px;-webkit-border-radius:0;border-radius:0 0 5px 5px}.sm-dox>li:last-child>a.highlighted,.sm-dox>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox ul{background:var(--nav-menu-background-color)}.sm-dox ul a,.sm-dox ul a:focus,.sm-dox ul a:hover,.sm-dox ul a:active{font-size:12px;border-left:8px solid transparent;line-height:36px;text-shadow:none;background-color:var(--nav-menu-background-color);background-image:none}.sm-dox ul a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:0 1px 1px black}.sm-dox ul ul a,.sm-dox ul ul a:hover,.sm-dox ul ul a:focus,.sm-dox ul ul a:active{border-left:16px solid transparent}.sm-dox ul ul ul a,.sm-dox ul ul ul a:hover,.sm-dox ul ul ul a:focus,.sm-dox ul ul ul a:active{border-left:24px solid transparent}.sm-dox ul ul ul ul a,.sm-dox ul ul ul ul a:hover,.sm-dox ul ul ul ul a:focus,.sm-dox ul ul ul ul a:active{border-left:32px solid transparent}.sm-dox ul ul ul ul ul a,.sm-dox ul ul ul ul ul a:hover,.sm-dox ul ul ul ul ul a:focus,.sm-dox ul ul ul ul ul a:active{border-left:40px solid transparent}@media(min-width:768px){.sm-dox ul{position:absolute;width:12em}.sm-dox li{float:left}.sm-dox.sm-rtl li{float:right}.sm-dox ul li,.sm-dox.sm-rtl ul li,.sm-dox.sm-vertical li{float:none}.sm-dox a{white-space:nowrap}.sm-dox ul a,.sm-dox.sm-vertical a{white-space:normal}.sm-dox .sm-nowrap>li>a,.sm-dox .sm-nowrap>li>:not(ul) a{white-space:nowrap}.sm-dox{padding:0 10px;background-image:var(--nav-gradient-image);line-height:36px}.sm-dox a span.sub-arrow{top:50%;margin-top:-2px;right:12px;width:0;height:0;border-width:4px;border-style:solid dashed dashed dashed;border-color:var(--nav-text-normal-color) transparent transparent transparent;background:transparent;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox a,.sm-dox a:focus,.sm-dox a:active,.sm-dox a:hover,.sm-dox a.highlighted{padding:0 12px;background-image:var(--nav-separator-image);background-repeat:no-repeat;background-position:right;-moz-border-radius:0 !important;-webkit-border-radius:0;border-radius:0 !important}.sm-dox a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:var(--nav-text-hover-shadow)}.sm-dox a:hover span.sub-arrow{border-color:var(--nav-text-hover-color) transparent transparent transparent}.sm-dox a.has-submenu{padding-right:24px}.sm-dox li{border-top:0}.sm-dox>li>ul:before,.sm-dox>li>ul:after{content:'';position:absolute;top:-18px;left:30px;width:0;height:0;overflow:hidden;border-width:9px;border-style:dashed dashed solid dashed;border-color:transparent transparent #bbb transparent}.sm-dox>li>ul:after{top:-16px;left:31px;border-width:8px;border-color:transparent transparent var(--nav-menu-background-color) transparent}.sm-dox ul{border:1px solid #bbb;padding:5px 0;background:var(--nav-menu-background-color);-moz-border-radius:5px !important;-webkit-border-radius:5px;border-radius:5px !important;-moz-box-shadow:0 5px 9px rgba(0,0,0,0.2);-webkit-box-shadow:0 5px 9px rgba(0,0,0,0.2);box-shadow:0 5px 9px rgba(0,0,0,0.2)}.sm-dox ul a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent var(--nav-menu-foreground-color);border-style:dashed dashed dashed solid}.sm-dox ul a,.sm-dox ul a:hover,.sm-dox ul a:focus,.sm-dox ul a:active,.sm-dox ul a.highlighted{color:var(--nav-menu-foreground-color);background-image:none;border:0 !important;color:var(--nav-menu-foreground-color);background-image:none}.sm-dox ul a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:var(--nav-text-hover-shadow)}.sm-dox ul a:hover span.sub-arrow{border-color:transparent transparent transparent var(--nav-text-hover-color)}.sm-dox span.scroll-up,.sm-dox span.scroll-down{position:absolute;display:none;visibility:hidden;overflow:hidden;background:var(--nav-menu-background-color);height:36px}.sm-dox span.scroll-up:hover,.sm-dox span.scroll-down:hover{background:#eee}.sm-dox span.scroll-up:hover span.scroll-up-arrow,.sm-dox span.scroll-up:hover span.scroll-down-arrow{border-color:transparent transparent #d23600 transparent}.sm-dox span.scroll-down:hover span.scroll-down-arrow{border-color:#d23600 transparent transparent transparent}.sm-dox span.scroll-up-arrow,.sm-dox span.scroll-down-arrow{position:absolute;top:0;left:50%;margin-left:-6px;width:0;height:0;overflow:hidden;border-width:6px;border-style:dashed dashed solid dashed;border-color:transparent transparent var(--nav-menu-foreground-color) transparent}.sm-dox span.scroll-down-arrow{top:8px;border-style:solid dashed dashed dashed;border-color:var(--nav-menu-foreground-color) transparent transparent transparent}.sm-dox.sm-rtl a.has-submenu{padding-right:12px;padding-left:24px}.sm-dox.sm-rtl a span.sub-arrow{right:auto;left:12px}.sm-dox.sm-rtl.sm-vertical a.has-submenu{padding:10px 20px}.sm-dox.sm-rtl.sm-vertical a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-rtl>li>ul:before{left:auto;right:30px}.sm-dox.sm-rtl>li>ul:after{left:auto;right:31px}.sm-dox.sm-rtl ul a.has-submenu{padding:10px 20px !important}.sm-dox.sm-rtl ul a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-vertical{padding:10px 0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox.sm-vertical a{padding:10px 20px}.sm-dox.sm-vertical a:hover,.sm-dox.sm-vertical a:focus,.sm-dox.sm-vertical a:active,.sm-dox.sm-vertical a.highlighted{background:#fff}.sm-dox.sm-vertical a.disabled{background-image:var(--nav-gradient-image)}.sm-dox.sm-vertical a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-style:dashed dashed dashed solid;border-color:transparent transparent transparent #555}.sm-dox.sm-vertical>li>ul:before,.sm-dox.sm-vertical>li>ul:after{display:none}.sm-dox.sm-vertical ul a{padding:10px 20px}.sm-dox.sm-vertical ul a:hover,.sm-dox.sm-vertical ul a:focus,.sm-dox.sm-vertical ul a:active,.sm-dox.sm-vertical ul a.highlighted{background:#eee}.sm-dox.sm-vertical ul a.disabled{background:var(--nav-menu-background-color)}}
\ No newline at end of file
diff --git a/doc/html/topics.html b/doc/html/topics.html
new file mode 100644
index 0000000..3b7503c
--- /dev/null
+++ b/doc/html/topics.html
@@ -0,0 +1,118 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.8"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>LibDriver W25QXX: Topics</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+  <td id="projectlogo"><img alt="Logo" src="doxygen.png"/></td>
+  <td id="projectalign">
+   <div id="projectname">LibDriver W25QXX<span id="projectnumber">&#160;1.0.0</span>
+   </div>
+   <div id="projectbrief">W25QXX full function driver</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.8 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search/",'.html');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */
+</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+$(document).ready(function(){initNavTree('topics.html',''); initResizable(); });
+/* @license-end */
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<div id="MSearchResults">
+<div class="SRPage">
+<div id="SRIndex">
+<div id="SRResults"></div>
+<div class="SRStatus" id="Loading">Loading...</div>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</div>
+</div>
+</div>
+
+<div class="header">
+  <div class="headertitle"><div class="title">Topics</div></div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock">Here is a list of all topics with brief descriptions:</div><div class="directory">
+<div class="levels">[detail level <span onclick="javascript:toggleLevel(1);">1</span><span onclick="javascript:toggleLevel(2);">2</span>]</div><table class="directory">
+<tr id="row_0_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_0_" class="arrow" onclick="toggleFolder('0_')">&#9660;</span><a class="el" href="group__w25qxx__driver.html" target="_self">w25qxx driver function</a></td><td class="desc">W25qxx driver modules </td></tr>
+<tr id="row_0_0_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group__w25qxx__link__driver.html" target="_self">w25qxx link driver function</a></td><td class="desc">W25qxx link driver modules </td></tr>
+<tr id="row_0_1_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group__w25qxx__basic__driver.html" target="_self">w25qxx basic driver function</a></td><td class="desc">W25qxx basic driver modules </td></tr>
+<tr id="row_0_2_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group__w25qxx__advance__driver.html" target="_self">w25qxx advance driver function</a></td><td class="desc">W25qxx advance driver modules </td></tr>
+<tr id="row_0_3_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group__w25qxx__extern__driver.html" target="_self">w25qxx extern driver function</a></td><td class="desc">W25qxx extern driver modules </td></tr>
+<tr id="row_0_4_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group__w25qxx__interface__driver.html" target="_self">w25qxx interface driver function</a></td><td class="desc">W25qxx interface driver modules </td></tr>
+<tr id="row_0_5_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group__w25qxx__example__driver.html" target="_self">w25qxx example driver function</a></td><td class="desc">W25qxx example driver modules </td></tr>
+<tr id="row_0_6_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group__w25qxx__test__driver.html" target="_self">w25qxx test driver function</a></td><td class="desc">W25qxx test driver modules </td></tr>
+</table>
+</div><!-- directory -->
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
+  </ul>
+</div>
+</body>
+</html>
diff --git a/doc/html/topics.js b/doc/html/topics.js
new file mode 100644
index 0000000..8a0f18a
--- /dev/null
+++ b/doc/html/topics.js
@@ -0,0 +1,4 @@
+var topics =
+[
+    [ "w25qxx driver function", "group__w25qxx__driver.html", "group__w25qxx__driver" ]
+];
\ No newline at end of file
diff --git a/doc/tagfile b/doc/tagfile
new file mode 100644
index 0000000..0c661e5
--- /dev/null
+++ b/doc/tagfile
@@ -0,0 +1,4087 @@
+<?xml version='1.0' encoding='UTF-8' standalone='yes' ?>
+<tagfile doxygen_version="1.9.8" doxygen_gitid="c2fe5c3e4986974eb2a97608b24086683502f07f">
+  <compound kind="file">
+    <name>mainpage.h</name>
+    <path>doc/mainpage/</path>
+    <filename>mainpage_8h.html</filename>
+  </compound>
+  <compound kind="file">
+    <name>driver_w25qxx_advance.c</name>
+    <path>example/</path>
+    <filename>driver__w25qxx__advance_8c.html</filename>
+    <includes id="driver__w25qxx__advance_8h" name="driver_w25qxx_advance.h" local="yes" import="no" module="no" objc="no">driver_w25qxx_advance.h</includes>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_init</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>ga413b420bc199d09ce5cafee4a4debb28</anchor>
+      <arglist>(w25qxx_type_t type, w25qxx_interface_t interface, w25qxx_bool_t dual_quad_spi_enable)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_deinit</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>gaf390bbb2c4140f49d25822d963ead722</anchor>
+      <arglist>(void)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_write</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>ga63f4e1dce2ef7c7de56461524fd22d04</anchor>
+      <arglist>(uint32_t addr, uint8_t *data, uint32_t len)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_read</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>ga013a389763200b54daaa345adf9329dc</anchor>
+      <arglist>(uint32_t addr, uint8_t *data, uint32_t len)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_power_down</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>ga5599de31797633ae75a63bcd5a8f4736</anchor>
+      <arglist>(void)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_wake_up</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>ga8a57e2d056d452abc14b0a08d4223251</anchor>
+      <arglist>(void)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_chip_erase</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>ga15cb243f227ef8d897ef3208b622bded</anchor>
+      <arglist>(void)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_get_id</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>ga0f49d960f8b6c6498ab293b369ffc389</anchor>
+      <arglist>(uint8_t *manufacturer, uint8_t *device_id)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_page_program</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>ga39ff13988a3d451231cec3260c13a4cd</anchor>
+      <arglist>(uint32_t addr, uint8_t *data, uint16_t len)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_sector_erase_4k</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>ga9325acc424c95624f15e11631082201d</anchor>
+      <arglist>(uint32_t addr)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_block_erase_32k</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>gaee04edb9e97785e423dffe14a1cad780</anchor>
+      <arglist>(uint32_t addr)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_block_erase_64k</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>gae7cba4e0b22a1043fe304e46148fa13c</anchor>
+      <arglist>(uint32_t addr)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_fast_read</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>ga7ade25a387b9d03ddecefd86fb328389</anchor>
+      <arglist>(uint32_t addr, uint8_t *data, uint32_t len)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_only_spi_read</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>gac1c7f320706dd6d6d937da75b8a4da93</anchor>
+      <arglist>(uint32_t addr, uint8_t *data, uint32_t len)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_only_spi_fast_read_dual_output</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>ga364d891407cf323d3686d36ad6357604</anchor>
+      <arglist>(uint32_t addr, uint8_t *data, uint32_t len)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_only_spi_fast_read_quad_output</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>gaf5f978c432de7d6adaf41cd256724a01</anchor>
+      <arglist>(uint32_t addr, uint8_t *data, uint32_t len)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_only_spi_fast_read_dual_io</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>ga4bbaf1a989fae25d16d07edb1e38ca4f</anchor>
+      <arglist>(uint32_t addr, uint8_t *data, uint32_t len)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_only_spi_fast_read_quad_io</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>ga395add1fa33f4f70d0ba52b38842dbdb</anchor>
+      <arglist>(uint32_t addr, uint8_t *data, uint32_t len)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_only_spi_word_read_quad_io</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>gaca6b4c6ea32dd96a4ae8714e2862d67a</anchor>
+      <arglist>(uint32_t addr, uint8_t *data, uint32_t len)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_only_spi_octal_word_read_quad_io</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>ga825a567c535236d7d18ffccf07df59e9</anchor>
+      <arglist>(uint32_t addr, uint8_t *data, uint32_t len)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_only_spi_page_program_quad_input</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>gad243655eb738e44c50e6079c983fd782</anchor>
+      <arglist>(uint32_t addr, uint8_t *data, uint16_t len)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_get_status1</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>ga4c1be6979b4dc878d07ec86b8624c9d2</anchor>
+      <arglist>(uint8_t *status)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_get_status2</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>gaf4736fff906c2f0c1dbed26b20847052</anchor>
+      <arglist>(uint8_t *status)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_get_status3</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>ga31bcd3d2cc68d2fc589685b5087bd8b3</anchor>
+      <arglist>(uint8_t *status)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_set_status1</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>ga5e4938b4575c417ae22fa82079459b1a</anchor>
+      <arglist>(uint8_t status)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_set_status2</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>ga9bc0e696b700d66f15b3605e10d33718</anchor>
+      <arglist>(uint8_t status)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_set_status3</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>gab5c990ebd4874137b7d23f2b896d4601</anchor>
+      <arglist>(uint8_t status)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_only_spi_get_manufacturer_device_id_dual_io</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>gac0d9e08a37ee37563c8dbb501608a668</anchor>
+      <arglist>(uint8_t *manufacturer, uint8_t *device_id)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_only_spi_get_manufacturer_device_id_quad_io</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>ga6142b5a1e8602e2990dec34015812615</anchor>
+      <arglist>(uint8_t *manufacturer, uint8_t *device_id)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_get_get_jedec_id</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>gacc7435a39b61c44f0ce16690d5da896b</anchor>
+      <arglist>(uint8_t *manufacturer, uint8_t device_id[2])</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_global_block_lock</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>ga2cbcc018dc11a870d2e0fc3a8946b1d8</anchor>
+      <arglist>(void)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_global_block_unlock</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>ga67c70da103511d1cff9274e61a08ce56</anchor>
+      <arglist>(void)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_individual_block_lock</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>gaa7af99e92b3e81f5b202575b55dc3a7c</anchor>
+      <arglist>(uint32_t addr)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_individual_block_unlock</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>ga66726fc451c7804e8fec6eb46a6a77d6</anchor>
+      <arglist>(uint32_t addr)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_read_block_lock</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>gac1773fe914a01825ca28346205601036</anchor>
+      <arglist>(uint32_t addr, uint8_t *value)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_reset</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>ga0f65053ad28443f19ed73dbc3412b5b2</anchor>
+      <arglist>(void)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_only_qspi_set_read_parameters</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>gace2a5b7acd9798cfcaa2b5eb2f18e1d1</anchor>
+      <arglist>(w25qxx_qspi_read_dummy_t dummy, w25qxx_qspi_read_wrap_length_t length)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_only_spi_get_unique_id</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>ga374d35b73fa61d5f7464c3effdae1d57</anchor>
+      <arglist>(uint8_t id[8])</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_only_spi_get_sfdp</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>ga9b1854e0ae52f57523bc2fa7cc0656df</anchor>
+      <arglist>(uint8_t sfdp[256])</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_only_spi_write_security_register</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>gaa6c5f97106e769ba071973cc2e782ad4</anchor>
+      <arglist>(w25qxx_security_register_t num, uint8_t data[256])</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_only_spi_read_security_register</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>ga02652a58ee418b432cf77505809d7d42</anchor>
+      <arglist>(w25qxx_security_register_t num, uint8_t data[256])</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_only_spi_set_burst_with_wrap</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>ga16411577fcb794f7485912f5db1bdde9</anchor>
+      <arglist>(w25qxx_burst_wrap_t wrap)</arglist>
+    </member>
+  </compound>
+  <compound kind="file">
+    <name>driver_w25qxx_advance.h</name>
+    <path>example/</path>
+    <filename>driver__w25qxx__advance_8h.html</filename>
+    <includes id="driver__w25qxx__interface_8h" name="driver_w25qxx_interface.h" local="yes" import="no" module="no" objc="no">driver_w25qxx_interface.h</includes>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_init</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>ga413b420bc199d09ce5cafee4a4debb28</anchor>
+      <arglist>(w25qxx_type_t type, w25qxx_interface_t interface, w25qxx_bool_t dual_quad_spi_enable)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_deinit</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>gaf390bbb2c4140f49d25822d963ead722</anchor>
+      <arglist>(void)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_power_down</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>ga5599de31797633ae75a63bcd5a8f4736</anchor>
+      <arglist>(void)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_wake_up</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>ga8a57e2d056d452abc14b0a08d4223251</anchor>
+      <arglist>(void)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_chip_erase</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>ga15cb243f227ef8d897ef3208b622bded</anchor>
+      <arglist>(void)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_get_id</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>ga0f49d960f8b6c6498ab293b369ffc389</anchor>
+      <arglist>(uint8_t *manufacturer, uint8_t *device_id)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_write</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>ga63f4e1dce2ef7c7de56461524fd22d04</anchor>
+      <arglist>(uint32_t addr, uint8_t *data, uint32_t len)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_read</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>ga013a389763200b54daaa345adf9329dc</anchor>
+      <arglist>(uint32_t addr, uint8_t *data, uint32_t len)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_page_program</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>ga39ff13988a3d451231cec3260c13a4cd</anchor>
+      <arglist>(uint32_t addr, uint8_t *data, uint16_t len)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_sector_erase_4k</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>ga9325acc424c95624f15e11631082201d</anchor>
+      <arglist>(uint32_t addr)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_block_erase_32k</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>gaee04edb9e97785e423dffe14a1cad780</anchor>
+      <arglist>(uint32_t addr)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_block_erase_64k</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>gae7cba4e0b22a1043fe304e46148fa13c</anchor>
+      <arglist>(uint32_t addr)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_fast_read</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>ga7ade25a387b9d03ddecefd86fb328389</anchor>
+      <arglist>(uint32_t addr, uint8_t *data, uint32_t len)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_get_status1</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>ga4c1be6979b4dc878d07ec86b8624c9d2</anchor>
+      <arglist>(uint8_t *status)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_get_status2</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>gaf4736fff906c2f0c1dbed26b20847052</anchor>
+      <arglist>(uint8_t *status)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_get_status3</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>ga31bcd3d2cc68d2fc589685b5087bd8b3</anchor>
+      <arglist>(uint8_t *status)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_set_status1</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>ga5e4938b4575c417ae22fa82079459b1a</anchor>
+      <arglist>(uint8_t status)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_set_status2</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>ga9bc0e696b700d66f15b3605e10d33718</anchor>
+      <arglist>(uint8_t status)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_set_status3</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>gab5c990ebd4874137b7d23f2b896d4601</anchor>
+      <arglist>(uint8_t status)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_get_get_jedec_id</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>gacc7435a39b61c44f0ce16690d5da896b</anchor>
+      <arglist>(uint8_t *manufacturer, uint8_t device_id[2])</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_global_block_lock</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>ga2cbcc018dc11a870d2e0fc3a8946b1d8</anchor>
+      <arglist>(void)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_global_block_unlock</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>ga67c70da103511d1cff9274e61a08ce56</anchor>
+      <arglist>(void)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_individual_block_lock</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>gaa7af99e92b3e81f5b202575b55dc3a7c</anchor>
+      <arglist>(uint32_t addr)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_individual_block_unlock</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>ga66726fc451c7804e8fec6eb46a6a77d6</anchor>
+      <arglist>(uint32_t addr)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_read_block_lock</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>gac1773fe914a01825ca28346205601036</anchor>
+      <arglist>(uint32_t addr, uint8_t *value)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_reset</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>ga0f65053ad28443f19ed73dbc3412b5b2</anchor>
+      <arglist>(void)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_only_spi_read</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>gac1c7f320706dd6d6d937da75b8a4da93</anchor>
+      <arglist>(uint32_t addr, uint8_t *data, uint32_t len)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_only_spi_fast_read_dual_output</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>ga364d891407cf323d3686d36ad6357604</anchor>
+      <arglist>(uint32_t addr, uint8_t *data, uint32_t len)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_only_spi_fast_read_quad_output</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>gaf5f978c432de7d6adaf41cd256724a01</anchor>
+      <arglist>(uint32_t addr, uint8_t *data, uint32_t len)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_only_spi_fast_read_dual_io</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>ga4bbaf1a989fae25d16d07edb1e38ca4f</anchor>
+      <arglist>(uint32_t addr, uint8_t *data, uint32_t len)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_only_spi_fast_read_quad_io</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>ga395add1fa33f4f70d0ba52b38842dbdb</anchor>
+      <arglist>(uint32_t addr, uint8_t *data, uint32_t len)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_only_spi_word_read_quad_io</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>gaca6b4c6ea32dd96a4ae8714e2862d67a</anchor>
+      <arglist>(uint32_t addr, uint8_t *data, uint32_t len)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_only_spi_octal_word_read_quad_io</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>ga825a567c535236d7d18ffccf07df59e9</anchor>
+      <arglist>(uint32_t addr, uint8_t *data, uint32_t len)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_only_spi_page_program_quad_input</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>gad243655eb738e44c50e6079c983fd782</anchor>
+      <arglist>(uint32_t addr, uint8_t *data, uint16_t len)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_only_spi_get_manufacturer_device_id_dual_io</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>gac0d9e08a37ee37563c8dbb501608a668</anchor>
+      <arglist>(uint8_t *manufacturer, uint8_t *device_id)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_only_spi_get_manufacturer_device_id_quad_io</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>ga6142b5a1e8602e2990dec34015812615</anchor>
+      <arglist>(uint8_t *manufacturer, uint8_t *device_id)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_only_spi_get_unique_id</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>ga374d35b73fa61d5f7464c3effdae1d57</anchor>
+      <arglist>(uint8_t id[8])</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_only_spi_get_sfdp</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>ga9b1854e0ae52f57523bc2fa7cc0656df</anchor>
+      <arglist>(uint8_t sfdp[256])</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_only_spi_write_security_register</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>gaa6c5f97106e769ba071973cc2e782ad4</anchor>
+      <arglist>(w25qxx_security_register_t num, uint8_t data[256])</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_only_spi_read_security_register</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>ga02652a58ee418b432cf77505809d7d42</anchor>
+      <arglist>(w25qxx_security_register_t num, uint8_t data[256])</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_only_spi_set_burst_with_wrap</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>ga16411577fcb794f7485912f5db1bdde9</anchor>
+      <arglist>(w25qxx_burst_wrap_t wrap)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_only_qspi_set_read_parameters</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>gace2a5b7acd9798cfcaa2b5eb2f18e1d1</anchor>
+      <arglist>(w25qxx_qspi_read_dummy_t dummy, w25qxx_qspi_read_wrap_length_t length)</arglist>
+    </member>
+  </compound>
+  <compound kind="file">
+    <name>driver_w25qxx_basic.c</name>
+    <path>example/</path>
+    <filename>driver__w25qxx__basic_8c.html</filename>
+    <includes id="driver__w25qxx__basic_8h" name="driver_w25qxx_basic.h" local="yes" import="no" module="no" objc="no">driver_w25qxx_basic.h</includes>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_basic_init</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>ga1e20768311dfdf33c77b442fa874b61a</anchor>
+      <arglist>(w25qxx_type_t type, w25qxx_interface_t interface, w25qxx_bool_t dual_quad_spi_enable)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_basic_deinit</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>gaeb167c2924a3490e9a8d11e0c57d2dc0</anchor>
+      <arglist>(void)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_basic_power_down</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>ga572c9f7a0bf2e7ab43dc078121162ec3</anchor>
+      <arglist>(void)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_basic_wake_up</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>ga02914409a9db38f35bc89d9fc4d96a17</anchor>
+      <arglist>(void)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_basic_chip_erase</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>gaf78e9f136e29b826c1a2b337b8451d6d</anchor>
+      <arglist>(void)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_basic_get_id</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>gacdda3af55c024b55fc9939aa23650356</anchor>
+      <arglist>(uint8_t *manufacturer, uint8_t *device_id)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_basic_write</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>ga5cf24fc78e1b45e845d02ec9133f46ab</anchor>
+      <arglist>(uint32_t addr, uint8_t *data, uint32_t len)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_basic_read</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>ga143fa1f19a792142339f3d4e9ce078d0</anchor>
+      <arglist>(uint32_t addr, uint8_t *data, uint32_t len)</arglist>
+    </member>
+  </compound>
+  <compound kind="file">
+    <name>driver_w25qxx_basic.h</name>
+    <path>example/</path>
+    <filename>driver__w25qxx__basic_8h.html</filename>
+    <includes id="driver__w25qxx__interface_8h" name="driver_w25qxx_interface.h" local="yes" import="no" module="no" objc="no">driver_w25qxx_interface.h</includes>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_basic_init</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>ga1e20768311dfdf33c77b442fa874b61a</anchor>
+      <arglist>(w25qxx_type_t type, w25qxx_interface_t interface, w25qxx_bool_t dual_quad_spi_enable)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_basic_deinit</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>gaeb167c2924a3490e9a8d11e0c57d2dc0</anchor>
+      <arglist>(void)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_basic_power_down</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>ga572c9f7a0bf2e7ab43dc078121162ec3</anchor>
+      <arglist>(void)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_basic_wake_up</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>ga02914409a9db38f35bc89d9fc4d96a17</anchor>
+      <arglist>(void)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_basic_chip_erase</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>gaf78e9f136e29b826c1a2b337b8451d6d</anchor>
+      <arglist>(void)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_basic_get_id</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>gacdda3af55c024b55fc9939aa23650356</anchor>
+      <arglist>(uint8_t *manufacturer, uint8_t *device_id)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_basic_write</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>ga5cf24fc78e1b45e845d02ec9133f46ab</anchor>
+      <arglist>(uint32_t addr, uint8_t *data, uint32_t len)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_basic_read</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>ga143fa1f19a792142339f3d4e9ce078d0</anchor>
+      <arglist>(uint32_t addr, uint8_t *data, uint32_t len)</arglist>
+    </member>
+  </compound>
+  <compound kind="file">
+    <name>driver_w25qxx_interface.h</name>
+    <path>interface/</path>
+    <filename>driver__w25qxx__interface_8h.html</filename>
+    <includes id="driver__w25qxx_8h" name="driver_w25qxx.h" local="yes" import="no" module="no" objc="no">driver_w25qxx.h</includes>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_interface_spi_qspi_init</name>
+      <anchorfile>group__w25qxx__interface__driver.html</anchorfile>
+      <anchor>ga2bdc17a556f1c801a38656331f3bb7b6</anchor>
+      <arglist>(void)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_interface_spi_qspi_deinit</name>
+      <anchorfile>group__w25qxx__interface__driver.html</anchorfile>
+      <anchor>ga091f3607fcdd47f9e5f94cf1397bd46a</anchor>
+      <arglist>(void)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_interface_spi_qspi_write_read</name>
+      <anchorfile>group__w25qxx__interface__driver.html</anchorfile>
+      <anchor>ga3d76ea1f431978f6b55edfd0628c94cd</anchor>
+      <arglist>(uint8_t instruction, uint8_t instruction_line, uint32_t address, uint8_t address_line, uint8_t address_len, uint32_t alternate, uint8_t alternate_line, uint8_t alternate_len, uint8_t dummy, uint8_t *in_buf, uint32_t in_len, uint8_t *out_buf, uint32_t out_len, uint8_t data_line)</arglist>
+    </member>
+    <member kind="function">
+      <type>void</type>
+      <name>w25qxx_interface_delay_ms</name>
+      <anchorfile>group__w25qxx__interface__driver.html</anchorfile>
+      <anchor>ga964fa232abf98737cb98458eebfff82c</anchor>
+      <arglist>(uint32_t ms)</arglist>
+    </member>
+    <member kind="function">
+      <type>void</type>
+      <name>w25qxx_interface_delay_us</name>
+      <anchorfile>group__w25qxx__interface__driver.html</anchorfile>
+      <anchor>ga38e79039b913154c9dd1036ff52bb420</anchor>
+      <arglist>(uint32_t us)</arglist>
+    </member>
+    <member kind="function">
+      <type>void</type>
+      <name>w25qxx_interface_debug_print</name>
+      <anchorfile>group__w25qxx__interface__driver.html</anchorfile>
+      <anchor>ga5325474fa17f6833744e631613fd2a0e</anchor>
+      <arglist>(const char *const fmt,...)</arglist>
+    </member>
+  </compound>
+  <compound kind="file">
+    <name>driver_w25qxx_interface_template.c</name>
+    <path>interface/</path>
+    <filename>driver__w25qxx__interface__template_8c.html</filename>
+    <includes id="driver__w25qxx__interface_8h" name="driver_w25qxx_interface.h" local="yes" import="no" module="no" objc="no">driver_w25qxx_interface.h</includes>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_interface_spi_qspi_init</name>
+      <anchorfile>group__w25qxx__interface__driver.html</anchorfile>
+      <anchor>ga2bdc17a556f1c801a38656331f3bb7b6</anchor>
+      <arglist>(void)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_interface_spi_qspi_deinit</name>
+      <anchorfile>group__w25qxx__interface__driver.html</anchorfile>
+      <anchor>ga091f3607fcdd47f9e5f94cf1397bd46a</anchor>
+      <arglist>(void)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_interface_spi_qspi_write_read</name>
+      <anchorfile>group__w25qxx__interface__driver.html</anchorfile>
+      <anchor>ga3d76ea1f431978f6b55edfd0628c94cd</anchor>
+      <arglist>(uint8_t instruction, uint8_t instruction_line, uint32_t address, uint8_t address_line, uint8_t address_len, uint32_t alternate, uint8_t alternate_line, uint8_t alternate_len, uint8_t dummy, uint8_t *in_buf, uint32_t in_len, uint8_t *out_buf, uint32_t out_len, uint8_t data_line)</arglist>
+    </member>
+    <member kind="function">
+      <type>void</type>
+      <name>w25qxx_interface_delay_ms</name>
+      <anchorfile>group__w25qxx__interface__driver.html</anchorfile>
+      <anchor>ga964fa232abf98737cb98458eebfff82c</anchor>
+      <arglist>(uint32_t ms)</arglist>
+    </member>
+    <member kind="function">
+      <type>void</type>
+      <name>w25qxx_interface_delay_us</name>
+      <anchorfile>group__w25qxx__interface__driver.html</anchorfile>
+      <anchor>ga38e79039b913154c9dd1036ff52bb420</anchor>
+      <arglist>(uint32_t us)</arglist>
+    </member>
+    <member kind="function">
+      <type>void</type>
+      <name>w25qxx_interface_debug_print</name>
+      <anchorfile>group__w25qxx__interface__driver.html</anchorfile>
+      <anchor>ga5325474fa17f6833744e631613fd2a0e</anchor>
+      <arglist>(const char *const fmt,...)</arglist>
+    </member>
+  </compound>
+  <compound kind="file">
+    <name>driver_w25qxx.c</name>
+    <path>src/</path>
+    <filename>driver__w25qxx_8c.html</filename>
+    <includes id="driver__w25qxx_8h" name="driver_w25qxx.h" local="yes" import="no" module="no" objc="no">driver_w25qxx.h</includes>
+    <member kind="define">
+      <type>#define</type>
+      <name>CHIP_NAME</name>
+      <anchorfile>driver__w25qxx_8c.html</anchorfile>
+      <anchor>adc9da0a24824ca1239b593f6459b3954</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="define">
+      <type>#define</type>
+      <name>MANUFACTURER_NAME</name>
+      <anchorfile>driver__w25qxx_8c.html</anchorfile>
+      <anchor>aaa2b8f5b105c3019df0cb346f472e803</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="define">
+      <type>#define</type>
+      <name>SUPPLY_VOLTAGE_MIN</name>
+      <anchorfile>driver__w25qxx_8c.html</anchorfile>
+      <anchor>aac8d8cbd899667d609787ef4cf37054d</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="define">
+      <type>#define</type>
+      <name>SUPPLY_VOLTAGE_MAX</name>
+      <anchorfile>driver__w25qxx_8c.html</anchorfile>
+      <anchor>a68eba8b601afe11f1b871d944976c035</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="define">
+      <type>#define</type>
+      <name>MAX_CURRENT</name>
+      <anchorfile>driver__w25qxx_8c.html</anchorfile>
+      <anchor>a2989837a37d6d63b59c6dd541b785435</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="define">
+      <type>#define</type>
+      <name>TEMPERATURE_MIN</name>
+      <anchorfile>driver__w25qxx_8c.html</anchorfile>
+      <anchor>aab353db5bf4eb787f86a2080f609a551</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="define">
+      <type>#define</type>
+      <name>TEMPERATURE_MAX</name>
+      <anchorfile>driver__w25qxx_8c.html</anchorfile>
+      <anchor>a90c0b20d54005712fcc8cb01281360e9</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="define">
+      <type>#define</type>
+      <name>DRIVER_VERSION</name>
+      <anchorfile>driver__w25qxx_8c.html</anchorfile>
+      <anchor>ae578001fe043b4cca7a0edd801cfe9c4</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="define">
+      <type>#define</type>
+      <name>W25QXX_COMMAND_WRITE_ENABLE</name>
+      <anchorfile>driver__w25qxx_8c.html</anchorfile>
+      <anchor>af0708c46377cfee2dff1ff429d8675d5</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="define">
+      <type>#define</type>
+      <name>W25QXX_COMMAND_VOLATILE_SR_WRITE_ENABLE</name>
+      <anchorfile>driver__w25qxx_8c.html</anchorfile>
+      <anchor>a7c9e980e30f499dd97b02935c91f2c02</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="define">
+      <type>#define</type>
+      <name>W25QXX_COMMAND_WRITE_DISABLE</name>
+      <anchorfile>driver__w25qxx_8c.html</anchorfile>
+      <anchor>a36dfb1951fe152d63e3715a161646713</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="define">
+      <type>#define</type>
+      <name>W25QXX_COMMAND_READ_STATUS_REG1</name>
+      <anchorfile>driver__w25qxx_8c.html</anchorfile>
+      <anchor>adf682969c34f4b31a87dd92dd18ccea3</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="define">
+      <type>#define</type>
+      <name>W25QXX_COMMAND_READ_STATUS_REG2</name>
+      <anchorfile>driver__w25qxx_8c.html</anchorfile>
+      <anchor>a4a8cdc5b6ce75029df877263bdf35f2a</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="define">
+      <type>#define</type>
+      <name>W25QXX_COMMAND_READ_STATUS_REG3</name>
+      <anchorfile>driver__w25qxx_8c.html</anchorfile>
+      <anchor>a09798bdb3fabdf7bb4cfd8bce18100ce</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="define">
+      <type>#define</type>
+      <name>W25QXX_COMMAND_WRITE_STATUS_REG1</name>
+      <anchorfile>driver__w25qxx_8c.html</anchorfile>
+      <anchor>a932f54ff92de8bbab4602ab85ac6c155</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="define">
+      <type>#define</type>
+      <name>W25QXX_COMMAND_WRITE_STATUS_REG2</name>
+      <anchorfile>driver__w25qxx_8c.html</anchorfile>
+      <anchor>a4be10ed873d56bb183d9b1bde9105135</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="define">
+      <type>#define</type>
+      <name>W25QXX_COMMAND_WRITE_STATUS_REG3</name>
+      <anchorfile>driver__w25qxx_8c.html</anchorfile>
+      <anchor>a6d099dc6afb59cc950d3abe96b840158</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="define">
+      <type>#define</type>
+      <name>W25QXX_COMMAND_CHIP_ERASE</name>
+      <anchorfile>driver__w25qxx_8c.html</anchorfile>
+      <anchor>a63ec9ecd709fcb69107756f253616a6e</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="define">
+      <type>#define</type>
+      <name>W25QXX_COMMAND_ERASE_PROGRAM_SUSPEND</name>
+      <anchorfile>driver__w25qxx_8c.html</anchorfile>
+      <anchor>a43f9a1e3c03d4a7d2a991e81f0e89f51</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="define">
+      <type>#define</type>
+      <name>W25QXX_COMMAND_ERASE_PROGRAM_RESUME</name>
+      <anchorfile>driver__w25qxx_8c.html</anchorfile>
+      <anchor>a0daeb46fb8b219a3d6b37d426c5c0e95</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="define">
+      <type>#define</type>
+      <name>W25QXX_COMMAND_POWER_DOWN</name>
+      <anchorfile>driver__w25qxx_8c.html</anchorfile>
+      <anchor>a6fe4d603e33b7c8b8310a884e02a130b</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="define">
+      <type>#define</type>
+      <name>W25QXX_COMMAND_RELEASE_POWER_DOWN</name>
+      <anchorfile>driver__w25qxx_8c.html</anchorfile>
+      <anchor>ad344065461b2c71521017984f040b425</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="define">
+      <type>#define</type>
+      <name>W25QXX_COMMAND_READ_MANUFACTURER</name>
+      <anchorfile>driver__w25qxx_8c.html</anchorfile>
+      <anchor>af6d9a5bc0b57b041e22af80b85e53f56</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="define">
+      <type>#define</type>
+      <name>W25QXX_COMMAND_JEDEC_ID</name>
+      <anchorfile>driver__w25qxx_8c.html</anchorfile>
+      <anchor>a54f3ece548cd5eadc94642235442315a</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="define">
+      <type>#define</type>
+      <name>W25QXX_COMMAND_GLOBAL_BLOCK_SECTOR_LOCK</name>
+      <anchorfile>driver__w25qxx_8c.html</anchorfile>
+      <anchor>af81bc9ddfc8da8eb911435e835536ffb</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="define">
+      <type>#define</type>
+      <name>W25QXX_COMMAND_GLOBAL_BLOCK_SECTOR_UNLOCK</name>
+      <anchorfile>driver__w25qxx_8c.html</anchorfile>
+      <anchor>ab96d2ad8602a5a50c988b8c09d4bbbc5</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="define">
+      <type>#define</type>
+      <name>W25QXX_COMMAND_ENTER_QSPI_MODE</name>
+      <anchorfile>driver__w25qxx_8c.html</anchorfile>
+      <anchor>a052d5373086b473bf0d450ea1bd73828</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="define">
+      <type>#define</type>
+      <name>W25QXX_COMMAND_ENABLE_RESET</name>
+      <anchorfile>driver__w25qxx_8c.html</anchorfile>
+      <anchor>a6dae3a832abc19d1861fafb32f231d94</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="define">
+      <type>#define</type>
+      <name>W25QXX_COMMAND_RESET_DEVICE</name>
+      <anchorfile>driver__w25qxx_8c.html</anchorfile>
+      <anchor>ab25182298c921c8f7f42216e0d5aa56b</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="define">
+      <type>#define</type>
+      <name>W25QXX_COMMAND_READ_UNIQUE_ID</name>
+      <anchorfile>driver__w25qxx_8c.html</anchorfile>
+      <anchor>a6aeed0a651b31064f25ab2f57fdacf2f</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="define">
+      <type>#define</type>
+      <name>W25QXX_COMMAND_PAGE_PROGRAM</name>
+      <anchorfile>driver__w25qxx_8c.html</anchorfile>
+      <anchor>aebca01f1f7fd279523d29e579998574a</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="define">
+      <type>#define</type>
+      <name>W25QXX_COMMAND_QUAD_PAGE_PROGRAM</name>
+      <anchorfile>driver__w25qxx_8c.html</anchorfile>
+      <anchor>a8212fac3d1e43024621b6b560a8dddfe</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="define">
+      <type>#define</type>
+      <name>W25QXX_COMMAND_SECTOR_ERASE_4K</name>
+      <anchorfile>driver__w25qxx_8c.html</anchorfile>
+      <anchor>a6e7cd159f91e23930450725fd6910f9c</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="define">
+      <type>#define</type>
+      <name>W25QXX_COMMAND_BLOCK_ERASE_32K</name>
+      <anchorfile>driver__w25qxx_8c.html</anchorfile>
+      <anchor>a8bfb4e869985f5fa21ea7d1d262f90ad</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="define">
+      <type>#define</type>
+      <name>W25QXX_COMMAND_BLOCK_ERASE_64K</name>
+      <anchorfile>driver__w25qxx_8c.html</anchorfile>
+      <anchor>a4c5a1ed46f4d662a61bc06573ab548a0</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="define">
+      <type>#define</type>
+      <name>W25QXX_COMMAND_READ_DATA</name>
+      <anchorfile>driver__w25qxx_8c.html</anchorfile>
+      <anchor>a23fcd6d9b067580d534d626c43b7cff3</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="define">
+      <type>#define</type>
+      <name>W25QXX_COMMAND_FAST_READ</name>
+      <anchorfile>driver__w25qxx_8c.html</anchorfile>
+      <anchor>ac957b31a68db8c14f88a196a98b0aa18</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="define">
+      <type>#define</type>
+      <name>W25QXX_COMMAND_FAST_READ_DUAL_OUTPUT</name>
+      <anchorfile>driver__w25qxx_8c.html</anchorfile>
+      <anchor>a8d49efa8b978ae8fd3eb18d0e5ae73e8</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="define">
+      <type>#define</type>
+      <name>W25QXX_COMMAND_FAST_READ_QUAD_OUTPUT</name>
+      <anchorfile>driver__w25qxx_8c.html</anchorfile>
+      <anchor>a54ddb3d948c4bb95cc62199676c817b2</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="define">
+      <type>#define</type>
+      <name>W25QXX_COMMAND_READ_SFDP_REGISTER</name>
+      <anchorfile>driver__w25qxx_8c.html</anchorfile>
+      <anchor>a63774c5ebbdf5445466d840fad567bf6</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="define">
+      <type>#define</type>
+      <name>W25QXX_COMMAND_ERASE_SECURITY_REGISTER</name>
+      <anchorfile>driver__w25qxx_8c.html</anchorfile>
+      <anchor>a842f8d646fc8f8ed72422fc1d789498c</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="define">
+      <type>#define</type>
+      <name>W25QXX_COMMAND_PROGRAM_SECURITY_REGISTER</name>
+      <anchorfile>driver__w25qxx_8c.html</anchorfile>
+      <anchor>a915ab53f5f2d1cad6b954205e76cb4d5</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="define">
+      <type>#define</type>
+      <name>W25QXX_COMMAND_READ_SECURITY_REGISTER</name>
+      <anchorfile>driver__w25qxx_8c.html</anchorfile>
+      <anchor>a4dc5fb2c3c15ef86df56b534b874a919</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="define">
+      <type>#define</type>
+      <name>W25QXX_COMMAND_INDIVIDUAL_BLOCK_LOCK</name>
+      <anchorfile>driver__w25qxx_8c.html</anchorfile>
+      <anchor>a328f6a9635b1ec6868410375de90b0df</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="define">
+      <type>#define</type>
+      <name>W25QXX_COMMAND_INDIVIDUAL_BLOCK_UNLOCK</name>
+      <anchorfile>driver__w25qxx_8c.html</anchorfile>
+      <anchor>a3cc8b61583b5eb9d7c1ecd6831689718</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="define">
+      <type>#define</type>
+      <name>W25QXX_COMMAND_READ_BLOCK_LOCK</name>
+      <anchorfile>driver__w25qxx_8c.html</anchorfile>
+      <anchor>a19e055bec30de0ad30e7f8ab5feea6a8</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="define">
+      <type>#define</type>
+      <name>W25QXX_COMMAND_FAST_READ_DUAL_IO</name>
+      <anchorfile>driver__w25qxx_8c.html</anchorfile>
+      <anchor>a2232ada3558228c2902d654989ca65f1</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="define">
+      <type>#define</type>
+      <name>W25QXX_COMMAND_DEVICE_ID_DUAL_IO</name>
+      <anchorfile>driver__w25qxx_8c.html</anchorfile>
+      <anchor>a374c09f79cc61a3e7ac374bca5122e25</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="define">
+      <type>#define</type>
+      <name>W25QXX_COMMAND_SET_BURST_WITH_WRAP</name>
+      <anchorfile>driver__w25qxx_8c.html</anchorfile>
+      <anchor>acfb19490258b26729fa83fdd60c4d822</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="define">
+      <type>#define</type>
+      <name>W25QXX_COMMAND_FAST_READ_QUAD_IO</name>
+      <anchorfile>driver__w25qxx_8c.html</anchorfile>
+      <anchor>a80d19998d9d1218d0fa69e7d4d6b0ecb</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="define">
+      <type>#define</type>
+      <name>W25QXX_COMMAND_WORD_READ_QUAD_IO</name>
+      <anchorfile>driver__w25qxx_8c.html</anchorfile>
+      <anchor>a947382a74ac06eb8a2ff8f5bcb1b744d</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="define">
+      <type>#define</type>
+      <name>W25QXX_COMMAND_OCTAL_WORD_READ_QUAD_IO</name>
+      <anchorfile>driver__w25qxx_8c.html</anchorfile>
+      <anchor>acb7f8599b26c29356651690ec9b25e66</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="define">
+      <type>#define</type>
+      <name>W25QXX_COMMAND_DEVICE_ID_QUAD_IO</name>
+      <anchorfile>driver__w25qxx_8c.html</anchorfile>
+      <anchor>a7573bc250d850078be3221c29521bc5c</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_set_dual_quad_spi</name>
+      <anchorfile>group__w25qxx__basic__driver.html</anchorfile>
+      <anchor>ga665139209b0abc386474a78d89cce6f2</anchor>
+      <arglist>(w25qxx_handle_t *handle, w25qxx_bool_t enable)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_get_dual_quad_spi</name>
+      <anchorfile>group__w25qxx__basic__driver.html</anchorfile>
+      <anchor>gad4c9b8b0a2d0916c13567f9d7e494cf8</anchor>
+      <arglist>(w25qxx_handle_t *handle, w25qxx_bool_t *enable)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_set_type</name>
+      <anchorfile>group__w25qxx__basic__driver.html</anchorfile>
+      <anchor>gaa57189cd4170b73f8b1300ca15e27de6</anchor>
+      <arglist>(w25qxx_handle_t *handle, w25qxx_type_t type)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_get_type</name>
+      <anchorfile>group__w25qxx__basic__driver.html</anchorfile>
+      <anchor>ga685379998dad173b6d9c0b0da270685c</anchor>
+      <arglist>(w25qxx_handle_t *handle, w25qxx_type_t *type)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_set_interface</name>
+      <anchorfile>group__w25qxx__basic__driver.html</anchorfile>
+      <anchor>ga50a62003d566402d46ada2f272c41eb5</anchor>
+      <arglist>(w25qxx_handle_t *handle, w25qxx_interface_t interface)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_get_interface</name>
+      <anchorfile>group__w25qxx__basic__driver.html</anchorfile>
+      <anchor>ga86ef839d475f3926a0be46bbc18d4b45</anchor>
+      <arglist>(w25qxx_handle_t *handle, w25qxx_interface_t *interface)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_set_address_mode</name>
+      <anchorfile>group__w25qxx__basic__driver.html</anchorfile>
+      <anchor>gad0e125eff304ce66fb3956d2c8c80656</anchor>
+      <arglist>(w25qxx_handle_t *handle, w25qxx_address_mode_t mode)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_get_address_mode</name>
+      <anchorfile>group__w25qxx__basic__driver.html</anchorfile>
+      <anchor>ga3a52036a97b12fcbe2280b0901a80b90</anchor>
+      <arglist>(w25qxx_handle_t *handle, w25qxx_address_mode_t *mode)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_enable_write</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>gaeb269123feec054eaaf70f2ffb5797a3</anchor>
+      <arglist>(w25qxx_handle_t *handle)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_enable_volatile_sr_write</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>ga0f8889d6a25c32e150a2ab30753d461d</anchor>
+      <arglist>(w25qxx_handle_t *handle)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_disable_write</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>gac16a31269277051baad6c28fe4254b4a</anchor>
+      <arglist>(w25qxx_handle_t *handle)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_get_status1</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>gaa77d2b00b4fb9cf586f77ace827ea7c6</anchor>
+      <arglist>(w25qxx_handle_t *handle, uint8_t *status)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_get_status2</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>gaa21237ecbd5951b8017799066e7db5d9</anchor>
+      <arglist>(w25qxx_handle_t *handle, uint8_t *status)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_get_status3</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>ga99cf6a325a00921d4531004f0c1d75b1</anchor>
+      <arglist>(w25qxx_handle_t *handle, uint8_t *status)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_set_status1</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>ga246e0bb07c8bbb39731f17906779c012</anchor>
+      <arglist>(w25qxx_handle_t *handle, uint8_t status)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_set_status2</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>gaab5f28e8930d50dbc2178e39bc9fa456</anchor>
+      <arglist>(w25qxx_handle_t *handle, uint8_t status)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_set_status3</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>gada897a6c6d6acb99f4dd4ff9b65ad8ee</anchor>
+      <arglist>(w25qxx_handle_t *handle, uint8_t status)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_chip_erase</name>
+      <anchorfile>group__w25qxx__basic__driver.html</anchorfile>
+      <anchor>ga0862833b36831f92684980b2e21f2e39</anchor>
+      <arglist>(w25qxx_handle_t *handle)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_erase_program_suspend</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>gac7fbabc574c250eec100be861f5918ff</anchor>
+      <arglist>(w25qxx_handle_t *handle)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_erase_program_resume</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>ga05c69ac66309544eba4ff38a69f24c00</anchor>
+      <arglist>(w25qxx_handle_t *handle)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_power_down</name>
+      <anchorfile>group__w25qxx__basic__driver.html</anchorfile>
+      <anchor>gae4effce67e36120325e3c7b245b90142</anchor>
+      <arglist>(w25qxx_handle_t *handle)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_release_power_down</name>
+      <anchorfile>group__w25qxx__basic__driver.html</anchorfile>
+      <anchor>ga09c9b52877516a2ee4c080dc249e7331</anchor>
+      <arglist>(w25qxx_handle_t *handle)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_get_manufacturer_device_id</name>
+      <anchorfile>group__w25qxx__basic__driver.html</anchorfile>
+      <anchor>ga921836a777b082ff4d0f322ccfda6b22</anchor>
+      <arglist>(w25qxx_handle_t *handle, uint8_t *manufacturer, uint8_t *device_id)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_get_manufacturer_device_id_dual_io</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>ga1cd3aec1bdeabbaed5f049fbf83ceeb4</anchor>
+      <arglist>(w25qxx_handle_t *handle, uint8_t *manufacturer, uint8_t *device_id)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_get_manufacturer_device_id_quad_io</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>ga61bd3ce40b76b6862c6a53e0e37a3455</anchor>
+      <arglist>(w25qxx_handle_t *handle, uint8_t *manufacturer, uint8_t *device_id)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_get_jedec_id</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>ga8a93ba14a032e10a27f1495fdcf56058</anchor>
+      <arglist>(w25qxx_handle_t *handle, uint8_t *manufacturer, uint8_t device_id[2])</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_global_block_lock</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>gab5579bc42bc07a7657848140888a817c</anchor>
+      <arglist>(w25qxx_handle_t *handle)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_global_block_unlock</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>ga6d62f7d14945cfde7cde7a0e9a4e3afb</anchor>
+      <arglist>(w25qxx_handle_t *handle)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_set_read_parameters</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>ga9ad10781d888b32b43b9eba45d049624</anchor>
+      <arglist>(w25qxx_handle_t *handle, w25qxx_qspi_read_dummy_t dummy, w25qxx_qspi_read_wrap_length_t length)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_enter_qspi_mode</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>gaa5ab3548707a95ded115255432224c5a</anchor>
+      <arglist>(w25qxx_handle_t *handle)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_exit_qspi_mode</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>ga6b9f75f7426a54ffdb1f5a057f8188f4</anchor>
+      <arglist>(w25qxx_handle_t *handle)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_enable_reset</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>gab55b4e071e20feb58584025287949438</anchor>
+      <arglist>(w25qxx_handle_t *handle)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_reset_device</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>ga2abebfe2a8d9377eb88448ffca73f222</anchor>
+      <arglist>(w25qxx_handle_t *handle)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_get_unique_id</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>ga11af244389478de68a6777076ee82d69</anchor>
+      <arglist>(w25qxx_handle_t *handle, uint8_t id[8])</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_get_sfdp</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>ga244a91b9c0c32e899ca89e1943045624</anchor>
+      <arglist>(w25qxx_handle_t *handle, uint8_t sfdp[256])</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_erase_security_register</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>gaf297e2c6877c64f8fd10a555f783ddaf</anchor>
+      <arglist>(w25qxx_handle_t *handle, w25qxx_security_register_t num)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_program_security_register</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>ga4e9c059ff78866e478e835cb27a92899</anchor>
+      <arglist>(w25qxx_handle_t *handle, w25qxx_security_register_t num, uint8_t data[256])</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_read_security_register</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>ga4c65debc4947bd9a61e0073105164b9c</anchor>
+      <arglist>(w25qxx_handle_t *handle, w25qxx_security_register_t num, uint8_t data[256])</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_only_spi_read</name>
+      <anchorfile>group__w25qxx__basic__driver.html</anchorfile>
+      <anchor>ga1e9ebf198137d23558dbf6470213c472</anchor>
+      <arglist>(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_fast_read</name>
+      <anchorfile>group__w25qxx__basic__driver.html</anchorfile>
+      <anchor>gac345ba10af5ad355578fa97697487123</anchor>
+      <arglist>(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_fast_read_dual_output</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>ga7a19230ca3916816ea8fb7421483d293</anchor>
+      <arglist>(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_fast_read_quad_output</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>gaf4bfafd1f80aa0316a4b1a15183dcd50</anchor>
+      <arglist>(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_fast_read_dual_io</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>gac894f4650905cba10dd3a31284de6d5e</anchor>
+      <arglist>(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_fast_read_quad_io</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>gab97a64bd3776874518f60381d921ae41</anchor>
+      <arglist>(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_word_read_quad_io</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>gad97d7e410dd77c49334097a0fd332660</anchor>
+      <arglist>(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_octal_word_read_quad_io</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>ga88a62ec42e86db821ff3f0d3ab541dbb</anchor>
+      <arglist>(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_page_program</name>
+      <anchorfile>group__w25qxx__basic__driver.html</anchorfile>
+      <anchor>ga6280e7e4ab26306436e2c210617a28b3</anchor>
+      <arglist>(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint16_t len)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_page_program_quad_input</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>ga1f80bbbaaa852eecfffb87737889363d</anchor>
+      <arglist>(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint16_t len)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_sector_erase_4k</name>
+      <anchorfile>group__w25qxx__basic__driver.html</anchorfile>
+      <anchor>ga9a03c51b4c84655350c15fbfce0a6b40</anchor>
+      <arglist>(w25qxx_handle_t *handle, uint32_t addr)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_block_erase_32k</name>
+      <anchorfile>group__w25qxx__basic__driver.html</anchorfile>
+      <anchor>ga39c8fb382e8c3e4d57232dfa79af781c</anchor>
+      <arglist>(w25qxx_handle_t *handle, uint32_t addr)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_block_erase_64k</name>
+      <anchorfile>group__w25qxx__basic__driver.html</anchorfile>
+      <anchor>gaf53bc5f6073482b9b74efd417ec7ac83</anchor>
+      <arglist>(w25qxx_handle_t *handle, uint32_t addr)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_individual_block_lock</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>ga4f00c2c169cb7c3084841c6cd795e76b</anchor>
+      <arglist>(w25qxx_handle_t *handle, uint32_t addr)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_individual_block_unlock</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>ga7f88cedf7619071b3235ba094915b2a7</anchor>
+      <arglist>(w25qxx_handle_t *handle, uint32_t addr)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_read_block_lock</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>ga59e655ca78a175037ca810bbc8539a96</anchor>
+      <arglist>(w25qxx_handle_t *handle, uint32_t addr, uint8_t *value)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_set_burst_with_wrap</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>gac19c1d0f3fd48968ea2a93c1dbe3d75d</anchor>
+      <arglist>(w25qxx_handle_t *handle, w25qxx_burst_wrap_t wrap)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_init</name>
+      <anchorfile>group__w25qxx__basic__driver.html</anchorfile>
+      <anchor>ga8e7a163b3d255b8c7fc035d0d60f2491</anchor>
+      <arglist>(w25qxx_handle_t *handle)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_deinit</name>
+      <anchorfile>group__w25qxx__basic__driver.html</anchorfile>
+      <anchor>gaa293c3a46c4010a3af597a83e646de0d</anchor>
+      <arglist>(w25qxx_handle_t *handle)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_read</name>
+      <anchorfile>group__w25qxx__basic__driver.html</anchorfile>
+      <anchor>gae7479fc9ce911a52e3c5b6f1a615b879</anchor>
+      <arglist>(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_write</name>
+      <anchorfile>group__w25qxx__basic__driver.html</anchorfile>
+      <anchor>gaaee8264d840e51460821cb6e609338ee</anchor>
+      <arglist>(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_write_read_reg</name>
+      <anchorfile>group__w25qxx__extern__driver.html</anchorfile>
+      <anchor>ga9623a3bec148b148498480518a66cb2b</anchor>
+      <arglist>(w25qxx_handle_t *handle, uint8_t instruction, uint8_t instruction_line, uint32_t address, uint8_t address_line, uint8_t address_len, uint32_t alternate, uint8_t alternate_line, uint8_t alternate_len, uint8_t dummy, uint8_t *in_buf, uint32_t in_len, uint8_t *out_buf, uint32_t out_len, uint8_t data_line)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_info</name>
+      <anchorfile>group__w25qxx__basic__driver.html</anchorfile>
+      <anchor>ga996e2d3009432e7f8c1a5175c4438a57</anchor>
+      <arglist>(w25qxx_info_t *info)</arglist>
+    </member>
+  </compound>
+  <compound kind="file">
+    <name>driver_w25qxx.h</name>
+    <path>src/</path>
+    <filename>driver__w25qxx_8h.html</filename>
+    <class kind="struct">w25qxx_handle_s</class>
+    <class kind="struct">w25qxx_info_s</class>
+    <member kind="define">
+      <type>#define</type>
+      <name>DRIVER_W25QXX_LINK_INIT</name>
+      <anchorfile>group__w25qxx__link__driver.html</anchorfile>
+      <anchor>ga995378489f95bc6bbddbe710557e3384</anchor>
+      <arglist>(HANDLE, STRUCTURE)</arglist>
+    </member>
+    <member kind="define">
+      <type>#define</type>
+      <name>DRIVER_W25QXX_LINK_SPI_QSPI_INIT</name>
+      <anchorfile>group__w25qxx__link__driver.html</anchorfile>
+      <anchor>gab2587de93f1dba5664eede8cd787a88a</anchor>
+      <arglist>(HANDLE, FUC)</arglist>
+    </member>
+    <member kind="define">
+      <type>#define</type>
+      <name>DRIVER_W25QXX_LINK_SPI_QSPI_DEINIT</name>
+      <anchorfile>group__w25qxx__link__driver.html</anchorfile>
+      <anchor>gaec8b55e83b46907be1dd9e7c50be550d</anchor>
+      <arglist>(HANDLE, FUC)</arglist>
+    </member>
+    <member kind="define">
+      <type>#define</type>
+      <name>DRIVER_W25QXX_LINK_SPI_QSPI_WRITE_READ</name>
+      <anchorfile>group__w25qxx__link__driver.html</anchorfile>
+      <anchor>gac8f0ca0a725790bace3241d1d616e3d1</anchor>
+      <arglist>(HANDLE, FUC)</arglist>
+    </member>
+    <member kind="define">
+      <type>#define</type>
+      <name>DRIVER_W25QXX_LINK_DELAY_MS</name>
+      <anchorfile>group__w25qxx__link__driver.html</anchorfile>
+      <anchor>ga7555618f13d2de0003ae6d9483085180</anchor>
+      <arglist>(HANDLE, FUC)</arglist>
+    </member>
+    <member kind="define">
+      <type>#define</type>
+      <name>DRIVER_W25QXX_LINK_DELAY_US</name>
+      <anchorfile>group__w25qxx__link__driver.html</anchorfile>
+      <anchor>gafc81bf850c80dfa316f0c6ab40be6e67</anchor>
+      <arglist>(HANDLE, FUC)</arglist>
+    </member>
+    <member kind="define">
+      <type>#define</type>
+      <name>DRIVER_W25QXX_LINK_DEBUG_PRINT</name>
+      <anchorfile>group__w25qxx__link__driver.html</anchorfile>
+      <anchor>gab8d49ef9dca942fe5f37c30dcd7e22a6</anchor>
+      <arglist>(HANDLE, FUC)</arglist>
+    </member>
+    <member kind="typedef">
+      <type>struct w25qxx_handle_s</type>
+      <name>w25qxx_handle_t</name>
+      <anchorfile>group__w25qxx__basic__driver.html</anchorfile>
+      <anchor>ga56d8a7b5f8b7eaed8df0b6dc90c266be</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="typedef">
+      <type>struct w25qxx_info_s</type>
+      <name>w25qxx_info_t</name>
+      <anchorfile>group__w25qxx__basic__driver.html</anchorfile>
+      <anchor>ga601d841ddd0ff8ad3ab52e07c679ef19</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumeration">
+      <type></type>
+      <name>w25qxx_type_t</name>
+      <anchorfile>group__w25qxx__basic__driver.html</anchorfile>
+      <anchor>ga6cb4e5164464df549201dd96cb7a58b1</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumvalue">
+      <name>W25Q80</name>
+      <anchorfile>group__w25qxx__basic__driver.html</anchorfile>
+      <anchor>gga6cb4e5164464df549201dd96cb7a58b1a1ad4f72437de5f26cb7b212d4d91e7c2</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumvalue">
+      <name>W25Q16</name>
+      <anchorfile>group__w25qxx__basic__driver.html</anchorfile>
+      <anchor>gga6cb4e5164464df549201dd96cb7a58b1a66acb81a2d520a7d92ce1d37210c6435</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumvalue">
+      <name>W25Q32</name>
+      <anchorfile>group__w25qxx__basic__driver.html</anchorfile>
+      <anchor>gga6cb4e5164464df549201dd96cb7a58b1a4fdad551be6485441db5951f196db7cb</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumvalue">
+      <name>W25Q64</name>
+      <anchorfile>group__w25qxx__basic__driver.html</anchorfile>
+      <anchor>gga6cb4e5164464df549201dd96cb7a58b1a3ea98b2b3e06afa29441c51548bbb16e</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumvalue">
+      <name>W25Q128</name>
+      <anchorfile>group__w25qxx__basic__driver.html</anchorfile>
+      <anchor>gga6cb4e5164464df549201dd96cb7a58b1a75afcbe71906d3884f4fcc119c1cabd5</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumvalue">
+      <name>W25Q256</name>
+      <anchorfile>group__w25qxx__basic__driver.html</anchorfile>
+      <anchor>gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumeration">
+      <type></type>
+      <name>w25qxx_interface_t</name>
+      <anchorfile>group__w25qxx__basic__driver.html</anchorfile>
+      <anchor>gacbf327a42336baf10713a1796ff4f2fe</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumvalue">
+      <name>W25QXX_INTERFACE_SPI</name>
+      <anchorfile>group__w25qxx__basic__driver.html</anchorfile>
+      <anchor>ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumvalue">
+      <name>W25QXX_INTERFACE_QSPI</name>
+      <anchorfile>group__w25qxx__basic__driver.html</anchorfile>
+      <anchor>ggacbf327a42336baf10713a1796ff4f2fea895dcb5c91da89fad1c12161ffd2d5d4</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumeration">
+      <type></type>
+      <name>w25qxx_bool_t</name>
+      <anchorfile>group__w25qxx__basic__driver.html</anchorfile>
+      <anchor>gafb2690946f5baf4be6f3a63dde5491fb</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumvalue">
+      <name>W25QXX_BOOL_FALSE</name>
+      <anchorfile>group__w25qxx__basic__driver.html</anchorfile>
+      <anchor>ggafb2690946f5baf4be6f3a63dde5491fba02afbdc2c6c3d761cd31ac39c857ee9a</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumvalue">
+      <name>W25QXX_BOOL_TRUE</name>
+      <anchorfile>group__w25qxx__basic__driver.html</anchorfile>
+      <anchor>ggafb2690946f5baf4be6f3a63dde5491fbae2a935d12b0b1bc9fc321246ee0e0df8</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumeration">
+      <type></type>
+      <name>w25qxx_address_mode_t</name>
+      <anchorfile>group__w25qxx__basic__driver.html</anchorfile>
+      <anchor>gaa4c45f146d1ade8a2da8e751818fa4a2</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumvalue">
+      <name>W25QXX_ADDRESS_MODE_3_BYTE</name>
+      <anchorfile>group__w25qxx__basic__driver.html</anchorfile>
+      <anchor>ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumvalue">
+      <name>W25QXX_ADDRESS_MODE_4_BYTE</name>
+      <anchorfile>group__w25qxx__basic__driver.html</anchorfile>
+      <anchor>ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumeration">
+      <type></type>
+      <name>w25qxx_qspi_read_dummy_t</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>ga6ff284154302248f00db269146545443</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumvalue">
+      <name>W25QXX_QSPI_READ_DUMMY_2_33MHZ</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>gga6ff284154302248f00db269146545443ad73634a0f4534c3ae35d4242b2bc8f13</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumvalue">
+      <name>W25QXX_QSPI_READ_DUMMY_4_55MHZ</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>gga6ff284154302248f00db269146545443a6423b5606e72af6479fe31a6a9883aeb</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumvalue">
+      <name>W25QXX_QSPI_READ_DUMMY_6_80MHZ</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>gga6ff284154302248f00db269146545443a78393debe12bbb3efb710e38e3c1d550</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumvalue">
+      <name>W25QXX_QSPI_READ_DUMMY_8_80MHZ</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>gga6ff284154302248f00db269146545443ade1d3511f15c7d92de8c5d8967c471c3</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumeration">
+      <type></type>
+      <name>w25qxx_qspi_read_wrap_length_t</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>ga2fd3023819e1aebe089a4a72eb136da3</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumvalue">
+      <name>W25QXX_QSPI_READ_WRAP_LENGTH_8_BYTE</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>gga2fd3023819e1aebe089a4a72eb136da3a5b8fa1026c564fe83f3f0f0edb89d1dd</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumvalue">
+      <name>W25QXX_QSPI_READ_WRAP_LENGTH_16_BYTE</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>gga2fd3023819e1aebe089a4a72eb136da3ae6bc2fcd2d4fc3af63f22da56a3b393b</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumvalue">
+      <name>W25QXX_QSPI_READ_WRAP_LENGTH_32_BYTE</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>gga2fd3023819e1aebe089a4a72eb136da3aa5f2e6b5718a85ab9241125e84181216</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumvalue">
+      <name>W25QXX_QSPI_READ_WRAP_LENGTH_64_BYTE</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>gga2fd3023819e1aebe089a4a72eb136da3a736f25eeae36f6a0b62d4cb1666a689f</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumeration">
+      <type></type>
+      <name>w25qxx_security_register_t</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>ga81ddc7d4b9f4f124163beea19cc33c7e</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumvalue">
+      <name>W25QXX_SECURITY_REGISTER_1</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>gga81ddc7d4b9f4f124163beea19cc33c7eaaf27484a497c13915c8acb0161cf137d</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumvalue">
+      <name>W25QXX_SECURITY_REGISTER_2</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>gga81ddc7d4b9f4f124163beea19cc33c7ea3353a88090850174ca163d56e4d7089c</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumvalue">
+      <name>W25QXX_SECURITY_REGISTER_3</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>gga81ddc7d4b9f4f124163beea19cc33c7ea65b73162d921075bed8cb8d848948900</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumeration">
+      <type></type>
+      <name>w25qxx_burst_wrap_t</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>ga94bbae2bf8906903e8dc2a28c490723d</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumvalue">
+      <name>W25QXX_BURST_WRAP_NONE</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>gga94bbae2bf8906903e8dc2a28c490723dae39a7ea65512a56d40aad2990d55815d</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumvalue">
+      <name>W25QXX_BURST_WRAP_8_BYTE</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>gga94bbae2bf8906903e8dc2a28c490723da35edf6c31d0fe1771ab79669d13b7af8</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumvalue">
+      <name>W25QXX_BURST_WRAP_16_BYTE</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>gga94bbae2bf8906903e8dc2a28c490723dafec1eb230b49fbda6ffcc1eeda64179a</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumvalue">
+      <name>W25QXX_BURST_WRAP_32_BYTE</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>gga94bbae2bf8906903e8dc2a28c490723dae2ac810153f9515a145773c34409b995</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumvalue">
+      <name>W25QXX_BURST_WRAP_64_BYTE</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>gga94bbae2bf8906903e8dc2a28c490723da2a3afd7924b00cf74abe83f5216c8915</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumeration">
+      <type></type>
+      <name>w25qxx_status1_t</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>ga9e41a72d1e25d39d88ce7108a9b25595</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumvalue">
+      <name>W25QXX_STATUS1_STATUS_REGISTER_PROTECT_0</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>gga9e41a72d1e25d39d88ce7108a9b25595a00d1d224963ec1f38ac97802480b2129</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumvalue">
+      <name>W25QXX_STATUS1_SECTOR_PROTECT_OR_TOP_BOTTOM_PROTECT</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>gga9e41a72d1e25d39d88ce7108a9b25595a9522040a098337442eff127e1598776d</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumvalue">
+      <name>W25QXX_STATUS1_TOP_BOTTOM_PROTECT_OR_BLOCK_PROTECT_3</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>gga9e41a72d1e25d39d88ce7108a9b25595a63bc45b7e0e19de7e58e3494eb4046c5</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumvalue">
+      <name>W25QXX_STATUS1_BLOCK_PROTECT_2</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>gga9e41a72d1e25d39d88ce7108a9b25595a9a02180228dbb94e9d302b667fda884f</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumvalue">
+      <name>W25QXX_STATUS1_BLOCK_PROTECT_1</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>gga9e41a72d1e25d39d88ce7108a9b25595a3465f02625d38730630b60cd01e92085</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumvalue">
+      <name>W25QXX_STATUS1_BLOCK_PROTECT_0</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>gga9e41a72d1e25d39d88ce7108a9b25595a7b7e8922009c0d6a88bbfad76a812262</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumvalue">
+      <name>W25QXX_STATUS1_WRITE_ENABLE_LATCH</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>gga9e41a72d1e25d39d88ce7108a9b25595a1438a76d1be1aa02e4f7450a045c02e3</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumvalue">
+      <name>W25QXX_STATUS1_ERASE_WRITE_PROGRESS</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>gga9e41a72d1e25d39d88ce7108a9b25595ae1ce566fc564776e98a5c7edefe8c5ea</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumeration">
+      <type></type>
+      <name>w25qxx_status2_t</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>ga0d28076f6fc7d3ae9dd7f8410069a277</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumvalue">
+      <name>W25QXX_STATUS2_SUSPEND_STATUS</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>gga0d28076f6fc7d3ae9dd7f8410069a277a3fdb54846709f77391e426c626a19152</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumvalue">
+      <name>W25QXX_STATUS2_COMPLEMENT_PROTECT</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>gga0d28076f6fc7d3ae9dd7f8410069a277a517e9e50ada30462f902d01e8d5579dc</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumvalue">
+      <name>W25QXX_STATUS2_SECURITY_REGISTER_3_LOCK_BITS</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>gga0d28076f6fc7d3ae9dd7f8410069a277a0f3e2b3059d56f974724a8284142e69a</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumvalue">
+      <name>W25QXX_STATUS2_SECURITY_REGISTER_2_LOCK_BITS</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>gga0d28076f6fc7d3ae9dd7f8410069a277a24a99f1a97023ae103c1bec3027bbf26</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumvalue">
+      <name>W25QXX_STATUS2_SECURITY_REGISTER_1_LOCK_BITS</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>gga0d28076f6fc7d3ae9dd7f8410069a277a7a631c1c153cc099a52883b40007079e</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumvalue">
+      <name>W25QXX_STATUS2_QUAD_ENABLE</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>gga0d28076f6fc7d3ae9dd7f8410069a277aa920a9c9a590fb8740419d8d2e4230f3</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumvalue">
+      <name>W25QXX_STATUS2_STATUS_REGISTER_PROTECT_1</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>gga0d28076f6fc7d3ae9dd7f8410069a277a5a89a885ba2a59eccd0445443e3bbac6</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumeration">
+      <type></type>
+      <name>w25qxx_status3_t</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>gace18ebb2eac49cbde44a2935916f44ac</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumvalue">
+      <name>W25QXX_STATUS3_HOLD_RESET_FUNCTION</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>ggace18ebb2eac49cbde44a2935916f44aca9ab13d5388af0156c4e4de08765ec401</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumvalue">
+      <name>W25QXX_STATUS3_OUTPUT_DRIVER_STRENGTH_100_PERCENTAGE</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>ggace18ebb2eac49cbde44a2935916f44acab5b1ce328b88d08f3d55ed776e01fedb</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumvalue">
+      <name>W25QXX_STATUS3_OUTPUT_DRIVER_STRENGTH_75_PERCENTAGE</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>ggace18ebb2eac49cbde44a2935916f44aca7ab6ace72a02afc20f92f48e975b60b7</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumvalue">
+      <name>W25QXX_STATUS3_OUTPUT_DRIVER_STRENGTH_50_PERCENTAGE</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>ggace18ebb2eac49cbde44a2935916f44aca8abcd821f1f0d02b3d9179c7ab58d0e0</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumvalue">
+      <name>W25QXX_STATUS3_OUTPUT_DRIVER_STRENGTH_25_PERCENTAGE</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>ggace18ebb2eac49cbde44a2935916f44acae645c265a6beb76a088352e2f4bfb4e1</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumvalue">
+      <name>W25QXX_STATUS3_WRITE_PROTECT_SELECTION</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>ggace18ebb2eac49cbde44a2935916f44aca7dc507c444fb395a4956bf50d78f1ee3</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumvalue">
+      <name>W25QXX_STATUS3_POWER_UP_ADDRESS_MODE</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>ggace18ebb2eac49cbde44a2935916f44acadc8d5949eaea0c6ce4e17c6e746f4f65</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumvalue">
+      <name>W25QXX_STATUS3_CURRENT_ADDRESS_MODE</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>ggace18ebb2eac49cbde44a2935916f44aca3c822d6eacd9747ca2173607a09591ac</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_info</name>
+      <anchorfile>group__w25qxx__basic__driver.html</anchorfile>
+      <anchor>ga996e2d3009432e7f8c1a5175c4438a57</anchor>
+      <arglist>(w25qxx_info_t *info)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_set_dual_quad_spi</name>
+      <anchorfile>group__w25qxx__basic__driver.html</anchorfile>
+      <anchor>ga665139209b0abc386474a78d89cce6f2</anchor>
+      <arglist>(w25qxx_handle_t *handle, w25qxx_bool_t enable)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_get_dual_quad_spi</name>
+      <anchorfile>group__w25qxx__basic__driver.html</anchorfile>
+      <anchor>gad4c9b8b0a2d0916c13567f9d7e494cf8</anchor>
+      <arglist>(w25qxx_handle_t *handle, w25qxx_bool_t *enable)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_set_type</name>
+      <anchorfile>group__w25qxx__basic__driver.html</anchorfile>
+      <anchor>gaa57189cd4170b73f8b1300ca15e27de6</anchor>
+      <arglist>(w25qxx_handle_t *handle, w25qxx_type_t type)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_get_type</name>
+      <anchorfile>group__w25qxx__basic__driver.html</anchorfile>
+      <anchor>ga685379998dad173b6d9c0b0da270685c</anchor>
+      <arglist>(w25qxx_handle_t *handle, w25qxx_type_t *type)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_set_interface</name>
+      <anchorfile>group__w25qxx__basic__driver.html</anchorfile>
+      <anchor>ga50a62003d566402d46ada2f272c41eb5</anchor>
+      <arglist>(w25qxx_handle_t *handle, w25qxx_interface_t interface)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_get_interface</name>
+      <anchorfile>group__w25qxx__basic__driver.html</anchorfile>
+      <anchor>ga86ef839d475f3926a0be46bbc18d4b45</anchor>
+      <arglist>(w25qxx_handle_t *handle, w25qxx_interface_t *interface)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_set_address_mode</name>
+      <anchorfile>group__w25qxx__basic__driver.html</anchorfile>
+      <anchor>gad0e125eff304ce66fb3956d2c8c80656</anchor>
+      <arglist>(w25qxx_handle_t *handle, w25qxx_address_mode_t mode)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_get_address_mode</name>
+      <anchorfile>group__w25qxx__basic__driver.html</anchorfile>
+      <anchor>ga3a52036a97b12fcbe2280b0901a80b90</anchor>
+      <arglist>(w25qxx_handle_t *handle, w25qxx_address_mode_t *mode)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_init</name>
+      <anchorfile>group__w25qxx__basic__driver.html</anchorfile>
+      <anchor>ga8e7a163b3d255b8c7fc035d0d60f2491</anchor>
+      <arglist>(w25qxx_handle_t *handle)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_deinit</name>
+      <anchorfile>group__w25qxx__basic__driver.html</anchorfile>
+      <anchor>gaa293c3a46c4010a3af597a83e646de0d</anchor>
+      <arglist>(w25qxx_handle_t *handle)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_read</name>
+      <anchorfile>group__w25qxx__basic__driver.html</anchorfile>
+      <anchor>gae7479fc9ce911a52e3c5b6f1a615b879</anchor>
+      <arglist>(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_write</name>
+      <anchorfile>group__w25qxx__basic__driver.html</anchorfile>
+      <anchor>gaaee8264d840e51460821cb6e609338ee</anchor>
+      <arglist>(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_only_spi_read</name>
+      <anchorfile>group__w25qxx__basic__driver.html</anchorfile>
+      <anchor>ga1e9ebf198137d23558dbf6470213c472</anchor>
+      <arglist>(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_fast_read</name>
+      <anchorfile>group__w25qxx__basic__driver.html</anchorfile>
+      <anchor>gac345ba10af5ad355578fa97697487123</anchor>
+      <arglist>(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_page_program</name>
+      <anchorfile>group__w25qxx__basic__driver.html</anchorfile>
+      <anchor>ga6280e7e4ab26306436e2c210617a28b3</anchor>
+      <arglist>(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint16_t len)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_sector_erase_4k</name>
+      <anchorfile>group__w25qxx__basic__driver.html</anchorfile>
+      <anchor>ga9a03c51b4c84655350c15fbfce0a6b40</anchor>
+      <arglist>(w25qxx_handle_t *handle, uint32_t addr)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_block_erase_32k</name>
+      <anchorfile>group__w25qxx__basic__driver.html</anchorfile>
+      <anchor>ga39c8fb382e8c3e4d57232dfa79af781c</anchor>
+      <arglist>(w25qxx_handle_t *handle, uint32_t addr)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_block_erase_64k</name>
+      <anchorfile>group__w25qxx__basic__driver.html</anchorfile>
+      <anchor>gaf53bc5f6073482b9b74efd417ec7ac83</anchor>
+      <arglist>(w25qxx_handle_t *handle, uint32_t addr)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_chip_erase</name>
+      <anchorfile>group__w25qxx__basic__driver.html</anchorfile>
+      <anchor>ga0862833b36831f92684980b2e21f2e39</anchor>
+      <arglist>(w25qxx_handle_t *handle)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_power_down</name>
+      <anchorfile>group__w25qxx__basic__driver.html</anchorfile>
+      <anchor>gae4effce67e36120325e3c7b245b90142</anchor>
+      <arglist>(w25qxx_handle_t *handle)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_release_power_down</name>
+      <anchorfile>group__w25qxx__basic__driver.html</anchorfile>
+      <anchor>ga09c9b52877516a2ee4c080dc249e7331</anchor>
+      <arglist>(w25qxx_handle_t *handle)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_get_manufacturer_device_id</name>
+      <anchorfile>group__w25qxx__basic__driver.html</anchorfile>
+      <anchor>ga921836a777b082ff4d0f322ccfda6b22</anchor>
+      <arglist>(w25qxx_handle_t *handle, uint8_t *manufacturer, uint8_t *device_id)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_fast_read_dual_output</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>ga7a19230ca3916816ea8fb7421483d293</anchor>
+      <arglist>(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_fast_read_quad_output</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>gaf4bfafd1f80aa0316a4b1a15183dcd50</anchor>
+      <arglist>(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_fast_read_dual_io</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>gac894f4650905cba10dd3a31284de6d5e</anchor>
+      <arglist>(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_fast_read_quad_io</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>gab97a64bd3776874518f60381d921ae41</anchor>
+      <arglist>(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_word_read_quad_io</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>gad97d7e410dd77c49334097a0fd332660</anchor>
+      <arglist>(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_octal_word_read_quad_io</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>ga88a62ec42e86db821ff3f0d3ab541dbb</anchor>
+      <arglist>(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_page_program_quad_input</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>ga1f80bbbaaa852eecfffb87737889363d</anchor>
+      <arglist>(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint16_t len)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_enable_write</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>gaeb269123feec054eaaf70f2ffb5797a3</anchor>
+      <arglist>(w25qxx_handle_t *handle)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_enable_volatile_sr_write</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>ga0f8889d6a25c32e150a2ab30753d461d</anchor>
+      <arglist>(w25qxx_handle_t *handle)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_disable_write</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>gac16a31269277051baad6c28fe4254b4a</anchor>
+      <arglist>(w25qxx_handle_t *handle)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_get_status1</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>gaa77d2b00b4fb9cf586f77ace827ea7c6</anchor>
+      <arglist>(w25qxx_handle_t *handle, uint8_t *status)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_get_status2</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>gaa21237ecbd5951b8017799066e7db5d9</anchor>
+      <arglist>(w25qxx_handle_t *handle, uint8_t *status)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_get_status3</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>ga99cf6a325a00921d4531004f0c1d75b1</anchor>
+      <arglist>(w25qxx_handle_t *handle, uint8_t *status)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_set_status1</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>ga246e0bb07c8bbb39731f17906779c012</anchor>
+      <arglist>(w25qxx_handle_t *handle, uint8_t status)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_set_status2</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>gaab5f28e8930d50dbc2178e39bc9fa456</anchor>
+      <arglist>(w25qxx_handle_t *handle, uint8_t status)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_set_status3</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>gada897a6c6d6acb99f4dd4ff9b65ad8ee</anchor>
+      <arglist>(w25qxx_handle_t *handle, uint8_t status)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_erase_program_suspend</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>gac7fbabc574c250eec100be861f5918ff</anchor>
+      <arglist>(w25qxx_handle_t *handle)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_erase_program_resume</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>ga05c69ac66309544eba4ff38a69f24c00</anchor>
+      <arglist>(w25qxx_handle_t *handle)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_get_manufacturer_device_id_dual_io</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>ga1cd3aec1bdeabbaed5f049fbf83ceeb4</anchor>
+      <arglist>(w25qxx_handle_t *handle, uint8_t *manufacturer, uint8_t *device_id)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_get_manufacturer_device_id_quad_io</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>ga61bd3ce40b76b6862c6a53e0e37a3455</anchor>
+      <arglist>(w25qxx_handle_t *handle, uint8_t *manufacturer, uint8_t *device_id)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_get_jedec_id</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>ga8a93ba14a032e10a27f1495fdcf56058</anchor>
+      <arglist>(w25qxx_handle_t *handle, uint8_t *manufacturer, uint8_t device_id[2])</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_global_block_lock</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>gab5579bc42bc07a7657848140888a817c</anchor>
+      <arglist>(w25qxx_handle_t *handle)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_global_block_unlock</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>ga6d62f7d14945cfde7cde7a0e9a4e3afb</anchor>
+      <arglist>(w25qxx_handle_t *handle)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_set_read_parameters</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>ga9ad10781d888b32b43b9eba45d049624</anchor>
+      <arglist>(w25qxx_handle_t *handle, w25qxx_qspi_read_dummy_t dummy, w25qxx_qspi_read_wrap_length_t length)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_enter_qspi_mode</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>gaa5ab3548707a95ded115255432224c5a</anchor>
+      <arglist>(w25qxx_handle_t *handle)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_exit_qspi_mode</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>ga6b9f75f7426a54ffdb1f5a057f8188f4</anchor>
+      <arglist>(w25qxx_handle_t *handle)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_enable_reset</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>gab55b4e071e20feb58584025287949438</anchor>
+      <arglist>(w25qxx_handle_t *handle)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_reset_device</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>ga2abebfe2a8d9377eb88448ffca73f222</anchor>
+      <arglist>(w25qxx_handle_t *handle)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_get_unique_id</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>ga11af244389478de68a6777076ee82d69</anchor>
+      <arglist>(w25qxx_handle_t *handle, uint8_t id[8])</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_get_sfdp</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>ga244a91b9c0c32e899ca89e1943045624</anchor>
+      <arglist>(w25qxx_handle_t *handle, uint8_t sfdp[256])</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_erase_security_register</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>gaf297e2c6877c64f8fd10a555f783ddaf</anchor>
+      <arglist>(w25qxx_handle_t *handle, w25qxx_security_register_t num)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_program_security_register</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>ga4e9c059ff78866e478e835cb27a92899</anchor>
+      <arglist>(w25qxx_handle_t *handle, w25qxx_security_register_t num, uint8_t data[256])</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_read_security_register</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>ga4c65debc4947bd9a61e0073105164b9c</anchor>
+      <arglist>(w25qxx_handle_t *handle, w25qxx_security_register_t num, uint8_t data[256])</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_individual_block_lock</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>ga4f00c2c169cb7c3084841c6cd795e76b</anchor>
+      <arglist>(w25qxx_handle_t *handle, uint32_t addr)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_individual_block_unlock</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>ga7f88cedf7619071b3235ba094915b2a7</anchor>
+      <arglist>(w25qxx_handle_t *handle, uint32_t addr)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_read_block_lock</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>ga59e655ca78a175037ca810bbc8539a96</anchor>
+      <arglist>(w25qxx_handle_t *handle, uint32_t addr, uint8_t *value)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_set_burst_with_wrap</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>gac19c1d0f3fd48968ea2a93c1dbe3d75d</anchor>
+      <arglist>(w25qxx_handle_t *handle, w25qxx_burst_wrap_t wrap)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_write_read_reg</name>
+      <anchorfile>group__w25qxx__extern__driver.html</anchorfile>
+      <anchor>ga9623a3bec148b148498480518a66cb2b</anchor>
+      <arglist>(w25qxx_handle_t *handle, uint8_t instruction, uint8_t instruction_line, uint32_t address, uint8_t address_line, uint8_t address_len, uint32_t alternate, uint8_t alternate_line, uint8_t alternate_len, uint8_t dummy, uint8_t *in_buf, uint32_t in_len, uint8_t *out_buf, uint32_t out_len, uint8_t data_line)</arglist>
+    </member>
+  </compound>
+  <compound kind="file">
+    <name>driver_w25qxx_read_test.c</name>
+    <path>test/</path>
+    <filename>driver__w25qxx__read__test_8c.html</filename>
+    <includes id="driver__w25qxx__read__test_8h" name="driver_w25qxx_read_test.h" local="yes" import="no" module="no" objc="no">driver_w25qxx_read_test.h</includes>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_read_test</name>
+      <anchorfile>group__w25qxx__test__driver.html</anchorfile>
+      <anchor>ga4ce42ca34d33cd64cb823040780999af</anchor>
+      <arglist>(w25qxx_type_t type, w25qxx_interface_t interface, w25qxx_bool_t dual_quad_spi_enable)</arglist>
+    </member>
+  </compound>
+  <compound kind="file">
+    <name>driver_w25qxx_read_test.h</name>
+    <path>test/</path>
+    <filename>driver__w25qxx__read__test_8h.html</filename>
+    <includes id="driver__w25qxx__interface_8h" name="driver_w25qxx_interface.h" local="yes" import="no" module="no" objc="no">driver_w25qxx_interface.h</includes>
+    <member kind="define">
+      <type>#define</type>
+      <name>W25QXX_ENABLE_ERASE_READ_TEST</name>
+      <anchorfile>group__w25qxx__test__driver.html</anchorfile>
+      <anchor>ga8be86baae6f8448171125c70da1fbfa0</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_read_test</name>
+      <anchorfile>group__w25qxx__test__driver.html</anchorfile>
+      <anchor>ga4ce42ca34d33cd64cb823040780999af</anchor>
+      <arglist>(w25qxx_type_t type, w25qxx_interface_t interface, w25qxx_bool_t dual_quad_spi_enable)</arglist>
+    </member>
+  </compound>
+  <compound kind="file">
+    <name>driver_w25qxx_register_test.c</name>
+    <path>test/</path>
+    <filename>driver__w25qxx__register__test_8c.html</filename>
+    <includes id="driver__w25qxx__register__test_8h" name="driver_w25qxx_register_test.h" local="yes" import="no" module="no" objc="no">driver_w25qxx_register_test.h</includes>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_register_test</name>
+      <anchorfile>group__w25qxx__test__driver.html</anchorfile>
+      <anchor>ga05d07036254d102ebea0d0b1e83862c8</anchor>
+      <arglist>(w25qxx_type_t type, w25qxx_interface_t interface, w25qxx_bool_t dual_quad_spi_enable)</arglist>
+    </member>
+  </compound>
+  <compound kind="file">
+    <name>driver_w25qxx_register_test.h</name>
+    <path>test/</path>
+    <filename>driver__w25qxx__register__test_8h.html</filename>
+    <includes id="driver__w25qxx__interface_8h" name="driver_w25qxx_interface.h" local="yes" import="no" module="no" objc="no">driver_w25qxx_interface.h</includes>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_register_test</name>
+      <anchorfile>group__w25qxx__test__driver.html</anchorfile>
+      <anchor>ga05d07036254d102ebea0d0b1e83862c8</anchor>
+      <arglist>(w25qxx_type_t type, w25qxx_interface_t interface, w25qxx_bool_t dual_quad_spi_enable)</arglist>
+    </member>
+  </compound>
+  <compound kind="struct">
+    <name>w25qxx_handle_s</name>
+    <filename>structw25qxx__handle__s.html</filename>
+    <member kind="variable">
+      <type>uint8_t(*</type>
+      <name>spi_qspi_init</name>
+      <anchorfile>structw25qxx__handle__s.html</anchorfile>
+      <anchor>aec834df46e5185868dfdcc6fcec2e801</anchor>
+      <arglist>)(void)</arglist>
+    </member>
+    <member kind="variable">
+      <type>uint8_t(*</type>
+      <name>spi_qspi_deinit</name>
+      <anchorfile>structw25qxx__handle__s.html</anchorfile>
+      <anchor>a4568e23228174b7d32678d9a96d2420c</anchor>
+      <arglist>)(void)</arglist>
+    </member>
+    <member kind="variable">
+      <type>uint8_t(*</type>
+      <name>spi_qspi_write_read</name>
+      <anchorfile>structw25qxx__handle__s.html</anchorfile>
+      <anchor>a2d39cde883403779e3da9dd39c32bec5</anchor>
+      <arglist>)(uint8_t instruction, uint8_t instruction_line, uint32_t address, uint8_t address_line, uint8_t address_len, uint32_t alternate, uint8_t alternate_line, uint8_t alternate_len, uint8_t dummy, uint8_t *in_buf, uint32_t in_len, uint8_t *out_buf, uint32_t out_len, uint8_t data_line)</arglist>
+    </member>
+    <member kind="variable">
+      <type>void(*</type>
+      <name>delay_ms</name>
+      <anchorfile>structw25qxx__handle__s.html</anchorfile>
+      <anchor>a406c9433252b7366de417b7a60915c81</anchor>
+      <arglist>)(uint32_t ms)</arglist>
+    </member>
+    <member kind="variable">
+      <type>void(*</type>
+      <name>delay_us</name>
+      <anchorfile>structw25qxx__handle__s.html</anchorfile>
+      <anchor>a97ffc4fce945527bd6ab25a3596caef7</anchor>
+      <arglist>)(uint32_t us)</arglist>
+    </member>
+    <member kind="variable">
+      <type>void(*</type>
+      <name>debug_print</name>
+      <anchorfile>structw25qxx__handle__s.html</anchorfile>
+      <anchor>a769d5b3a6c14790a0e126e8fe70b384b</anchor>
+      <arglist>)(const char *const fmt,...)</arglist>
+    </member>
+    <member kind="variable">
+      <type>uint8_t</type>
+      <name>inited</name>
+      <anchorfile>structw25qxx__handle__s.html</anchorfile>
+      <anchor>a19bedf28d2b9748f6a62d9ae93f4e68f</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable">
+      <type>uint16_t</type>
+      <name>type</name>
+      <anchorfile>structw25qxx__handle__s.html</anchorfile>
+      <anchor>acb5cfd209ba75c853d03f701e7f91679</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable">
+      <type>uint8_t</type>
+      <name>address_mode</name>
+      <anchorfile>structw25qxx__handle__s.html</anchorfile>
+      <anchor>a5aafa09a37ea9bdb7d3788ff5d39c729</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable">
+      <type>uint8_t</type>
+      <name>param</name>
+      <anchorfile>structw25qxx__handle__s.html</anchorfile>
+      <anchor>a3d28993689552e18d554dc0644efcf16</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable">
+      <type>uint8_t</type>
+      <name>dummy</name>
+      <anchorfile>structw25qxx__handle__s.html</anchorfile>
+      <anchor>aff7b59f569ec689a7580bd6911daafd5</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable">
+      <type>uint8_t</type>
+      <name>dual_quad_spi_enable</name>
+      <anchorfile>structw25qxx__handle__s.html</anchorfile>
+      <anchor>ac2bd5f4f7f52f548fd421c9eedbce1c7</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable">
+      <type>uint8_t</type>
+      <name>spi_qspi</name>
+      <anchorfile>structw25qxx__handle__s.html</anchorfile>
+      <anchor>a9bdb5522ed967c80572351dd53dafe70</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable">
+      <type>uint8_t</type>
+      <name>buf</name>
+      <anchorfile>structw25qxx__handle__s.html</anchorfile>
+      <anchor>a2121914a1858618e9216fa2daf0a42a2</anchor>
+      <arglist>[256+6]</arglist>
+    </member>
+    <member kind="variable">
+      <type>uint8_t</type>
+      <name>buf_4k</name>
+      <anchorfile>structw25qxx__handle__s.html</anchorfile>
+      <anchor>ac80aa2927adf500634749513e88c474b</anchor>
+      <arglist>[4096+1]</arglist>
+    </member>
+  </compound>
+  <compound kind="struct">
+    <name>w25qxx_info_s</name>
+    <filename>structw25qxx__info__s.html</filename>
+    <member kind="variable">
+      <type>char</type>
+      <name>chip_name</name>
+      <anchorfile>structw25qxx__info__s.html</anchorfile>
+      <anchor>af890958c72bd715cc6454a10dc846ae6</anchor>
+      <arglist>[32]</arglist>
+    </member>
+    <member kind="variable">
+      <type>char</type>
+      <name>manufacturer_name</name>
+      <anchorfile>structw25qxx__info__s.html</anchorfile>
+      <anchor>ad25285dbf810c90f8eaf3fcef6f2b2ea</anchor>
+      <arglist>[32]</arglist>
+    </member>
+    <member kind="variable">
+      <type>char</type>
+      <name>interface</name>
+      <anchorfile>structw25qxx__info__s.html</anchorfile>
+      <anchor>a5778305279cae46b2ecf862e97f73600</anchor>
+      <arglist>[16]</arglist>
+    </member>
+    <member kind="variable">
+      <type>float</type>
+      <name>supply_voltage_min_v</name>
+      <anchorfile>structw25qxx__info__s.html</anchorfile>
+      <anchor>ad8bde6ddadaf43d951e62f3befb9d35a</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable">
+      <type>float</type>
+      <name>supply_voltage_max_v</name>
+      <anchorfile>structw25qxx__info__s.html</anchorfile>
+      <anchor>a3d2b12bcac7a85ea8646bff9debe8660</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable">
+      <type>float</type>
+      <name>max_current_ma</name>
+      <anchorfile>structw25qxx__info__s.html</anchorfile>
+      <anchor>a9db82802561bf22d799b03a345f1d1dc</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable">
+      <type>float</type>
+      <name>temperature_min</name>
+      <anchorfile>structw25qxx__info__s.html</anchorfile>
+      <anchor>a8f9dbe66ac0b66ebae0a36fcb4ba368e</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable">
+      <type>float</type>
+      <name>temperature_max</name>
+      <anchorfile>structw25qxx__info__s.html</anchorfile>
+      <anchor>a3366a5dce9b829e03c3d321c2b4df3f6</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable">
+      <type>uint32_t</type>
+      <name>driver_version</name>
+      <anchorfile>structw25qxx__info__s.html</anchorfile>
+      <anchor>a41b0bd442708b70d252c50b92c75265a</anchor>
+      <arglist></arglist>
+    </member>
+  </compound>
+  <compound kind="group">
+    <name>w25qxx_driver</name>
+    <title>w25qxx driver function</title>
+    <filename>group__w25qxx__driver.html</filename>
+    <subgroup>w25qxx_link_driver</subgroup>
+    <subgroup>w25qxx_basic_driver</subgroup>
+    <subgroup>w25qxx_advance_driver</subgroup>
+    <subgroup>w25qxx_extern_driver</subgroup>
+    <subgroup>w25qxx_interface_driver</subgroup>
+    <subgroup>w25qxx_example_driver</subgroup>
+    <subgroup>w25qxx_test_driver</subgroup>
+  </compound>
+  <compound kind="group">
+    <name>w25qxx_link_driver</name>
+    <title>w25qxx link driver function</title>
+    <filename>group__w25qxx__link__driver.html</filename>
+    <member kind="define">
+      <type>#define</type>
+      <name>DRIVER_W25QXX_LINK_INIT</name>
+      <anchorfile>group__w25qxx__link__driver.html</anchorfile>
+      <anchor>ga995378489f95bc6bbddbe710557e3384</anchor>
+      <arglist>(HANDLE, STRUCTURE)</arglist>
+    </member>
+    <member kind="define">
+      <type>#define</type>
+      <name>DRIVER_W25QXX_LINK_SPI_QSPI_INIT</name>
+      <anchorfile>group__w25qxx__link__driver.html</anchorfile>
+      <anchor>gab2587de93f1dba5664eede8cd787a88a</anchor>
+      <arglist>(HANDLE, FUC)</arglist>
+    </member>
+    <member kind="define">
+      <type>#define</type>
+      <name>DRIVER_W25QXX_LINK_SPI_QSPI_DEINIT</name>
+      <anchorfile>group__w25qxx__link__driver.html</anchorfile>
+      <anchor>gaec8b55e83b46907be1dd9e7c50be550d</anchor>
+      <arglist>(HANDLE, FUC)</arglist>
+    </member>
+    <member kind="define">
+      <type>#define</type>
+      <name>DRIVER_W25QXX_LINK_SPI_QSPI_WRITE_READ</name>
+      <anchorfile>group__w25qxx__link__driver.html</anchorfile>
+      <anchor>gac8f0ca0a725790bace3241d1d616e3d1</anchor>
+      <arglist>(HANDLE, FUC)</arglist>
+    </member>
+    <member kind="define">
+      <type>#define</type>
+      <name>DRIVER_W25QXX_LINK_DELAY_MS</name>
+      <anchorfile>group__w25qxx__link__driver.html</anchorfile>
+      <anchor>ga7555618f13d2de0003ae6d9483085180</anchor>
+      <arglist>(HANDLE, FUC)</arglist>
+    </member>
+    <member kind="define">
+      <type>#define</type>
+      <name>DRIVER_W25QXX_LINK_DELAY_US</name>
+      <anchorfile>group__w25qxx__link__driver.html</anchorfile>
+      <anchor>gafc81bf850c80dfa316f0c6ab40be6e67</anchor>
+      <arglist>(HANDLE, FUC)</arglist>
+    </member>
+    <member kind="define">
+      <type>#define</type>
+      <name>DRIVER_W25QXX_LINK_DEBUG_PRINT</name>
+      <anchorfile>group__w25qxx__link__driver.html</anchorfile>
+      <anchor>gab8d49ef9dca942fe5f37c30dcd7e22a6</anchor>
+      <arglist>(HANDLE, FUC)</arglist>
+    </member>
+  </compound>
+  <compound kind="group">
+    <name>w25qxx_basic_driver</name>
+    <title>w25qxx basic driver function</title>
+    <filename>group__w25qxx__basic__driver.html</filename>
+    <class kind="struct">w25qxx_handle_s</class>
+    <class kind="struct">w25qxx_info_s</class>
+    <member kind="typedef">
+      <type>struct w25qxx_handle_s</type>
+      <name>w25qxx_handle_t</name>
+      <anchorfile>group__w25qxx__basic__driver.html</anchorfile>
+      <anchor>ga56d8a7b5f8b7eaed8df0b6dc90c266be</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="typedef">
+      <type>struct w25qxx_info_s</type>
+      <name>w25qxx_info_t</name>
+      <anchorfile>group__w25qxx__basic__driver.html</anchorfile>
+      <anchor>ga601d841ddd0ff8ad3ab52e07c679ef19</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumeration">
+      <type></type>
+      <name>w25qxx_type_t</name>
+      <anchorfile>group__w25qxx__basic__driver.html</anchorfile>
+      <anchor>ga6cb4e5164464df549201dd96cb7a58b1</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumvalue">
+      <name>W25Q80</name>
+      <anchorfile>group__w25qxx__basic__driver.html</anchorfile>
+      <anchor>gga6cb4e5164464df549201dd96cb7a58b1a1ad4f72437de5f26cb7b212d4d91e7c2</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumvalue">
+      <name>W25Q16</name>
+      <anchorfile>group__w25qxx__basic__driver.html</anchorfile>
+      <anchor>gga6cb4e5164464df549201dd96cb7a58b1a66acb81a2d520a7d92ce1d37210c6435</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumvalue">
+      <name>W25Q32</name>
+      <anchorfile>group__w25qxx__basic__driver.html</anchorfile>
+      <anchor>gga6cb4e5164464df549201dd96cb7a58b1a4fdad551be6485441db5951f196db7cb</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumvalue">
+      <name>W25Q64</name>
+      <anchorfile>group__w25qxx__basic__driver.html</anchorfile>
+      <anchor>gga6cb4e5164464df549201dd96cb7a58b1a3ea98b2b3e06afa29441c51548bbb16e</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumvalue">
+      <name>W25Q128</name>
+      <anchorfile>group__w25qxx__basic__driver.html</anchorfile>
+      <anchor>gga6cb4e5164464df549201dd96cb7a58b1a75afcbe71906d3884f4fcc119c1cabd5</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumvalue">
+      <name>W25Q256</name>
+      <anchorfile>group__w25qxx__basic__driver.html</anchorfile>
+      <anchor>gga6cb4e5164464df549201dd96cb7a58b1ab6db6bd31731e4e95040e8d47f0e45ca</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumeration">
+      <type></type>
+      <name>w25qxx_interface_t</name>
+      <anchorfile>group__w25qxx__basic__driver.html</anchorfile>
+      <anchor>gacbf327a42336baf10713a1796ff4f2fe</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumvalue">
+      <name>W25QXX_INTERFACE_SPI</name>
+      <anchorfile>group__w25qxx__basic__driver.html</anchorfile>
+      <anchor>ggacbf327a42336baf10713a1796ff4f2feafea09c65f02cf1a91216205ed21cf4e8</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumvalue">
+      <name>W25QXX_INTERFACE_QSPI</name>
+      <anchorfile>group__w25qxx__basic__driver.html</anchorfile>
+      <anchor>ggacbf327a42336baf10713a1796ff4f2fea895dcb5c91da89fad1c12161ffd2d5d4</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumeration">
+      <type></type>
+      <name>w25qxx_bool_t</name>
+      <anchorfile>group__w25qxx__basic__driver.html</anchorfile>
+      <anchor>gafb2690946f5baf4be6f3a63dde5491fb</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumvalue">
+      <name>W25QXX_BOOL_FALSE</name>
+      <anchorfile>group__w25qxx__basic__driver.html</anchorfile>
+      <anchor>ggafb2690946f5baf4be6f3a63dde5491fba02afbdc2c6c3d761cd31ac39c857ee9a</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumvalue">
+      <name>W25QXX_BOOL_TRUE</name>
+      <anchorfile>group__w25qxx__basic__driver.html</anchorfile>
+      <anchor>ggafb2690946f5baf4be6f3a63dde5491fbae2a935d12b0b1bc9fc321246ee0e0df8</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumeration">
+      <type></type>
+      <name>w25qxx_address_mode_t</name>
+      <anchorfile>group__w25qxx__basic__driver.html</anchorfile>
+      <anchor>gaa4c45f146d1ade8a2da8e751818fa4a2</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumvalue">
+      <name>W25QXX_ADDRESS_MODE_3_BYTE</name>
+      <anchorfile>group__w25qxx__basic__driver.html</anchorfile>
+      <anchor>ggaa4c45f146d1ade8a2da8e751818fa4a2a3ed0d9a1ce66f96f0ef6baba28869503</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumvalue">
+      <name>W25QXX_ADDRESS_MODE_4_BYTE</name>
+      <anchorfile>group__w25qxx__basic__driver.html</anchorfile>
+      <anchor>ggaa4c45f146d1ade8a2da8e751818fa4a2aa29a90b6728795aa010735e44a5292fe</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_info</name>
+      <anchorfile>group__w25qxx__basic__driver.html</anchorfile>
+      <anchor>ga996e2d3009432e7f8c1a5175c4438a57</anchor>
+      <arglist>(w25qxx_info_t *info)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_set_dual_quad_spi</name>
+      <anchorfile>group__w25qxx__basic__driver.html</anchorfile>
+      <anchor>ga665139209b0abc386474a78d89cce6f2</anchor>
+      <arglist>(w25qxx_handle_t *handle, w25qxx_bool_t enable)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_get_dual_quad_spi</name>
+      <anchorfile>group__w25qxx__basic__driver.html</anchorfile>
+      <anchor>gad4c9b8b0a2d0916c13567f9d7e494cf8</anchor>
+      <arglist>(w25qxx_handle_t *handle, w25qxx_bool_t *enable)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_set_type</name>
+      <anchorfile>group__w25qxx__basic__driver.html</anchorfile>
+      <anchor>gaa57189cd4170b73f8b1300ca15e27de6</anchor>
+      <arglist>(w25qxx_handle_t *handle, w25qxx_type_t type)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_get_type</name>
+      <anchorfile>group__w25qxx__basic__driver.html</anchorfile>
+      <anchor>ga685379998dad173b6d9c0b0da270685c</anchor>
+      <arglist>(w25qxx_handle_t *handle, w25qxx_type_t *type)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_set_interface</name>
+      <anchorfile>group__w25qxx__basic__driver.html</anchorfile>
+      <anchor>ga50a62003d566402d46ada2f272c41eb5</anchor>
+      <arglist>(w25qxx_handle_t *handle, w25qxx_interface_t interface)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_get_interface</name>
+      <anchorfile>group__w25qxx__basic__driver.html</anchorfile>
+      <anchor>ga86ef839d475f3926a0be46bbc18d4b45</anchor>
+      <arglist>(w25qxx_handle_t *handle, w25qxx_interface_t *interface)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_set_address_mode</name>
+      <anchorfile>group__w25qxx__basic__driver.html</anchorfile>
+      <anchor>gad0e125eff304ce66fb3956d2c8c80656</anchor>
+      <arglist>(w25qxx_handle_t *handle, w25qxx_address_mode_t mode)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_get_address_mode</name>
+      <anchorfile>group__w25qxx__basic__driver.html</anchorfile>
+      <anchor>ga3a52036a97b12fcbe2280b0901a80b90</anchor>
+      <arglist>(w25qxx_handle_t *handle, w25qxx_address_mode_t *mode)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_init</name>
+      <anchorfile>group__w25qxx__basic__driver.html</anchorfile>
+      <anchor>ga8e7a163b3d255b8c7fc035d0d60f2491</anchor>
+      <arglist>(w25qxx_handle_t *handle)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_deinit</name>
+      <anchorfile>group__w25qxx__basic__driver.html</anchorfile>
+      <anchor>gaa293c3a46c4010a3af597a83e646de0d</anchor>
+      <arglist>(w25qxx_handle_t *handle)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_read</name>
+      <anchorfile>group__w25qxx__basic__driver.html</anchorfile>
+      <anchor>gae7479fc9ce911a52e3c5b6f1a615b879</anchor>
+      <arglist>(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_write</name>
+      <anchorfile>group__w25qxx__basic__driver.html</anchorfile>
+      <anchor>gaaee8264d840e51460821cb6e609338ee</anchor>
+      <arglist>(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_only_spi_read</name>
+      <anchorfile>group__w25qxx__basic__driver.html</anchorfile>
+      <anchor>ga1e9ebf198137d23558dbf6470213c472</anchor>
+      <arglist>(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_fast_read</name>
+      <anchorfile>group__w25qxx__basic__driver.html</anchorfile>
+      <anchor>gac345ba10af5ad355578fa97697487123</anchor>
+      <arglist>(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_page_program</name>
+      <anchorfile>group__w25qxx__basic__driver.html</anchorfile>
+      <anchor>ga6280e7e4ab26306436e2c210617a28b3</anchor>
+      <arglist>(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint16_t len)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_sector_erase_4k</name>
+      <anchorfile>group__w25qxx__basic__driver.html</anchorfile>
+      <anchor>ga9a03c51b4c84655350c15fbfce0a6b40</anchor>
+      <arglist>(w25qxx_handle_t *handle, uint32_t addr)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_block_erase_32k</name>
+      <anchorfile>group__w25qxx__basic__driver.html</anchorfile>
+      <anchor>ga39c8fb382e8c3e4d57232dfa79af781c</anchor>
+      <arglist>(w25qxx_handle_t *handle, uint32_t addr)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_block_erase_64k</name>
+      <anchorfile>group__w25qxx__basic__driver.html</anchorfile>
+      <anchor>gaf53bc5f6073482b9b74efd417ec7ac83</anchor>
+      <arglist>(w25qxx_handle_t *handle, uint32_t addr)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_chip_erase</name>
+      <anchorfile>group__w25qxx__basic__driver.html</anchorfile>
+      <anchor>ga0862833b36831f92684980b2e21f2e39</anchor>
+      <arglist>(w25qxx_handle_t *handle)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_power_down</name>
+      <anchorfile>group__w25qxx__basic__driver.html</anchorfile>
+      <anchor>gae4effce67e36120325e3c7b245b90142</anchor>
+      <arglist>(w25qxx_handle_t *handle)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_release_power_down</name>
+      <anchorfile>group__w25qxx__basic__driver.html</anchorfile>
+      <anchor>ga09c9b52877516a2ee4c080dc249e7331</anchor>
+      <arglist>(w25qxx_handle_t *handle)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_get_manufacturer_device_id</name>
+      <anchorfile>group__w25qxx__basic__driver.html</anchorfile>
+      <anchor>ga921836a777b082ff4d0f322ccfda6b22</anchor>
+      <arglist>(w25qxx_handle_t *handle, uint8_t *manufacturer, uint8_t *device_id)</arglist>
+    </member>
+  </compound>
+  <compound kind="group">
+    <name>w25qxx_advance_driver</name>
+    <title>w25qxx advance driver function</title>
+    <filename>group__w25qxx__advance__driver.html</filename>
+    <member kind="enumeration">
+      <type></type>
+      <name>w25qxx_qspi_read_dummy_t</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>ga6ff284154302248f00db269146545443</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumvalue">
+      <name>W25QXX_QSPI_READ_DUMMY_2_33MHZ</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>gga6ff284154302248f00db269146545443ad73634a0f4534c3ae35d4242b2bc8f13</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumvalue">
+      <name>W25QXX_QSPI_READ_DUMMY_4_55MHZ</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>gga6ff284154302248f00db269146545443a6423b5606e72af6479fe31a6a9883aeb</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumvalue">
+      <name>W25QXX_QSPI_READ_DUMMY_6_80MHZ</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>gga6ff284154302248f00db269146545443a78393debe12bbb3efb710e38e3c1d550</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumvalue">
+      <name>W25QXX_QSPI_READ_DUMMY_8_80MHZ</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>gga6ff284154302248f00db269146545443ade1d3511f15c7d92de8c5d8967c471c3</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumeration">
+      <type></type>
+      <name>w25qxx_qspi_read_wrap_length_t</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>ga2fd3023819e1aebe089a4a72eb136da3</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumvalue">
+      <name>W25QXX_QSPI_READ_WRAP_LENGTH_8_BYTE</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>gga2fd3023819e1aebe089a4a72eb136da3a5b8fa1026c564fe83f3f0f0edb89d1dd</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumvalue">
+      <name>W25QXX_QSPI_READ_WRAP_LENGTH_16_BYTE</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>gga2fd3023819e1aebe089a4a72eb136da3ae6bc2fcd2d4fc3af63f22da56a3b393b</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumvalue">
+      <name>W25QXX_QSPI_READ_WRAP_LENGTH_32_BYTE</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>gga2fd3023819e1aebe089a4a72eb136da3aa5f2e6b5718a85ab9241125e84181216</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumvalue">
+      <name>W25QXX_QSPI_READ_WRAP_LENGTH_64_BYTE</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>gga2fd3023819e1aebe089a4a72eb136da3a736f25eeae36f6a0b62d4cb1666a689f</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumeration">
+      <type></type>
+      <name>w25qxx_security_register_t</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>ga81ddc7d4b9f4f124163beea19cc33c7e</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumvalue">
+      <name>W25QXX_SECURITY_REGISTER_1</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>gga81ddc7d4b9f4f124163beea19cc33c7eaaf27484a497c13915c8acb0161cf137d</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumvalue">
+      <name>W25QXX_SECURITY_REGISTER_2</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>gga81ddc7d4b9f4f124163beea19cc33c7ea3353a88090850174ca163d56e4d7089c</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumvalue">
+      <name>W25QXX_SECURITY_REGISTER_3</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>gga81ddc7d4b9f4f124163beea19cc33c7ea65b73162d921075bed8cb8d848948900</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumeration">
+      <type></type>
+      <name>w25qxx_burst_wrap_t</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>ga94bbae2bf8906903e8dc2a28c490723d</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumvalue">
+      <name>W25QXX_BURST_WRAP_NONE</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>gga94bbae2bf8906903e8dc2a28c490723dae39a7ea65512a56d40aad2990d55815d</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumvalue">
+      <name>W25QXX_BURST_WRAP_8_BYTE</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>gga94bbae2bf8906903e8dc2a28c490723da35edf6c31d0fe1771ab79669d13b7af8</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumvalue">
+      <name>W25QXX_BURST_WRAP_16_BYTE</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>gga94bbae2bf8906903e8dc2a28c490723dafec1eb230b49fbda6ffcc1eeda64179a</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumvalue">
+      <name>W25QXX_BURST_WRAP_32_BYTE</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>gga94bbae2bf8906903e8dc2a28c490723dae2ac810153f9515a145773c34409b995</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumvalue">
+      <name>W25QXX_BURST_WRAP_64_BYTE</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>gga94bbae2bf8906903e8dc2a28c490723da2a3afd7924b00cf74abe83f5216c8915</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumeration">
+      <type></type>
+      <name>w25qxx_status1_t</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>ga9e41a72d1e25d39d88ce7108a9b25595</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumvalue">
+      <name>W25QXX_STATUS1_STATUS_REGISTER_PROTECT_0</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>gga9e41a72d1e25d39d88ce7108a9b25595a00d1d224963ec1f38ac97802480b2129</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumvalue">
+      <name>W25QXX_STATUS1_SECTOR_PROTECT_OR_TOP_BOTTOM_PROTECT</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>gga9e41a72d1e25d39d88ce7108a9b25595a9522040a098337442eff127e1598776d</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumvalue">
+      <name>W25QXX_STATUS1_TOP_BOTTOM_PROTECT_OR_BLOCK_PROTECT_3</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>gga9e41a72d1e25d39d88ce7108a9b25595a63bc45b7e0e19de7e58e3494eb4046c5</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumvalue">
+      <name>W25QXX_STATUS1_BLOCK_PROTECT_2</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>gga9e41a72d1e25d39d88ce7108a9b25595a9a02180228dbb94e9d302b667fda884f</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumvalue">
+      <name>W25QXX_STATUS1_BLOCK_PROTECT_1</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>gga9e41a72d1e25d39d88ce7108a9b25595a3465f02625d38730630b60cd01e92085</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumvalue">
+      <name>W25QXX_STATUS1_BLOCK_PROTECT_0</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>gga9e41a72d1e25d39d88ce7108a9b25595a7b7e8922009c0d6a88bbfad76a812262</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumvalue">
+      <name>W25QXX_STATUS1_WRITE_ENABLE_LATCH</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>gga9e41a72d1e25d39d88ce7108a9b25595a1438a76d1be1aa02e4f7450a045c02e3</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumvalue">
+      <name>W25QXX_STATUS1_ERASE_WRITE_PROGRESS</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>gga9e41a72d1e25d39d88ce7108a9b25595ae1ce566fc564776e98a5c7edefe8c5ea</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumeration">
+      <type></type>
+      <name>w25qxx_status2_t</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>ga0d28076f6fc7d3ae9dd7f8410069a277</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumvalue">
+      <name>W25QXX_STATUS2_SUSPEND_STATUS</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>gga0d28076f6fc7d3ae9dd7f8410069a277a3fdb54846709f77391e426c626a19152</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumvalue">
+      <name>W25QXX_STATUS2_COMPLEMENT_PROTECT</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>gga0d28076f6fc7d3ae9dd7f8410069a277a517e9e50ada30462f902d01e8d5579dc</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumvalue">
+      <name>W25QXX_STATUS2_SECURITY_REGISTER_3_LOCK_BITS</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>gga0d28076f6fc7d3ae9dd7f8410069a277a0f3e2b3059d56f974724a8284142e69a</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumvalue">
+      <name>W25QXX_STATUS2_SECURITY_REGISTER_2_LOCK_BITS</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>gga0d28076f6fc7d3ae9dd7f8410069a277a24a99f1a97023ae103c1bec3027bbf26</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumvalue">
+      <name>W25QXX_STATUS2_SECURITY_REGISTER_1_LOCK_BITS</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>gga0d28076f6fc7d3ae9dd7f8410069a277a7a631c1c153cc099a52883b40007079e</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumvalue">
+      <name>W25QXX_STATUS2_QUAD_ENABLE</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>gga0d28076f6fc7d3ae9dd7f8410069a277aa920a9c9a590fb8740419d8d2e4230f3</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumvalue">
+      <name>W25QXX_STATUS2_STATUS_REGISTER_PROTECT_1</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>gga0d28076f6fc7d3ae9dd7f8410069a277a5a89a885ba2a59eccd0445443e3bbac6</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumeration">
+      <type></type>
+      <name>w25qxx_status3_t</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>gace18ebb2eac49cbde44a2935916f44ac</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumvalue">
+      <name>W25QXX_STATUS3_HOLD_RESET_FUNCTION</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>ggace18ebb2eac49cbde44a2935916f44aca9ab13d5388af0156c4e4de08765ec401</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumvalue">
+      <name>W25QXX_STATUS3_OUTPUT_DRIVER_STRENGTH_100_PERCENTAGE</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>ggace18ebb2eac49cbde44a2935916f44acab5b1ce328b88d08f3d55ed776e01fedb</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumvalue">
+      <name>W25QXX_STATUS3_OUTPUT_DRIVER_STRENGTH_75_PERCENTAGE</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>ggace18ebb2eac49cbde44a2935916f44aca7ab6ace72a02afc20f92f48e975b60b7</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumvalue">
+      <name>W25QXX_STATUS3_OUTPUT_DRIVER_STRENGTH_50_PERCENTAGE</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>ggace18ebb2eac49cbde44a2935916f44aca8abcd821f1f0d02b3d9179c7ab58d0e0</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumvalue">
+      <name>W25QXX_STATUS3_OUTPUT_DRIVER_STRENGTH_25_PERCENTAGE</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>ggace18ebb2eac49cbde44a2935916f44acae645c265a6beb76a088352e2f4bfb4e1</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumvalue">
+      <name>W25QXX_STATUS3_WRITE_PROTECT_SELECTION</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>ggace18ebb2eac49cbde44a2935916f44aca7dc507c444fb395a4956bf50d78f1ee3</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumvalue">
+      <name>W25QXX_STATUS3_POWER_UP_ADDRESS_MODE</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>ggace18ebb2eac49cbde44a2935916f44acadc8d5949eaea0c6ce4e17c6e746f4f65</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="enumvalue">
+      <name>W25QXX_STATUS3_CURRENT_ADDRESS_MODE</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>ggace18ebb2eac49cbde44a2935916f44aca3c822d6eacd9747ca2173607a09591ac</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_fast_read_dual_output</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>ga7a19230ca3916816ea8fb7421483d293</anchor>
+      <arglist>(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_fast_read_quad_output</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>gaf4bfafd1f80aa0316a4b1a15183dcd50</anchor>
+      <arglist>(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_fast_read_dual_io</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>gac894f4650905cba10dd3a31284de6d5e</anchor>
+      <arglist>(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_fast_read_quad_io</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>gab97a64bd3776874518f60381d921ae41</anchor>
+      <arglist>(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_word_read_quad_io</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>gad97d7e410dd77c49334097a0fd332660</anchor>
+      <arglist>(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_octal_word_read_quad_io</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>ga88a62ec42e86db821ff3f0d3ab541dbb</anchor>
+      <arglist>(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint32_t len)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_page_program_quad_input</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>ga1f80bbbaaa852eecfffb87737889363d</anchor>
+      <arglist>(w25qxx_handle_t *handle, uint32_t addr, uint8_t *data, uint16_t len)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_enable_write</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>gaeb269123feec054eaaf70f2ffb5797a3</anchor>
+      <arglist>(w25qxx_handle_t *handle)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_enable_volatile_sr_write</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>ga0f8889d6a25c32e150a2ab30753d461d</anchor>
+      <arglist>(w25qxx_handle_t *handle)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_disable_write</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>gac16a31269277051baad6c28fe4254b4a</anchor>
+      <arglist>(w25qxx_handle_t *handle)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_get_status1</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>gaa77d2b00b4fb9cf586f77ace827ea7c6</anchor>
+      <arglist>(w25qxx_handle_t *handle, uint8_t *status)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_get_status2</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>gaa21237ecbd5951b8017799066e7db5d9</anchor>
+      <arglist>(w25qxx_handle_t *handle, uint8_t *status)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_get_status3</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>ga99cf6a325a00921d4531004f0c1d75b1</anchor>
+      <arglist>(w25qxx_handle_t *handle, uint8_t *status)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_set_status1</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>ga246e0bb07c8bbb39731f17906779c012</anchor>
+      <arglist>(w25qxx_handle_t *handle, uint8_t status)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_set_status2</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>gaab5f28e8930d50dbc2178e39bc9fa456</anchor>
+      <arglist>(w25qxx_handle_t *handle, uint8_t status)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_set_status3</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>gada897a6c6d6acb99f4dd4ff9b65ad8ee</anchor>
+      <arglist>(w25qxx_handle_t *handle, uint8_t status)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_erase_program_suspend</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>gac7fbabc574c250eec100be861f5918ff</anchor>
+      <arglist>(w25qxx_handle_t *handle)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_erase_program_resume</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>ga05c69ac66309544eba4ff38a69f24c00</anchor>
+      <arglist>(w25qxx_handle_t *handle)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_get_manufacturer_device_id_dual_io</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>ga1cd3aec1bdeabbaed5f049fbf83ceeb4</anchor>
+      <arglist>(w25qxx_handle_t *handle, uint8_t *manufacturer, uint8_t *device_id)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_get_manufacturer_device_id_quad_io</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>ga61bd3ce40b76b6862c6a53e0e37a3455</anchor>
+      <arglist>(w25qxx_handle_t *handle, uint8_t *manufacturer, uint8_t *device_id)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_get_jedec_id</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>ga8a93ba14a032e10a27f1495fdcf56058</anchor>
+      <arglist>(w25qxx_handle_t *handle, uint8_t *manufacturer, uint8_t device_id[2])</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_global_block_lock</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>gab5579bc42bc07a7657848140888a817c</anchor>
+      <arglist>(w25qxx_handle_t *handle)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_global_block_unlock</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>ga6d62f7d14945cfde7cde7a0e9a4e3afb</anchor>
+      <arglist>(w25qxx_handle_t *handle)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_set_read_parameters</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>ga9ad10781d888b32b43b9eba45d049624</anchor>
+      <arglist>(w25qxx_handle_t *handle, w25qxx_qspi_read_dummy_t dummy, w25qxx_qspi_read_wrap_length_t length)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_enter_qspi_mode</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>gaa5ab3548707a95ded115255432224c5a</anchor>
+      <arglist>(w25qxx_handle_t *handle)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_exit_qspi_mode</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>ga6b9f75f7426a54ffdb1f5a057f8188f4</anchor>
+      <arglist>(w25qxx_handle_t *handle)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_enable_reset</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>gab55b4e071e20feb58584025287949438</anchor>
+      <arglist>(w25qxx_handle_t *handle)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_reset_device</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>ga2abebfe2a8d9377eb88448ffca73f222</anchor>
+      <arglist>(w25qxx_handle_t *handle)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_get_unique_id</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>ga11af244389478de68a6777076ee82d69</anchor>
+      <arglist>(w25qxx_handle_t *handle, uint8_t id[8])</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_get_sfdp</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>ga244a91b9c0c32e899ca89e1943045624</anchor>
+      <arglist>(w25qxx_handle_t *handle, uint8_t sfdp[256])</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_erase_security_register</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>gaf297e2c6877c64f8fd10a555f783ddaf</anchor>
+      <arglist>(w25qxx_handle_t *handle, w25qxx_security_register_t num)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_program_security_register</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>ga4e9c059ff78866e478e835cb27a92899</anchor>
+      <arglist>(w25qxx_handle_t *handle, w25qxx_security_register_t num, uint8_t data[256])</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_read_security_register</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>ga4c65debc4947bd9a61e0073105164b9c</anchor>
+      <arglist>(w25qxx_handle_t *handle, w25qxx_security_register_t num, uint8_t data[256])</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_individual_block_lock</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>ga4f00c2c169cb7c3084841c6cd795e76b</anchor>
+      <arglist>(w25qxx_handle_t *handle, uint32_t addr)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_individual_block_unlock</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>ga7f88cedf7619071b3235ba094915b2a7</anchor>
+      <arglist>(w25qxx_handle_t *handle, uint32_t addr)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_read_block_lock</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>ga59e655ca78a175037ca810bbc8539a96</anchor>
+      <arglist>(w25qxx_handle_t *handle, uint32_t addr, uint8_t *value)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_set_burst_with_wrap</name>
+      <anchorfile>group__w25qxx__advance__driver.html</anchorfile>
+      <anchor>gac19c1d0f3fd48968ea2a93c1dbe3d75d</anchor>
+      <arglist>(w25qxx_handle_t *handle, w25qxx_burst_wrap_t wrap)</arglist>
+    </member>
+  </compound>
+  <compound kind="group">
+    <name>w25qxx_extern_driver</name>
+    <title>w25qxx extern driver function</title>
+    <filename>group__w25qxx__extern__driver.html</filename>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_write_read_reg</name>
+      <anchorfile>group__w25qxx__extern__driver.html</anchorfile>
+      <anchor>ga9623a3bec148b148498480518a66cb2b</anchor>
+      <arglist>(w25qxx_handle_t *handle, uint8_t instruction, uint8_t instruction_line, uint32_t address, uint8_t address_line, uint8_t address_len, uint32_t alternate, uint8_t alternate_line, uint8_t alternate_len, uint8_t dummy, uint8_t *in_buf, uint32_t in_len, uint8_t *out_buf, uint32_t out_len, uint8_t data_line)</arglist>
+    </member>
+  </compound>
+  <compound kind="group">
+    <name>w25qxx_interface_driver</name>
+    <title>w25qxx interface driver function</title>
+    <filename>group__w25qxx__interface__driver.html</filename>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_interface_spi_qspi_init</name>
+      <anchorfile>group__w25qxx__interface__driver.html</anchorfile>
+      <anchor>ga2bdc17a556f1c801a38656331f3bb7b6</anchor>
+      <arglist>(void)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_interface_spi_qspi_deinit</name>
+      <anchorfile>group__w25qxx__interface__driver.html</anchorfile>
+      <anchor>ga091f3607fcdd47f9e5f94cf1397bd46a</anchor>
+      <arglist>(void)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_interface_spi_qspi_write_read</name>
+      <anchorfile>group__w25qxx__interface__driver.html</anchorfile>
+      <anchor>ga3d76ea1f431978f6b55edfd0628c94cd</anchor>
+      <arglist>(uint8_t instruction, uint8_t instruction_line, uint32_t address, uint8_t address_line, uint8_t address_len, uint32_t alternate, uint8_t alternate_line, uint8_t alternate_len, uint8_t dummy, uint8_t *in_buf, uint32_t in_len, uint8_t *out_buf, uint32_t out_len, uint8_t data_line)</arglist>
+    </member>
+    <member kind="function">
+      <type>void</type>
+      <name>w25qxx_interface_delay_ms</name>
+      <anchorfile>group__w25qxx__interface__driver.html</anchorfile>
+      <anchor>ga964fa232abf98737cb98458eebfff82c</anchor>
+      <arglist>(uint32_t ms)</arglist>
+    </member>
+    <member kind="function">
+      <type>void</type>
+      <name>w25qxx_interface_delay_us</name>
+      <anchorfile>group__w25qxx__interface__driver.html</anchorfile>
+      <anchor>ga38e79039b913154c9dd1036ff52bb420</anchor>
+      <arglist>(uint32_t us)</arglist>
+    </member>
+    <member kind="function">
+      <type>void</type>
+      <name>w25qxx_interface_debug_print</name>
+      <anchorfile>group__w25qxx__interface__driver.html</anchorfile>
+      <anchor>ga5325474fa17f6833744e631613fd2a0e</anchor>
+      <arglist>(const char *const fmt,...)</arglist>
+    </member>
+  </compound>
+  <compound kind="group">
+    <name>w25qxx_example_driver</name>
+    <title>w25qxx example driver function</title>
+    <filename>group__w25qxx__example__driver.html</filename>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_init</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>ga413b420bc199d09ce5cafee4a4debb28</anchor>
+      <arglist>(w25qxx_type_t type, w25qxx_interface_t interface, w25qxx_bool_t dual_quad_spi_enable)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_deinit</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>gaf390bbb2c4140f49d25822d963ead722</anchor>
+      <arglist>(void)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_power_down</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>ga5599de31797633ae75a63bcd5a8f4736</anchor>
+      <arglist>(void)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_wake_up</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>ga8a57e2d056d452abc14b0a08d4223251</anchor>
+      <arglist>(void)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_chip_erase</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>ga15cb243f227ef8d897ef3208b622bded</anchor>
+      <arglist>(void)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_get_id</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>ga0f49d960f8b6c6498ab293b369ffc389</anchor>
+      <arglist>(uint8_t *manufacturer, uint8_t *device_id)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_write</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>ga63f4e1dce2ef7c7de56461524fd22d04</anchor>
+      <arglist>(uint32_t addr, uint8_t *data, uint32_t len)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_read</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>ga013a389763200b54daaa345adf9329dc</anchor>
+      <arglist>(uint32_t addr, uint8_t *data, uint32_t len)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_page_program</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>ga39ff13988a3d451231cec3260c13a4cd</anchor>
+      <arglist>(uint32_t addr, uint8_t *data, uint16_t len)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_sector_erase_4k</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>ga9325acc424c95624f15e11631082201d</anchor>
+      <arglist>(uint32_t addr)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_block_erase_32k</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>gaee04edb9e97785e423dffe14a1cad780</anchor>
+      <arglist>(uint32_t addr)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_block_erase_64k</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>gae7cba4e0b22a1043fe304e46148fa13c</anchor>
+      <arglist>(uint32_t addr)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_fast_read</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>ga7ade25a387b9d03ddecefd86fb328389</anchor>
+      <arglist>(uint32_t addr, uint8_t *data, uint32_t len)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_get_status1</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>ga4c1be6979b4dc878d07ec86b8624c9d2</anchor>
+      <arglist>(uint8_t *status)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_get_status2</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>gaf4736fff906c2f0c1dbed26b20847052</anchor>
+      <arglist>(uint8_t *status)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_get_status3</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>ga31bcd3d2cc68d2fc589685b5087bd8b3</anchor>
+      <arglist>(uint8_t *status)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_set_status1</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>ga5e4938b4575c417ae22fa82079459b1a</anchor>
+      <arglist>(uint8_t status)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_set_status2</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>ga9bc0e696b700d66f15b3605e10d33718</anchor>
+      <arglist>(uint8_t status)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_set_status3</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>gab5c990ebd4874137b7d23f2b896d4601</anchor>
+      <arglist>(uint8_t status)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_get_get_jedec_id</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>gacc7435a39b61c44f0ce16690d5da896b</anchor>
+      <arglist>(uint8_t *manufacturer, uint8_t device_id[2])</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_global_block_lock</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>ga2cbcc018dc11a870d2e0fc3a8946b1d8</anchor>
+      <arglist>(void)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_global_block_unlock</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>ga67c70da103511d1cff9274e61a08ce56</anchor>
+      <arglist>(void)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_individual_block_lock</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>gaa7af99e92b3e81f5b202575b55dc3a7c</anchor>
+      <arglist>(uint32_t addr)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_individual_block_unlock</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>ga66726fc451c7804e8fec6eb46a6a77d6</anchor>
+      <arglist>(uint32_t addr)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_read_block_lock</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>gac1773fe914a01825ca28346205601036</anchor>
+      <arglist>(uint32_t addr, uint8_t *value)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_reset</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>ga0f65053ad28443f19ed73dbc3412b5b2</anchor>
+      <arglist>(void)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_only_spi_read</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>gac1c7f320706dd6d6d937da75b8a4da93</anchor>
+      <arglist>(uint32_t addr, uint8_t *data, uint32_t len)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_only_spi_fast_read_dual_output</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>ga364d891407cf323d3686d36ad6357604</anchor>
+      <arglist>(uint32_t addr, uint8_t *data, uint32_t len)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_only_spi_fast_read_quad_output</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>gaf5f978c432de7d6adaf41cd256724a01</anchor>
+      <arglist>(uint32_t addr, uint8_t *data, uint32_t len)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_only_spi_fast_read_dual_io</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>ga4bbaf1a989fae25d16d07edb1e38ca4f</anchor>
+      <arglist>(uint32_t addr, uint8_t *data, uint32_t len)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_only_spi_fast_read_quad_io</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>ga395add1fa33f4f70d0ba52b38842dbdb</anchor>
+      <arglist>(uint32_t addr, uint8_t *data, uint32_t len)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_only_spi_word_read_quad_io</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>gaca6b4c6ea32dd96a4ae8714e2862d67a</anchor>
+      <arglist>(uint32_t addr, uint8_t *data, uint32_t len)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_only_spi_octal_word_read_quad_io</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>ga825a567c535236d7d18ffccf07df59e9</anchor>
+      <arglist>(uint32_t addr, uint8_t *data, uint32_t len)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_only_spi_page_program_quad_input</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>gad243655eb738e44c50e6079c983fd782</anchor>
+      <arglist>(uint32_t addr, uint8_t *data, uint16_t len)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_only_spi_get_manufacturer_device_id_dual_io</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>gac0d9e08a37ee37563c8dbb501608a668</anchor>
+      <arglist>(uint8_t *manufacturer, uint8_t *device_id)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_only_spi_get_manufacturer_device_id_quad_io</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>ga6142b5a1e8602e2990dec34015812615</anchor>
+      <arglist>(uint8_t *manufacturer, uint8_t *device_id)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_only_spi_get_unique_id</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>ga374d35b73fa61d5f7464c3effdae1d57</anchor>
+      <arglist>(uint8_t id[8])</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_only_spi_get_sfdp</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>ga9b1854e0ae52f57523bc2fa7cc0656df</anchor>
+      <arglist>(uint8_t sfdp[256])</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_only_spi_write_security_register</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>gaa6c5f97106e769ba071973cc2e782ad4</anchor>
+      <arglist>(w25qxx_security_register_t num, uint8_t data[256])</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_only_spi_read_security_register</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>ga02652a58ee418b432cf77505809d7d42</anchor>
+      <arglist>(w25qxx_security_register_t num, uint8_t data[256])</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_only_spi_set_burst_with_wrap</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>ga16411577fcb794f7485912f5db1bdde9</anchor>
+      <arglist>(w25qxx_burst_wrap_t wrap)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_advance_only_qspi_set_read_parameters</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>gace2a5b7acd9798cfcaa2b5eb2f18e1d1</anchor>
+      <arglist>(w25qxx_qspi_read_dummy_t dummy, w25qxx_qspi_read_wrap_length_t length)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_basic_init</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>ga1e20768311dfdf33c77b442fa874b61a</anchor>
+      <arglist>(w25qxx_type_t type, w25qxx_interface_t interface, w25qxx_bool_t dual_quad_spi_enable)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_basic_deinit</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>gaeb167c2924a3490e9a8d11e0c57d2dc0</anchor>
+      <arglist>(void)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_basic_power_down</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>ga572c9f7a0bf2e7ab43dc078121162ec3</anchor>
+      <arglist>(void)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_basic_wake_up</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>ga02914409a9db38f35bc89d9fc4d96a17</anchor>
+      <arglist>(void)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_basic_chip_erase</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>gaf78e9f136e29b826c1a2b337b8451d6d</anchor>
+      <arglist>(void)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_basic_get_id</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>gacdda3af55c024b55fc9939aa23650356</anchor>
+      <arglist>(uint8_t *manufacturer, uint8_t *device_id)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_basic_write</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>ga5cf24fc78e1b45e845d02ec9133f46ab</anchor>
+      <arglist>(uint32_t addr, uint8_t *data, uint32_t len)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_basic_read</name>
+      <anchorfile>group__w25qxx__example__driver.html</anchorfile>
+      <anchor>ga143fa1f19a792142339f3d4e9ce078d0</anchor>
+      <arglist>(uint32_t addr, uint8_t *data, uint32_t len)</arglist>
+    </member>
+  </compound>
+  <compound kind="group">
+    <name>w25qxx_test_driver</name>
+    <title>w25qxx test driver function</title>
+    <filename>group__w25qxx__test__driver.html</filename>
+    <member kind="define">
+      <type>#define</type>
+      <name>W25QXX_ENABLE_ERASE_READ_TEST</name>
+      <anchorfile>group__w25qxx__test__driver.html</anchorfile>
+      <anchor>ga8be86baae6f8448171125c70da1fbfa0</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_read_test</name>
+      <anchorfile>group__w25qxx__test__driver.html</anchorfile>
+      <anchor>ga4ce42ca34d33cd64cb823040780999af</anchor>
+      <arglist>(w25qxx_type_t type, w25qxx_interface_t interface, w25qxx_bool_t dual_quad_spi_enable)</arglist>
+    </member>
+    <member kind="function">
+      <type>uint8_t</type>
+      <name>w25qxx_register_test</name>
+      <anchorfile>group__w25qxx__test__driver.html</anchorfile>
+      <anchor>ga05d07036254d102ebea0d0b1e83862c8</anchor>
+      <arglist>(w25qxx_type_t type, w25qxx_interface_t interface, w25qxx_bool_t dual_quad_spi_enable)</arglist>
+    </member>
+  </compound>
+  <compound kind="page">
+    <name>index</name>
+    <title>LibDriver W25QXX</title>
+    <filename>index.html</filename>
+  </compound>
+</tagfile>